Herald

Configuration

Configure Herald from your dashboard. Most settings are available under account settings, with engine toggles and webhook configuration on dedicated pages.

Engines

The core transport is always active. Chat and presence engines can be enabled or disabled per account from the dashboard.

EngineDefaultAdds
TransportAlways onStreams, events, subscribe, replay, ack mode, ephemeral events
ChatOffEdit, delete, reactions, cursors, typing, blocking
PresenceOffManual overrides, expiry, watchlist, batch queries

Webhooks

Herald delivers webhooks to your app for every event, member change, and stream deletion. Configure the webhook URL and signing secret in the dashboard under Settings → Webhooks.

Webhooks are signed with HMAC-SHA256. The signature header includes a timestamp to prevent replay attacks:

signature = HMAC-SHA256(secret, timestamp + "." + body)
// Compare against the X-Herald-Signature header

Webhook events

EventDescription
event.newA new event was published to a stream
event.editedAn event body was edited
event.deletedAn event was deleted
member.joinedA user was added to a stream
member.leftA user was removed from a stream
stream.deletedA stream was deleted

You can filter which event types trigger webhooks. An empty filter delivers all types.

Delivery

Webhooks retry up to 3 times with exponential backoff on failure. The timeout per attempt is 5 seconds. Failed deliveries are logged in the dashboard.

Token settings

SettingDefaultDescription
Token TTL3600s (1 hour)How long a WebSocket connection token is valid
Token warning60sSeconds before expiry to send system.token_expiring

Presence settings

SettingDefaultDescription
Linger period10sDelay before broadcasting offline after disconnect
Override TTL4 hoursDefault expiry for manual presence overrides
Heartbeat interval30sWebSocket ping interval
Heartbeat timeout10sPong deadline before connection is dropped

API key scoping

API keys can be scoped to read-only access. Read-only keys can query streams, members, events, and presence but cannot create, update, or delete resources. Configure key scopes when creating keys in the dashboard.

For self-hosted configuration

If you run Herald on your own infrastructure, server-level configuration (ports, storage, TLS) is managed via TOML config file and environment variables. See Self-Hosted.