Skip to content

feat: Phase A batch — A11–A15 fixes and features#249

Merged
VirtueMe merged 7 commits intomainfrom
phase-a-batch
Feb 26, 2026
Merged

feat: Phase A batch — A11–A15 fixes and features#249
VirtueMe merged 7 commits intomainfrom
phase-a-batch

Conversation

@VirtueMe
Copy link
Collaborator

Summary

Test plan

  • All 35 unit tests pass (yarn test)
  • Each fix/feature has a dedicated test in test/spec/sns.ts

🤖 Generated with Claude Code

VirtueMe and others added 7 commits February 26, 2026 11:23
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>
@VirtueMe VirtueMe merged commit b009ea4 into main Feb 26, 2026
6 checks passed
@VirtueMe VirtueMe deleted the phase-a-batch branch February 26, 2026 10:39
@VirtueMe
Copy link
Collaborator Author

🎉 This PR is included in version 0.81.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant