Skip to content

feat(plugin/webhook) [STORY-3598] Implement webhook plugin with custom headers#339

Merged
leo-scalingo merged 7 commits into
masterfrom
feat/STORY-3598/link-plugin-webhook
Apr 24, 2026
Merged

feat(plugin/webhook) [STORY-3598] Implement webhook plugin with custom headers#339
leo-scalingo merged 7 commits into
masterfrom
feat/STORY-3598/link-plugin-webhook

Conversation

@leo-scalingo
Copy link
Copy Markdown
Member

Headers are encrypted in storage backend

…m headers

Headers are encrypted in storage backend
@leo-scalingo leo-scalingo self-assigned this Apr 13, 2026
@notion-workspace
Copy link
Copy Markdown

Comment thread plugin/webhook/webhook.go Outdated
Comment thread plugin/webhook/webhook.go Outdated
Comment thread plugin/webhook/webhook.go Outdated
@leo-scalingo leo-scalingo force-pushed the feat/STORY-3598/link-plugin-webhook branch from b59f96a to bd05729 Compare April 19, 2026 15:05
@leo-scalingo leo-scalingo force-pushed the feat/STORY-3598/link-plugin-webhook branch from bd05729 to e673fbd Compare April 19, 2026 15:24
Comment thread plugin/webhook/README.md
Comment thread plugin/webhook/webhook.go
Comment thread plugin/webhook/webhook.go
Comment thread plugin/webhook/webhook.go Outdated
Comment thread utils/clock.go Outdated
@leo-scalingo leo-scalingo force-pushed the feat/STORY-3598/link-plugin-webhook branch from 5ff46e2 to 589becd Compare April 23, 2026 14:56
@leo-scalingo leo-scalingo force-pushed the feat/STORY-3598/link-plugin-webhook branch from 589becd to 40bf7e0 Compare April 23, 2026 14:57
@leo-scalingo leo-scalingo marked this pull request as ready for review April 24, 2026 07:01
@leo-scalingo leo-scalingo force-pushed the feat/STORY-3598/link-plugin-webhook branch from c03c661 to 8c5f4b7 Compare April 24, 2026 07:20
Copy link
Copy Markdown
Contributor

@john-scalingo john-scalingo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nitpicks but LGTM

Comment thread api/webhook.go Outdated

expectedSignature := cryptoutils.HMAC256([]byte(secret), []byte(timestamp+"."+string(body)))

return subtle.ConstantTimeCompare(signatureBytes, expectedSignature) == 1, payload, nil
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm wondering if we shouldn't just send an error if the signature is invalid here.

The issue is that I think that ignoring the boolean could be an error easily missed when using this method. But ignoring an error is always caught by reviewer and static analyzers.

Maybe the method name would ParseAndValidateWebhook.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm I actually agree that the API would be cleaner

@leo-scalingo leo-scalingo merged commit bc5440c into master Apr 24, 2026
6 checks passed
@leo-scalingo leo-scalingo deleted the feat/STORY-3598/link-plugin-webhook branch April 24, 2026 10:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants