NetSendo
Platform Updates

NetSendo v2.8.5: Brain API respektuje uprawnienia kluczy API

NetSendo Team5 min czytania

Klucze API powinny działać jak klucze do konkretnych pomieszczeń. Klucz dla narzędzia raportowego, które ma tylko odczytywać subskrybentów, nie powinien otwierać pokoju, w którym trzymasz tokeny botów i klucze do zewnętrznych usług. W NetSendo przed wersją v2.8.5 Brain API dało się otworzyć właśnie w ten sposób.

NetSendo v2.8.5 (wydane 2026-11-09) to naprawia. Brain API sprawdza teraz uprawnienia każdego klucza API. Brain ma własne uprawnienia, a zapisane sekrety nie są już wysyłane poza serwer. Jeśli hostujesz NetSendo samodzielnie, zainstaluj tę aktualizację jak najszybciej.

TL;DR: W wersjach przed v2.8.5 /api/v1/brain/* akceptowało każdy ważny klucz API, niezależnie od jego uprawnień. v2.8.5 dodaje uprawnienia brain:read i brain:write oraz zastępuje zapisane sekrety polem secret_hints (ostatnie cztery znaki). Kolejkowany eksport CSV wymaga teraz subscribers:read. Klucze z pełnym dostępem działają bez zmian. Węższe klucze tracą dostęp do Brain, dopóki nie dodasz im nowych uprawnień.

🔐 Co nowego w v2.8.5

Problem

Endpointy Brain pod /api/v1/brain/* sprawdzały tylko, czy klucz API jest ważny. Nie sprawdzały, co ten klucz może robić. Klucz ograniczony na przykład do subscribers:read mógł mimo to:

  • Odczytać ustawienia Brain, w tym token bota Telegram oraz klucze Perplexity i SerpAPI zapisane jawnym tekstem
  • Zmieniać ustawienia Brain
  • Edytować bazę wiedzy i plany Brain

Problem zgłosił prywatnie realtasty. Dziękujemy za odpowiedzialne zgłoszenie.

Poprawka

🧠

Osobne uprawnienia Brain

Uprawnienia brain:read i brain:write są teraz dostępne w Ustawienia → Klucze API.

🙈

Sekrety zostają na serwerze

Zapisane sekrety nie trafiają do odpowiedzi JSON z API ani do danych wysyłanych na stronę panelu.

🔎

Podpowiedzi sekretów

secret_hints pokazuje ostatnie cztery znaki każdego zapisanego sekretu, więc widzisz, który klucz jest skonfigurowany.

📤

Sprawdzanie uprawnień przy eksporcie

POST /api/v1/lists/{list}/export wymaga teraz subscribers:read, tak samo jak eksport bezpośredni.

Co się dzieje z istniejącymi kluczami

  • ✅ Klucze z pełnym dostępem automatycznie dostają brain:read i brain:write. Ich integracje działają dalej.
  • ⚠️ Klucze z węższymi uprawnieniami tracą dostęp do Brain, dopóki nie dodasz im uprawnień Brain.
  • 🧪 Testy połączenia z Perplexity i SerpAPI nadal działają, jeśli zostawisz pole klucza puste. NetSendo testuje zapisany klucz na serwerze.
ℹ️ Uwaga: Jeśli któreś z Twoich narzędzi odczytywało sekrety Brain z API albo ze strony panelu, dostanie teraz secret_hints zamiast pełnych wartości. Trzymaj sekrety w NetSendo i pozwól, żeby korzystał z nich serwer.

💼 Kogo to dotyczy: trzy przykłady

🛒

E-commerce: integracje sklepu

Załóżmy, że sklep synchronizuje klientów przez klucz, który może pracować tylko z subskrybentami. Przed v2.8.5 każdy, kto zdobył ten klucz, mógł też odczytać token bota Telegram i klucze dostawców AI. Po aktualizacji klucz może robić tylko to, na co pozwalają jego uprawnienia.

🚀

SaaS: automatyzacje oparte na Brain

Jeśli workflow onboardingu lub przeciwdziałania odejściom klientów odczytuje plany Brain albo aktualizuje bazę wiedzy przez klucz z ograniczonymi uprawnieniami, nadaj mu brain:read, a jeśli coś zmienia, także brain:write. W przeciwnym razie te wywołania przestaną działać po aktualizacji.

🏢

Agencje: osobne klucze dla klientów

Jeśli dajesz klientom lub podwykonawcom ich własne klucze, dostęp do Brain jest teraz decyzją, którą podejmujesz dla każdego klucza. Dashboard raportowy może odczytywać subskrybentów bez wglądu w konfigurację AI.

🛠️ Aktualizacja krok po kroku

  1. Zrób kopię zapasową i zaktualizuj

    Zrób kopię zapasową bazy danych, a potem zaktualizuj do v2.8.5 tak, jak zwykle aktualizujesz instancję. W typowej instalacji Docker wygląda to tak:

    docker compose pull
    docker compose up -d
  2. Przejrzyj klucze API

    Otwórz Ustawienia → Klucze API. Klucze z pełnym dostępem mają już uprawnienia Brain. Dokładnie sprawdź każdy klucz z węższymi uprawnieniami.

  3. Nadaj uprawnienia Brain tylko tam, gdzie są potrzebne

    Każdej integracji, która naprawdę korzysta z Brain, dodaj brain:read. brain:write dodaj tylko wtedy, gdy integracja zmienia ustawienia, bazę wiedzy lub plany.

  4. Sprawdź integracje eksportu

    Narzędzia wywołujące POST /api/v1/lists/{list}/export potrzebują teraz subscribers:read. Jeśli zaplanowany eksport przestanie działać, najpierw sprawdź to uprawnienie.

  5. Zmień kod, który odczytywał sekrety

    Jeśli jakiś skrypt odczytywał pełne sekrety z ustawień Brain, zmień go tak, żeby używał secret_hints do sprawdzenia, który klucz jest skonfigurowany.

  6. Przetestuj połączenia

    W ustawieniach Brain uruchom testy połączenia z Perplexity i SerpAPI bez wpisywania klucza. NetSendo sprawdzi zapisany klucz na serwerze.

⚠️ Częsty problem: Po aktualizacji wywołanie Brain wykonane wąskim kluczem zwraca błąd uprawnień. To znak, że poprawka działa. Dodaj temu kluczowi uprawnienie Brain, zamiast przełączać integrację na klucz z pełnym dostępem.

🎯 Porady ekspertów

🎯 Porady ekspertów

1
Rozważ wymianę sekretów Brain

Jeśli przed v2.8.5 udostępniałeś wąskie klucze API zewnętrznym firmom, te klucze mogły odczytać Twoje sekrety Brain. Dla bezpieczeństwa wymień token bota Telegram oraz klucze Perplexity i SerpAPI.

2
Dawaj kluczom tylko to, czego potrzebują

Nadawaj każdemu kluczowi najmniejszy zestaw uprawnień, jakiego potrzebuje, i używaj osobnego klucza dla każdej integracji. Jeśli jeden klucz wycieknie, możesz go unieważnić bez psucia pozostałych integracji.

3
Ogranicz klucze z pełnym dostępem

Klucze z pełnym dostępem automatycznie dostają uprawnienia Brain. Sprawdź, czy każdy z nich naprawdę potrzebuje pełnego dostępu, a jeśli nie, zawęź jego uprawnienia.

4
Używaj secret_hints przy audytach

Po wymianie sekretów porównaj ostatnie cztery znaki w secret_hints, żeby potwierdzić, że używany jest nowy klucz.

✅ Podsumowanie

v2.8.5 to mała aktualizacja o dużym znaczeniu dla bezpieczeństwa. Brain API ma teraz własne uprawnienia, zapisane sekrety zostają na Twoim serwerze, a kolejkowany eksport CSV wymaga subscribers:read. Klucze z pełnym dostępem działają bez zmian. Węższym kluczom dodaj uprawnienia Brain tylko tam, gdzie są potrzebne.

Self-hosting oznacza, że Twoje dane i dane uwierzytelniające zostają na Twoim serwerze, dlatego takie aktualizacje warto instalować szybko. Więcej szczegółów znajdziesz w dokumentacji, a podłączone narzędzia przejrzysz na stronie integracji.

Zaktualizuj do v2.8.5 już dziś

Zaktualizuj instancję, a potem przejrzyj klucze API.

#security#api#api-keys#brain#permissions#self-hosted
Udostępnij