docs: warn HEALTH_TOKEN must be runtime-only on Coolify #5

Merged
maximus merged 1 commit from issue-4-runtime-only-coolify-secrets into main 2026-05-03 20:12:25 +00:00
Owner

Fixes #4 (partiellement — voir checklist ops ci-dessous)

Scope code dans ce PR

  • .env.example : commentaire inline au-dessus de HEALTH_TOKEN rappelant que la variable doit etre runtime-only sur Coolify (is_buildtime=false).
  • CLAUDE.md : section Auth, ajout d'un avertissement avec pointeur vers la-compagnie-maximus/docs/coolify-ops.md.

Aucun changement au code applicatif (index.js, Dockerfile, package.json deja conformes : TOKEN = process.env.HEALTH_TOKEN lu uniquement au runtime, zero ARG/ENV au Dockerfile).

PR jumelle (autre repo)

La doc coolify-ops.md est etendue dans une PR parallele cote la-compagnie-maximus :
maximus/la-compagnie-maximus#132

Checklist ops post-merge (Max)

  • Coolify : PATCH is_buildtime=false sur HEALTH_TOKEN et PAYPERQ_API_KEY de l'application vps-health-api (UI ou API)
  • Rotation : generer nouveau HEALTH_TOKEN, mettre a jour cote Coolify ET Vercel (VPS_HEALTH_TOKEN) simultanement (mismatch = panne admin cards)
  • Purge : DELETE FROM application_deployment_queues WHERE created_at < <date-rotation> AND application_id = <vps-health-api-id>; cote coolify-db
  • Verification : declencher un nouveau deploy et grep HEALTH_TOKEN dans les nouveaux logs Coolify -> doit etre absent

Test plan

  • git diff confirme : 4 lignes ajoutees, aucune ligne modifiee/supprimee
  • Apres merge, declencher un nouveau deploy via Coolify et verifier que application_deployment_queues.logs ne contient plus le token en clair
Fixes #4 (partiellement — voir checklist ops ci-dessous) ## Scope code dans ce PR - `.env.example` : commentaire inline au-dessus de `HEALTH_TOKEN` rappelant que la variable doit etre runtime-only sur Coolify (`is_buildtime=false`). - `CLAUDE.md` : section Auth, ajout d'un avertissement avec pointeur vers `la-compagnie-maximus/docs/coolify-ops.md`. Aucun changement au code applicatif (`index.js`, `Dockerfile`, `package.json` deja conformes : `TOKEN = process.env.HEALTH_TOKEN` lu uniquement au runtime, zero ARG/ENV au Dockerfile). ## PR jumelle (autre repo) La doc `coolify-ops.md` est etendue dans une PR parallele cote `la-compagnie-maximus` : https://git.lacompagniemaximus.com/maximus/la-compagnie-maximus/pulls/132 ## Checklist ops post-merge (Max) - [ ] **Coolify** : PATCH `is_buildtime=false` sur `HEALTH_TOKEN` et `PAYPERQ_API_KEY` de l'application `vps-health-api` (UI ou API) - [ ] **Rotation** : generer nouveau `HEALTH_TOKEN`, mettre a jour cote Coolify ET Vercel (`VPS_HEALTH_TOKEN`) **simultanement** (mismatch = panne admin cards) - [ ] **Purge** : `DELETE FROM application_deployment_queues WHERE created_at < <date-rotation> AND application_id = <vps-health-api-id>;` cote `coolify-db` - [ ] **Verification** : declencher un nouveau deploy et `grep HEALTH_TOKEN` dans les nouveaux logs Coolify -> doit etre absent ## Test plan - [x] `git diff` confirme : 4 lignes ajoutees, aucune ligne modifiee/supprimee - [ ] Apres merge, declencher un nouveau deploy via Coolify et verifier que `application_deployment_queues.logs` ne contient plus le token en clair
maximus added 1 commit 2026-05-03 19:54:46 +00:00
Add inline warning in .env.example and CLAUDE.md Auth section:
HEALTH_TOKEN is read at runtime only — passing it as Coolify build ARG
leaks the secret in clear in application_deployment_queues.logs.

Refs #4

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
maximus added the
status:review
label 2026-05-03 19:56:05 +00:00
Author
Owner

Review pr-review — APPROVE

Summary : PR purement documentaire (4 lignes ajoutees, zero suppression). L'avertissement est techniquement correct et resout le risque de fuite via application_deployment_queues.logs Coolify. Le code applicatif (index.js, Dockerfile) est deja conforme : process.env.HEALTH_TOKEN lu au runtime, aucun ARG/ENV HEALTH_TOKEN au build.

Verifications

  • index.js:8 : TOKEN = process.env.HEALTH_TOKEN lu au runtime au demarrage du processus.
  • Dockerfile : pas d'ARG/ENV HEALTH_TOKEN — affirmation du PR confirmee.
  • .env.example : 3 lignes de commentaires bien placees au-dessus de la variable.
  • CLAUDE.md : pointeur correct vers coolify-ops.md.
  • Conventional commit valide : docs: warn HEALTH_TOKEN must be runtime-only on Coolify.
  • Fixes #4 present dans le body.

Issues

Aucune.

Suggestions (non-bloquantes)

  1. CLAUDE.md:14 — la ligne est tres longue (~270 char). Un wrap a 100-120 char ameliorerait la lisibilite en diff.
  2. PR body — la checklist mentionne PAYPERQ_API_KEY qui n'existe pas dans ce repo. Clarifier que c'est une note ops cross-repo evite la confusion en relisant le merge dans 6 mois.
  3. .env.example:2-4is_runtime=true, is_buildtime=false parle aux operateurs Coolify mais peut etre obscure pour un dev qui clone le repo. Ajouter une phrase generique (Never expose this token at build time) serait plus universel. Mineur.
## Review pr-review — APPROVE **Summary** : PR purement documentaire (4 lignes ajoutees, zero suppression). L'avertissement est techniquement correct et resout le risque de fuite via `application_deployment_queues.logs` Coolify. Le code applicatif (`index.js`, `Dockerfile`) est deja conforme : `process.env.HEALTH_TOKEN` lu au runtime, aucun `ARG`/`ENV HEALTH_TOKEN` au build. ### Verifications - `index.js:8` : `TOKEN = process.env.HEALTH_TOKEN` lu au runtime au demarrage du processus. - `Dockerfile` : pas d'`ARG`/`ENV HEALTH_TOKEN` — affirmation du PR confirmee. - `.env.example` : 3 lignes de commentaires bien placees au-dessus de la variable. - `CLAUDE.md` : pointeur correct vers `coolify-ops.md`. - Conventional commit valide : `docs: warn HEALTH_TOKEN must be runtime-only on Coolify`. - `Fixes #4` present dans le body. ### Issues Aucune. ### Suggestions (non-bloquantes) 1. **CLAUDE.md:14** — la ligne est tres longue (~270 char). Un wrap a 100-120 char ameliorerait la lisibilite en diff. 2. **PR body** — la checklist mentionne `PAYPERQ_API_KEY` qui n'existe pas dans ce repo. Clarifier que c'est une note ops cross-repo evite la confusion en relisant le merge dans 6 mois. 3. **.env.example:2-4** — `is_runtime=true, is_buildtime=false` parle aux operateurs Coolify mais peut etre obscure pour un dev qui clone le repo. Ajouter une phrase generique (`Never expose this token at build time`) serait plus universel. Mineur.
maximus merged commit f88f44e347 into main 2026-05-03 20:12:25 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: maximus/vps-health-api#5
No description provided.