Cykl życia podatności/incydentu w orchestratorze ipIII: open → triaged → assigned → fixing → retest → closed. Zamknięcie (close) jest możliwe wyłącznie z dowodem retestu o statusie CONFIRMED — reguła egzekwowana w bazie danych. Ta strona jest jawnym rejestrem: przypisanie właściciela, zegar SLA i przejścia lifecycle są LIVE MVP; pełny task board, eskalacja i przypomnienia pozostają ROADMAP.
/incidents/:id/assign i /incidents/:id/transition na warstwie v1 (auth + DB).
Reguła close-with-evidence (zamknięcie tylko przy reteście CONFIRMED) jest LIVE i egzekwowana w bazie danych
(422 bez dowodu; PATCH-bypass zamknięty — audyt F4). Eksport tasku do Jira/GitHub = LIVE MVP
(/incidents/:id/ticket). Pełny task board, eskalacja, automatyczne przypomnienia (reminders), workflow zatwierdzeń
= ROADMAP. Terminy SLA poniżej są orientacyjne (domyślne, konfigurowalne per organizacja) — nie stanowią zobowiązania umownego.
Remediacja nie kończy się deklaracją „naprawione". Kończy się artefaktem: retest o statusie CONFIRMED wpięty w łańcuch dowodowy,
po którym package_sha256 evidence-package zmienia wartość. Bez tego dowodu incydent nie przejdzie do closed —
baza danych odrzuci przejście (422).
Dowody statusów LIVE = Evidence Matrix (integracja na żywej PostgreSQL: import→pack→retest→engagement). Nie powielamy tu liczników testów — jedno źródło prawdy pozostaje w roadmap-dev. Wszystko poza opisanym LIVE/LIVE MVP = ROADMAP.
Każdy incydent przechodzi przez jawnie zdefiniowane stany. Przejścia (transition) są rejestrowane w audit logu (kto/co/kiedy). Przejście do closed jest bramkowane dowodem.
created_at. Endpoint /incidents/:id/assign. LIVE MVP/incidents/:id/ticket). LIVE MVPfixing. LIVEpackage_sha256 evidence-package odzwierciedla zmianę stanu. LIVE (close-with-evidence)Za każdy incydent w stanie assigned i dalej odpowiada dokładnie jeden właściciel. Role są egzekwowane przez RBAC warstwy v1.
| Rola | Zakres odpowiedzialności | Stan |
|---|---|---|
| Reporter / Importer | Tworzy incydent (import skanera = MEDIA_SIGNAL lub zgłoszenie ręczne). Nie zamyka. | LIVE v1 |
| Triager | Weryfikuje zasadność, nadaje priorytet i SLA, wykonuje przejście open→triaged. | LIVE MVP |
| Owner (właściciel naprawy) | Przypisany przez /incidents/:id/assign. Prowadzi naprawę (fixing), inicjuje retest. | LIVE MVP |
| Retester / Verifier | Waliduje naprawę; wynik CONFIRMED (dowód) odblokowuje przejście do closed. | LIVE |
| Approver (zatwierdzający) | Formalne zatwierdzenie zamknięcia / akceptacja ryzyka. Workflow wieloetapowego zatwierdzania. | ROADMAP |
Przypisanie i przejścia zapisują wpis w audit logu (kto/co/kiedy) w PostgreSQL. Separacja obowiązków (reporter ≠ retester ≠ approver) jako twarda reguła = częściowo v1, pełne rozdzielenie ról = ROADMAP.
Zegar SLA startuje od created_at i jest liczony do wymaganego stanu (naprawa/retest). Poniższe wartości są domyślne i orientacyjne — nie stanowią zobowiązania umownego ani gwarancji.
| Severity | Priorytet | SLA (orientacyjnie) | Znaczenie |
|---|---|---|---|
| P0 Krytyczna | Natychmiast | 24 h | Aktywne ryzyko lub exploit w KEV; wymaga natychmiastowego właściciela i naprawy. |
| P1 Wysoka | Pilne | 72 h | Poważna podatność; naprawa w oknie zgodnym z obowiązkami raportowymi (NIS2 24h/72h — patrz Legal Engine). |
| P2 Średnia | Planowe | 7 dni | Istotna, lecz bez natychmiastowego ryzyka; planowa remediacja. |
| P3 Niska | Backlog | 30 dni | Niski wpływ; naprawa w ramach cyklu utrzymaniowego lub świadoma akceptacja ryzyka. |
Najtwardsza reguła całego workflow. Incydentu nie da się zamknąć samą deklaracją — potrzebny jest dowód retestu o statusie CONFIRMED.
closed jest odrzucane. LIVEpackage_sha256 evidence-package przyjmuje inną wartość (integralność łańcucha), co jest weryfikowalnym śladem zamknięcia. LIVEfixing (pętla). To jedyna waluta zaufania warstwy remediacji: status ≤ dowód.
Nie każdą podatność da się (od razu) naprawić. Ścieżka świadomej akceptacji ryzyka lub wyjątku ma być jawna, ograniczona czasowo i zatwierdzona.
Świadoma, udokumentowana decyzja o niepodejmowaniu naprawy (lub odroczeniu) z uzasadnieniem, właścicielem ryzyka i datą przeglądu.
Status: ROADMAP — model danych + workflow zatwierdzania w planie.
Ograniczony czasowo wyjątek od SLA/polityki (np. mitigacja kompensacyjna zamiast pełnej naprawy), z terminem wygaśnięcia.
Status: ROADMAP — automatyczne wygaszanie + przypomnienia w planie.
Ślad zatwierdzenia (kto zaakceptował ryzyko, kiedy, na jak długo) wpięty w audit log i pakiet DORA/TIBER.
Status: ROADMAP.
Do czasu dostarczenia tej ścieżki: akceptacja ryzyka odbywa się poza systemem (decyzja operatora/organizacji) i nie zamyka incydentu w rozumieniu close-with-evidence. Incydent pozostaje otwarty ze statusem odzwierciedlającym stan faktyczny.
Właściciel może wyeksportować incydent jako task do zewnętrznego trackera przez /incidents/:id/ticket — most między warstwą dowodową ipIII a operacyjnym backlogiem zespołu.
package_sha256). Endpoint GET/POST /api/ip3/v1/incidents/:id/ticket. LIVE MVP| Element eksportu | Zakres | Status |
|---|---|---|
| Generowanie tasku (Jira / GitHub Issue) | tytuł + severity + opis + linki (incydent, evidence-package, hash) | LIVE MVP |
| Deep-link zwrotny do ipIII | task odsyła do incydentu i dowodu w orchestratorze | LIVE MVP |
| Sync statusu (tracker → ipIII) | webhook zamknięcia w Jira/GitHub → transition/retest | ROADMAP |
| Auto-provisioning projektu/boarda | mapowanie org → projekt trackera, pola custom | ROADMAP |
| Endpoint | Funkcja | Status |
|---|---|---|
POST /api/ip3/v1/incidents/:id/assign | Przypisanie właściciela (owner), start zegara SLA. | LIVE MVP |
POST /api/ip3/v1/incidents/:id/transition | Przejście lifecycle (open→triaged→assigned→fixing→retest→closed), audit log. | LIVE MVP |
… /transition → closed | Zamknięcie bramkowane dowodem CONFIRMED (422 bez dowodu; F4 zamknięty). | LIVE |
GET/POST /api/ip3/v1/incidents/:id/ticket | Eksport tasku do Jira/GitHub (payload + linki + hash). | LIVE MVP |
| Task board / eskalacja / reminders | Kanban, auto-eskalacja po przekroczeniu SLA, przypomnienia. | ROADMAP |
Kanon dowodowy dla statusów LIVE = roadmap-dev → Evidence Matrix (nie powielamy liczników testów na tej stronie). Kanon statusu = status-matrix.
Każdy element tej strony nosi dokładnie jeden status. To jedyna waluta zaufania warstwy remediacji.
| Status | Znaczenie | Warunek nadania |
|---|---|---|
| LIVE | Działa z dowodem (kod + test + endpoint). | Egzekwowane w DB / zweryfikowane w Evidence Matrix. |
| LIVE MVP | Działa w minimalnym zakresie z realnym endpointem. | Endpoint istnieje i odpowiada; zakres świadomie ograniczony. |
| ROADMAP | Specyfikacja docelowa, jeszcze nie zbudowane. | Opisane kryteria, brak działającego kodu. |
| GAP | Luka bez pokrycia dowodowego. | Brak dowodu — nie wolno przedstawiać jako fakt. |