From fa801959fd3e676c1363aff9371c529448818d3e Mon Sep 17 00:00:00 2001 From: Alex Patterson Date: Thu, 8 Oct 2026 17:26:33 -0400 Subject: [PATCH] fix(sanity): use SANITY_API_WRITE_TOKEN for dataset operations --- .github/workflows/deploy.yml | 2 ++ .github/workflows/sync-missing-youtube-transcripts.yml | 1 + .../functions/sync-missing-youtube-transcripts/index.ts | 8 +++++--- sanity.blueprint.ts | 1 + 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index caadc1aba..d232721d0 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -65,6 +65,7 @@ jobs: pnpm exec sanity blueprints deploy --organization-id "$ORG_ID" --stack ${{ vars.SANITY_STUDIO_DATASET }} env: SANITY_AUTH_TOKEN: ${{ secrets.SANITY_AUTH_TOKEN }} + SANITY_API_WRITE_TOKEN: ${{ secrets.SANITY_API_WRITE_TOKEN }} SANITY_STUDIO_PROJECT_ID: ${{ vars.SANITY_STUDIO_PROJECT_ID }} SANITY_STUDIO_DATASET: ${{ vars.SANITY_STUDIO_DATASET }} YOUTUBE_API_KEY: ${{ secrets.YOUTUBE_API_KEY }} @@ -123,6 +124,7 @@ jobs: pnpm exec sanity blueprints deploy --organization-id "$ORG_ID" --stack ${{ vars.SANITY_STUDIO_DATASET }} env: SANITY_AUTH_TOKEN: ${{ secrets.SANITY_AUTH_TOKEN }} + SANITY_API_WRITE_TOKEN: ${{ secrets.SANITY_API_WRITE_TOKEN }} SANITY_STUDIO_PROJECT_ID: ${{ vars.SANITY_STUDIO_PROJECT_ID }} SANITY_STUDIO_DATASET: ${{ vars.SANITY_STUDIO_DATASET }} YOUTUBE_API_KEY: ${{ secrets.YOUTUBE_API_KEY }} diff --git a/.github/workflows/sync-missing-youtube-transcripts.yml b/.github/workflows/sync-missing-youtube-transcripts.yml index 77389e655..63938b212 100644 --- a/.github/workflows/sync-missing-youtube-transcripts.yml +++ b/.github/workflows/sync-missing-youtube-transcripts.yml @@ -35,6 +35,7 @@ jobs: pnpm exec sanity functions test sync-missing-youtube-transcripts --dataset ${{ inputs.dataset }} env: SANITY_AUTH_TOKEN: ${{ secrets.SANITY_AUTH_TOKEN }} + SANITY_API_WRITE_TOKEN: ${{ secrets.SANITY_API_WRITE_TOKEN }} SANITY_STUDIO_PROJECT_ID: ${{ vars.SANITY_STUDIO_PROJECT_ID }} SANITY_STUDIO_DATASET: ${{ inputs.dataset }} YOUTUBE_API_KEY: ${{ secrets.YOUTUBE_API_KEY }} diff --git a/apps/sanity/functions/sync-missing-youtube-transcripts/index.ts b/apps/sanity/functions/sync-missing-youtube-transcripts/index.ts index c9cfd4078..7b40124a0 100644 --- a/apps/sanity/functions/sync-missing-youtube-transcripts/index.ts +++ b/apps/sanity/functions/sync-missing-youtube-transcripts/index.ts @@ -222,12 +222,14 @@ export const handler = scheduledEventHandler(async ({ context }) => { ); } - // 2. Token validation + // 2. Token validation: prefer Sanity runtime token, then project write token, then fallback const token = - context.clientOptions?.token || process.env.SANITY_AUTH_TOKEN; + context.clientOptions?.token || + process.env.SANITY_API_WRITE_TOKEN || + process.env.SANITY_AUTH_TOKEN; if (!token) { throw new Error( - "[Sync Missing YouTube Transcripts] Missing Sanity API token (neither context.clientOptions.token nor SANITY_AUTH_TOKEN is present).", + "[Sync Missing YouTube Transcripts] Missing Sanity API token (neither context.clientOptions.token nor SANITY_API_WRITE_TOKEN is present).", ); } diff --git a/sanity.blueprint.ts b/sanity.blueprint.ts index 01ce68306..c75de2117 100644 --- a/sanity.blueprint.ts +++ b/sanity.blueprint.ts @@ -62,6 +62,7 @@ export default defineBlueprint({ env: { YOUTUBE_API_KEY: process.env.YOUTUBE_API_KEY || "", SANITY_AUTH_TOKEN: process.env.SANITY_AUTH_TOKEN || "", + SANITY_API_WRITE_TOKEN: process.env.SANITY_API_WRITE_TOKEN || "", SANITY_STUDIO_PROJECT_ID: process.env.SANITY_STUDIO_PROJECT_ID || "hfh83o0w", SANITY_STUDIO_DATASET: