webhooks
Installation
SKILL.md
Webhooks
HTTP como notificação, não como tela. Inbound: proveniência + ack rápido. Outbound: retries no worker (background-jobs). Contrato de erro/status: api-design. Authz da rota: authentication-authorization.
Inbound (eles → você)
- Verifique assinatura (HMAC / chave do provedor) no raw body. Não parseie JSON antes se o provedor assina os bytes.
- Rejeite timestamp velho (replay). Tolerância documentada (ex. 5 min).
- Idempotência:
event_idunique no Postgres. Duplicate →200sem reaplicar. - Responda 2xx rápido. Persist +
background-jobspara o trabalho pesado. Timeout do provedor é curto. - Fail closed se a secret não estiver no env.
- Rota dedicada, HTTPS, secret por ambiente. Não a mesma key em staging/prod.
- Auth extra (mTLS, allowlist IP) só se o provedor e o repo já usarem — a assinatura é o mínimo.
- Não logue o payload cru (PII, tokens). Logue
event_id, tipo, resultado.