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.

AkcjaViewerDeveloperAdminBilling
Podgląd projektu, funkcji, logówtaktaktaktylko status
SQL, funkcje, workers, gałęzie, sekrety, kluczenietaktaknie
Domeny, sieć, repliki, PITR, pauza, usuwanienienietaknie

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.