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

This commit is contained in:
Manus
2026-08-29 23:54:15 +00:00
parent 0e59dac29f
commit eeac2de481
4 changed files with 16 additions and 1 deletions

View File

@@ -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:-}

View File

@@ -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.

View 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");
});
});

View File

@@ -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