Webhooks

Outbound HTTP callbacks when graphs complete, fail, or pause. HMAC-signed payloads for verification.

LIVE

Webhooks

Configure outbound hooks at GET|POST /_resuma/webhooks — fires on graph lifecycle events.

Registers an on-site inbox at /_resuma/demo/webhook-inbox, fires a sample graph.done payload (with X-Resuma-Signature when RESUMA_WEBHOOK_SECRET is set), and shows the JSON received.

Events

  • graph.done — successful completion
  • graph.failed — worker error or operator cancel
  • graph.paused — cooperative pause

Register via env (boot)

RESUMA_WEBHOOK_URLS=https://hooks.example.com/resuma,https://backup.example/hooks
    RESUMA_WEBHOOK_SECRET=<openssl rand -hex 32>

Register via HTTP

POST /_resuma/webhooks
Authorization: Bearer $RESUMA_EXEC_API_KEY

{ "url": "https://hooks.example.com/resuma", "events": ["graph.done", "graph.failed"] }

Payload & signature

POST https://your-endpoint
Content-Type: application/json
X-Resuma-Signature: sha256=<hmac-sha256-hex>

{
  "event": "graph.done",
  "graph_id": "g_...",
  "worker": "summarize",
  "status": "done",
  "timestamp_ms": 1710000000000,
  "duration_ms": 1234,
  "result": { ... }
}

Verify with RESUMA_WEBHOOK_SECRET. Outbound URLs are SSRF-checked; HTTP redirects are disabled.

← Scheduler · Tools →