refactor(hutch): remove the inbox surface now served by the inbox deployable (phase D: cleanup)#951
Closed
FagnerMartinsBrack wants to merge 1 commit into
Closed
refactor(hutch): remove the inbox surface now served by the inbox deployable (phase D: cleanup)#951FagnerMartinsBrack wants to merge 1 commit into
FagnerMartinsBrack wants to merge 1 commit into
Conversation
…loyable Closes the double-delivery overlap the inbox extraction opened: the /inbox pages, inbox domain handlers, the three email-pipeline mains, and their infra chains (queues, lambdas, SNS bridge, EventBridge rules, truncation alert trio) leave hutch; the inbox stack's inbox-prefixed equivalents are the sole consumers from this deploy on. Hutch keeps everything stateful and every cross-cutting concern: the SES receiving stack, the three DynamoDB tables, delete-account's purge reach into them, and signup-time address provisioning — the five inbox deps on the composition roots collapse into one injected provisionInboxAddress, and the provisioning tests re-home to web/auth/ where the behavior lives. The emails/links table grants and env leave the main web lambda; the addresses grant stays for signup. Merge only after the inbox deployable's first deploy is green in both stages, with the old DLQs drained (see the cutover run-book in the PR).
daf8740 to
68cd49a
Compare
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.
Stacked on #950 — closes the double-delivery overlap window that PR opens. Do not merge until #950 is deployed green in both stages and the operator checklist below is clear. (After #950 merges, retarget this PR's base to
main.)Contents
Removes from hutch:
/inboxpages, inbox domain handlers, the three pipeline mains, and their entire infra chains (queues, lambdas, SNS→SQS bridge, EventBridge rules, truncation-alert trio — 251 lines ofinfra/index.ts). The composition roots collapse five inbox deps into one injectedprovisionInboxAddress; signup-provisioning tests re-home toweb/auth/.Hutch keeps: SES receiving (
InboxMail), the three DynamoDB tables, delete-account's purge reach, signup-time address provisioning (addresses grant +INBOX_ADDRESS_DOMAINstay on the main lambda; emails/links grants+env removed), and all Pulumi config keys./inboxserving frominbox-web-handler, new pipeline lambdas consuming.receive-email-dlq,extract-email-links-dlq,crawl-email-link-preview-dlq(deleting a queue destroys its messages — redrive first if non-empty).extract-email-links-truncated-alertif the 14-day truncation audit trail matters (advisory only).After deploy
Single delivery restored: the SNS topic has one SQS subscription; the platform bus carries only
inbox-*rules for these events. Rollback = revert this PR (recreates hutch's consumers; re-entering the overlap is safe by idempotency; any dropped notification is replayable from the raw-email bucket, which retains every.emlforever).Full
pnpm checkgreen at every commit (41 projects).