Stand assignment operations
The Stand Assignment Tool (SAT) is release-safe and disabled by default. Deploy
the application and its database migrations with ENABLE_STAND_ASSIGNMENT=false.
In this mode SAT does not load its configuration, start its VATSIM reconciliation
or lifecycle workers, expose controller actions, or change the controller UI.
Existing manual stand handling remains available.
Readiness
Section titled “Readiness”GET /healthz remains an HTTP 200 liveness endpoint so a SAT input failure does
not restart or remove otherwise healthy FlightStrips instances. Inspect the JSON
body before enabling SAT:
{ "status": "ok", "stand_assignment": { "enabled": true, "ready": true, "status": "ready", "snapshot_age_seconds": 4.2 }}SAT can report disabled, invalid_config, feed_unavailable, feed_failed,
or feed_stale. Do not enable production controller access unless the status is
ready. A stale or failed feed degrades SAT readiness but does not take unrelated
FlightStrips features down.
Useful OpenTelemetry instruments are:
sat.vatsim.snapshot.ageandsat.vatsim.recordsfor feed freshness and relevant online/prefile volume;sat.assignments, labelled by stage, source, category, and tier;sat.allocation.outcomesfor assigned, override, no-compatible-stand, and contention results;sat.allocation.conflictsandsat.assignments.expired.
SAT logs use callsign and session where operational correlation is required. They do not log pilot names, and metric dimensions never contain callsigns or CIDs.
Enablement and rollback
Section titled “Enablement and rollback”- Deploy with
ENABLE_STAND_ASSIGNMENT=false; allow migrations to complete. - Validate the SAT configuration files in the mounted configuration directory.
- Set the flag to
trueon one instance and restart it. - Wait for
/healthzto reportstand_assignment.status=ready, then roll the same change to the remaining instances. - Watch feed age, allocation outcomes, contention, expiry, and structured SAT errors during the rollout.
To roll back, set ENABLE_STAND_ASSIGNMENT=false and restart all backend
instances. Do not revert the SAT migrations: disabled code ignores the SAT tables,
and existing manual stand behavior remains available.