From 0c17058d21c0a5fbf92370746cc50895ec7e7f7b Mon Sep 17 00:00:00 2001 From: "a.tolmachev" Date: Sat, 11 Apr 2026 10:30:45 +0300 Subject: [PATCH] deploy: add master key override secret --- .github/workflows/deploy.yml | 8 ++++++++ docs/deployment.md | 11 ++++++++--- docs/runtime-config.md | 3 +++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 9dcbf25..e2e6c29 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -129,6 +129,14 @@ jobs: - name: Apply deploy overrides run: | + if [ -n "${{ secrets.DEPLOY_MASTER_KEY }}" ]; then + ssh "${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }}" " + set -e + cd '${{ secrets.DEPLOY_PATH }}' + sed -i '/^CRANK_MASTER_KEY=/d' .env + printf 'CRANK_MASTER_KEY=%s\n' '${{ secrets.DEPLOY_MASTER_KEY }}' >> .env + " + fi if [ -n "${{ secrets.DEPLOY_DEMO_SEED }}" ]; then ssh "${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }}" " set -e diff --git a/docs/deployment.md b/docs/deployment.md index 58a1331..67507aa 100644 --- a/docs/deployment.md +++ b/docs/deployment.md @@ -236,11 +236,16 @@ CD для MVP должен: Для точечных runtime override без переписывания всего `DEPLOY_ENV_FILE` можно использовать отдельные deployment secrets. Сейчас поддержан: +- `DEPLOY_MASTER_KEY` - `DEPLOY_DEMO_SEED` -Если он задан, workflow удаляет `CRANK_DEMO_SEED` из сгенерированного `.env` и записывает -туда значение из `DEPLOY_DEMO_SEED`. Это позволяет временно включать и выключать demo seed -отдельным secret, не переписывая основной production `.env`. +Если задан `DEPLOY_MASTER_KEY`, workflow удаляет `CRANK_MASTER_KEY` из сгенерированного `.env` +и записывает туда значение из `DEPLOY_MASTER_KEY`. Это позволяет ротировать master key или +добавлять его отдельно, не переписывая весь `DEPLOY_ENV_FILE`. + +Если задан `DEPLOY_DEMO_SEED`, workflow удаляет `CRANK_DEMO_SEED` из сгенерированного `.env` +и записывает туда значение из `DEPLOY_DEMO_SEED`. Это позволяет временно включать и выключать +demo seed отдельным secret, не переписывая основной production `.env`. ## 12. Что нельзя забыть diff --git a/docs/runtime-config.md b/docs/runtime-config.md index 509abd6..2d6e3ea 100644 --- a/docs/runtime-config.md +++ b/docs/runtime-config.md @@ -145,6 +145,9 @@ Demo/deployment: В deployment workflow этот флаг можно переопределять отдельно через GitHub secret `DEPLOY_DEMO_SEED`, не меняя основной `DEPLOY_ENV_FILE`. +Аналогично `CRANK_MASTER_KEY` можно прокидывать отдельным GitHub secret `DEPLOY_MASTER_KEY`, +если не хочется каждый раз переписывать весь `DEPLOY_ENV_FILE` ради одного ключа. + ## 8.1. Delivery artifacts Для production-like запуска проект должен поставляться с: