Skip to content

[wrangler] Apply Email Routing addresses during deploy - #14471

Merged
jamesopstad merged 7 commits into
cloudflare:mainfrom
DiogoSantoss:dsantos/EMAIL-1882
Jul 17, 2026
Merged

[wrangler] Apply Email Routing addresses during deploy#14471
jamesopstad merged 7 commits into
cloudflare:mainfrom
DiogoSantoss:dsantos/EMAIL-1882

Conversation

@DiogoSantoss

@DiogoSantoss DiogoSantoss commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Applies the Email Routing addresses config during wrangler deploy.

Note

Stacked on #14470 (the addresses config field). Please review #14470 first — until it merges, this PR's diff includes its commit too. The new logic here is in packages/wrangler/src/email-routing/deploy-addresses.ts + the deploy.ts hook.

After the Worker uploads, wrangler deploy asks the Email Routing API for a plan, renders the changes grouped by zone (+ added, ~ updated, - deleted, ! conflict), prompts once for any destructive changes (deletes or takeover conflicts) in interactive mode — and hard-fails in non-interactive/CI mode — then applies the accepted changes through the per-zone rule endpoints, tagging them as owned by the deploying Worker. Purely additive plans apply without a prompt; a partial apply failure leaves the Worker deployed and exits non-zero. wrangler deploy --dry-run is unchanged (validate + print only, no network).

Internal tracking: EMAIL-1882 / RM-29262.


🐈

@changeset-bot

changeset-bot Bot commented Jun 29, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 7297d7b

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 4 packages
Name Type
wrangler Minor
@cloudflare/deploy-helpers Minor
@cloudflare/vite-plugin Patch
@cloudflare/vitest-pool-workers Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@DiogoSantoss
DiogoSantoss force-pushed the dsantos/EMAIL-1882 branch 6 times, most recently from 9c7642b to 4dcf055 Compare June 30, 2026 10:51
@DiogoSantoss
DiogoSantoss marked this pull request as ready for review June 30, 2026 10:54
@workers-devprod
workers-devprod requested review from a team and jamesopstad and removed request for a team June 30, 2026 10:54
@workers-devprod

workers-devprod commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Codeowners approval required for this PR:

  • @cloudflare/wrangler
Show detailed file reviewers
  • .changeset/email-routing-addresses.md: [@cloudflare/wrangler]
  • .changeset/email-routing-deploy-apply.md: [@cloudflare/wrangler]
  • packages/config/src/tests/convert.test.ts: [@cloudflare/wrangler]
  • packages/config/src/convert.ts: [@cloudflare/wrangler]
  • packages/config/src/public.ts: [@cloudflare/wrangler]
  • packages/config/src/schema.ts: [@cloudflare/wrangler]
  • packages/config/src/triggers.ts: [@cloudflare/wrangler]
  • packages/config/src/types.ts: [@cloudflare/wrangler]
  • packages/workers-utils/src/config/config.ts: [@cloudflare/wrangler]
  • packages/workers-utils/src/config/validation.ts: [@cloudflare/wrangler]
  • packages/workers-utils/tests/config/validation/normalize-and-validate-config.test.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/tests/deploy/email-routing-apply.test.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/tests/deploy/email-routing.test.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/tests/email-routing/plan.test.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/tests/experimental-config/load.test.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/deploy/index.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/email-routing/apply.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/email-routing/client.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/email-routing/plan.ts: [@cloudflare/wrangler]
devin-ai-integration[bot]

This comment was marked as resolved.

@DiogoSantoss
DiogoSantoss force-pushed the dsantos/EMAIL-1882 branch 2 times, most recently from 4aa3de4 to b030365 Compare June 30, 2026 11:20
devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

@jamesopstad

Copy link
Copy Markdown
Contributor

Can you merge #14470 now it's approved and then I'll review this one. Thanks.

@emily-shen emily-shen left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

changes to the deploy path should go in the deploy-helpers package or else they will not be included in cf

Comment thread packages/wrangler/src/deploy/index.ts Outdated
@workers-devprod

workers-devprod commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Codeowners approval required for this PR:

  • ✅ @cloudflare/wrangler
Show detailed file reviewers
@DiogoSantoss
DiogoSantoss force-pushed the dsantos/EMAIL-1882 branch 2 times, most recently from eb12ccd to a0d1de8 Compare July 15, 2026 09:54
@github-project-automation github-project-automation Bot moved this to Untriaged in workers-sdk Jul 15, 2026
@github-project-automation github-project-automation Bot moved this from Untriaged to In Review in workers-sdk Jul 15, 2026
@pkg-pr-new

pkg-pr-new Bot commented Jul 15, 2026

Copy link
Copy Markdown
@cloudflare/autoconfig

npm i https://pkg.pr.new/@cloudflare/autoconfig@14471

@cloudflare/config

npm i https://pkg.pr.new/@cloudflare/config@14471

create-cloudflare

npm i https://pkg.pr.new/create-cloudflare@14471

@cloudflare/deploy-helpers

npm i https://pkg.pr.new/@cloudflare/deploy-helpers@14471

@cloudflare/kv-asset-handler

npm i https://pkg.pr.new/@cloudflare/kv-asset-handler@14471

miniflare

npm i https://pkg.pr.new/miniflare@14471

@cloudflare/pages-shared

npm i https://pkg.pr.new/@cloudflare/pages-shared@14471

@cloudflare/unenv-preset

npm i https://pkg.pr.new/@cloudflare/unenv-preset@14471

@cloudflare/vite-plugin

npm i https://pkg.pr.new/@cloudflare/vite-plugin@14471

@cloudflare/vitest-pool-workers

npm i https://pkg.pr.new/@cloudflare/vitest-pool-workers@14471

@cloudflare/workers-auth

npm i https://pkg.pr.new/@cloudflare/workers-auth@14471

@cloudflare/workers-editor-shared

npm i https://pkg.pr.new/@cloudflare/workers-editor-shared@14471

@cloudflare/workers-utils

npm i https://pkg.pr.new/@cloudflare/workers-utils@14471

wrangler

npm i https://pkg.pr.new/wrangler@14471

commit: 7297d7b

devin-ai-integration[bot]

This comment was marked as resolved.

@ttoino ttoino left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, just one small comment

Comment thread packages/deploy-helpers/src/triggers/email-routing-plan.ts Outdated

@workers-devprod workers-devprod left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Codeowners reviews satisfied

@jamesopstad
jamesopstad dismissed emily-shen’s stale review July 17, 2026 12:34

Code moved to deploy-helpers package as requested.

Diogo Santos added 7 commits July 17, 2026 13:48
EMAIL-1882: after the Worker uploads, `wrangler deploy` plans the Email
Routing changes for the `addresses` config against the new account-level
plan endpoint, renders them grouped by zone, prompts once for destructive
changes (deletes/takeover conflicts) interactively and hard-fails in
non-interactive mode, then applies accepted changes via the per-zone rule
endpoints tagged source=wrangler + owner_worker_tag. Stacked on EMAIL-1880.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

5 participants