Skip to content

Phase 7: Add signed webhook delivery - #22

Merged
owjs3901 merged 2 commits into
mainfrom
owjs3901/webhooks
Aug 30, 2026
Merged

Phase 7: Add signed webhook delivery#22
owjs3901 merged 2 commits into
mainfrom
owjs3901/webhooks

Conversation

@owjs3901

Copy link
Copy Markdown
Contributor

Summary

  • add an administrator-managed webhooks plugin with exact event filters and write-only signing secrets
  • deliver committed event envelopes through the phase 3 durable outbox with exponential backoff, per-delivery timeouts, dead-letter history, and manual retry
  • sign the exact request body with HMAC-SHA256 and block private, loopback, link-local, and other non-public destinations unless an endpoint explicitly opts out
  • document verification, retry, filtering, and SSRF guarantees

Validation

  • cargo clippy --workspace --all-targets --all-features -- -D warnings
  • cargo test --workspace
  • RUSTDOCFLAGS=-D warnings cargo doc --workspace --no-deps
  • bunx oxlint
  • bun x tsc --noEmit in the app template, example app, and every plugin
  • cargo run -p yeollin-cli -- build --skip-backend
  • browser QA: create/edit endpoint, write-only secret retention, signed delivery to a real HTTP receiver, five-attempt dead letter, successful manual retry, status filtering, empty states, no console errors, and 390px responsive overflow check

devfive added 2 commits August 31, 2026 07:36
Reuse the durable event outbox so integrations receive exact event envelopes with bounded retries, dead-letter recovery, per-delivery timeouts, exact filters, and SSRF-safe endpoint resolution.
Give operators and plugin authors the signing contract, retry lifecycle, filtering semantics, and private-network safety model needed to consume webhooks correctly.
@owjs3901
owjs3901 merged commit 069b334 into main Aug 30, 2026
1 check passed
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