Skip to main content
Forge maintains an append-only audit trail. Every governance decision, lifecycle transition, configuration change, and execution event is recorded with full actor attribution. All write paths use ctx.db.insert() exclusively — there are no delete or update mutations in the audit code.

Event Structure

FieldDescription
categoryEvent classification (see table below)
eventTypeSpecific action within the category
resourceTypeType of entity affected (run, agent, step, etc.)
resourceIdID of the affected entity
actorUser or agent that triggered the event
timestampWhen the event occurred
detailEvent-specific payload with structured data

Audit Categories

CategoryExample Event Types
Governanceapproval_requested, approval_resolved, trust_level_changed
Executionstep_dispatched, step_completed, step_failed, step_timed_out
Lifecycleworkflow_started, workflow_completed, workflow_cancelled
Securitysecurity_posture_updated, auth_failure
Configurationagent_created, agent_updated, model_registered, gateway_synced
Deploydeployment_created, deployment_deactivated

Retention

Configurable retention policies per category. Security and governance events default to indefinite retention. Execution events can be pruned after a configurable window. A daily cron enforces TTL-based cleanup — audit events default to 365 days, token events to 90 days.

Run Audit Packets

Aggregated audit view for a single workflow run, collecting all related events across categories into one timeline. Used for post-mortem analysis and compliance reporting. Query by runId to retrieve the complete event history for any execution — dispatches, governance decisions, step completions, token events, and errors in chronological order.
In Burgundy: Browse the audit log from the audit page. →