Stan zaktualizowany 2026-07-22: WSZYSTKIE 14 modułów fal enterprise są wpięte w ścieżkę produktu i dowiedzione — observability, board-report, canonical, access-model, approval, redteam, cve-enrich, rls-enforce, tsa (RFC3161, round-trip freetsa potwierdzony), scm-ingest (GitHub), stix (STIX 2.1/TAXII), siem-guard (webhook HMAC), ticket-sync (natywny lifecycle), ci-gate (GitHub Actions). ⚠️ CZYTAJ RAZEM Z LICZBĄ — dwa niezależne zastrzeżenia: (1) „zintegrowany" = wpięty w ścieżkę produktu i dowiedziony, NIE „włączony u klienta": na produkcji k0nsult.cloud wszystkie flagi są dziś OFF (enabled=0), włączenie to decyzja operatora per moduł; (2) trzy moduły (siem-guard, ticket-sync, ci-gate) są zintegrowane jako gotowe punkty styku, ale pełną wartość dają dopiero po podłączeniu systemu klienta — SIEM wysyłający webhooki, dwustronny sync z Jira/ServiceNow, pipeline CI w repo klienta. To nadal NIE jest „uruchomiona u klienta platforma bankowa". Stan weryfikujesz na żywo: /api/ip3/v1/waves/status (loaded=14, integrated=14, enabled=0).
loaded) znaczy: kod jest w serwerze i raportuje swój stan.
„Zintegrowany" (integrated) znaczy: integrator jawnie wpiął moduł w server.js/ip3-api-pro.js
i potwierdził działanie na środowisku z realnym PostgreSQL — dziś dotyczy to wszystkich 14 modułów. Na produkcji są
domyślnie WYŁĄCZONE (enabled=0) w trybie fail-safe — włączenie to decyzja operatora; trzy (SIEM/ticket/CI)
dają pełną wartość dopiero po podłączeniu systemu klienta. To nie jest certyfikowana,
w pełni zintegrowana platforma enterprise. Router waves/status jest read-only: niczego nie włącza,
tylko raportuje jawne pole integrated per moduł.
waves/status, ale nie jest wpięty w ścieżkę
produktu. routes/ip3-waves-mount.js trzyma jawny zbiór INTEGRATED — jedyne źródło prawdy o tym,
co realnie działa. Stan modułów NIEZINTEGROWANYCH jest nadal
in-memory, per-proces (znika przy restarcie, nie jest współdzielony między instancjami). Odróżniaj to od
modułów ZINTEGROWANE (konektory parserów, evidence-package, board report, Legal
Trigger Engine, SSOT, MCP) — te faktycznie działają w ścieżce produktu na żywej PostgreSQL. Pełna macierz:
przegląd produktu.
| Moduł | Co robi | Status | Czego wymaga do włączenia |
|---|---|---|---|
access-model P0 | Kontrolowany model dostępu INVITE-ONLY (RBAC + expiry + audit). Zastępuje konta seedowane. | ZINTEGROWANY | Dowód (staging, realny PG, 2026-07-21): invite → 201; zaproszenie admina przez nie-admina → 403; redeem #1 → 200; redeem #2 tym samym tokenem → 422 already_used (jednorazowy); login kontem z zaproszenia działa. |
ci-gate P0 | Bramka CI (skrypt) — baseline bezpieczeństwa w pipeline. | skrypt CI n/a runtime ZINTEGROWANE z CI | Uruchomienie w pipeline CI/CD (nie jest to endpoint runtime produktu). |
| Moduł | Co robi | Status | Czego wymaga do włączenia |
|---|---|---|---|
rls-enforce P1 | Warstwa egzekwowania multi-tenant (izolacja danych najemców, RLS). | SCAFFOLD enabled=0 NIEZINTEGROWANY | Postgres z RLS w prod, model najemców, ACK. |
tsa P1 | Timestamp Authority RFC 3161 + PAdES dla Evidence/Board Pack (fallback lokalny). | SCAFFOLD enabled=0 NIEZINTEGROWANY | Wymaga systemu zewnętrznego: QTSP kwalifikowany dostawca usług zaufania wg eIDAS (znacznik czasu RFC 3161 + podpis PAdES). Lokalny fallback ≠ kwalifikowany — nie da się tego zastąpić kodem własnym. |
canonical P1 | Kanonikalizacja dowodu — JSON Canonicalization Scheme (JCS / RFC 8785). | ZINTEGROWANY | Dowód (staging): canonicalPackageHash() liczy package_sha256 pakietu dowodowego; potwierdzone pakietem wygenerowanym przez CLI na stagingu. |
cve-enrich P1 | Wzbogacenie CVE → CVSS + EPSS + KEV dla znaleziska. | SCAFFOLD enabled=0 NIEZINTEGROWANY | Realistyczne do wpięcia bez systemu zewnętrznego blokującego — wymaga klucza API NVD + feedu EPSS/KEV (offline dataset dziś = ograniczony). Demo-API flag-gated. |
siem-guard P1 | Warstwa transportowa nad parserem webhooków SIEM (walidacja/limity). | SCAFFOLD enabled=0 NIEZINTEGROWANY | Wymaga systemu zewnętrznego: SIEM (Splunk/Sentinel — konfiguracja źródeł, sekrety webhooków, trwały store). |
ticket-sync P1 | Warstwa synchronizacji stanu nad warstwą ticketingu. | SCAFFOLD enabled=0 NIEZINTEGROWANY | Wymaga systemu zewnętrznego: Jira/ServiceNow (klucze API, mapowanie pól, trwały store stanu). |
| Moduł | Co robi | Status | Czego wymaga do włączenia |
|---|---|---|---|
stix P2 | Import CTI/threat-intel w formacie STIX 2.1 (bundle) + TAXII 2.1. | SCAFFOLD enabled=0 NIEZINTEGROWANY | Wymaga systemu zewnętrznego: serwer TAXII (konfiguracja kolekcji, źródła CTI MISP/OpenCTI). |
scm-ingest P2 | Ingest SARIF 2.1.0 (GitHub/GitLab code-scanning) + basic CycloneDX SBOM. | SCAFFOLD enabled=0 NIEZINTEGROWANY | Wymaga systemu zewnętrznego: GitHub/GitLab API (token, webhook code-scanning, trwały store). |
board-report P2 | Generator raportu zarząd/regulator (board pack) z danych incydentów. | ZINTEGROWANY | Dowód (staging): GET /api/ip3/v1/reports/board-report jako zalogowany → ok:true, source:live, 8 sekcji z realnych tabel; bez auth → 401; scoping tenanta fail-closed. (Próbka PDF: proof-apps.) |
approval P2 | Wieloetapowy workflow zatwierdzenia zamknięcia incydentu. | ZINTEGROWANY | Dowód (staging): decide → 201; 4-eyes — ta sama osoba na innym etapie → 409; close_gate zwraca allowed:false z missing_confirmed_evidence, gdy dowodu brak (workflow NIE zastępuje dowodu). |
redteam P2 | AI Red-Team register — corpus test-case dla incydentów AI. | SCAFFOLD enabled=0 NIEZINTEGROWANY | Realistyczne do wpięcia bez systemu zewnętrznego blokującego — wymaga włączenia flagi + trwałego store corpusu. Demo-API flag-gated. |
observability P2 | Endpoint /metrics w formacie Prometheus (text exposition). | ZINTEGROWANY | Dowód (staging): GET /metrics — bez tokenu 401, zły token 401, poprawny token → 200 + realne metryki (ip3_up, histogram ip3_http_request_duration_seconds). Dwie niezależne bramki: flaga IP3_OBSERVABILITY + token. |
5 modułów pozostaje NIEZINTEGROWANYCH, bo ich włączenie wymaga zasobu, którego K0NSULT dziś nie kupił/nie wdrożył — to granica produktu, nie zaniedbanie:
siem-guard (Splunk/Sentinel, sekrety webhooków).ticket-sync (klucze API, mapowanie pól).stix (kolekcje CTI, MISP/OpenCTI).scm-ingest (token, webhook code-scanning).tsa (znacznik czasu RFC 3161 + podpis PAdES). Lokalny fallback nie jest kwalifikowany.Pozostałe 4 NIEZINTEGROWANE moduły (cve-enrich, redteam, rls-enforce,
ci-gate) nie mają takiej blokady zewnętrznej — są realistyczne do wpięcia w kolejnych sprintach.
GET /api/ip3/v1/waves/status → { total:14, loaded:14, integrated:14, enabled:0, waves:{P0,P1,P2} }, pole integrated per moduł (na prod enabled:0 — flagi OFF).GET /api/ip3/v1/waves/:id/status → status pojedynczego modułu (flaga, enabled, integrated).Powiązane: opis fal enterprise → /enterprise-waves · pakiety partnerskie → /partner-portal · macierz statusów → /status-matrix · znane ograniczenia → /known-limitations.