Repository navigation
feat(webhooks): signed, idempotent outbound delivery - #405
Open
woahwhattheheck wants to merge 7 commits into
Open
woahwhattheheck wants to merge 7 commits into
woahwhattheheck wants to merge 7 commits into
Conversation
Add backend/webhooks with stable per-event idempotency keys, HMAC-SHA256 payload signatures, bounded retry-with-backoff delivery, and queryable delivery status by event id. Includes idempotency_key_test and tampered_payload_test. Closes Stellar-Analysis#336.
Contributor
|
@woahwhattheheck is attempting to deploy a commit to the christabel888's projects Team on Vercel. A member of the Team first needs to authorize it. |
Apply bounded retry delays through a replaceable sleeper, retain delivery records for every subscriber of a logical event, and cover retry timing and subscriber isolation. Document the crate's integration boundaries.
Preserve the existing contribution while providing the complete production patch for Stellar-Analysis/backend at 965e9162. Include application steps, original/final digests and native evidence for 26 passing HTTP, persistence and authenticated API regressions. Document pending backend landing and remaining whole-suite limitations.
Retain nanosecond Duration precision, scale until max_backoff rather than freezing the exponent at 16, and safely saturate extreme attempt numbers. Preserve the default schedule, zero-delay policy, bounded attempts, signing, idempotency and subscriber status. Add two focused regressions to the existing delivery test file and document the timing contract.
Both issue-required Rust test targets pass: five delivery cases and the signature-tampering case, zero failures/ignored, Cargo exit0. Run37200239373 executes product499c7f6c source and unchanged lockfile on Rust1.98.1. Retain the actual prior-code1-pass/2-fail result and runner count-guard correction. Keep requested timing, library execution and separate backend deployment boundaries explicit. No temporary workflow enters this branch.
This branch has not been 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.
What
Adds
backend/webhooks/for outbound subscriber notifications (corridor alerts, anomalies, snapshot completions).event.rs)sign.rs,X-Stellar-Insights-Signature)deliver.rs)status.rs)Why
At-least-once delivery needs a stable idempotency key per logical event, and signature verification is required so forged payloads cannot trigger downstream decisions.
Tested
idempotency_key_test— key stable across retriestampered_payload_test— tampered body fails verificationCloses #336.