Repository navigation
Webhooks: endpoint settings, Deliveries sharing line, and docs for the webhooks CoderHelm sends - #223
Merged
Merged
Conversation
nambok
force-pushed
the
feat/outbound-webhooks
branch
3 times, most recently
from
October 26, 2026 21:25
bbfe30b to
bd7a2f6
Compare
…ks CoderHelm sends - Settings, Webhooks: add endpoints (https address, description, events grouped by the catalog or all events, on/off), the secret shown once, reveal and rotate with an overlap, send a test event, recent deliveries with every attempt and Resend, and replay a time range. Admins only (the webhooks capability). - Deliveries: webhook rows are labelled, Resend works for them, and a row links to its endpoint. - Docs: /api/webhooks/ is now about outbound webhooks: quick start, the event catalog generated from the platform's OpenAPI `webhooks` section, signature checks in Node, Python, Go and Rust, retries and the disable rule, testing, security and versioning. The inbound content moves to /api/incoming-webhooks/, with redirects for the moved reference pages. - Pins the platform at the commit that adds outbound webhooks.
…d replay checks - Deliveries opens with whether failed deliveries are shared with CoderHelm support (details only, or with payload previews) or not, and a Change link to the sharing row in Settings, System, Hybrid. Left out where sharing doesn't apply (hosted). - The webhooks page adds a threat model, tells receivers to skip repeated webhook-ids as well as old timestamps, and says what an event never carries and how much of an answer is read. - Pins the platform at the head of its outbound webhooks branch.
/api/webhooks/ leads with the webhooks CoderHelm sends, then a short section on the ones it receives (GitHub App, Jira app, Jira webhooks, SNS alerts, CI test results): how CoderHelm verifies each and what it starts. The page's earlier anchors (#github, #jira-app, #jira-webhook, #alerts-from-aws, #verifying-githubs-signature, #what-coderhelm-sends) land on the matching sections. The separate incoming page, its record and its redirects are gone (it never shipped). The received webhooks' reference pages stay at their published addresses; the endpoint routes are under Webhook endpoints. Pins the platform at its new head.
…ple.com The event catalog on /api/webhooks/ is generated from it, so the examples no longer name the hosted app. The newer pin also brings the platform's self-host updates guide, recorded as a page.
nambok
force-pushed
the
feat/outbound-webhooks
branch
from
October 26, 2026 22:45
bd7a2f6 to
dccd9ac
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The dashboard and docs half of outbound webhooks (platform: CoderHelm/coderhelm-platform#306). Admins manage webhook endpoints in Settings, Webhooks, and https://docs.coderhelm.com/api/webhooks/ now leads with the webhooks CoderHelm sends, with a short section at the end on the webhooks it receives (one page). Deliveries also gets a one-line sharing status.
Changes
/settings/webhooks/, admin,webhookscapability):#hybrid-sharing). Left out on the hosted product./api/webhooks/: quick start, what a request looks like, verification in Node.js, Python, Go and Rust (constant-time compare, 5-minute timestamp tolerance, skip repeatedwebhook-ids) plus the Standard Webhooks libraries, the event catalog generated at build time from the platform's OpenAPIwebhookssection (it can't drift), retries and the disable rule, Resend and replay, testing with a tunnel, security, a threat model, versioning, and the endpoint API.#github,#jira-app,#jira-webhook,#alerts-from-aws,#verifying-githubs-signature,#what-coderhelm-sends) still land on their sections. No new page, no redirects: the received webhooks' reference pages keep their published URLs, and the endpoint routes have their own "Webhook endpoints" reference group (pages recorded).platform.lock.jsonpins the platform PR's head.Verification
tsc --noEmit"TypeScript: No errors found"; ui-lint "UI lint passed."; root eslint 0 errors;check:openapimatches; build exports/settings/webhooks. Full Playwright suite against the static build (port 3631): 1029 passed, 10 skipped, 0 failed. Newe2e/webhooks.spec.tscovers list, create (field error, secret once), test event refused with its fix, reveal and rotate, resend, replay, turning a failing endpoint back on, delete and a member being blocked;e2e/deliveries.spec.tscovers the sharing line's three states and its absence. Screenshots at 1440 and 390 checked: no sideways scroll, long URLs wrap./api/incoming-webhooks/answering 404, and the reference pages at their URLs. The Node, Python and Rust verification snippets were run against the Standard Webhooks test vector; the Go snippet was reviewed, not run.