Events and webhooks
The current pilot implements a durable operational alert webhook for security-critical dependency degradation and recovery. Business-event subscriptions form a separate future contract.
Alerted components
Alerts are generated for repeated failures and recovery of:
- wallet or execution-adapter reconciliation; and
- evidence-anchor delivery.
The transition is one of degraded, reminder, recovered, or test.
Payload
{
"schema_version": 1,
"event_id": "<sha3-256 hex>",
"source": "luvion-control-api",
"component": "evidence_anchor",
"transition": "degraded",
"severity": "critical",
"observed_at_unix_s": 1785040000,
"consecutive_failures": 3,
"message": "evidence_anchor reported 3 consecutive failures"
}
The payload deliberately excludes wallet addresses, assets, amounts, transaction hashes, credentials, keys, and raw internal errors.
Delivery guarantees
- Failures below the configured threshold do not alert.
- Threshold crossing persists a pending event before network delivery.
- Only HTTP
2xxmarks an event delivered. - A failed delivery retains the same event ID across process restart.
- Reminder events are rate limited.
- Recovery produces one explicit event.
- Redirects are disabled. Webhook URLs cannot contain embedded credentials, query parameters, or fragments.
- HTTPS is required except for loopback-only testing.
Consumers should deduplicate on event_id, return 2xx only after durable
acceptance, and avoid treating delivery order from unrelated components as a
single global sequence.
Health endpoint
When configured, /health reports independent objects for reconciler,
evidence_anchor, and operational_alert. Fields include status, last success
or attempt timestamps, consecutive failures, bounded last error, tracked or
pending counts, and the pending alert event ID where applicable.
Use component health to decide whether intake, authorization, execution, or evidence publication should remain open. An HTTP process health response alone does not mean every security-critical dependency is healthy.
Current boundary
The generic webhook and its recovery behavior are tested, but no partner-owned
production destination or on-call process has been accepted. Request events
such as approved, authorized, and executed are available through request
state and evidence inspection; a stable outbound business-event webhook
contract is not yet published.