Process SES Notifications into S3 logs #67312
Open
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.
This change captures our SES logging pipeline in Infra-as-code. Today, this is manually configured and the SNS notifications are delivered to an email inbox. I'm changing this to save to S3, in an Athena-ready format.
This creates new environment-specific SNS topics (but only in prod) and I will manually edit SES to use these new topics once live. The old topics, named simply
Deliveries
,Bounces
, andComplaints
will be deleted. It should be straightforward to adapt this for further environment separation in the future.I'm interested in feedback on the lambda implementation in Cloudformation. Attn: @sureshc and @anthony-jackson-code.
I'm also curious about the log bucket choice. Attn: @unlox775-code-dot-org
Links
Testing story
Deployment strategy
Follow-up work
It would be useful to analyze "Bounces", because it could imply that the associated Code.org website user is invalid, or at the very least blocked from ever resetting their password or verifying their email. This is why I went to the trouble of adding a more robust node lambda implementation (even though I'm only deploying index.js) - we can add special handling for "Bounce" or other notifications. For example: notify Dashboard that the given user is bouncing, so they can be flagged or dealt with appropriately.
Privacy
Security
Caching
PR Checklist: