Implemented controlsSecurity controls in the product today.
These controls cover source authentication, storage, route execution, and administrative access. Self-host operators also manage the security of their host and provider accounts.
Source tokens hashed at rest
Axel stores custom-source ingest tokens as SHA-256 hashes and validates them with constant-time comparison. Custom sources use the x-axel-token header by default. Senders without custom headers can use a separately generated URL credential, enabled per source and rotated independently. Treat authenticated URLs as secrets; sender and proxy logs may record them. Named-provider sources use the provider's signature or webhook Basic Auth instead of an Axel token.
SHA-256Raw payloads encrypted in transit and at rest
The edge requires TLS 1.2 or newer. Cloudflare R2 encrypts raw payload objects at rest. Self-host operators remain responsible for encryption of their Docker host, backups, and any optional data stores.
TLS 1.2+Route filters and transforms
Route filters and transforms use an eval-free declarative language. Routes cannot execute customer JavaScript, read files, or start processes.
no evalAccess scoped to your workspace
Postgres rows, ClickHouse records, object keys, and queue messages carry workspace scope. Dashboard and service queries require the active workspace identifier.
workspace scopedBounded payload retention
Defaults are 30 days for raw payloads and event traces, 90 days for dead letters, 30 days for replay-request records, and 365 days for audit logs. Configurable ranges are documented below and applied by scheduled cleanup jobs. The small self-host profile uses fixed 30-day raw retention.
30 daysAudit records for administrative changes
Axel records supported administrative changes such as workspace creation, member invitations and role changes, source lifecycle changes, destination changes, and replay requests. Each record includes an actor and timestamp.
actor + time