Documentation Index
Fetch the complete documentation index at: https://docs.getimmutable.dev/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Log streams fan out your audit events to external destinations as they are ingested. Immutable supports two destination types: HTTPS webhooks and S3-compatible storage. Log streams are quota-gated, not plan-gated — every plan can use them.Destination Types
HTTPS Webhook
Events are POSTed to your endpoint as JSON with HMAC signature verification.
S3 Storage
Events are written to your S3-compatible bucket (AWS S3, Cloudflare R2, MinIO, etc.).
HTTPS Webhooks
Payload Format
Each event is sent as aPOST request with:
Content-Type: application/jsonX-Immutable-Signature: sha256={hmac_hash}
Verifying Signatures
Failure Handling
If your endpoint returns a non-2xx status code, Immutable retries with exponential backoff. After 3 consecutive failures, the stream is automatically moved to anerror state and stops delivering events.
Re-enable the stream from the dashboard after resolving the issue.
S3 Storage
Configure a stream with your S3-compatible credentials:| Field | Description |
|---|---|
| Bucket | Target bucket name |
| Region | Bucket region (e.g. us-east-1) |
| Access Key ID | Your storage access key |
| Secret Access Key | Your storage secret key |
| Endpoint | Custom endpoint for non-AWS providers (e.g. Cloudflare R2) |
| Prefix | Optional path prefix for objects |
Immutable uses Laravel’s
Storage::build() to connect to your bucket at runtime with your credentials. Credentials are encrypted at rest.Cached Fanout
Log stream delivery uses cached configuration to minimize database lookups during high-throughput ingestion. Stream configuration is cached and refreshed periodically.Plan Quotas
| Plan | Stream Limit |
|---|---|
| Free | 1 |
| Starter | 3 |
| Pro | 10 |
| Enterprise | Unlimited |