Audit Log - bishoku/vmcp GitHub Wiki

Audit log

The data plane defaults to VMCP_AUDIT_MODE=strict: protected tool/resource/prompt calls receive a durable PostgreSQL admission before dispatch and a separate outcome. A failed admission prevents dispatch. A missing outcome identifies in-flight or incomplete work; an upstream action may have completed even when outcome persistence fails and the client receives 503.

Administrative mutations and their identifier-only audit records commit in the same database transaction. Privileged export and upstream metadata reads are also admitted and audited. Arguments, results and credentials are excluded.

Field Meaning
eventId, operationId, requestId, traceId Stable event identity and correlation; responses carry X-Request-Id
stage, schemaVersion event, admission, mutation or outcome, and metadata schema version
actorType, actorId, subject, issuer Credential identity and verified OAuth/SSO identity where applicable
action, target, configRevision Operation, identifier-only target and observed/transaction revision
time, virtualServer, method When, where and which method
agentKey, clientIp Principal label and caller address
tool, upstream Validated tool and upstream identifiers
status started, ok, tool_error, error or denied
reason, durationMs, redactions Fixed/configured reason, duration and masking count

GET /api/v1/audit-events supports filters and cursor pagination. Use incomplete=true for admissions without outcomes; this includes currently running calls. The Audit UI exposes this filter. GET /api/v1/audit-status reports durability counters and the persisted incomplete backlog.

VMCP_AUDIT_RETENTION_DAYS defaults to 90; 0 keeps everything. Incomplete operations are preserved until reconciliation; completed operation pairs are retained through the outcome cutoff. Explicit best_effort data-plane mode can lose queued events on overflow, prolonged shutdown failure or crash and does not provide complete coverage.

See Audit durability for exact acknowledgement guarantees, outage and shutdown behavior, reconciliation, migration/rollback requirements and SIEM limitations. See audit operations for the separate independent HTTPS/Kafka/RabbitMQ exporters, stable event IDs, legal holds and consumer-aware retention. Some early catalog validation/denial paths still lack equivalent decision records; complete denial coverage is on the production roadmap.

Configure destinations with independent audit exporters.