From 854f401b8c6b7810e2252f5b572f1f7519c848f4 Mon Sep 17 00:00:00 2001 From: Brian Feister Date: Thu, 9 Jan 2025 06:39:13 -0700 Subject: [PATCH 1/4] Add missing cloudflare env vars to deployment pipelines --- .github/actions/set_aws_creds_env_vars/action.yml | 8 ++++++++ .github/workflows/deploy-dev.yml | 2 ++ .github/workflows/deploy-feature.yml | 2 ++ .github/workflows/deploy-prod.yml | 2 ++ 4 files changed, 14 insertions(+) diff --git a/.github/actions/set_aws_creds_env_vars/action.yml b/.github/actions/set_aws_creds_env_vars/action.yml index 0a173dbd..662c1cf8 100644 --- a/.github/actions/set_aws_creds_env_vars/action.yml +++ b/.github/actions/set_aws_creds_env_vars/action.yml @@ -86,6 +86,12 @@ inputs: PROD_STRIPE_CHECKOUT_WEBHOOK_SECRET: description: 'Stripe (prod) checkout webhook signing secret' required: true + CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE: + description: 'The Namespace key for the project's Cloudflare KV Storage' + required: true + CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE_ID: + description: 'The Namespace ID for the project's Cloudflare KV Storage' + required: true runs: using: composite @@ -122,6 +128,8 @@ runs: echo DEV_STRIPE_PUBLISHABLE_KEY=${{ inputs.DEV_STRIPE_PUBLISHABLE_KEY }} >> .env echo DEV_STRIPE_CHECKOUT_WEBHOOK_SECRET=${{ inputs.DEV_STRIPE_CHECKOUT_WEBHOOK_SECRET }} >> .env echo PROD_STRIPE_CHECKOUT_WEBHOOK_SECRET=${{ inputs.PROD_STRIPE_CHECKOUT_WEBHOOK_SECRET }} >> .env + echo CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE=${{ inputs.CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE }} >> .env + echo CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE_ID=${{ inputs.CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE_ID }} >> .env - name: Configure AWS credentials uses: aws-actions/configure-aws-credentials@v4 with: diff --git a/.github/workflows/deploy-dev.yml b/.github/workflows/deploy-dev.yml index 75b26328..2e3856e7 100644 --- a/.github/workflows/deploy-dev.yml +++ b/.github/workflows/deploy-dev.yml @@ -73,6 +73,8 @@ jobs: DEV_STRIPE_PUBLISHABLE_KEY: ${{ secrets.DEV_STRIPE_PUBLISHABLE_KEY }} DEV_STRIPE_CHECKOUT_WEBHOOK_SECRET: ${{ secrets.DEV_STRIPE_CHECKOUT_WEBHOOK_SECRET }} PROD_STRIPE_CHECKOUT_WEBHOOK_SECRET: ${{ secrets.PROD_STRIPE_CHECKOUT_WEBHOOK_SECRET }} + CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE: ${{ secrets.CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE }} + CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE_ID: ${{ secrets.CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE_ID }} - name: Generate Cloudflare locations Go file uses: './.github/actions/generate_cloudflare_locations_file' - name: Deploy AWS resources via SST diff --git a/.github/workflows/deploy-feature.yml b/.github/workflows/deploy-feature.yml index 4881b1d1..655c3d62 100644 --- a/.github/workflows/deploy-feature.yml +++ b/.github/workflows/deploy-feature.yml @@ -80,6 +80,8 @@ jobs: DEV_STRIPE_PUBLISHABLE_KEY: ${{ secrets.DEV_STRIPE_PUBLISHABLE_KEY }} DEV_STRIPE_CHECKOUT_WEBHOOK_SECRET: ${{ secrets.DEV_STRIPE_CHECKOUT_WEBHOOK_SECRET }} PROD_STRIPE_CHECKOUT_WEBHOOK_SECRET: ${{ secrets.PROD_STRIPE_CHECKOUT_WEBHOOK_SECRET }} + CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE: ${{ secrets.CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE }} + CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE_ID: ${{ secrets.CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE_ID }} # Not set because this is dynamic in lower environments # APEX_URL: ${{ secrets.APEX_URL }} - name: Generate Cloudflare locations Go file diff --git a/.github/workflows/deploy-prod.yml b/.github/workflows/deploy-prod.yml index b65553aa..adaaddd1 100644 --- a/.github/workflows/deploy-prod.yml +++ b/.github/workflows/deploy-prod.yml @@ -73,6 +73,8 @@ jobs: DEV_STRIPE_PUBLISHABLE_KEY: ${{ secrets.DEV_STRIPE_PUBLISHABLE_KEY }} DEV_STRIPE_CHECKOUT_WEBHOOK_SECRET: ${{ secrets.DEV_STRIPE_CHECKOUT_WEBHOOK_SECRET }} PROD_STRIPE_CHECKOUT_WEBHOOK_SECRET: ${{ secrets.PROD_STRIPE_CHECKOUT_WEBHOOK_SECRET }} + CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE: ${{ secrets.CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE }} + CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE_ID: ${{ secrets.CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE_ID }} - name: Generate Cloudflare locations Go file uses: './.github/actions/generate_cloudflare_locations_file' - name: Deploy AWS resources via SST From dc128ab9471b846e44de12d3030a34e05d50fb38 Mon Sep 17 00:00:00 2001 From: Brian Feister Date: Thu, 9 Jan 2025 06:43:56 -0700 Subject: [PATCH 2/4] remove unescaped single quotes --- .github/actions/set_aws_creds_env_vars/action.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/actions/set_aws_creds_env_vars/action.yml b/.github/actions/set_aws_creds_env_vars/action.yml index 662c1cf8..7dc557e4 100644 --- a/.github/actions/set_aws_creds_env_vars/action.yml +++ b/.github/actions/set_aws_creds_env_vars/action.yml @@ -87,10 +87,10 @@ inputs: description: 'Stripe (prod) checkout webhook signing secret' required: true CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE: - description: 'The Namespace key for the project's Cloudflare KV Storage' + description: 'The Namespace key for the project Cloudflare KV Storage' required: true CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE_ID: - description: 'The Namespace ID for the project's Cloudflare KV Storage' + description: 'The Namespace ID for the project Cloudflare KV Storage' required: true runs: From 8200fa512bff04b22b54b0544e9dfb41bbfe880f Mon Sep 17 00:00:00 2001 From: Brian Feister Date: Thu, 9 Jan 2025 07:07:19 -0700 Subject: [PATCH 3/4] more env var cleanup / fixes --- .github/actions/set_aws_creds_env_vars/action.yml | 11 +++++++---- .github/workflows/deploy-dev.yml | 10 +++++----- .github/workflows/deploy-feature.yml | 8 ++++---- .github/workflows/deploy-prod.yml | 8 ++++---- stacks/shared/env.ts | 4 +++- 5 files changed, 23 insertions(+), 18 deletions(-) diff --git a/.github/actions/set_aws_creds_env_vars/action.yml b/.github/actions/set_aws_creds_env_vars/action.yml index 7dc557e4..8480a1a7 100644 --- a/.github/actions/set_aws_creds_env_vars/action.yml +++ b/.github/actions/set_aws_creds_env_vars/action.yml @@ -86,6 +86,9 @@ inputs: PROD_STRIPE_CHECKOUT_WEBHOOK_SECRET: description: 'Stripe (prod) checkout webhook signing secret' required: true + CLOUDFLARE_API_BASE_URL: + description: 'The base URL for the Cloudflare API' + required: true CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE: description: 'The Namespace key for the project Cloudflare KV Storage' required: true @@ -113,10 +116,6 @@ runs: echo ZITADEL_ENCRYPTION_KEY=${{ inputs.ZITADEL_ENCRYPTION_KEY }} >> .env echo ZITADEL_INSTANCE_HOST=${{ inputs.ZITADEL_INSTANCE_HOST }} >> .env echo ZITADEL_BOT_ADMIN_TOKEN=${{ inputs.ZITADEL_BOT_ADMIN_TOKEN }} >> .env - echo CLOUDFLARE_ACCOUNT_ID=${{ inputs.CLOUDFLARE_ACCOUNT_ID }} >> .env - echo CLOUDFLARE_KV_NAMESPACE_ID=${{ inputs.CLOUDFLARE_KV_NAMESPACE_ID }} >> .env - echo CLOUDFLARE_API_TOKEN=${{ inputs.CLOUDFLARE_API_TOKEN }} >> .env - echo CLOUDFLARE_API_BASE_URL=${{ inputs.CLOUDFLARE_API_BASE_URL }} >> .env echo MARQO_API_KEY=${{ inputs.MARQO_API_KEY }} >> .env echo PROD_MARQO_API_BASE_URL=${{ inputs.PROD_MARQO_API_BASE_URL }} >> .env echo DEV_MARQO_API_BASE_URL=${{ inputs.DEV_MARQO_API_BASE_URL }} >> .env @@ -128,6 +127,10 @@ runs: echo DEV_STRIPE_PUBLISHABLE_KEY=${{ inputs.DEV_STRIPE_PUBLISHABLE_KEY }} >> .env echo DEV_STRIPE_CHECKOUT_WEBHOOK_SECRET=${{ inputs.DEV_STRIPE_CHECKOUT_WEBHOOK_SECRET }} >> .env echo PROD_STRIPE_CHECKOUT_WEBHOOK_SECRET=${{ inputs.PROD_STRIPE_CHECKOUT_WEBHOOK_SECRET }} >> .env + echo CLOUDFLARE_ACCOUNT_ID=${{ inputs.CLOUDFLARE_ACCOUNT_ID }} >> .env + echo CLOUDFLARE_KV_NAMESPACE_ID=${{ inputs.CLOUDFLARE_KV_NAMESPACE_ID }} >> .env + echo CLOUDFLARE_API_TOKEN=${{ inputs.CLOUDFLARE_API_TOKEN }} >> .env + echo CLOUDFLARE_API_BASE_URL=${{ inputs.CLOUDFLARE_API_BASE_URL }} >> .env echo CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE=${{ inputs.CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE }} >> .env echo CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE_ID=${{ inputs.CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE_ID }} >> .env - name: Configure AWS credentials diff --git a/.github/workflows/deploy-dev.yml b/.github/workflows/deploy-dev.yml index 2e3856e7..e4b1119c 100644 --- a/.github/workflows/deploy-dev.yml +++ b/.github/workflows/deploy-dev.yml @@ -50,17 +50,13 @@ jobs: SCRAPINGBEE_API_KEY: ${{ secrets.SCRAPINGBEE_API_KEY }} GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }} OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} - OPENAI_API_BASE_URL: ${{ secrets.OPENAI_API_KEY }} + OPENAI_API_BASE_URL: ${{ secrets.OPENAI_API_BASE_URL }} ZITADEL_CLIENT_ID: ${{ secrets.ZITADEL_CLIENT_ID }} ZITADEL_CLIENT_SECRET: ${{ secrets.ZITADEL_CLIENT_SECRET }} ZITADEL_PROJECT_ID: ${{ secrets.ZITADEL_PROJECT_ID }} ZITADEL_ENCRYPTION_KEY: ${{ secrets.ZITADEL_ENCRYPTION_KEY }} ZITADEL_INSTANCE_HOST: ${{ secrets.ZITADEL_INSTANCE_HOST }} ZITADEL_BOT_ADMIN_TOKEN: ${{ secrets.ZITADEL_BOT_ADMIN_TOKEN }} - CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} - CLOUDFLARE_KV_NAMESPACE_ID: ${{ secrets.CLOUDFLARE_KV_NAMESPACE_ID }} - CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} - CLOUDFLARE_API_BASE_URL: ${{ secrets.CLOUDFLARE_API_BASE_URL }} MARQO_API_KEY: ${{ secrets.MARQO_API_KEY }} PROD_MARQO_API_BASE_URL: ${{ secrets.PROD_MARQO_API_BASE_URL }} DEV_MARQO_API_BASE_URL: ${{ secrets.DEV_MARQO_API_BASE_URL }} @@ -73,6 +69,10 @@ jobs: DEV_STRIPE_PUBLISHABLE_KEY: ${{ secrets.DEV_STRIPE_PUBLISHABLE_KEY }} DEV_STRIPE_CHECKOUT_WEBHOOK_SECRET: ${{ secrets.DEV_STRIPE_CHECKOUT_WEBHOOK_SECRET }} PROD_STRIPE_CHECKOUT_WEBHOOK_SECRET: ${{ secrets.PROD_STRIPE_CHECKOUT_WEBHOOK_SECRET }} + CLOUDFLARE_API_BASE_URL: ${{ secrets.CLOUDFLARE_API_BASE_URL }} + CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} + CLOUDFLARE_KV_NAMESPACE_ID: ${{ secrets.CLOUDFLARE_KV_NAMESPACE_ID }} + CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE: ${{ secrets.CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE }} CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE_ID: ${{ secrets.CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE_ID }} - name: Generate Cloudflare locations Go file diff --git a/.github/workflows/deploy-feature.yml b/.github/workflows/deploy-feature.yml index 655c3d62..e84bb547 100644 --- a/.github/workflows/deploy-feature.yml +++ b/.github/workflows/deploy-feature.yml @@ -64,10 +64,6 @@ jobs: ZITADEL_ENCRYPTION_KEY: ${{ secrets.ZITADEL_ENCRYPTION_KEY }} ZITADEL_INSTANCE_HOST: ${{ secrets.ZITADEL_INSTANCE_HOST }} ZITADEL_BOT_ADMIN_TOKEN: ${{ secrets.ZITADEL_BOT_ADMIN_TOKEN }} - CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} - CLOUDFLARE_KV_NAMESPACE_ID: ${{ secrets.CLOUDFLARE_KV_NAMESPACE_ID }} - CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} - CLOUDFLARE_API_BASE_URL: ${{ secrets.CLOUDFLARE_API_BASE_URL }} MARQO_API_KEY: ${{ secrets.MARQO_API_KEY }} PROD_MARQO_API_BASE_URL: ${{ secrets.PROD_MARQO_API_BASE_URL }} DEV_MARQO_API_BASE_URL: ${{ secrets.DEV_MARQO_API_BASE_URL }} @@ -80,6 +76,10 @@ jobs: DEV_STRIPE_PUBLISHABLE_KEY: ${{ secrets.DEV_STRIPE_PUBLISHABLE_KEY }} DEV_STRIPE_CHECKOUT_WEBHOOK_SECRET: ${{ secrets.DEV_STRIPE_CHECKOUT_WEBHOOK_SECRET }} PROD_STRIPE_CHECKOUT_WEBHOOK_SECRET: ${{ secrets.PROD_STRIPE_CHECKOUT_WEBHOOK_SECRET }} + CLOUDFLARE_API_BASE_URL: ${{ secrets.CLOUDFLARE_API_BASE_URL }} + CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} + CLOUDFLARE_KV_NAMESPACE_ID: ${{ secrets.CLOUDFLARE_KV_NAMESPACE_ID }} + CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE: ${{ secrets.CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE }} CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE_ID: ${{ secrets.CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE_ID }} # Not set because this is dynamic in lower environments diff --git a/.github/workflows/deploy-prod.yml b/.github/workflows/deploy-prod.yml index adaaddd1..1e38d58a 100644 --- a/.github/workflows/deploy-prod.yml +++ b/.github/workflows/deploy-prod.yml @@ -57,10 +57,6 @@ jobs: ZITADEL_ENCRYPTION_KEY: ${{ secrets.ZITADEL_ENCRYPTION_KEY }} ZITADEL_INSTANCE_HOST: ${{ secrets.ZITADEL_INSTANCE_HOST }} ZITADEL_BOT_ADMIN_TOKEN: ${{ secrets.ZITADEL_BOT_ADMIN_TOKEN }} - CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} - CLOUDFLARE_KV_NAMESPACE_ID: ${{ secrets.CLOUDFLARE_KV_NAMESPACE_ID }} - CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} - CLOUDFLARE_API_BASE_URL: ${{ secrets.CLOUDFLARE_API_BASE_URL }} MARQO_API_KEY: ${{ secrets.MARQO_API_KEY }} PROD_MARQO_API_BASE_URL: ${{ secrets.PROD_MARQO_API_BASE_URL }} DEV_MARQO_API_BASE_URL: ${{ secrets.DEV_MARQO_API_BASE_URL }} @@ -73,6 +69,10 @@ jobs: DEV_STRIPE_PUBLISHABLE_KEY: ${{ secrets.DEV_STRIPE_PUBLISHABLE_KEY }} DEV_STRIPE_CHECKOUT_WEBHOOK_SECRET: ${{ secrets.DEV_STRIPE_CHECKOUT_WEBHOOK_SECRET }} PROD_STRIPE_CHECKOUT_WEBHOOK_SECRET: ${{ secrets.PROD_STRIPE_CHECKOUT_WEBHOOK_SECRET }} + CLOUDFLARE_API_BASE_URL: ${{ secrets.CLOUDFLARE_API_BASE_URL }} + CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} + CLOUDFLARE_KV_NAMESPACE_ID: ${{ secrets.CLOUDFLARE_KV_NAMESPACE_ID }} + CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE: ${{ secrets.CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE }} CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE_ID: ${{ secrets.CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE_ID }} - name: Generate Cloudflare locations Go file diff --git a/stacks/shared/env.ts b/stacks/shared/env.ts index 79c1793a..7880af89 100644 --- a/stacks/shared/env.ts +++ b/stacks/shared/env.ts @@ -9,10 +9,12 @@ export default { ZITADEL_ENCRYPTION_KEY: process.env.ZITADEL_ENCRYPTION_KEY, ZITADEL_INSTANCE_HOST: process.env.ZITADEL_INSTANCE_HOST, ZITADEL_BOT_ADMIN_TOKEN: process.env.ZITADEL_BOT_ADMIN_TOKEN, + CLOUDFLARE_API_BASE_URL: process.env.CLOUDFLARE_API_BASE_URL, CLOUDFLARE_ACCOUNT_ID: process.env.CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_KV_NAMESPACE_ID: process.env.CLOUDFLARE_KV_NAMESPACE_ID, CLOUDFLARE_API_TOKEN: process.env.CLOUDFLARE_API_TOKEN, - CLOUDFLARE_API_BASE_URL: process.env.CLOUDFLARE_API_BASE_URL, + CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE: process.env.CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE, + CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE_ID: process.env.CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE_ID, MARQO_API_KEY: process.env.MARQO_API_KEY, PROD_MARQO_API_BASE_URL: process.env.PROD_MARQO_API_BASE_URL, DEV_MARQO_API_BASE_URL: process.env.DEV_MARQO_API_BASE_URL, From 721d77a22666820e5e5a5d449dfbc65d0b721974 Mon Sep 17 00:00:00 2001 From: Brian Feister Date: Thu, 9 Jan 2025 07:11:40 -0700 Subject: [PATCH 4/4] fix dupe env var declaration --- .github/actions/set_aws_creds_env_vars/action.yml | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/.github/actions/set_aws_creds_env_vars/action.yml b/.github/actions/set_aws_creds_env_vars/action.yml index 8480a1a7..ee38e01b 100644 --- a/.github/actions/set_aws_creds_env_vars/action.yml +++ b/.github/actions/set_aws_creds_env_vars/action.yml @@ -53,6 +53,12 @@ inputs: CLOUDFLARE_API_BASE_URL: description: 'The base URL for the Cloudflare API' required: true + CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE: + description: 'The Namespace key for the project Cloudflare KV Storage' + required: true + CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE_ID: + description: 'The Namespace ID for the project Cloudflare KV Storage' + required: true MARQO_API_KEY: description: 'The API key for the Marqo API' required: true @@ -86,15 +92,6 @@ inputs: PROD_STRIPE_CHECKOUT_WEBHOOK_SECRET: description: 'Stripe (prod) checkout webhook signing secret' required: true - CLOUDFLARE_API_BASE_URL: - description: 'The base URL for the Cloudflare API' - required: true - CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE: - description: 'The Namespace key for the project Cloudflare KV Storage' - required: true - CLOUDFLARE_MNM_SUBDOMAIN_KV_NAMESPACE_ID: - description: 'The Namespace ID for the project Cloudflare KV Storage' - required: true runs: using: composite