From 2ce14224ea563141ec82eda9ea91c274472f2b07 Mon Sep 17 00:00:00 2001 From: DIodide Date: Tue, 30 Jun 2026 02:13:11 -0400 Subject: [PATCH] fix(imports): load SESSION_SECRET from Heroku config in import jobs controllers/config.js requires SESSION_SECRET (>=32 chars) and exits 1 if missing. The import scripts require config.js transitively (via controllers/database.js), so every imports.yml job that runs a node importer must export SESSION_SECRET. Only MONGODB_URI was being loaded, so dispatched imports now fail at startup with 'A SESSION_SECRET of at least 32 characters is required to sign session cookies.' Add SESSION_SECRET to each job's Heroku config-var load (it is already present in the app's Heroku config). --- .github/workflows/imports.yml | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/.github/workflows/imports.yml b/.github/workflows/imports.yml index d273634..b7998e9 100644 --- a/.github/workflows/imports.yml +++ b/.github/workflows/imports.yml @@ -88,7 +88,7 @@ jobs: -H "Accept: application/vnd.heroku+json; version=3" \ https://api.heroku.com/apps/${HEROKU_APP_NAME}/config-vars) echo "$cfg" > heroku_config.json - for key in MONGODB_URI CONSUMER_KEY CONSUMER_SECRET CHATBOT_API_KEY HOST PORT; do + for key in MONGODB_URI SESSION_SECRET CONSUMER_KEY CONSUMER_SECRET CHATBOT_API_KEY HOST PORT; do val=$(node -e "const o=require('./heroku_config.json'); const k='${key}'; if (o[k]) console.log(o[k]);") if [ -n "$val" ]; then echo "::add-mask::${val}" @@ -157,7 +157,7 @@ jobs: -H "Accept: application/vnd.heroku+json; version=3" \ https://api.heroku.com/apps/${HEROKU_APP_NAME}/config-vars) echo "$cfg" > heroku_config.json - for key in MONGODB_URI CONSUMER_KEY CONSUMER_SECRET; do + for key in MONGODB_URI SESSION_SECRET CONSUMER_KEY CONSUMER_SECRET; do val=$(node -e "const o=require('./heroku_config.json'); const k='${key}'; if (o[k]) console.log(o[k]);") if [ -n "$val" ]; then echo "::add-mask::${val}" @@ -194,7 +194,7 @@ jobs: -H "Accept: application/vnd.heroku+json; version=3" \ https://api.heroku.com/apps/${HEROKU_APP_NAME}/config-vars) echo "$cfg" > heroku_config.json - for key in MONGODB_URI; do + for key in MONGODB_URI SESSION_SECRET; do val=$(node -e "const o=require('./heroku_config.json'); const k='${key}'; if (o[k]) console.log(o[k]);") if [ -n "$val" ]; then echo "::add-mask::${val}" @@ -276,11 +276,13 @@ jobs: -H "Accept: application/vnd.heroku+json; version=3" \ https://api.heroku.com/apps/${HEROKU_APP_NAME}/config-vars) echo "$cfg" > heroku_config.json - val=$(node -e "const o=require('./heroku_config.json'); const k='MONGODB_URI'; if (o[k]) console.log(o[k]);") - if [ -n "$val" ]; then - echo "::add-mask::${val}" - echo "MONGODB_URI=$val" >> $GITHUB_ENV - fi + for key in MONGODB_URI SESSION_SECRET; do + val=$(node -e "const o=require('./heroku_config.json'); const k='${key}'; if (o[k]) console.log(o[k]);") + if [ -n "$val" ]; then + echo "::add-mask::${val}" + echo "$key=$val" >> $GITHUB_ENV + fi + done - name: Run backfill run: | if [ -n "${{ inputs.term }}" ]; then @@ -317,11 +319,13 @@ jobs: -H "Accept: application/vnd.heroku+json; version=3" \ https://api.heroku.com/apps/${HEROKU_APP_NAME}/config-vars) echo "$cfg" > heroku_config.json - val=$(node -e "const o=require('./heroku_config.json'); const k='MONGODB_URI'; if (o[k]) console.log(o[k]);") - if [ -n "$val" ]; then - echo "::add-mask::${val}" - echo "MONGODB_URI=$val" >> $GITHUB_ENV - fi + for key in MONGODB_URI SESSION_SECRET; do + val=$(node -e "const o=require('./heroku_config.json'); const k='${key}'; if (o[k]) console.log(o[k]);") + if [ -n "$val" ]; then + echo "::add-mask::${val}" + echo "$key=$val" >> $GITHUB_ENV + fi + done - name: Run setNewCourseFlag run: node importers/setNewCourseFlag.js