Files
unionflow-server-api/PROCHAINES_ETAPES.md
2025-11-17 16:02:04 +00:00

6.4 KiB

Prochaines Étapes - Migration UUID UnionFlow

État actuel

Migration Backend - TERMINÉE

  • Tous les repositories utilisent BaseRepository<Entity> avec UUID
  • Toutes les entités utilisent BaseEntity avec UUID
  • Tous les services utilisent UUID
  • Tous les endpoints REST utilisent UUID
  • Migration Flyway créée (V1.3__Convert_Ids_To_UUID.sql)

Migration Client - TERMINÉE

  • Services client (MembreService, AssociationService) - UUID
  • DTOs principaux (MembreDTO, AssociationDTO, SouscriptionDTO, FormulaireDTO) - UUID
  • LoginResponse et classes internes - UUID
  • UserSession et classes internes - UUID
  • AuthenticationService - UUIDs fixes pour démo
  • Tous les Beans JSF (14 fichiers) - UUID

📋 Prochaines étapes prioritaires

Nettoyage du code source - TERMINÉ

  • Suppression des données mockées dans tous les Beans JSF principaux
  • Suppression des TODOs dans NotificationService et DashboardServiceImpl
  • Remplacement de System.out.println par LOGGER dans ConfigurationBean
  • Migration de RapportsBean et DocumentsBean vers API réelles
  • Correction du path AnalyticsService pour correspondre au backend
  • Remplacement de tous les System.out.println restants par LOGGER
  • Nettoyage de tous les TODOs restants (NotificationService, MembreListeBean, MembreInscriptionBean)
  • Implémentation du téléchargement Excel dans MembreListeBean

1. Tester la migration Flyway 🧪 PRIORITÉ HAUTE

Action requise : Exécuter la migration V1.3__Convert_Ids_To_UUID.sql sur une base de données de test PostgreSQL.

Étapes :

  1. Créer une base de données de test
  2. Exécuter les migrations Flyway jusqu'à V1.2
  3. Insérer des données de test avec des IDs Long
  4. Exécuter la migration V1.3
  5. Vérifier que :
    • Toutes les colonnes id sont de type UUID
    • Toutes les clés étrangères sont mises à jour
    • Les données sont préservées (si migration de données)
    • Les index fonctionnent correctement

Commande de test :

# Avec Quarkus en mode dev
mvn quarkus:dev

# Ou exécuter Flyway manuellement
mvn flyway:migrate

2. Exécuter les tests complets PRIORITÉ HAUTE

Action requise : Lancer tous les tests unitaires et d'intégration pour valider la migration UUID.

Commandes :

# Compiler et tester
mvn clean test

# Tests avec couverture
mvn clean test jacoco:report

# Tests d'intégration
mvn verify

Points à vérifier :

  • Tous les tests unitaires passent
  • Tous les tests d'intégration passent
  • Aucune erreur de compilation
  • Couverture de code maintenue

3. Mettre à jour la documentation OpenAPI/Swagger 📚 PRIORITÉ MOYENNE

Action requise : Vérifier que la documentation OpenAPI reflète l'utilisation d'UUID dans tous les schémas.

Vérifications :

  • Les schémas de DTOs utilisent type: string, format: uuid
  • Les exemples dans la documentation utilisent des UUIDs
  • Les paramètres de chemin utilisent UUID

Accès : http://localhost:8080/q/swagger-ui

4. Vérifier et nettoyer IdConverter 🗑️ PRIORITÉ BASSE

Action requise : Vérifier si IdConverter est encore utilisé dans le code, puis le supprimer si obsolète.

Vérification :

# Rechercher les utilisations
grep -r "IdConverter" unionflow/

Si non utilisé :

  • Supprimer IdConverter.java
  • Mettre à jour la documentation

5. Surveiller les performances 📊 PRIORITÉ BASSE

Action requise : Surveiller les performances des requêtes avec UUID après déploiement.

Vérification :

# Rechercher les utilisations
grep -r "IdConverter" unionflow/

Si non utilisé :

  • Supprimer IdConverter.java
  • Mettre à jour la documentation

6. Mettre à jour la documentation de migration 📝 PRIORITÉ BASSE

Action requise : Finaliser la documentation complète de la migration UUID.

Points à surveiller :

  • Temps de réponse des requêtes par ID
  • Performance des index UUID
  • Taille des index
  • Temps d'insertion avec UUID

Outils :

  • Logs de requêtes Hibernate
  • Métriques Quarkus
  • Profiling avec JProfiler ou VisualVM

📝 Notes importantes

UUIDs fixes pour la démonstration

Pour maintenir la cohérence dans les données de démonstration, utilisez des UUIDs fixes :

// UUIDs fixes pour démo
UUID.fromString("00000000-0000-0000-0000-000000000001")  // Super Admin
UUID.fromString("00000000-0000-0000-0000-000000000002")  // Admin
UUID.fromString("00000000-0000-0000-0000-000000000003")  // Membre
UUID.fromString("00000000-0000-0000-0000-000000000010")  // Organisation

Conversion automatique JAX-RS

JAX-RS/MicroProfile REST Client convertit automatiquement les UUID en String dans les URLs. Aucune configuration supplémentaire n'est nécessaire.

Validation UUID

Les UUIDs sont validés automatiquement par JAX-RS. Les UUIDs invalides génèrent une 400 Bad Request.

🎯 Checklist finale

Avant de considérer la migration comme terminée :

  • Tous les Beans JSF migrés vers UUID
  • Migration Flyway testée sur base de test
  • Tous les tests passent
  • Documentation OpenAPI mise à jour
  • DTOs client restants mis à jour
  • IdConverter supprimé (si non utilisé)
  • Performance validée
  • Documentation de migration complète

📚 Documentation créée

  1. MIGRATION_UUID.md - Documentation complète backend
  2. MIGRATION_UUID_CLIENT.md - Guide migration client
  3. RESUME_MIGRATION_UUID.md - Résumé global
  4. PROCHAINES_ETAPES.md - Ce document

Conclusion

La migration UUID est quasi-complète. Il reste principalement à :

  1. TERMINÉ : Finaliser les Beans JSF
  2. EN COURS : Tester la migration Flyway
  3. EN COURS : Valider avec les tests complets

Date : 17 janvier 2025
Version : 2.1
Statut : 🟢 Backend terminé | 🟢 Client terminé | 🟡 Tests et validation en cours

📝 Note importante

Les Beans JSF ont été migrés avec succès !

Tous les 14 Beans JSF ont été mis à jour pour utiliser UUID :

  • DemandesBean, SuperAdminBean, MembreRechercheBean, MembreProfilBean
  • EvenementsBean, EntitesGestionBean, DocumentsBean, DemandesAideBean
  • CotisationsGestionBean, CotisationsBean, RapportsBean
  • SouscriptionBean, FormulaireBean, AdminFormulaireBean

Voir PROCHAINES_ETAPES_APRES_BEANS.md pour les étapes suivantes.