NetSendo v2.8.5: Brain API respektuje uprawnienia kluczy API
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.
/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:readibrain: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
-
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 -
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.
-
Nadaj uprawnienia Brain tylko tam, gdzie są potrzebne
Każdej integracji, która naprawdę korzysta z Brain, dodaj
brain:read.brain:writedodaj tylko wtedy, gdy integracja zmienia ustawienia, bazę wiedzy lub plany. -
Sprawdź integracje eksportu
Narzędzia wywołujące
POST /api/v1/lists/{list}/exportpotrzebują terazsubscribers:read. Jeśli zaplanowany eksport przestanie działać, najpierw sprawdź to uprawnienie. -
Zmień kod, który odczytywał sekrety
Jeśli jakiś skrypt odczytywał pełne sekrety z ustawień Brain, zmień go tak, żeby używał
secret_hintsdo sprawdzenia, który klucz jest skonfigurowany. -
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
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.
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.
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.
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.


