Expand description
GET /v1/deferrals - currently-blocked (rollout, host) pairs as observed
by the latest gate decisions in event_log.
Each row in event_log with kind = 'gate_decision' represents one
plan_next pass blocking a host’s dispatch (Phase 5b’s
PlanAction::DeferDispatch). We dedupe to one entry per (host, rollout)
pair keeping the most recent decision; that gives operators “what’s
holding things up right now” without the historical stream — full
history stays available via the raw event_log query.
Constants§
- SCAN_
LIMIT 🔒 - Max rows scanned from event_log. v0.2 scale (~256 hosts × ~few gate decisions per dispatch attempt) keeps practical totals well under this even mid-rollout. If you raise this, also bump it in the CLI.
Functions§
- list 🔒
- project_
deferrals 🔒 - Pure projection from
event_logto the deferrals response shape. Split out from the route handler so unit tests can assert againstserde_json::Valuedirectly without exercising the axum response pipeline.