Platforma
Dostęp i bezpieczeństwo
Tokeny z zakresami, role per projekt, SCIM 2.0 oraz polityki organizacji: allowlista IP, czas sesji i wymuszone MFA.
Panel Organizacja → Bezpieczeństwo, Członkowie i Konto → Tokeny dostępu zbierają wszystko, co dotyczy tego, kto i do czego ma dostęp. Każda zmiana trafia do logu audytowego.
Tokeny z zakresami (PAT)
Token ma listę uprawnień (projects:read, db:write, functions:deploy, secrets:write, backups:write …), opcjonalne ograniczenie do jednej organizacji lub jednego projektu, datę wygaśnięcia i znacznik ostatniego użycia. Sekret jest pokazywany raz i zapisywany jako skrót. write obejmuje read; projects:delete trzeba nadać osobno, a * to pełny dostęp. Starsze tokeny bez zakresów nadal działają jak pełny dostęp do czasu ich wymiany.
Zakresy są egzekwowane w Management API i MCP: brak uprawnienia to 403, token wygasły lub unieważniony to 401, a lista narzędzi MCP zawiera tylko to, co token może wywołać. Efektywne uprawnienie to część wspólna zakresu tokenu i roli właściciela tokenu w danym projekcie. Polityka organizacji może ograniczyć maksymalną ważność tokenów.
curl https://host.ulewicz.space/api/v1/projects/<ref>/functions \
-H "Authorization: Bearer hb_pat_..."
# 403 {"error":{"status":403,"message":"Token nie ma wymaganego uprawnienia: functions:read"}}
Role per projekt
Role organizacji (Właściciel, Admin, Developer, Tylko odczyt) są dziedziczone przez wszystkie projekty. W Członkowie → Dostęp do projektów możesz nadpisać rolę dla jednego projektu: Viewer, Developer, Admin, Billing (tylko status i rozliczenia) albo Brak dostępu (projekt jest niewidoczny). Właścicieli nie można ograniczyć. Macierz uprawnień znajdziesz na tej samej stronie.
| Akcja | Viewer | Developer | Admin | Billing |
|---|---|---|---|---|
| Podgląd projektu, funkcji, logów | tak | tak | tak | tylko status |
| SQL, funkcje, workers, gałęzie, sekrety, klucze | nie | tak | tak | nie |
| Domeny, sieć, repliki, PITR, pauza, usuwanie | nie | nie | tak | nie |
SCIM 2.0
Plany Team i Enterprise. W Bezpieczeństwo → SCIM wygeneruj token i wklej do Entra ID, Okta lub Google Workspace razem z adresem bazowym:
Tenant URL: https://host.ulewicz.space/api/scim/v2
Authorization: Bearer hb_scim_...
GET /ServiceProviderConfig /ResourceTypes /Schemas
GET|POST /Users GET|PUT|PATCH|DELETE /Users/{id}
GET|POST /Groups GET|PUT|PATCH|DELETE /Groups/{id}
filter: userName eq "ala@firma.pl" · paginacja: startIndex, count
Grupy z IdP mapujesz na role w formacie nazwa grupy = admin | developer | readonly; przy kilku grupach wygrywa najwyższa rola, a osoby bez grupy dostają rolę domyślną (domyślnie tylko odczyt). Dezaktywacja użytkownika usuwa go z organizacji, kończy sesje SSO i unieważnia jego tokeny związane z organizacją. SCIM nigdy nie zmienia ani nie usuwa właścicieli, nie nadpisuje profilu kont z własnym hasłem, a przy zweryfikowanych domenach SSO przyjmuje tylko adresy z tych domen.
Polityki organizacji
- Allowlista IP (IPv4/IPv6, CIDR) dla panelu i/lub Management API i MCP. Zapis jest blokowany, jeśli Twój adres nie jest na liście.
- Maksymalny czas sesji (1 godz. – 30 dni): po jego upływie trzeba zalogować się ponownie. Przy wielu organizacjach obowiązuje najkrótszy.
- Wymuszone MFA dla wszystkich członków albo tylko właścicieli i adminów.
- Maksymalna ważność tokenów (7–365 dni).
Audit log
Zdarzenia: token.create, token.revoke, access.token_denied, access.role_denied, access.ip_denied, project.role_set, project.role_clear, org.policy_*, org.mfa_required, scim.token_rotate, scim.user_provision, scim.user_deactivate, scim.group_*, scim.role_sync.