Document that the entrypoint UUID is the authentication and shared secrets are never used #301
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Settled ruling from sneak, 2026-08-25:
> we are never using shared secrets with Webhooks. Webhooker creates UUIDs for the Webhooks. The UUID is the secret. Get that into your head.
This is already the implemented reality — inbound signature verification was removed in #279, closing #67 and #241. What is missing is the rule stated as a rule, so that a future contributor proposing HMAC is contradicted by the docs rather than merely unimplemented.
Definition of done —
README.mdstates, prominently:/webhook/{uuid}is the credential. Nothing else authenticates an inbound webhook: no shared secret, no HMAC signature, no token header, no second factor.Also: audit
README.mdand the code comments for stale signature/secret language left behind by the removal, and correct anything that contradicts the rule, in the same PR.Docs-only; no behaviour change.
#302.
The rule now lives in
## The entrypoint URL is the authentication secret, stated as a decision rather than a description, with the operator consequences and the signed-payload-sender case; it is pointed to from the intro, the Authentication list (which said nothing about the receiver before) and the Security list.One piece of stale language found and fixed: a comment in
internal/delivery/redirect_test.goreferred to "the inbound signature the receiver verifies", which in this repo's vocabulary names/webhook/{uuid}. The verifier is the delivery target's endpoint.Disclosure:
REPO_POLICIES.mddeliberately untouched — it is the cross-project synced policy doc, so a webhooker-specific rule does not belong in it. Its "when in doubt, harden" clause is the sentence a future HMAC proposal will cite; only the README answers it.