From 8b90abc4fab9ebe5d76dbefb4524c1109a7ae287 Mon Sep 17 00:00:00 2001 From: Samuel Macleod Date: Mon, 15 Sep 2025 16:15:46 +0100 Subject: [PATCH 1/2] Disable remote bindings with the --local flag --- .../wrangler-remote-resources.test.ts | 51 +++++++++++++++++++ packages/wrangler/src/dev.ts | 4 +- 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/packages/wrangler/e2e/remote-binding/wrangler-remote-resources.test.ts b/packages/wrangler/e2e/remote-binding/wrangler-remote-resources.test.ts index 634edd01039b..b42eb7921d39 100644 --- a/packages/wrangler/e2e/remote-binding/wrangler-remote-resources.test.ts +++ b/packages/wrangler/e2e/remote-binding/wrangler-remote-resources.test.ts @@ -558,6 +558,57 @@ describe.skipIf(!CLOUDFLARE_ACCOUNT_ID)( } ); +test.skipIf(!CLOUDFLARE_ACCOUNT_ID)( + "`wrangler dev --local` disables remote bindings", + async () => { + const helper = new WranglerE2ETestHelper(); + await helper.seed(path.resolve(__dirname, "./workers")); + + const kvId = await helper.kv(false); + await helper.run( + `wrangler kv key put --remote --namespace-id=${kvId} test-key remote-value` + ); + await helper.run( + `wrangler kv key put --namespace-id=${kvId} test-key local-value` + ); + + await helper.seed({ + "wrangler.json": JSON.stringify( + { + name: "mixed-remote-bindings-test", + main: "mixed-kvs.js", + compatibility_date: "2025-01-01", + kv_namespaces: [ + { + binding: "KV_LOCAL_BINDING", + id: kvId, + }, + { + binding: "KV_REMOTE_BINDING", + id: kvId, + remote: true, + }, + ], + }, + null, + 2 + ), + }); + + const worker = helper.runLongLived("wrangler dev --local"); + + const { url } = await worker.waitForReady(); + + const response = await fetchText(url); + + // We expect both "local" and "remote" KVs to return the local value, since remote bindings are disabled + expect(response).toMatchInlineSnapshot(` + "The kv local value is: local-value + The kv remote value is local-value" + `); + } +); + describe.skipIf(!CLOUDFLARE_ACCOUNT_ID)( "Wrangler dev uses a provided account_id from the wrangler config file", () => { diff --git a/packages/wrangler/src/dev.ts b/packages/wrangler/src/dev.ts index 16ccc460b825..3268f08744f4 100644 --- a/packages/wrangler/src/dev.ts +++ b/packages/wrangler/src/dev.ts @@ -57,7 +57,9 @@ export const dev = createCommand({ overrideExperimentalFlags: (args) => ({ MULTIWORKER: Array.isArray(args.config), RESOURCES_PROVISION: args.experimentalProvision ?? false, - REMOTE_BINDINGS: args.experimentalRemoteBindings ?? true, + REMOTE_BINDINGS: args.local + ? false + : args.experimentalRemoteBindings ?? true, DEPLOY_REMOTE_DIFF_CHECK: false, }), }, From 11d81a6677a331a9d8e1c59b58ee0536a0ed08b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Somhairle=20MacLe=C3=B2id?= Date: Mon, 15 Sep 2025 16:35:42 +0100 Subject: [PATCH 2/2] Disable remote bindings with --local flag This change disables remote bindings when using the --local flag. --- .changeset/swift-buses-design.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/swift-buses-design.md diff --git a/.changeset/swift-buses-design.md b/.changeset/swift-buses-design.md new file mode 100644 index 000000000000..774772e52c5f --- /dev/null +++ b/.changeset/swift-buses-design.md @@ -0,0 +1,5 @@ +--- +"wrangler": patch +--- + +Disable remote bindings with the `--local` flag