Ctrl AI

Audit Logging

Immutable audit trails for every action and AI decision.

Every action in Ctrl AI is recorded in an append-only audit log. Every AI inference query is logged with a full execution trace.

What's Logged

Action Audit Log

Every mutation is logged with:

FieldDescription
actionWhat happened (e.g., unit.created, member.invited, api_key.created)
userIdWho performed the action
resourceTypeType of resource affected
resourceIdID of the affected resource
detailsJSON object with action-specific details
ipAddressRequest origin
userAgentClient identifier
createdAtTimestamp

Inference Audit Log

Every AI query is logged with:

FieldDescription
queryThe user's question (encrypted at rest with AES-256-GCM)
unitsFiredWhich units were executed
inputVariablesParsed typed variables from the query
outputVariablesWhat each unit produced
trustSummaryCount of verified/expert/synthesized/neural segments
coveragePercentHow much of the query was covered by verified units
executionTraceFull step-by-step execution details
modelsUsedLLM provider + model ID for each role (parse, evaluate, prose)
auditWarningsClaims flagged as ungrounded by the model auditor
durationMsTotal execution time
modefull_coverage, partial_coverage, or neural_only

Querying Logs

Use the audit API to query logs with filters:

GET /api/v1/audit?action=unit.verified&startDate=2026-01-01&limit=100

See Audit API Reference for full query parameters.

CSV Export

Admins can export audit logs as CSV for external analysis:

GET /api/v1/audit?format=csv

Immutability

Audit logs are append-only. They cannot be modified or deleted through the application. This design satisfies:

  • EU AI Act Article 12 (Record-Keeping)
  • SOC 2 CC7.1 (Change Management)
  • HIPAA 164.312(b) (Audit Controls)

Data Retention

Currently, all audit logs are retained indefinitely. Configurable retention policies per organization are planned for a future release.

On this page