audit_log table. This is the durable record of what happened
to the fleet. It’s the first place to look during an incident and the
data behind every fleet metric.
Schema
Actions
The list grows. New actions are additive — old log entries stay valid.
Common queries
Recent activity for one engine
Provisions in the last hour
/metrics endpoint runs. Useful for capacity
planning.
Auto-restart hot spots
Activity by actor
A specific user’s lifetime
Metadata conventions
Themetadata JSONB has different shape per action:
provision
health_failed
auto_restart_failed
admit_denied
Retention
audit_log grows. Without cleanup, it fills the database. A
reasonable retention policy:
audit_log to your stack handles
it.
What’s not in the audit log
- Engine
/executecalls. The orchestrator doesn’t see them; the product calls the engine directly. Per-call telemetry lives in the engine’sobservability_events. - Postgres-internal events like vacuum, autovacuum, and so on.
- Orchestrator startup and shutdown. Logged to stdout instead.
audit_log (orchestrator) with observability_events
(engine) on engine_id.
See also
- Health — what triggers
auto_restart_*actions. - Lifecycle — what triggers
provision/stop/etc. - Policy — what triggers
admit_denied/provision_denied. - API reference — every endpoint that produces audit rows.

