Files
git.stella-ops.org/docs/schemas/replay-retention.schema.json
StellaOps Bot 49922dff5a
Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled
Notify Smoke Test / Notifier Service Tests (push) Has been cancelled
Notify Smoke Test / Notification Smoke Test (push) Has been cancelled
Notify Smoke Test / Notify Unit Tests (push) Has been cancelled
AOC Guard CI / aoc-guard (push) Has been cancelled
AOC Guard CI / aoc-verify (push) Has been cancelled
Export Center CI / export-ci (push) Has been cancelled
Manifest Integrity / Validate Schema Integrity (push) Has been cancelled
Manifest Integrity / Validate Contract Documents (push) Has been cancelled
Manifest Integrity / Validate Pack Fixtures (push) Has been cancelled
Manifest Integrity / Audit SHA256SUMS Files (push) Has been cancelled
Manifest Integrity / Verify Merkle Roots (push) Has been cancelled
Policy Lint & Smoke / policy-lint (push) Has been cancelled
Risk Bundle CI / risk-bundle-build (push) Has been cancelled
Scanner Analyzers / Discover Analyzers (push) Has been cancelled
Scanner Analyzers / Validate Test Fixtures (push) Has been cancelled
Risk Bundle CI / risk-bundle-offline-kit (push) Has been cancelled
Risk Bundle CI / publish-checksums (push) Has been cancelled
Scanner Analyzers / Build Analyzers (push) Has been cancelled
Scanner Analyzers / Test Language Analyzers (push) Has been cancelled
Scanner Analyzers / Verify Deterministic Output (push) Has been cancelled
devportal-offline / build-offline (push) Has been cancelled
Mirror Thin Bundle Sign & Verify / mirror-sign (push) Has been cancelled
up the blokcing tasks
2025-12-11 02:32:18 +02:00

93 lines
2.6 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://stellaops.dev/schemas/replay-retention.schema.json",
"title": "ReplayRetention",
"description": "Retention and legal-hold declaration for replay bundles; frozen for offline deterministic processing.",
"type": "object",
"additionalProperties": false,
"properties": {
"retention_policy_id": {
"type": "string",
"description": "Stable identifier for the retention policy version (e.g., r1, r2).",
"minLength": 1,
"maxLength": 32,
"pattern": "^[A-Za-z0-9_.-]+$"
},
"tenant_id": {
"type": "string",
"description": "Tenant scoped identifier; required for multi-tenant isolation.",
"minLength": 1,
"maxLength": 128
},
"dataset": {
"type": "string",
"description": "Logical dataset name (e.g., evidence_bundle, replay_log, advisory_payload).",
"minLength": 1,
"maxLength": 64
},
"bundle_type": {
"type": "string",
"description": "Bundle classification informing purge/hold behavior.",
"enum": [
"portable_bundle",
"sealed_bundle",
"replay_log",
"advisory_payload"
]
},
"retention_days": {
"type": "integer",
"description": "Minimum days content must be retained before eligible for purge.",
"minimum": 1,
"maximum": 3650
},
"legal_hold": {
"type": "boolean",
"description": "True when a legal hold is active; overrides retention_days until cleared."
},
"purge_after": {
"type": "string",
"description": "ISO-8601 UTC timestamp when purge may begin (computed from ingest + retention_days unless legal_hold=true).",
"format": "date-time"
},
"checksum": {
"type": "object",
"description": "Deterministic checksum of the retention declaration for audit trails.",
"additionalProperties": false,
"properties": {
"algorithm": {
"type": "string",
"enum": [
"sha256",
"sha512"
]
},
"value": {
"type": "string",
"pattern": "^[A-Fa-f0-9]{64,128}$"
}
},
"required": [
"algorithm",
"value"
]
},
"created_at": {
"type": "string",
"description": "ISO-8601 UTC timestamp when this retention declaration was generated.",
"format": "date-time"
}
},
"required": [
"retention_policy_id",
"tenant_id",
"dataset",
"bundle_type",
"retention_days",
"legal_hold",
"purge_after",
"checksum",
"created_at"
]
}