Keep the trail in your own telemetry stack.
Send Asiri audit events to an OpenTelemetry Collector from the hosted backend, or push them directly from a machine inside your network. Your SIEM keeps the long history; Asiri stays focused on secret access.
Choose based on where your collector lives.
Both routes use OTLP/HTTP protobuf, gzip, stable event IDs, and batches of audit logs. Neither route changes strict audit acknowledgement or grants access to secrets.
Visible retries. No silent loss.
Hosted export keeps a durable delivery record for every audit event. A collector response in the 2xx range marks the batch delivered. Timeouts and non-2xx responses remain queued with bounded backoff.
Delivery is at least once. Use asiri.audit.event_id in your collector or SIEM when exact deduplication matters.
- Identity
- Actor type and stable actor identifier.
- Decision
- Action, allowed or denied result, and reason.
- Target
- Workspace, scope, and secret-name hash when present.
- Context
- Sanitized runtime labels and event metadata.
- Time
- Original event timestamp and stable event ID.
- Excluded
- Plaintext secret values, private keys, and stored collector credentials.
Asiri keeps a useful window. Your stack keeps the archive.
Retention and export are separate controls. Deleting an old event from Asiri does not delete the copy already accepted by your collector.
Push from inside your network.
The CLI can send retained local audit events directly to an OTLP logs endpoint. Put the bearer token in an environment variable so it does not appear in shell history or the process list.
Direct push is intentionally one-shot. Run it from your scheduler when you want a customer-operated delivery path.
$export OTEL_EXPORT_TOKEN='…'
$asiri audit push --workspace oclan-co \ --endpoint http://otel-collector:4318/v1/logs \ --bearer-env OTEL_EXPORT_TOKEN
✓ 4,812 audit events accepted in 49 batches
delivery: at least once · content: OTLP protobuf + gzip
Connect a collector and test it before relying on it.
The dashboard shows the endpoint, authentication posture, queue depth, last successful delivery, and current error. Pause, test, edit, or remove the destination without touching local vaults.
