From 6447389cb8ef2c5c4fce4ff582bd0fa6e3f74500 Mon Sep 17 00:00:00 2001 From: Manus Date: Sun, 30 Aug 2026 09:07:15 +0000 Subject: [PATCH] =?UTF-8?q?Checkpoint:=20Pr=C3=A9paration=20recette-produc?= =?UTF-8?q?tion=20:=20manifeste=20Budget=20SI=20align=C3=A9=20avec=20le=20?= =?UTF-8?q?registre=20dashboard,=20visuel=20de=20portail=20s=C3=A9lectionn?= =?UTF-8?q?=C3=A9,=20et=20label=20Traefik=20param=C3=A9trable=20par=20BUDG?= =?UTF-8?q?ET=5FSI=5FDOMAIN=20afin=20que=20la=20production=20r=C3=A9ponde?= =?UTF-8?q?=20sur=20son=20URL=20d=C3=A9di=C3=A9e.=20V=C3=A9rification=20co?= =?UTF-8?q?mpl=C3=A8te=20r=C3=A9ussie=20:=2060=20tests,=20TypeScript=20et?= =?UTF-8?q?=20build.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.json | 6 +++--- docker-compose.yml | 2 +- server/appManifest.test.ts | 22 ++++++++++++++++++++++ server/dockerCompose.test.ts | 1 + todo.md | 8 ++++++++ 5 files changed, 35 insertions(+), 4 deletions(-) create mode 100644 server/appManifest.test.ts diff --git a/app.json b/app.json index ff2eee2..1d5ba0e 100644 --- a/app.json +++ b/app.json @@ -1,14 +1,14 @@ { "id": "itinova-budget-si", - "name": "Gestion Budget Informatique", + "name": "Gestion budget informatique", "category": "SANTINOVA", "urls": { "recette": "https://budget-si.recette.santinova-soft.org", "prod": "https://budget-si.santinova-soft.org" }, "containerName": "itinova-budget-si-app", - "image": "images/budget-si.png", - "giteaRepo": "itinova-budget-si", + "image": "images/budget-si.jpg", + "giteaRepo": "manus-admin/itinova-budget-si", "giteaOwner": "manus-admin", "ci": { "required": true diff --git a/docker-compose.yml b/docker-compose.yml index 7ea74d7..767a794 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -29,7 +29,7 @@ services: - web labels: - "traefik.enable=true" - - "traefik.http.routers.budget-si.rule=Host(`budget-si.recette.santinova-soft.org`)" + - "traefik.http.routers.budget-si.rule=Host(`${BUDGET_SI_DOMAIN:-budget-si.recette.santinova-soft.org}`)" - "traefik.http.routers.budget-si.entrypoints=websecure" - "traefik.http.routers.budget-si.tls.certresolver=letsencrypt" - "traefik.http.services.budget-si.loadbalancer.server.port=3000" diff --git a/server/appManifest.test.ts b/server/appManifest.test.ts new file mode 100644 index 0000000..d96086e --- /dev/null +++ b/server/appManifest.test.ts @@ -0,0 +1,22 @@ +import { readFile } from "node:fs/promises"; +import { resolve } from "node:path"; +import { describe, expect, it } from "vitest"; + +describe("manifeste applicatif Budget SI", () => { + it("déclare les environnements, la catégorie et le dépôt Gitea attendus", async () => { + const raw = await readFile(resolve(process.cwd(), "app.json"), "utf8"); + const manifest = JSON.parse(raw) as Record; + + expect(manifest).toMatchObject({ + id: "itinova-budget-si", + name: "Gestion budget informatique", + category: "SANTINOVA", + giteaRepo: "manus-admin/itinova-budget-si", + image: "images/budget-si.jpg", + urls: { + recette: "https://budget-si.recette.santinova-soft.org", + prod: "https://budget-si.santinova-soft.org", + }, + }); + }); +}); diff --git a/server/dockerCompose.test.ts b/server/dockerCompose.test.ts index 58f858e..5668712 100644 --- a/server/dockerCompose.test.ts +++ b/server/dockerCompose.test.ts @@ -8,5 +8,6 @@ describe("docker-compose de recette", () => { 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"); + expect(compose).toContain("BUDGET_SI_DOMAIN:-budget-si.recette.santinova-soft.org"); }); }); diff --git a/todo.md b/todo.md index b7919ae..a0095e3 100644 --- a/todo.md +++ b/todo.md @@ -204,3 +204,11 @@ - [x] Ouvrir une liasse depuis le bouton de l'interface de recette afin de valider le parcours utilisateur de consultation - [x] Corriger l'alerte frontale indiquant à tort un chiffrement indisponible en recette - [x] Corriger l'accès à la base de recette empêchant la connexion administrateur après le dernier redéploiement + +## Promotion Salaires — recette et production +- [ ] Vérifier la version Salaires active et le statut Gitea de recette avant promotion +- [ ] Mettre à jour le dashboard et le portail de recette pour la fenêtre Salaires +- [ ] Promouvoir la version Salaires validée vers la production via Gitea CI/CD +- [ ] Mettre à jour le dashboard et le portail de production pour la fenêtre Salaires +- [ ] Vérifier les accès HTTPS administrateur et le statut des déploiements dans les deux environnements +- [ ] Paramétrer le domaine Traefik Budget SI par environnement pour que la production réponde sur son URL dédiée