Skip to content

fix: add --webhook-secret flag to enable HMAC payload signing (PILOT-90) - #434

Closed
matthew-pilot wants to merge 1 commit into
mainfrom
openclaw/pilot-90-20260728-120900
Closed

fix: add --webhook-secret flag to enable HMAC payload signing (PILOT-90)#434
matthew-pilot wants to merge 1 commit into
mainfrom
openclaw/pilot-90-20260728-120900

Conversation

@matthew-pilot

Copy link
Copy Markdown
Collaborator

What

The webhook plugin already supports HMAC-SHA256 payload signing via WithSecret() and X-Pilot-Signature-256 headers — but the daemon never wired the configuration flag. The signing infrastructure was dead code from the operator's perspective.

Fix

Add --webhook-secret (env: PILOT_WEBHOOK_SECRET) and thread it through webhook.NewService via webhook.WithSecret().

Verification

  • go build ./cmd/daemon/ — passes
  • go vet ./cmd/daemon/ — clean
  • go test -count=1 ./... in the webhook package — all tests pass
  • go test -run 'Webhook|SetWebhook' ./pkg/daemon/ — passes

Closes PILOT-90

… (PILOT-90)

The webhook.Client already supports HMAC-SHA256 payload signing via
WithSecret() and sends X-Pilot-Signature-256 headers — but the daemon
never wired the configuration flag. This meant the secret infrastructure
was dead code from the operator's perspective.

Add --webhook-secret (env: PILOT_WEBHOOK_SECRET) and thread it through
webhook.NewService. When set, every outbound webhook POST will carry
a verifiable HMAC-SHA256 signature. Unset = backward-compatible behavior
(no signature header).

Closes PILOT-90
@matthew-pilot
matthew-pilot requested a review from TeoSlayer as a code owner July 28, 2026 12:18
@matthew-pilot

Copy link
Copy Markdown
Collaborator Author

Superseded by #437

@matthew-pilot
matthew-pilot deleted the openclaw/pilot-90-20260728-120900 branch July 29, 2026 03:37
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.

1 participant