diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index caadc1ab..d232721d 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 77389e65..63938b21 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 c9cfd407..7b40124a 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 01ce6830..c75de211 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: