audit_events table (migration 000057).
Schema
Theaudit_events table stores immutable audit records:
Indexed by
(project_id, created_at DESC) and (resource_type, resource_id, created_at DESC) for efficient querying.
Endpoint
GET /v1/audit-events
Filters
project_id(required, unless present in request context)actor_idresource_typeresource_idfrom(RFC3339)to(RFC3339)order(ascordesc, defaultdesc)limitcursor
Event Coverage
Current Coverage
- Role create/update/delete
- Member assign/remove/bulk assign
- Resource policy and tag policy create/delete
- API key revoke/rotate
- Job destructive operations
Planned Extensions
before_state/after_stateJSONB columns for change tracking (sensitive fields redacted)ip_addressanduser_agentcolumns for forensic context- Extended coverage: job CRUD, run trigger/cancel/replay, workflow CRUD, webhook subscription changes
Why It Matters
Audit events give you:- Actor attribution (
actor_type,actor_id) - Target attribution (
resource_type,resource_id) - Action classification (
action) - Timestamped forensic history for incident response