Intègre en un seul commit master les changements de develop : templates email de validation (#28), alignement schéma validations + patches SQL, montée Flutter 3.29 (CI/Docker), correctifs bootstrap web/nginx/API origin et gestion HTTP 201 sur validation dossier famille.
Made-with: Cursor
- Onglet « À valider » (AM + familles), pending-families et détail dossier par numéro.
- Wizards validation AM et famille, modale commune, chargement via GET /dossiers/:num.
- UI : cartes enfants, photo AM (cadre uniforme, ratio), NIR affiché formaté (espaces autour du tiret).
- Backend : DTO / routes parents pending ; scripts de test et mise à jour issue Gitea.
Tickets #107, #119.
Made-with: Cursor
Implémentation de l'API REST pour la gestion de la configuration
système par les administrateurs.
Nouveaux fichiers :
- modules/config/config.controller.ts : Controller REST
- modules/config/dto/update-config.dto.ts : DTO mise à jour
- modules/config/dto/test-smtp.dto.ts : DTO test SMTP
Endpoints créés :
✅ GET /api/v1/configuration/setup/status
→ Vérifier si la configuration initiale est terminée
✅ POST /api/v1/configuration/setup/complete
→ Marquer la configuration comme terminée
✅ POST /api/v1/configuration/test-smtp
→ Tester la connexion SMTP + envoi email de test
✅ PATCH /api/v1/configuration/bulk
→ Mise à jour multiple des configurations
✅ GET /api/v1/configuration
→ Récupérer toutes les configurations (admin)
✅ GET /api/v1/configuration/:category
→ Récupérer par catégorie (email/app/security)
Fonctionnalités :
- Validation des données avec class-validator
- Test SMTP avec Nodemailer
- Envoi d'email de test HTML
- Gestion d'erreurs complète
- Rechargement automatique du cache
- Traçabilité des modifications
Sécurité :
- Guards commentés (à activer avec JWT)
- Validation des catégories
- Mots de passe masqués dans les réponses
Dépendances ajoutées :
- nodemailer ^6.9.16
- @types/nodemailer ^6.4.16
Tests effectués :
✅ GET /setup/status → {setupCompleted: false}
✅ GET /email → 8 configurations email
✅ Build Docker réussi
✅ Toutes les routes mappées correctement
Ref: #6