How it works
When you create a SIEM destination, the platform begins forwarding every audit event to your endpoint in real time. Events are delivered as JSON over HTTPS. If your destination is unreachable, events are buffered and retried with exponential backoff for up to 24 hours. Each destination has astatus field that reflects delivery health:
| Status | Meaning |
|---|---|
active | Events are streaming normally |
degraded | Delivery is failing — events are being buffered and retried |
failed | Retries exhausted. Events were dropped. Fix the destination and re-enable. |
Supported providers
| Provider | Transport | Auth field |
|---|---|---|
| Splunk | HTTP Event Collector (HEC) | token |
| Datadog | Log Management API | token |
| AWS CloudWatch | Logs subscription | access_key_id + secret_access_key |
| Elastic / ELK | Elasticsearch ingest | token |
| Custom webhook | HTTP POST | secret |
Setting up a destination
You can configure SIEM destinations from the console or via the API.From the console
- Go to Settings > Audit > SIEM in the console sidebar
- Click Add destination
- Select a provider and enter the endpoint URL and credentials
- Toggle Enabled and save
Via the API
Create a destination
Send a The response includes the destination ID and initial status:
POST request to /v1/audit/siem with your provider, endpoint, and credentials.Provider setup
Splunk
- In Splunk, go to Settings > Data Inputs > HTTP Event Collector
- Create a new token with the
mainindex - Copy the HEC endpoint URL and token
- Create a destination with
provider: "splunk"and the HEC URL asendpoint
Datadog
- In Datadog, go to Organization Settings > API Keys
- Create a new API key
- Use
https://http-intake.logs.datadoghq.com/api/v2/logsas the endpoint (ordatadoghq.eufor EU) - Create a destination with
provider: "datadog"and your API key astoken
AWS CloudWatch
- Create an IAM user with
logs:CreateLogStreamandlogs:PutLogEventspermissions - Note the access key ID and secret access key
- Use the CloudWatch Logs endpoint for your region as the
endpoint - Create a destination with
provider: "cloudwatch",access_key_id, andsecret_access_key
Elastic / ELK
- In Kibana, go to Management > Dev Tools and create an ingest pipeline
- Generate an API key with index write permissions
- Use your Elasticsearch ingest endpoint as
endpoint - Create a destination with
provider: "elastic"and your API key astoken
Custom webhook
- Set up an HTTPS endpoint that accepts
POSTrequests with a JSON body - Generate a shared secret for HMAC signature verification
- Create a destination with
provider: "webhook", your URL asendpoint, and the shared secret assecret
X-Truthlocks-Signature header using your secret. Verify this signature to ensure events are authentic.
Managing destinations
Update a destination
Change the endpoint, credentials, or enabled state:Delete a destination
Remove a streaming destination. In-flight events are flushed before deletion completes.Event format
Each event streamed to your SIEM matches the audit event structure:Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
Status is degraded | Destination unreachable or returning errors | Check endpoint URL, credentials, and firewall rules |
Status is failed | Retries exhausted after 24 hours | Fix the destination, then update it to re-enable streaming |
| Missing events | Destination was disabled during the gap | Events during a disabled period are not retroactively streamed. Use an audit export to backfill. |
| Duplicate events | Retry delivered the same event twice | Use the id field to deduplicate on your SIEM side |
Next steps
Audit logs
Query events, configure retention, and export logs.
Compliance exports
Export audit data in SOC 2, GDPR, and HIPAA formats.
