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.
SAT can remain active without sending its automated stand-assignment private
messages to pilots through EuroScope. Set ENABLE_STAND_ASSIGNMENT_ES_MESSAGES=true
to enable those messages. The default is false; SAT allocation, persistence,
stand synchronization, controller notifications, and the frontend continue to
operate regardless of this flag.
Automatic assignment is online-only by default. Offline VATSIM prefiles are
ignored and any legacy automatic prefile reservation is released when it is
encountered. Set ENABLE_STAND_ASSIGNMENT_PREFILES=true only when advance
prefile reservations are operationally desired. Controller assignments and
stands established from an observed EuroScope position are not affected.
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.reconciliation.cycles,sat.reconciliation.duration, andsat.reconciliation.passesfor worker failures, runtime, and fixed-cap convergence;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.