Audit "100%" des routes backend — gestionFichePaie (PaySlip Pro)¶
Contexte¶
Série d'audits itératifs (2026-06-08 au 2026-06-09) pour valider l'ensemble des routes backend de gestionFichePaie avec des données réelles seedées, jusqu'à atteindre une couverture fonctionnelle complète. Complète l'inventaire des routes du 2026-06-04.
Contenu¶
Inventaire des routes (2026-06-04) — 92 routes, 10 modules¶
| Module | Nb routes | Préfixe |
|---|---|---|
| Auth | 22 | /api/auth |
| UserAdmin | 11 | /api/admin/users |
| Roles | 6 | /api/admin/roles |
| Employes | 15 | /api/v1/paie/employes |
| Bulletins | 12 | /api/v1/paie/bulletins |
| Declarations | 5 | /api/v1/paie/declarations |
| Rapports | 4 | /api/v1/paie/rapports |
| Configuration | 17 | /api/v1/paie/configuration |
| Administration | 12 | /api/v1/paie/administration |
| Audit Référentiel | 8 | /api/admin/audit |
Le module Auth (22 routes) suit la même structure que celui documenté pour ProjetESM/jobPipeline : connexion, 2FA (TOTP+backup codes), mots de passe, sessions, tokens, profil.
Progression de l'audit (2026-06-08 → 09)¶
Phase 1 — Existence : 99/99 routes répondent (aucun 404).
Phase 2 — Authentifié : 69/99 passent initialement, 30 erreurs 500.
Cause découverte : architecture multi-tenant — les données de test
appartenaient à kanmaber@gmail.com, pas au compte de test
fullstack@test.com utilisé pour l'audit. Correctif : seed manuel de 3
employés + déclarations + bulletin pour ce compte de test.
Phase 3 — CRUD réaliste : 13/14 passent avec données seedées.
Phase 4 — POST fonctionnels : 5/9 créent avec les bons payloads dès
le départ ; les 4 restants bloqués par des détails de format (contrainte
unique idUtilisateur,dateDebut sur CNSS, champ dateEffective au lieu
de dateDebut sur VPS, enum TypeCalculTaxe vs valeur "FIXE",
idOrganisation requis + création imbriquée sur les projets).
Enseignements techniques capitalisés¶
- Payload employé : champs à la racine, pas imbriqués sous
employe: {}. - Payload prime :
codeetnomobligatoires ; enumTypeCalculPrime=MONTANT_FIXE,POURCENTAGE_BASE,POURCENTAGE_BRUT. - CNSS/ITS/VPS : contraintes d'unicité par
idUtilisateur+ date — toujours utiliser une date différente pour retester une création. - Projets : nécessite
idOrganisationvalide (FK) — pas de création imbriquée d'utilisateur permise. - Bulletins : l'employé doit être affecté à un projet avant de pouvoir générer un bulletin.
Décision / Conclusion¶
Score final : 99/99 routes existent, 69/99 passent en authentifié après correction du problème multi-tenant, 13/14 CRUD réalistes OK. Les 5 routes POST restantes nécessitent des corrections de validateurs (formats de payload) plutôt qu'un problème d'architecture — travail de finition, pas de refonte.
À faire¶
- Corriger le validateur de création de projet (
idOrganisationrequis, pas de nested create). - Aligner le nom de champ
dateEffective/dateDebutpour la config VPS. - Vérifier la valeur exacte attendue par l'enum
TypeCalculTaxe(FIXEsemble invalide).
Liens connexes¶
- DDD_Module/architecture/deploiement-monorepo — architecture du projet
- DDD_Module/debug/erreurs-deploiement-resolu — autres pièges de déploiement du même projet
- jobPipeline/architecture/procedure-cablage-auth-package — module Auth très similaire (même origine ProjetESM)