Air-Gapped Time Anchors & Staleness Budgets

Audience: AirGap Time, Controller, and Policy engineers, plus DevOps operators.

Purpose: document how air-gapped installations maintain trusted time anchors, compute staleness windows, and expose drift telemetry.

1. Overview

Air-gapped deployments cannot contact external NTP servers. Stella Ops distributes signed time-anchor tokens alongside mirror bundles so services can reason about freshness and seal state without external clocks.

Key goals:

2. Components

ComponentResponsibility
AirGap ControllerStores the active time_anchor token and enforces sealed/unsealed transitions.
AirGap Time serviceParses anchor bundles, validates signatures, records monotonic offsets, and exposes drift metrics.
Scheduler & Policy EngineQuery the time service to gate scheduled runs and evidence evaluation.
UI / NotifierDisplay remaining budget and raise alerts when thresholds are crossed.

3. Time Anchor Tokens

4. Staleness Budgets

Each tenant/configuration defines budgets:

AirGap Time calculates drift = now(monotonic) - anchor.issued_at and exposes:

5. Operator Workflow

  1. Import new mirror bundle (includes time anchor).
  2. AirGap Time validates and stores the anchor; Controller records audit entry.
  3. Services subscribe to change events and recompute drift.
  4. UI displays badge (green/amber/red) based on thresholds.
  5. Notifier sends alerts when drift exceeds warning or expiry limits.

6. Implementation Notes

7. References