1.4 KiB
1.4 KiB
Replay Retention Schema Freeze - 2025-12-10
Why
- Unblock EvidenceLocker replay ingestion tasks (EVID-REPLAY-187-001) and downstream CLI/runbook work by freezing a retention declaration schema.
- Keep outputs deterministic and tenant-scoped while offline/air-gap friendly.
Scope & Decisions
- Schema path:
docs/modules/replay/schemas/replay-retention.schema.json. - Fields:
retention_policy_id(string, stable ID for policy version).tenant_id(string, required).dataset(string; e.g., evidence_bundle, replay_log, advisory_payload).bundle_type(enum: portable_bundle, sealed_bundle, replay_log, advisory_payload).retention_days(int 1-3650).legal_hold(bool).purge_after(ISO-8601 UTC; derived from ingest + retention_days unless legal_hold=true).checksum(algorithm: sha256/sha512, value hex).created_at(ISO-8601 UTC).
- Determinism: no additionalProperties; checksum recorded for audit; UTC timestamps only.
- Tenant isolation: tenant_id mandatory; policy IDs may be per-tenant.
Impacted Tasks
- EVID-REPLAY-187-001, CLI-REPLAY-187-002, RUNBOOK-REPLAY-187-004 are unblocked on retention shape; implementation still required in corresponding modules.
Next Steps
- Wire schema validation in EvidenceLocker ingest and CLI replay commands.
- Document retention defaults and legal-hold overrides in
docs/operations/runbooks/replay_ops.md.