Svix

Webhooks as a service: signs every message and retries delivery eight times.

Provider
default
Category
Messaging
Properties · 4 set by this component
propertytypevaluesrequiredkind defaultthis component
deployment · component propertyenumcloud | self-hostednocloudinherited
endpointDisabledAfterDays · component propertyinteger—no5inherited
idempotentboolean—nofalse▸ false
managedboolean—nofalse▸ true
retriedByCallerboolean—notrue▸ true
retryAttempts · component propertyinteger—no8inherited
signatureToleranceMinutes · component propertyinteger—no5inherited
signatureVerifiedboolean—nofalse▸ true
Rules that apply · 1

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
Use it in a design
nodes:
  - { id: "svix", component: "svix" }
Other Webhook endpoint products · 3
Source
# 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

The same page as markdown, for an agent: /catalogue/components/svix.md