From 85eecd4ea3e36db46cf58d5c6231b510c23d087c Mon Sep 17 00:00:00 2001 From: bolbol Date: Sat, 25 Jul 2026 18:34:05 +0000 Subject: [PATCH] runbook: ajout cas gsparc-mezzouna-api (.env a jour, container jamais recree) --- ...ow-rotation-casse-containers-standalone.md | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/common/baserow-rotation-casse-containers-standalone.md b/common/baserow-rotation-casse-containers-standalone.md index 798a0c3..c395751 100644 --- a/common/baserow-rotation-casse-containers-standalone.md +++ b/common/baserow-rotation-casse-containers-standalone.md @@ -45,3 +45,35 @@ token statique. ## Repo source bolbol/dashboard-terrain (Gitea, branche master) — server.py + Dockerfile mis a jour, image rebuild dashboard-terrain:latest, container redeploye sur le reseau n8n, port 8085->8080. + + +## Cas 2 (meme soir, 25/07/2026) : gsparc-mezzouna-api — .env a jour mais container jamais recree + +Meme rotation, meme symptome (401 ERROR_INVALID_CREDENTIALS sur /api/user/token-auth/), mais cause +differente : contrairement a dashboard-terrain, `/volume1/docker/gsparc-mezzouna/.env` avait deja ete mis +a jour avec le bon BASEROW_PASSWORD au moment de la rotation. Le container tournait cependant depuis 5 +semaines sans avoir jamais ete recree — `docker inspect gsparc-mezzouna-api` montrait encore l'ancien mot +de passe dans `.Config.Env`, car **les variables d'un container Docker sont figees a la creation** ; +editer un `.env` monte via `env_file:` dans docker-compose.yml ne change rien a un container deja demarre, +il faut le recreer (`docker compose up -d --force-recreate `). + +Piege additionnel : le `/health` de gsparc-mezzouna-api restait vert (`healthy`) pendant toute la panne, +car ce healthcheck ne teste que la disponibilite du process, pas la connexion Baserow — un statut +"healthy" ne garantit donc pas que les dependances externes fonctionnent. + +Fix : `cd /volume1/docker/gsparc-mezzouna && docker compose up -d --force-recreate` (a recree gotenberg +au passage, dependance declaree dans le meme compose — pull de l'image ~450 Mo, prevoir 1-2 min). Log de +confirmation au demarrage : `[app.baserow] INFO: JWT Baserow regenere` + `[gsparc] INFO: Connexion Baserow +etablie`. + +**Consequence pour la checklist de rotation** : mettre a jour un `.env` ne suffit jamais. Toute rotation de +secret touchant un service en docker-compose doit se terminer par un `docker compose up -d --force-recreate` +(ou `docker restart` a minima si aucune variable de build n'est en jeu) sur chaque service concerne — sinon +le `.env` a jour reste theorique. + +**Suivi optionnel (non fait le 25/07/2026)** : gsparc-mezzouna-api dispose deja d'un `BASEROW_TOKEN` dans +son `.env` (actuellement egal a `BASEROW_TOKEN_NYORA`, cf. anomalie B1 de +`common/rotation-secrets-inventaire.md` — a corriger separement pour l'etancheite des spheres) mais +`app/baserow.py` n'utilise que le login JWT. Bascule vers le token statique possible plus tard pour la +meme robustesse que dashboard-terrain, mais nécessite un rebuild d'image (code cuit) — non urgent puisque +le fix `--force-recreate` suffit tant qu'on n'oublie pas cette etape apres une rotation.