Live demo

Integrations: patterns, resilience, webhooks

A pattern is data: a request template over the context, a vault reference for the key, and a mapping for the response. @de_canter/apogee-integrations runs it through a rate limit, a circuit breaker, retries with backoff, a dead-letter queue whose replay re-executes, and a traced audit with secrets masked. The vendor here is an in-process mock geocoding and weather API, so you can break it and watch the engine cope. The courier at the bottom posts signed webhooks that are verified, matched, and mapped. The admin assistant has the same tools: ask it to run the yard weather.

faults left: 0 · vendor calls: 0
Traces
No executions yet.
Health (24h)
Nothing yet.
Dead letters
None.
Inbound: the courier posts a delivery update

Approve DELIVERY_STATUS first. The body is HMAC-signed by the courier; uncheck to see the sender rejected.

Pattern

src/demo/rental/integrations/patterns.ts: three seeds in draft. Templates read {{ctx.…}}, {{vars.…}}, and {{vault:…}}; the key never appears in a trace.

Engine

executePattern gates on the breaker and the rate limit, evaluates the trigger, builds and signs the request, retries listed statuses, and records a trace under X-Request-Id. Failures dead-letter with the context so replay can re-run them.

Inbound

receiveWebhook verifies the courier's HMAC, matches the pattern on its headers, and maps the payload. Unmatched payloads are classified by the model as an assertion with a confidence, and low-confidence ones dead-letter.