K0NSULT // ai-truth/ipIII/api-explorer
k0nsult.cloud / ai-truth / ipIII / api-explorer

API Explorer — żywy read-path LIVE

Wołaj prawdziwe endpointy read-path ipIII i zobacz odpowiedzi JSON. To odpowiedź na zarzut audytowy „API = kontrakt/fasada": read-path realnie działa. Zapis (POST/PATCH) i rejestr operacyjny = chronione/ROADMAP.

Uczciwie. Dane zwracane przez read-path są SIMULATION (demonstracyjne, efemeryczne). Realny rejestr operacyjny /api/incidents jest chroniony (401 dla anon). Warstwa zapisu v1 jest LIVE (JWT+RBAC+DB, sekcja niżej) — auth-gated; OIDC/mTLS/PQC = ROADMAP hardening (patrz API produkcyjne). Kontrakt maszynowy: openapi.json.

Endpointy read-path LIVE

Legacy placeholder /api/incidents GAP — nie mylić z v1

Uwaga: zapis operacyjny działa w warstwie v1 (/api/ip3/v1/* — sekcja wyżej, LIVE auth-gated). Poniższe /api/incidents to stary placeholder (401 dla anon, status GAP) — pozostawiony dla kompatybilności, docelowo wpięcie w v1 DB (rejestr awansów demo→LIVE).

POST/api/incidents

Legacy placeholder — chronione (401 anon). Realny zapis: /api/ip3/v1/incidents.

PATCH/api/incidents/:id

Aktualizacja statusu/działań — chronione. Zamknięcie tylko z dowodem naprawy.

POST/api/incidents/:id/evidence

Dodanie dowodu (hash/URL/chain of custody) — chronione.

Warstwa v1 — „Pentest Report → Board Pack" LIVE (auth)

Realna warstwa DB-backed (PostgreSQL + JWT + RBAC + audit + chain-of-custody). Endpointy wymagają tokenu (Bearer), więc nie są wołalne z tego publicznego explorera — poniżej gotowy przepis curl. Dostęp demo na żądanie / staging. Kontrakt: openapi.json. Dowód działania: 56/56 testy integracyjne na żywej bazie.

POST/api/ip3/v1/auth/login

Login → JWT (role: operator/analyst/auditor/admin).

POST/api/ip3/v1/imports/burp · /zap · /nessus · /csv · /generic

Import raportu narzędzia → normalizacja severity (P0–P3) → incydent + evidence (sha256). Import = MEDIA_SIGNAL (sygnał, nie dowód naprawy).

GET/api/ip3/v1/reports/evidence-package/:id?format=pdf

Board pack: JSON (manifest + package_sha256 + chain-of-custody) albo realny pobieralny PDF.

POST/api/ip3/v1/engagements · /:id/log · /:id/final-report

DORA/TIBER white-team-log: scope · crown-jewels · RoE · evidence-register · raport końcowy (wymaga rejestru — claim ≤ proof).

GET/api/ip3/v1/engagements/:id/report-package?format=pdf #2

Raport TLPT (wisienka #2): engagement + timeline + evidence-register + final-report + manifest + package_sha256; JSON lub realny PDF.

GET/api/ip3/v1/incidents/:id/legal-triggers #3

Legal Trigger Engine (wisienka #3): incydent → obowiązki DORA/NIS2/RODO/AI Act + zegary (deadline ISO) + draft. DECISION-SUPPORT, nie porada prawna. Flagi: ?personal_data&high_risk&entity&sector.

# 1) login -> token
TOKEN=$(curl -s -XPOST $BASE/api/ip3/v1/auth/login \
  -H 'content-type: application/json' \
  -d '{"email":"operator@ip3.demo","password":"<demo>"}' | jq -r .token)

# 2) import raportu Burp (XML) -> incydent + evidence
curl -s -XPOST $BASE/api/ip3/v1/imports/burp \
  -H "authorization: Bearer $TOKEN" -H 'content-type: application/xml' \
  --data-binary @burp-report.xml            # -> {incidents:[{public_id, severity, hash_sha256}]}

# 3) board pack PDF (5 min od raportu do zarządu)
curl -s -XGET "$BASE/api/ip3/v1/reports/evidence-package/IP3-2026-XXXX?format=pdf" \
  -H "authorization: Bearer $TOKEN" -o board-pack.pdf   # realny PDF + nagłówek X-Package-Sha256