Contents
Each bundle includes:- Active inference-key and playground-session hashes, workspace identities, and required principal user IDs
- Provider endpoints and adapter kinds
- Model routes, prices, limits, modalities, capabilities, and parameter support
- Enabled provider-credential references, priorities, and versions
- Enabled policies with their inline rule definitions
Publication flow
- A management transaction changes bundle-relevant state
- A database trigger advances the affected global or organization generation in that transaction
- A background publisher compiles and stores a new immutable bundle
- A gateway polls the bundle manifest
- The gateway fetches changed bundles and validates their policy actions and workspace limits
- It writes the accepted set to disk and atomically swaps in-memory indexes
Consistency behavior
Management writes are immediately visible through the control plane but become effective for inference only after bundle adoption. This applies to new or revoked inference keys, credential principal changes, provider credentials, catalog changes, and policies. A request uses one immutable snapshot from authentication through routing, so it cannot observe half of a configuration change.Failure behavior
- A gateway with a valid cached bundle keeps serving if the control plane is unavailable
- Usage events queue in the gateway’s SQLite outbox and drain when connectivity returns
- A new gateway with no cached bundle returns
503 bundle_unavailable - A gateway that rejects the latest manifest keeps its current bundle and remains ready; the rejection is reported through metrics and logs
- Secret-store availability remains a runtime dependency for uncached provider credentials
airmux doctor, airmux gateways list, /healthz, /readyz, gateway metrics, and logs to investigate convergence.