@pylonsync/webhooks sends outbound webhooks to your customers’ endpoints when domain events happen, for example invoice.paid to a customer’s URL. It signs each webhook with Svix-style HMAC-SHA256, so receivers that use Svix’s reference verifier work without changes.
Install
Config
Dispatch an event
ctx.scheduler.runAfter. Failed deliveries retry on the configured schedule: 5s, 5m, 30m, 2h, 5h, 10h, 14h, then dead (the default).
Receiver verification
Receivers verify with the same algorithm Svix’s reference verifier uses:Endpoints
Customers register webhook URLs by inserting into theWebhookEndpoint entity:
Tenant-scoped policy:
auth.tenantId == data.applicationId or auth.is_admin. Apps that need a stricter policy (for example, only the owner role) override this in their manifest.
Delivery audit
Every attempt writes aWebhookAttempt row:
This is a read-only entity. Customers can view their endpoint’s delivery history, but they cannot change it.
Secret rotation
webhook-signature header (v1,<sig-old> v1,<sig-new>). Receivers accept either signature. This gives customers a window to rotate their stored secret without dropping deliveries.