feat: Phase A batch — A11–A15 fixes and features#249
Merged
Conversation
The non-raw publishSqs path incorrectly tried to unwrap a Records array from the SNS envelope, which is never present. This caused all non-raw SNS→SQS deliveries to silently drop the message. Fix sends the SNS notification envelope JSON directly as the SQS MessageBody, matching real AWS behaviour. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…#87) Failed HTTP deliveries (network errors or non-2xx responses) are now retried up to a configurable number of times with an optional delay between attempts. Adds `retry` and `retry-interval` config options, defaulting to 0 (no retries, preserving existing behaviour). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…olicies (#170) Extends filter policy evaluation to support the MessageBody scope, matching filter policy keys against top-level fields in the JSON message body rather than MessageAttributes. Invalid JSON bodies and missing keys are treated as non-matching and the message is dropped, consistent with real AWS SNS behaviour. Also adds README documentation covering both MessageAttributes (default) and MessageBody filter policy scopes. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…eQueue (#179) AWS::SNS::Subscription resources with Protocol:sqs were incorrectly routed through the HTTP handler path, registering an unnecessary express route and sending an HTTP URL as the endpoint. They now go through subscribeQueue() with a full queue URL derived from the sqsEndpoint config, matching the behaviour of config.subscriptions. The fnName guard is also relaxed for sqs-protocol resources since the Lambda is triggered by SQS separately, not directly by SNS. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Collaborator
Author
|
🎉 This PR is included in version 0.81.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
This was referenced Feb 26, 2026
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.
Summary
Recordsunwrap, send SNS envelope directly asMessageBody. SimplifiespublishSqsby removing redundant raw/non-raw branch (both paths were identical). Inspired by @huangjimmy's PR Fix #134 0.76.0: SNS -> publish to subscribed SQS queue, "Records" assumption leads to lost message, empty array. #134 #173.retry(attempts) andretry-interval(ms) optionsFilterPolicyScope: MessageBodyfor subscription filter policies; add README docs for filter policiesProtocol: sqssubscriptions throughsubscribeQueue()instead ofsubscribe(), fixing wrong endpoint typePublishBatch/PublishBatchCommandTest plan
yarn test)test/spec/sns.ts🤖 Generated with Claude Code