From c2478593b2ccf4eab6fc69662ecbb18091eac13d Mon Sep 17 00:00:00 2001 From: Dario Piotrowicz Date: Fri, 25 Jul 2025 12:36:34 +0100 Subject: [PATCH 1/3] fix `deploy` command not taking into account environment variables --- .changeset/legal-bags-agree.md | 5 +++++ packages/cloudflare/src/cli/commands/deploy.ts | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 .changeset/legal-bags-agree.md diff --git a/.changeset/legal-bags-agree.md b/.changeset/legal-bags-agree.md new file mode 100644 index 00000000..4528ee47 --- /dev/null +++ b/.changeset/legal-bags-agree.md @@ -0,0 +1,5 @@ +--- +"@opennextjs/cloudflare": patch +--- + +fix `deploy` command not taking into account environment variables diff --git a/packages/cloudflare/src/cli/commands/deploy.ts b/packages/cloudflare/src/cli/commands/deploy.ts index 29625926..bf022c67 100644 --- a/packages/cloudflare/src/cli/commands/deploy.ts +++ b/packages/cloudflare/src/cli/commands/deploy.ts @@ -27,11 +27,13 @@ export async function deployCommand(args: WithWranglerArgs<{ cacheChunkSize: num const wranglerConfig = readWranglerConfig(args); - const envVars = await getEnvFromPlatformProxy({ + const platformProxyEnvVars = await getEnvFromPlatformProxy({ configPath: args.configPath, environment: args.env, }); + const envVars = { ...platformProxyEnvVars, ...process.env }; + const deploymentMapping = await getDeploymentMapping(options, config, envVars); await populateCache(options, config, wranglerConfig, { From 362466059bec9441fb2c81df3bac198d0afdad1d Mon Sep 17 00:00:00 2001 From: Dario Piotrowicz Date: Mon, 28 Jul 2025 11:10:03 +0100 Subject: [PATCH 2/3] update upload command as well --- .changeset/legal-bags-agree.md | 2 +- packages/cloudflare/src/cli/commands/upload.ts | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.changeset/legal-bags-agree.md b/.changeset/legal-bags-agree.md index 4528ee47..ebc78f93 100644 --- a/.changeset/legal-bags-agree.md +++ b/.changeset/legal-bags-agree.md @@ -2,4 +2,4 @@ "@opennextjs/cloudflare": patch --- -fix `deploy` command not taking into account environment variables +fix `deploy` and `upload` commands not taking into account environment variables diff --git a/packages/cloudflare/src/cli/commands/upload.ts b/packages/cloudflare/src/cli/commands/upload.ts index 51c799ae..9da8c088 100644 --- a/packages/cloudflare/src/cli/commands/upload.ts +++ b/packages/cloudflare/src/cli/commands/upload.ts @@ -27,11 +27,13 @@ export async function uploadCommand(args: WithWranglerArgs<{ cacheChunkSize: num const wranglerConfig = readWranglerConfig(args); - const envVars = await getEnvFromPlatformProxy({ + const platformProxyEnvVars = await getEnvFromPlatformProxy({ configPath: args.configPath, environment: args.env, }); + const envVars = { ...platformProxyEnvVars, ...process.env }; + const deploymentMapping = await getDeploymentMapping(options, config, envVars); await populateCache(options, config, wranglerConfig, { From 945f849d014ecaf6837297df5e119741c471036a Mon Sep 17 00:00:00 2001 From: Dario Piotrowicz Date: Mon, 28 Jul 2025 12:06:23 +0100 Subject: [PATCH 3/3] move logic inside `getDeploymentMapping` --- packages/cloudflare/src/cli/commands/deploy.ts | 4 +--- packages/cloudflare/src/cli/commands/skew-protection.ts | 9 +++++++-- packages/cloudflare/src/cli/commands/upload.ts | 4 +--- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/packages/cloudflare/src/cli/commands/deploy.ts b/packages/cloudflare/src/cli/commands/deploy.ts index bf022c67..29625926 100644 --- a/packages/cloudflare/src/cli/commands/deploy.ts +++ b/packages/cloudflare/src/cli/commands/deploy.ts @@ -27,13 +27,11 @@ export async function deployCommand(args: WithWranglerArgs<{ cacheChunkSize: num const wranglerConfig = readWranglerConfig(args); - const platformProxyEnvVars = await getEnvFromPlatformProxy({ + const envVars = await getEnvFromPlatformProxy({ configPath: args.configPath, environment: args.env, }); - const envVars = { ...platformProxyEnvVars, ...process.env }; - const deploymentMapping = await getDeploymentMapping(options, config, envVars); await populateCache(options, config, wranglerConfig, { diff --git a/packages/cloudflare/src/cli/commands/skew-protection.ts b/packages/cloudflare/src/cli/commands/skew-protection.ts index e6456848..acac2161 100644 --- a/packages/cloudflare/src/cli/commands/skew-protection.ts +++ b/packages/cloudflare/src/cli/commands/skew-protection.ts @@ -45,18 +45,23 @@ const MS_PER_DAY = 24 * 3600 * 1000; * * @param options Build options * @param config OpenNext config - * @param envVars Environment variables + * @param workerEnvVars Worker Environment variables (taken from the wrangler config files) * @returns Deployment mapping or undefined */ export async function getDeploymentMapping( options: BuildOptions, config: OpenNextConfig, - envVars: WorkerEnvVar + workerEnvVars: WorkerEnvVar ): Promise | undefined> { if (config.cloudflare?.skewProtection?.enabled !== true) { return undefined; } + // Note that `process.env` is spread after `workerEnvVars` since we do want + // system environment variables to take precedence over the variables defined + // in the wrangler config files + const envVars = { ...workerEnvVars, ...process.env }; + const nextConfig = loadConfig(path.join(options.appBuildOutputPath, ".next")); const deploymentId = nextConfig.deploymentId; diff --git a/packages/cloudflare/src/cli/commands/upload.ts b/packages/cloudflare/src/cli/commands/upload.ts index 9da8c088..51c799ae 100644 --- a/packages/cloudflare/src/cli/commands/upload.ts +++ b/packages/cloudflare/src/cli/commands/upload.ts @@ -27,13 +27,11 @@ export async function uploadCommand(args: WithWranglerArgs<{ cacheChunkSize: num const wranglerConfig = readWranglerConfig(args); - const platformProxyEnvVars = await getEnvFromPlatformProxy({ + const envVars = await getEnvFromPlatformProxy({ configPath: args.configPath, environment: args.env, }); - const envVars = { ...platformProxyEnvVars, ...process.env }; - const deploymentMapping = await getDeploymentMapping(options, config, envVars); await populateCache(options, config, wranglerConfig, {