← Developers

05.4 — Compliance & resilienza

Spec riferita a api v1

L’Invariante

Ogni affermazione di resilienza mappa su un meccanismo interrogabile. Hash chain, heartbeat dei nodi, evidenze di ingest firmate — gli auditor verificano su tabelle live ed endpoint pubblici, non su slide.

Il Contratto

Parametro Meccanismo (verificabile)
Durabilità scrittura (edge) Scrittura business + riga di audit + ax_cdc_outbox committati nella stessa transazione — un fatto o esiste con la sua evidenza o non esiste
RPO cloud pg_dump sulla schedulazione di backup del deployment (vedi docs/DEPLOY.md nel repo — il runbook è la procedura canonica, non un sidecar)
Recovery edge Policy container restart: unless-stopped + re-claim zero-touch (token bootstrap bt_*) — un nodo rientra firmato e drena il suo outbox
Recovery cloud Migrazioni schema idempotenti al boot + readiness probe GET /api/v1/ready

Superfici di audit: cp_admin_audit (mutazioni admin append-only, hash-chained), ax_audit_logs sull’edge (azioni operatore hash-chained), cp_ingest_batches (buste firmate conservate), GET /api/v1/public/verify/event/:id (verifica terze parti senza credenziali), GET …/tenant/audit + …/audit/verify (export e ri-verifica self-service della catena), audit-webhooks tenant/admin (push firmato verso il tuo SIEM).

Il Flusso

blackout edge → i commit restano locali (outbox durevole) → riconnessione → drain (la dedup assorbe il replay)
failure cloud → redeploy → le migrazioni convergono → /api/v1/ready
manomissione → qualsiasi riga di audit riscritta rompe la hash chain → verify espone il gap

Esempio di Payload

# L'evidenza di integrità che un auditor esegue — senza credenziali
curl -s https://cp.axiom-trace.eu/api/v1/public/verify/event/$EVENT_ID | jq .

# Lato tenant: ri-verifica end-to-end della catena delle azioni admin
curl -s https://cp.axiom-trace.eu/api/v1/tenant/audit/verify \
  -H "Authorization: Bearer $PS" | jq '{ok, checked, head}'

I Fallimenti Noti

Mappatura compliance — con i confini onesti:

Framework Cosa fornisce Axiom-Trace Confine onesto
Audit ISO-9001 Evidenza di integrità attribuibile per nodo di impianto Evidenza, non prova legale qualificata
GDPR L’oracolo risponde con zero leakage — niente tenant_id, niente payload, niente segreti Gli obblighi del data-controller restano del tenant
NIS2 Chain-of-custody edge→cloud, telemetria tamper-evident, revoca chiavi immediata Le misure organizzative restano del cliente

Trasporto: la TLS termina al reverse proxy (vedi docs/DEPLOY.md per il riferimento Caddy); l’integrità del payload è garantita inoltre a livello applicativo — la firma Ed25519 per-nodo copre il body grezzo della richiesta, quindi il trasporto non è l’ancora di fiducia.