Webhooks
Endpoints that receive render, batch, quota and storage events, and the sessions of formfeed listen.
List webhook endpoints
The workspace's registered endpoints, without their secrets; running `formfeed listen` sessions are not listed. Needs `webhook:manage`, which new keys do not have by default.
Create a webhook endpoint
Registers an https endpoint on a public host for the workspace's events. Without `events` it
Update a webhook endpoint
Changes the fields the body names and keeps the others; at least one is needed, and the
Delete a webhook endpoint
Removes the endpoint; it receives no further events. An unknown id answers 404 `not_found`. Needs `webhook:manage`.
Send a test event
Queues a `webhook.test` event to this endpoint alone, signed like every delivery, whatever events it subscribes to. A disabled endpoint receives nothing, so its test answers 409 `conflict`; switch it on first. An unknown id answers 404 `not_found`. Needs `webhook:manage`.
Start a listen session
What `formfeed listen` calls: a session that receives the workspace's webhook events like a registered endpoint and relays them over a WebSocket to the CLI, which forwards them to a local server. Deliveries are signed with the session's `secret`. Test-environment events only, unless `live` is set, which needs `webhook:manage`. The `websocket_url` is valid for 60 seconds; the session lives while a CLI is connected. At most three sessions per workspace (409 `listen_session_limit`); a new session of the same key or member ends its previous one. Needs `webhook:listen`, which new keys do not have by default.
End a listen session
Ends a session of the workspace and closes its WebSocket; `formfeed listen` calls it when it stops. A session that has already ended answers `204` too; an id that is no session of the workspace answers 404. Needs `webhook:listen`.
Send an event again
Sends a stored event (`evt_…`, delivered or not) again as a new delivery to a registered endpoint (`webhook:manage`) or a running listen session (`webhook:listen`). An event the workspace does not have, or an unknown or disabled endpoint, answers 404 `not_found`; a session that has ended 410 `listen_session_ended`. An `endpoint_id` that is no UUID answers 400 `invalid_request`.