Repository navigation
docs: describe the webhook signature as HMAC-SHA256 over the raw body (product update 2026-10-15) - #744
Open
hlenke wants to merge 1 commit into
Open
docs: describe the webhook signature as HMAC-SHA256 over the raw body (product update 2026-10-15)#744hlenke wants to merge 1 commit into
hlenke wants to merge 1 commit into
Conversation
… and verify raw bytes in the Node sample (monorepo #4904)
The alerting daemon signs each webhook with HMAC-SHA256 over the exact body
bytes it sends, hex-encoded in x-checkly-signature. The page called this a
"SHA256 hash" of the payload, and the Node.js sample re-serialised the parsed
body with JSON.stringify, which cannot verify plain text bodies and breaks
whenever the serialisation differs from the sent bytes. The sample now reads
the raw body with express.raw(). One sentence documents that JSON payload
templates stay valid JSON when an inserted value contains a double quote or a
line break, and how {{VAR}} and {{{VAR}}} render a double quote.
Proven on the local stack at monorepo 5858d7e03f: three webhook jobs built by
the alerting daemon, replayed byte for byte to a local receiver; 3/3 signatures
match HMAC-SHA256(secret, raw bytes); flipped byte, plain SHA256 and the old
text rule mismatch; old sample fails the text body, new sample passes all.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
|
Preview deployment for your docs. Learn more about Mintlify Previews.
|
This branch was successfully deployed
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.
The webhooks page said payloads are signed with "the SHA256 hash algorithm" without saying what is signed, and the Node.js sample re-serialized the body before verifying it, which fails for text webhooks. This PR updates
integrations/alerts/webhooks.mdx: the signature is an HMAC-SHA256 of the raw request body, the sample verifies the raw bytes, and a sentence explains that JSON templates stay valid JSON when a value contains quotes or line breaks.Verified end to end against the released version.
Touches the same page as #481; merge order may matter.
🤖 Generated with Claude Code