Skip to main content
Every audit sink sends the same record, whether it goes to a webhook, a bucket, Splunk, syslog or an OpenTelemetry collector. Field names are stable: a name is only ever added, and a rename or removal bumps the schema version noted in the release notes. Free text fields have token-shaped strings, bearer values, URL credentials and stored secret values masked before they leave the control plane.

Fields

Empty optional fields are omitted. The lifecycle detail JSON is not exported.

Verifying the chain downstream

A receiver can check that chain_seq increases by one and that each chain_prev equals the chain_hash of the row before it. A gap or a mismatch means a row is missing or was changed. Recomputing a keyed hash needs the chain key, which never leaves the control plane, so the full check is levelrail-cli audit-verify there.

Sink mappings

See Data export for setting a sink up.
Last modified on October 20, 2026