Checkpoint: Correctif recette : DATABASE_URL cible désormais le conteneur MySQL unique itinova-budget-si-db, évitant la collision de l'alias Docker partagé db qui empêchait la connexion administrateur après recréation. Test de régression Compose ajouté. Validation complète réussie : 59 tests, TypeScript, build et format Compose.
All checks were successful
Validation applicative / TypeScript, tests et build (push) Successful in 2m1s
All checks were successful
Validation applicative / TypeScript, tests et build (push) Successful in 2m1s
This commit is contained in:
@@ -5,7 +5,7 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
environment:
|
environment:
|
||||||
- NODE_ENV=production
|
- NODE_ENV=production
|
||||||
- DATABASE_URL=mysql://budget_user:BudgetSI2027!@db:3306/budget_si
|
- DATABASE_URL=mysql://budget_user:BudgetSI2027!@itinova-budget-si-db:3306/budget_si
|
||||||
- JWT_SECRET=${JWT_SECRET:-budget-si-recette-jwt-secret-2027}
|
- JWT_SECRET=${JWT_SECRET:-budget-si-recette-jwt-secret-2027}
|
||||||
- VITE_APP_ID=${VITE_APP_ID:-}
|
- VITE_APP_ID=${VITE_APP_ID:-}
|
||||||
- OAUTH_SERVER_URL=${OAUTH_SERVER_URL:-}
|
- OAUTH_SERVER_URL=${OAUTH_SERVER_URL:-}
|
||||||
|
|||||||
@@ -35,3 +35,5 @@ La vérification visuelle administrateur de recette a confirmé la présence de
|
|||||||
Après le chargement des requêtes, le filtre de mai 2026 a affiché 18 bulletins indexés, un total brut mensuel et le statut partiel de la liasse, sans alerte de chiffrement. La divergence initiale correspond au rendu transitoire avant réception de la sonde de sécurité ; ce rendu doit être remplacé par un état de chargement neutre, jamais par une alerte de blocage.
|
Après le chargement des requêtes, le filtre de mai 2026 a affiché 18 bulletins indexés, un total brut mensuel et le statut partiel de la liasse, sans alerte de chiffrement. La divergence initiale correspond au rendu transitoire avant réception de la sonde de sécurité ; ce rendu doit être remplacé par un état de chargement neutre, jamais par une alerte de blocage.
|
||||||
|
|
||||||
Depuis la page authentifiée de recette, le bouton **Voir la liasse** a ouvert le visualiseur PDF du navigateur sur la route protégée de consultation. Le parcours interface utilise uniquement cette route applicative ; il ne présente aucune URL de stockage au navigateur.
|
Depuis la page authentifiée de recette, le bouton **Voir la liasse** a ouvert le visualiseur PDF du navigateur sur la route protégée de consultation. Le parcours interface utilise uniquement cette route applicative ; il ne présente aucune URL de stockage au navigateur.
|
||||||
|
|
||||||
|
Un diagnostic de recette a révélé qu'après une recréation Docker, l'alias réseau générique `db` pouvait résoudre vers une autre base présente sur le réseau partagé, provoquant un refus d'accès et empêchant temporairement toute connexion. La configuration utilise désormais le nom unique `itinova-budget-si-db`. Une sonde de régression vérifie ce point avant chaque déploiement.
|
||||||
|
|||||||
12
server/dockerCompose.test.ts
Normal file
12
server/dockerCompose.test.ts
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
import { readFile } from "node:fs/promises";
|
||||||
|
import { resolve } from "node:path";
|
||||||
|
import { describe, expect, it } from "vitest";
|
||||||
|
|
||||||
|
describe("docker-compose de recette", () => {
|
||||||
|
it("utilise le nom unique du conteneur MySQL et évite l'alias générique partagé", async () => {
|
||||||
|
const compose = await readFile(resolve(process.cwd(), "docker-compose.yml"), "utf8");
|
||||||
|
|
||||||
|
expect(compose).toContain("DATABASE_URL=mysql://budget_user:BudgetSI2027!@itinova-budget-si-db:3306/budget_si");
|
||||||
|
expect(compose).not.toContain("DATABASE_URL=mysql://budget_user:BudgetSI2027!@db:3306/budget_si");
|
||||||
|
});
|
||||||
|
});
|
||||||
1
todo.md
1
todo.md
@@ -203,3 +203,4 @@
|
|||||||
- [ ] Vérifier visuellement la page Salaires de recette dans une session administrateur : navigation, filtres, liste et statuts
|
- [ ] Vérifier visuellement la page Salaires de recette dans une session administrateur : navigation, filtres, liste et statuts
|
||||||
- [ ] Ouvrir une liasse depuis le bouton de l'interface de recette afin de valider le parcours utilisateur de consultation
|
- [ ] Ouvrir une liasse depuis le bouton de l'interface de recette afin de valider le parcours utilisateur de consultation
|
||||||
- [ ] Corriger l'alerte frontale indiquant à tort un chiffrement indisponible en recette
|
- [ ] Corriger l'alerte frontale indiquant à tort un chiffrement indisponible en recette
|
||||||
|
- [ ] Corriger l'accès à la base de recette empêchant la connexion administrateur après le dernier redéploiement
|
||||||
|
|||||||
Reference in New Issue
Block a user