Szkielet warstwowy: gateway → auth → transport → secrets → audit → izolacja. Dla każdej warstwy podajemy uczciwie stan dzisiejszy (co działa) i cel (co jest ROADMAP). To specyfikacja, nie deklaracja gotowości — jeśli warstwa nie jest oznaczona LIVE, traktuj ją jako ROADMAP. Doktryna: claim ≤ proof.
ipIII jest dziś dowodliwym MVP warstwy evidence z uwierzytelnianiem JWT+RBAC i audytem na żywej PostgreSQL. Warstwy tożsamości federacyjnej (OIDC), transportu wzajemnie uwierzytelnianego (mTLS), sejfu sekretów (vault), niemodyfikowalnego audytu i wielodostępności (multi-tenant RLS) są zaprojektowane jako spec, ale nie są jeszcze wdrożone — dlatego oznaczamy je ROADMAP.
Ruch wchodzi od góry. Znaczniki: LIVE = zbudowane i testowane · ROADMAP = specyfikacja, jeszcze nie wdrożone.
klient / konektor / przeglądarka
│
▼
┌────────────────────────────────────────────┐
│ [1] GATEWAY rate-limit, CORS, │
│ warstwa brzegowa nagłówki bezp. │ TLS (host) .......... LIVE
│ WAF / API-GW ........ ROADMAP
├────────────────────────────────────────────┤
│ [2] AUTH JWT + RBAC .......... LIVE
│ tożsamość i role OIDC / JWKS / SSO ... ROADMAP
├────────────────────────────────────────────┤
│ [3] TRANSPORT TLS jednostronny .... LIVE
│ kanał usług mTLS wzajemny ....... ROADMAP
├────────────────────────────────────────────┤
│ [4] SECRETS fly secrets ......... LIVE
│ zarządzanie kluczy vault + rotacja .... ROADMAP
├────────────────────────────────────────────┤
│ [5] AUDIT audit-log w DB ...... LIVE
│ ślad zdarzeń append-only immutable ROADMAP
├────────────────────────────────────────────┤
│ [6] IZOLACJA single-org .......... LIVE
│ rozdział danych multi-tenant RLS .... ROADMAP
└────────────────────────────────────────────┘
│
▼
PostgreSQL (evidence + audit)
Kolumna Priorytet domknięcia luki: P0 blokuje wdrożenie enterprise · P1 wymagane dla banku/partnera, nie blokuje PoC/pilota · P2 hardening. Data weryfikacji: 2026-07-05.
| Warstwa | Stan dziś (LIVE) | Cel (ROADMAP) | Po co / ryzyko luki | Priorytet |
|---|---|---|---|---|
| [1] Gateway | TLS na warstwie hostingu, rate-limit, CORS, nagłówki bezpieczeństwa. LIVE | WAF / dedykowana brama API, filtrowanie na brzegu, centralne polityki. ROADMAP | Bez bramy filtrującej brzeg opiera się na regułach aplikacji; przy skali potrzebna dedykowana warstwa. | P2 |
| [2] Auth | JWT wystawiany lokalnie + RBAC (role/uprawnienia egzekwowane w API). LIVE | OIDC (authorization-code), walidacja JWKS z zewnętrznego IdP (np. Keycloak), SSO, provisioning/deprovisioning. ROADMAP | enterprise gap — brak federacji tożsamości i centralnego zarządzania kontami; szczegóły → /auth-enterprise. | P0 |
| [3] Transport | TLS jednostronny na styku hostingu. LIVE | mTLS (wzajemne uwierzytelnianie TLS) na bramie API + certyfikaty klienckie konektorów; opcjonalnie spięcie z PKI instytucji. ROADMAP | bank gap — bank SIFI wymaga wzajemnego TLS na styku integracji; dziś tylko jednostronny. | P0 |
| [4] Secrets | Sekrety jako fly secrets (zmienne środowiskowe poza repo). LIVE |
Dedykowany sejf (vault) z wersjonowaniem, kontrolą dostępu i rotacją kluczy. ROADMAP | hardening gap — brak automatycznej rotacji i granularnej polityki dostępu do sekretów. | P1 |
| [5] Audit | Ślad zdarzeń (audit-log) zapisywany w PostgreSQL, powiązany z akcjami użytkownika/roli. LIVE | Dziennik append-only / niemodyfikowalny (immutable), docelowo znacznik czasu i łańcuch integralności. ROADMAP | formal evidence gap — log w DB jest odczytywalny i spójny, ale nie jest technicznie niemodyfikowalny. | P1 |
| [6] Izolacja | Jedna organizacja (single-org); dane nie są współdzielone między klientami. LIVE | Multi-tenant z Row-Level Security (RLS) w PostgreSQL, tenant scoping w każdym zapytaniu, rozdział audit-logów per tenant. ROADMAP | bank/partner gap — brak bezpiecznej wielodostępności; model → /tenant-model. | P1 |
Powiązane: macierz dojrzałości → /enterprise-readiness · rejestr granic → /known-limitations · auth federacyjny → /auth-enterprise · model wielodostępny → /tenant-model.