1.2 KiB
1.2 KiB
Staleness & Drift Prep — PREP-AIRGAP-CTL-58-001-BLOCKED-ON-57-002
Status: Draft (2025-11-20) Owners: AirGap Controller Guild · AirGap Time Guild Scope: Capture the staleness/drift requirements for controller status once seal/unseal telemetry (57-002) is available.
Inputs
- Time anchor ingestion from Time service (Roughtime/RFC3161) via
time_anchor_id,drift_seconds,staleness_budget_seconds. - Bundle metadata from importer (bundle_id, manifest hash, generated_at).
Proposed status enrichments
- Add fields to
GET /system/airgap/status:staleness_seconds_remainingbundle_idtime_anchor_iddrift_seconds
- Compute
staleness_seconds_remaining = staleness_budget_seconds - drift_seconds(floor at 0). - Determinism: calculations purely from stored numbers; no wall-clock calls beyond persisted anchor timestamps.
Observability
- Metrics:
airgap_staleness_seconds{tenant}(gauge),airgap_drift_seconds{tenant}. - Timeline events emitted when budgets breached:
airgap.staleness.threshold.
Handoff
Use this prep note to satisfy PREP-AIRGAP-CTL-58-001. After integrating sealed-startup telemetry and time anchor verification, implement the above fields and metrics, then mark the implementation task DOING.