Skip to main content
This page lists event types, shared envelope fields, and filter operators. Typed payload / data field schemas are defined per event type in the product API and dashboard catalog. For how the one trail works, see the Audit events concept. To query and reconstruct events, see Audit events.

Audit v1

Audit v1 is the durable workspace event trail. Every query, stream, export, and ingest record uses this envelope and type catalog.

Envelope

Every audit event uses this envelope. Envelope fields are filterable without inspecting payload. The shape is identical across CLI, MCP, SDK, dashboard, stream, query, and export. The fields above are the complete customer envelope. Internal pipeline metadata is not returned.

Enum rendering

Enum fields (event_class, result, actor.kind, scope.kind, primary_resource.kind, request_surface.surface) render in one of two forms. Filters use the same form the surface returns. A short token is the constant with its type prefix stripped and lowercased. CLI flags and MCP arguments take short tokens. API request fields take full constants or their integer values.

Network and transport context

Configuration events carry network origin under request_surface. OCSF exports map source_ip to src_endpoint.ip; user_agent and http_method are carried under unmapped. CEF exports map them to src, requestClientApplication, and requestMethod. source_ip is the rightmost trusted entry of X-Forwarded-For + [connecting peer]. DOME_TRUSTED_HOPS on the api-server and gateway is the number of appending reverse-proxy hops in front of Dome.
Set DOME_TRUSTED_HOPS to match your actual edge. Over-trusting lets a caller forge source_ip by injecting headers; under-trusting records the proxy IP instead of the client. Spoofed values reach audit events, OCSF/CEF exports, the dashboard Authority card, and the credential-provision rate-limiter key. The resolver clamps to the leftmost entry when fewer hops are present — it never reads past the boundary.
The default 1 assumes one AWS ALB in XFF append mode. The ALB appends the connecting client on the right without stripping a caller-supplied X-Forwarded-For, so the rightmost entry is the only edge-guaranteed value.

Caller authentication context

actor includes how the immediate principal authenticated.

Act-as end-user attributes

When an agent acts on behalf of an end user, the corresponding identity_chain hop carries these fields. Producers cap each list at 32 entries.

Correlation

An activity chain is the set of audit events that share one activity_id within a workspace. Chains are computed at read time; there is no stored chain object. activity_id can be set by a CLI run (--activity or DOME_ACTIVITY_ID), an SDK session, an agent request header, or Dome for browser and assistant threads. Chain reads return only the active workspace’s slice, so human-meaningful IDs (case-12345) are safe to use. activity_trust is provenance metadata, not a grouping key.

Event classes

Event types

Types by event_class.

governing

Every llm.model_* event carries provider — the vendor identity from the connection. Filter on provider to attribute spend, latency, or denial rate per vendor. Denials on the LLM path may carry data.reason: Reasons are short, snake_case, and stable. Treat unknown values as a generic deny. Runtime handling is on Develop. Ingress behavior is on the LLM gateway concept.

state_change

security

Not in the audit catalog: identity.session.created, identity.session.switched, and identity.session.rotated (operational telemetry only — session rotation is a background ~5-minute token refresh). Login, token issuance, and impersonation start fail closed until their audit event is durable. Forced terminations complete first and audit with retry so an unavailable audit store cannot prevent revocation.

audit_access

Decision provenance

These types stamp policy snapshot fields into payload when a bundle was loaded: authorization.decision, mcp.tool_call.completed, mcp.tool_call.attempted, llm.model_call.completed, mcp.tool_result.filtered, llm.model_result.filtered. Events with no loaded bundle omit these fields. The dashboard decision explainer deep-links contributing bundles to /rules/bundles?scope=<kind>&scopeId=<id>; the same fields are available on dome audit get, dome_audit_get_event, and QueryEvents.

Payload filters

Payload filters match fields inside the event-specific payload (for example mcp.tool_call.completed.tool). Each filter is scoped to one event_type and one field. Non-filterable fields return a validation error. Stream and query share this vocabulary.

Ingest

Delivery semantics: at-least-once.

Webhooks

Webhooks deliver a signed public projection of selected events for automation. The wire shape and type catalog differ from Audit v1 even when type strings overlap. Operating limits and retry status handling are on Webhooks.

Envelope

Delivery headers

Bundles

Subscriptions accept any combination of the catalog types. Bundles are presets:

Event types

Identity and access

platform.api_key.created, platform.api_key.revoked, agent.api_key.created, agent.api_key.rotated, agent.api_key.revoked, workspace.role.assigned, workspace.role.removed, verification.provider.created, verification.provider.updated, verification.provider.deleted

Agent lifecycle

agent.registered, agent.updated, agent.activated, agent.suspended, agent.reactivated, agent.revoked, agent.deleted, agent.enrolled

Policy and configuration

workspace.config.changed, workspace.freshness_window.updated, authorization.rule_bundle.deployed, authorization.rule_bundle.rolled_back, authorization.rule_bundle.deleted

Gateway and connections

gateway.connection.created, gateway.connection.updated, gateway.connection.deleted, mcp.tool_catalog.sync.completed, mcp.tool.status_changed, gateway.created, gateway.updated, gateway.deleted, gateway.tool_member.added, gateway.tool_member.removed, gateway.tool_source_member.added, gateway.tool_source_member.removed, gateway.llm_pool_member.added, gateway.llm_pool_member.removed, gateway.llm_model_member.added, gateway.llm_model_member.removed

Security decisions

mcp.tool_call.completed, mcp.tool_result.filtered, llm.output.filtered, access.denied These fire per governed request. Point them at a log sink rather than a chat channel, and narrow with subscription filters.

Audit exports

audit.export.completed, audit.export.failed

Webhooks administration

eventing.test, eventing.destination.created, eventing.destination.updated, eventing.destination.deleted, eventing.subscription.created, eventing.subscription.updated, eventing.subscription.disabled, eventing.subscription.deleted

Audit v1 name map

Where names diverge, the webhook wire name is authoritative for webhook deliveries.

Next steps

Use the catalogs from Operate and Manage: