Svix
Webhook endpointsvix
Webhooks as a service: signs every message and retries delivery eight times.
- Provider
- default
- Kind
- Webhook endpoint
- Category
- Messaging
- Official docs
- https://docs.svix.com/retries
| property | type | values | required | kind default | this component |
|---|---|---|---|---|---|
| deployment | enum | cloud | self-hosted | no | cloud | inherited |
| endpointDisabledAfterDays | integer | — | no | 5 | inherited |
| idempotent | boolean | — | no | false | ▸ false |
| managed | boolean | — | no | false | ▸ true |
| retriedByCaller | boolean | — | no | true | ▸ true |
| retryAttempts | integer | — | no | 8 | inherited |
| signatureToleranceMinutes | integer | — | no | 5 | inherited |
| signatureVerified | boolean | — | no | false | ▸ true |
Every rule whose selector covers this component's kind or its category. Whether a rule fires depends on the design: its properties, its edges and its groups.
webhook-without-signature-or-idempotency
A webhook is a public endpoint that its caller retries. Without signature verification anyone can post a fake event; without idempotency the provider's own retries apply the same event twice.
- — any of these hold:
- — the node's `signatureVerified` is false
- — the node's `idempotent` is false
nodes:
- { id: "svix", component: "svix" }# yaml-language-server: $schema=../../schema/component.schema.json # Svix: webhooks as a service. "Why verify webhooks" states Svix signs every webhook with a unique # key per endpoint following the Standard Webhooks spec and rejects timestamps more than five # minutes old; "Retries" gives the eight-attempt exponential schedule (immediate, 5 s, 5 min, 30 min, # 2 h, 5 h, 10 h, 10 h) and the endpoint being disabled after five days of failures. schemaVersion: "1" type: "component" id: "svix" kind: "webhook-endpoint" provider: "default" docs: "https://docs.svix.com/retries" defaults: managed: true signatureVerified: true retriedByCaller: true idempotent: false properties: deployment: type: "enum" values: ["cloud", "self-hosted"] default: "cloud" retryAttempts: type: "integer" default: 8 endpointDisabledAfterDays: type: "integer" default: 5 signatureToleranceMinutes: type: "integer" default: 5