Compare commits

...

2 Commits

6 changed files with 47 additions and 10 deletions

View File

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

View File

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

View File

@@ -37,3 +37,9 @@ Après le chargement des requêtes, le filtre de mai 2026 a affiché 18 bulletin
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.
La CI Gitea `validate.yml` associée au correctif de résolution MySQL a terminé avec succès. Le contrôle de déploiement final reste centré sur la reconnexion administrateur et la page Salaires en HTTPS après le redémarrage applicatif.
Après le déploiement du correctif, la connexion avec le compte administrateur de recette a de nouveau abouti et l'interface générale s'affiche sans erreur de base de données.
La validation finale en HTTPS a confirmé le menu **Santinova > Salaires**, l'absence de fausse alerte de chiffrement, l'affichage de la liasse archivée et l'ouverture de cette liasse exclusivement via le bouton de consultation protégé. Aucun lien de stockage n'est exposé dans l'interface.

View File

@@ -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<string, unknown>;
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",
},
});
});
});

View File

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

20
todo.md
View File

@@ -185,7 +185,7 @@
## Déploiement de recette — Fenêtre Salaires
- [x] Vérifier les contrôles complets avant la publication
- [x] Pousser la fenêtre Salaires vers Gitea et déclencher la CI/CD de recette
- [ ] Vérifier l'application Salaires déployée en HTTPS sur la recette
- [x] Vérifier l'application Salaires déployée en HTTPS sur la recette
- [x] Configurer la clé AES des bulletins dans l'environnement sécurisé de recette et recréer le conteneur
- [x] Transmettre explicitement PAYROLL_ENCRYPTION_KEY au conteneur applicatif de recette
- [x] Vérifier la disponibilité du stockage persistant chiffré dans l'environnement de recette
@@ -194,13 +194,21 @@
- [x] Appliquer et enregistrer les migrations Salaires dans la base de recette avant l'import mensuel
## Exécution en arrière-plan
- [ ] Finaliser la fenêtre Salaires et le déploiement de recette sans intervention utilisateur
- [x] Finaliser la fenêtre Salaires et le déploiement de recette sans intervention utilisateur
## Validation bout en bout — Salaires
- [x] Importer une liasse PDF de contrôle avec un compte administrateur, contrôler son index, le filtre et la consultation sécurisée
- [x] Redémarrer le serveur puis relire une liasse archivée pour confirmer la persistance hors conteneur
- [x] Permettre à un administrateur de réindexer sans écraser une liasse déjà archivée
- [ ] 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
- [ ] 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
- [x] Vérifier visuellement la page Salaires de recette dans une session administrateur : navigation, filtres, liste et statuts
- [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