A POST with the event as JSON — id, topic, type, source,
publishedAt, tenantId (when set) and payload — and these headers:
| Header | Value |
|---|
Wagoe-Signature
| t=<unix seconds>,v1=<hex>: HMAC-SHA256 of <t>.<body> under the secret
|
Wagoe-Event-Id
| The event id. The same on every retry, so a receiver can drop duplicates. |
Wagoe-Topic
| The bus topic |
Verify against the raw body, before parsing it:
(require '[wagoe.webhooks :as webhooks])
(webhooks/verify-signature secret raw-body (get-in request [:headers "wagoe-signature"]))
A signature older than five minutes is refused, which stops a captured request
being replayed. Any 2xx counts as delivered.