| name | dust-webhook-source |
| description | Implement a new built-in webhook source provider in `front`. Use when adding a webhook provider such as Linear, GitHub, or Fathom, including provider research, OAuth prerequisites, provider-specific types and client code, preset registration, UI components, and end-to-end testing. |
Front Webhook Sources
Implement built-in webhook providers across two trees:
front/lib/triggers/built-in-webhooks/<provider>/ — UI-safe: presets, schemas, types, React components
front/lib/api/triggers/built-in-webhooks/<provider>/ — server-only: service + provider HTTP client
The boundary is load-bearing. Anything reached from the UI must never transitively import
@app/lib/api/config, OAuthAPI, or other backend modules — putting server code under lib/api/
is how we enforce that. Do not re-introduce a webhookService field on the preset or instantiate
the service from preset.ts: the leak that motivated the split will come right back.
The work spans provider research, OAuth prerequisites, typed remote metadata, a provider client,
the remote webhook service, preset registration, services-map registration, and the setup/details UI.
Hard Prerequisites
Do not start implementation until both of these already exist:
front/lib/api/oauth/providers/<provider>.ts
core/src/oauth/providers/<provider>.rs
The provider must support the webhooks use case and have scopes that can manage webhooks.
If the provider only allows webhooks to be created manually in its UI, stop. It is not a fit for a
built-in webhook source.
Research First
Before writing code, document these answers from the provider docs:
- how to create a webhook programmatically