Commit Graph

29 Commits

Author SHA1 Message Date
Manus
5c9618b204 Checkpoint: Déploiements Budget SI finalisés : recette remise en service après redémarrage contrôlé et CI Gitea réussie ; production synchronisée depuis Gitea, migrations automatiques et compte administrateur initial validés ; portails et dashboards recette/production mis à jour. Les contrôles HTTPS administrateur et Salaires sont consignés. 2026-08-30 15:53:25 +00:00
Manus
f759032793 Checkpoint: Correctif de première installation : après les migrations Drizzle, le serveur crée le compte administrateur Itinova requis avec mot de passe haché, sans doublon. Validation complète réussie : 62 tests, TypeScript et build.
All checks were successful
Validation applicative / TypeScript, tests et build (push) Successful in 1h3m35s
2026-08-30 09:54:50 +00:00
Manus
b2c8580382 Checkpoint: Correctif de production : le serveur exécute désormais les migrations Drizzle versionnées avant l'ouverture HTTP, ce qui initialise une base vide lors du premier déploiement. Test de régression ajouté. Validation complète réussie : 61 tests, TypeScript et build.
All checks were successful
Validation applicative / TypeScript, tests et build (push) Successful in 4m45s
2026-08-30 09:40:46 +00:00
Manus
6447389cb8 Checkpoint: Préparation recette-production : manifeste Budget SI aligné avec le registre dashboard, visuel de portail sélectionné, et label Traefik paramétrable par BUDGET_SI_DOMAIN afin que la production réponde sur son URL dédiée. Vérification complète réussie : 60 tests, TypeScript et build.
All checks were successful
Validation applicative / TypeScript, tests et build (push) Successful in 2m22s
2026-08-30 09:07:15 +00:00
Manus
7ee4e848d2 Checkpoint: Clôture Salaires : validation HTTPS administrateur réalisée après correction de la collision DNS MySQL. La page Salaires, les filtres, le statut d'extraction et l'ouverture du PDF via la route protégée sont vérifiés. Tous les contrôles projet sont tracés ; la version fonctionnelle eeac2de est déployée en recette via Gitea CI/CD. 2026-08-30 08:59:05 +00:00
Manus
eeac2de481 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
2026-08-29 23:54:15 +00:00
Manus
0e59dac29f Checkpoint: Correctif UX Salaires : pendant le chargement de la sonde AES-256-GCM, l'interface affiche désormais une vérification neutre et désactive l'import au lieu d'afficher à tort une alerte de blocage. Test de régression ajouté. Validation complète réussie : 58 tests, TypeScript et build.
All checks were successful
Validation applicative / TypeScript, tests et build (push) Successful in 1m52s
2026-08-29 23:40:21 +00:00
Manus
193f7ce32a Checkpoint: Ajout du secours de stockage réservé aux PDF de paie chiffrés : lorsque Forge est indisponible en recette, les octets AES-256-GCM sont stockés dans un volume hôte Docker persistant, jamais dans l'image ni la base. Import, réindexation et consultation passent par cette même abstraction, avec test de round-trip sans Forge. Compose transmet la clé AES et monte le volume dédié. Validation complète : 56 tests, TypeScript, build et format YAML.
All checks were successful
Validation applicative / TypeScript, tests et build (push) Successful in 2m9s
2026-08-29 23:19:21 +00:00
Manus
7698e9f680 Checkpoint: Correctif d'environnement recette : docker-compose transmet désormais explicitement PAYROLL_ENCRYPTION_KEY au service applicatif. La clé AES est déjà configurée de façon sécurisée dans le fichier d'environnement recette, sans affichage de sa valeur. pnpm verify passe après cette correction : TypeScript, 55 tests et build.
All checks were successful
Validation applicative / TypeScript, tests et build (push) Successful in 1m50s
2026-08-29 23:02:19 +00:00
Manus
82de3181df Checkpoint: Fenêtre administrateur Salaires finalisée : import multipart limité, chiffrement AES-256-GCM avant stockage persistant hors conteneur, métadonnées/index métier minimisés en base, consultation PDF déchiffrée côté serveur avec no-store, filtres année/mois et comparaison M-1 expliquée. Réindexation sûre des archives partielles sans écrasement du PDF. Validation réelle sur deux liasses mensuelles : index partiel signalé sans invention de données, comparaison affichée et lecture après redémarrage. 55 tests Vitest, TypeScript et build de production validés.
Some checks failed
Validation applicative / TypeScript, tests et build (push) Failing after 1m54s
2026-08-29 22:40:59 +00:00
Manus
8a58f2c2bd Checkpoint: Déploiement recette validé de la Masse salariale, avec CI/CD Gitea et redéploiement Blue-Green du commit 0a00e70. Les wordmarks de connexion sont désormais intégrés à l'interface pour éviter les erreurs de ressources manus-storage sur la recette. 2026-08-27 16:09:49 +00:00
Manus
0a00e70a9f fix: rendre les wordmarks de connexion indépendants du stockage
All checks were successful
Validation applicative / TypeScript, tests et build (push) Successful in 1m35s
2026-08-27 16:02:12 +00:00
Manus
fe2a266d2d chore: tracer le rétablissement SSH recette
All checks were successful
Validation applicative / TypeScript, tests et build (push) Successful in 1m36s
2026-08-27 15:52:14 +00:00
Manus
15d67924ca chore: tracer le déploiement recette masse salariale 2026-08-27 13:34:51 +00:00
Manus
da407db4de Checkpoint: Ajout du module Masse salariale SANTINOVA : tables de salariés, rémunérations et évolutions manuelles sécurisées par rôle administrateur ; import contrôlé des bulletins 2025 et janvier–août 2026 ; écran tableau 2025–2027 ; tests d'autorisations, d'agrégats et des quatre états UI ; documentation des sources et de la politique d'import. 2026-08-27 13:10:47 +00:00
Manus
2f4b1f2e8e Checkpoint: Déploiement Gitea de recette validé : workflow CI rendu autonome vis-à-vis de GitHub (checkout Gitea interne), signature webhook corrigée, validation CI réussie et redéploiement Blue-Green terminé avec le commit ec597da. 2026-08-27 11:11:10 +00:00
Manus
79411a6801 fix(ci): valider depuis Gitea interne 2026-08-27 10:57:05 +00:00
Manus
3b52527fd0 chore: tracer le déploiement de recette
Some checks failed
Validation applicative / TypeScript, tests et build (push) Failing after 4s
2026-08-27 10:26:54 +00:00
Manus
eec1c4e9f7 chore: synchroniser le CI Gitea et fiabiliser le build Docker 2026-08-27 10:19:39 +00:00
Manus
9a1b9f0ac6 Checkpoint: Correction de l'échec de build cloud : remplacement de l'installation globale flottante de pnpm par Corepack 0.31.0 et pnpm 10.4.1 verrouillé par packageManager, compatible avec pnpm-lock.yaml. Installation figée, TypeScript, 22 tests et build de production vérifiés localement. 2026-08-27 09:51:28 +00:00
Manus
07b96c03c1 Checkpoint: Finalisation du suivi de l'audit : les trois évolutions futures restent documentées comme hors périmètre, sans développement ajouté. 2026-08-17 20:51:21 +00:00
Manus
615dd46059 Checkpoint: Audit de robustesse et maintenabilité : calcul dynamique des tendances OPEX par véritable année N-1, filtrage/validation centralisés des codes établissement, transactions d'import et d'écriture, contraintes uniques CAPEX/OPEX avec déduplication, suppression effective de postes OPEX, nettoyage des gabarits et scripts morts, chargement différé XLSX, documentation métier et 22 tests passants. 2026-08-17 20:50:33 +00:00
Manus
31cdb257fb Checkpoint: Menu latéral : nom utilisateur déplacé tout en bas avec espace libre avant, ajout du menu Tableau de bord Finance sous OPEX (Charges), création de la page dédiée avec accès au dossier OneDrive Windows. 2026-06-12 10:28:47 +00:00
Manus
60fd2b891e Checkpoint: Suppression des 6 lignes parasites en BDD (Infogérance, Sécurité, Applicatifs HEP, Applicatifs SMR, Téléphonie, TOTAL) + filtre PARASITE_PATTERNS dans handleFileImport pour empêcher leur réinsertion lors d'un import Excel. 2026-06-11 08:48:10 +00:00
Manus
0e1cab9f6c Checkpoint: Bug corrigé : ajout contrainte UNIQUE (annee, etablissementCode) sur opex_bases_repartition + déduplication des lignes existantes — le clic ne crée plus de doublon. Nouvelle fonctionnalité : colonne "Tout manuel" (toggle) dans l'onglet Clés de répartition — quand activé pour un établissement, le calcul prorata est ignoré et seuls les montants saisis manuellement dans la vue Établissements sont utilisés. Badge ambre visible dans les deux vues. 2026-06-11 07:57:02 +00:00
Manus
cfeb5196db Checkpoint: Corrections des deux lacunes identifiées dans l'onglet "Clés de répartition" de DSI OPEX :
1. Loading/error state : ClesRepartitionView reçoit désormais isLoadingBases et isErrorBases depuis la requête trpc.opex.getBasesRepartition.useQuery(). Affiche un spinner pendant le chargement et un message d'erreur si la requête échoue (au lieu d'un tableau vide trompeur).
2. Import fichier amélioré : détection intelligente de la feuille (mots-clés OPEX/DSI/répartition/base, insensible aux accents), recherche de l'en-tête dans les 15 premières lignes, normalisation des accents pour la détection des colonnes, message d'erreur détaillé avec les colonnes détectées, toast informatif si plusieurs feuilles présentes.
14 tests Vitest passants. 0 erreur TypeScript.
2026-06-11 07:24:34 +00:00
Manus
841ff1bd09 Checkpoint: Ajout de l'onglet 'Clés de répartition' dans DSI OPEX : tableau éditable avec base de répartition standard et base /HEP par établissement, import fichier Excel/CSV, info année (OPEX N → base N-2). Calcul automatique du poste SAAS DUI Pôle HEP branché sur la colonne /HEP. Nouvelle table opex_bases_repartition avec colonne baseRepartitionHep. Seed 2026 : 64 établissements dont 19 HEP. 14 tests passants, 0 erreur TypeScript. 2026-06-11 07:20:24 +00:00
Manus
020156d62c Checkpoint: Migration complète localStorage → BDD : useBudgetData, ParametresContext, Budget2027, DsiCapex, DsiOpex, ImportModal (indicateur inventaires + suppression double-écriture). Ajout procédures tRPC : inventaire.listMeta, inventaire.getStats, opex.initFromSource, opex.deleteAll, opex.cloneFromN1. 14 tests Vitest passants. 0 erreur TypeScript. 2026-06-10 12:49:29 +00:00
Manus
caf95da1c1 Checkpoint: Migration complète vers authentification locale (JWT + bcrypt) : schéma DB (10 tables), routes tRPC (auth, users, etablissements, inventaire, capex, opex, parametres), page de login avec branding Itinova/Santinova, protection des routes, onglets Établissements et Utilisateurs branchés sur tRPC, import inventaire/établissements/utilisateurs via tRPC, 14 tests Vitest passants. 2026-06-10 12:17:07 +00:00