Audit events
The immutable trail behind every mutation, resolve, and reveal — what is recorded, for how long.
Every consequential action leaves an immutable record: who (actor_id, with roles), did what (event_type), to which credential of which provider, when, and under which correlation_id. Metadata carries structured context — changed field names, resolve flags, failure reasons — and never secret values.
Read it via GET /v1/admin/audit-events (provider_admin/auditor humans) or GET /internal/v1/admin/audit-events (operator tooling), filtering by event_type, provider_code, credential_id, actor_id, and a from/to time window.
Event types
| Event | When |
|---|---|
credential.created / credential.updated |
create; rename/reconfigure/rotation (metadata lists changed fields) |
credential.default_changed |
make-default and replacement promotions |
credential.disabled / credential.enabled / credential.deleted |
lifecycle transitions (Defaults and Lifecycle) |
credential.resolved |
every [[Resolve-Chain |
credential.resolve_failed |
every resolve miss — with the failure reason and context |
credential.revealed |
every [[Reveal |
credential.decryption_failed |
ciphertext that would not decrypt, with the operation (resolve/reveal) |
credential.purged |
physical deletion after the recovery window |
Actor forms tell the planes apart: a user UUID on the user plane; service:<client_id> for plain service calls; service:<client_id>!<operator> when the Internal Admin API attributes a named operator.
Retention
The trail is capped (default 10 days) and purged daily; the recovery window for soft-deleted credentials is separate (default 5 days). Two consequences:
- Export what you must keep. Compliance archives belong downstream; page through the API and store events on your side.
credential.revealedis exempt from purge. The retention window was sized for the flood ofcredential.resolvedevents, not for the one trace a human's access to plaintext leaves — that one stays.
Worked example (filter the trail down to one credential's story): cookbook scenario 09.