Les contrôles de configuration ne tournaient chez personne #38

Merged
nicolas-fryder merged 1 commit from fix/controles-de-configuration into main 2026-09-09 21:21:49 +00:00

Le harnais du profil nest ne câblait le groupe config que si le satellite
passait options.config — ce qui l'obligeait à fournir à la main le schéma
d'environnement de sa propre application. Aucun ne le faisait. Six contrôles
muets, et pas même comptés comme non exécutables : c'est ce qui a laissé le
.env.example du gabarit diverger sans un mot (eqs-satellite-template #15).

EqsApp rend maintenant le schema qui a validé son environnement, et le
harnais construit le contexte tout seul.

Deux des six criaient sur du correct, et c'est pour ça qu'ils n'étaient
branchés nulle part.

config.env-example exigeait que l'exemple et le schéma coïncident. Un dépôt
pose légitimement des variables que le service ne valide pas : compose,
build, navigateur. Le critère devient celui que .env.example énonce
lui-même — une variable inconnue du schéma passe si le dépôt s'en sert. Le
sens inverse reste une faute sans exception. Première version fautive :
horsApplication retirait la clé des DEUX côtés et le contrôle réclamait
quatre variables qui étaient là.

config.compose-env exigeait que les clés d'environment: soient dans le
schéma. Faux par construction — neuf lignes signalées sur le gabarit, neuf
légitimes. Il regarde maintenant ce qui casse : une interpolation sans valeur
par défaut que personne ne fournit, que Compose remplace par une chaîne vide
en silence. Les commentaires YAML sont écartés : la première version
réclamait la variable citée dans l'explication du compose.

Nouveau config.env-public : toute NEXT_PUBLIC_* lue est déclarée dans
.env.example. Inlinées au build, personne ne les valide au démarrage.

Mesuré sur le gabarit : zéro problème réel, et les deux contrôles rougissent
sur un écart introduit exprès. pnpm check vert sur les dix packages.

EqsProvider.baseUrl documente enfin qu'il veut le préfixe, et le commentaire
qui promettait d'attraper un package non joué dit ce qu'il fait vraiment.

Co-Authored-By: Claude Opus 5 noreply@anthropic.com

Le harnais du profil nest ne câblait le groupe `config` que si le satellite passait `options.config` — ce qui l'obligeait à fournir à la main le schéma d'environnement de sa propre application. Aucun ne le faisait. Six contrôles muets, et pas même comptés comme non exécutables : c'est ce qui a laissé le `.env.example` du gabarit diverger sans un mot (eqs-satellite-template #15). `EqsApp` rend maintenant le `schema` qui a validé son environnement, et le harnais construit le contexte tout seul. Deux des six criaient sur du correct, et c'est pour ça qu'ils n'étaient branchés nulle part. `config.env-example` exigeait que l'exemple et le schéma coïncident. Un dépôt pose légitimement des variables que le service ne valide pas : compose, build, navigateur. Le critère devient celui que `.env.example` énonce lui-même — une variable inconnue du schéma passe si le dépôt s'en sert. Le sens inverse reste une faute sans exception. Première version fautive : `horsApplication` retirait la clé des DEUX côtés et le contrôle réclamait quatre variables qui étaient là. `config.compose-env` exigeait que les clés d'`environment:` soient dans le schéma. Faux par construction — neuf lignes signalées sur le gabarit, neuf légitimes. Il regarde maintenant ce qui casse : une interpolation sans valeur par défaut que personne ne fournit, que Compose remplace par une chaîne vide en silence. Les commentaires YAML sont écartés : la première version réclamait la variable citée dans l'explication du compose. Nouveau `config.env-public` : toute `NEXT_PUBLIC_*` lue est déclarée dans `.env.example`. Inlinées au build, personne ne les valide au démarrage. Mesuré sur le gabarit : zéro problème réel, et les deux contrôles rougissent sur un écart introduit exprès. `pnpm check` vert sur les dix packages. `EqsProvider.baseUrl` documente enfin qu'il veut le préfixe, et le commentaire qui promettait d'attraper un package non joué dit ce qu'il fait vraiment. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Le harnais du profil nest ne câblait le groupe `config` que si le satellite
passait `options.config` — ce qui l'obligeait à fournir à la main le schéma
d'environnement de sa propre application. Aucun ne le faisait. Six contrôles
muets, et pas même comptés comme non exécutables : c'est ce qui a laissé le
`.env.example` du gabarit diverger sans un mot (eqs-satellite-template #15).

`EqsApp` rend maintenant le `schema` qui a validé son environnement, et le
harnais construit le contexte tout seul.

Deux des six criaient sur du correct, et c'est pour ça qu'ils n'étaient
branchés nulle part.

`config.env-example` exigeait que l'exemple et le schéma coïncident. Un dépôt
pose légitimement des variables que le service ne valide pas : compose,
build, navigateur. Le critère devient celui que `.env.example` énonce
lui-même — une variable inconnue du schéma passe si le dépôt s'en sert. Le
sens inverse reste une faute sans exception. Première version fautive :
`horsApplication` retirait la clé des DEUX côtés et le contrôle réclamait
quatre variables qui étaient là.

`config.compose-env` exigeait que les clés d'`environment:` soient dans le
schéma. Faux par construction — neuf lignes signalées sur le gabarit, neuf
légitimes. Il regarde maintenant ce qui casse : une interpolation sans valeur
par défaut que personne ne fournit, que Compose remplace par une chaîne vide
en silence. Les commentaires YAML sont écartés : la première version
réclamait la variable citée dans l'explication du compose.

Nouveau `config.env-public` : toute `NEXT_PUBLIC_*` lue est déclarée dans
`.env.example`. Inlinées au build, personne ne les valide au démarrage.

Mesuré sur le gabarit : zéro problème réel, et les deux contrôles rougissent
sur un écart introduit exprès. `pnpm check` vert sur les dix packages.

`EqsProvider.baseUrl` documente enfin qu'il veut le préfixe, et le commentaire
qui promettait d'attraper un package non joué dit ce qu'il fait vraiment.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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
Infrastructure/eqs-platform!38
No description provided.