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