# 📋 Organisation de la Configuration - Best Practices ## ❌ Problème actuel : Doublons entre les fichiers Il y a des configurations dupliquées entre : - `application.properties` (avec préfixes `%dev.` et `%prod.`) - `application-dev.properties` (sans préfixe) - `application-prod.properties` (presque vide) ## ✅ Solution recommandée : Deux approches possibles ### Approche 1 : Tout dans application.properties (Recommandée) **Principe** : Un seul fichier avec des sections claires ``` application.properties ├── Configuration de base (tous profils) ├── Section %dev.* (surcharges dev) └── Section %prod.* (surcharges prod) application-dev.properties └── UNIQUEMENT les surcharges spécifiques non couvertes par %dev.* application-prod.properties └── UNIQUEMENT les surcharges spécifiques non couvertes par %prod.* ``` **Avantages** : - ✅ Tout est visible au même endroit - ✅ Facile de comparer dev vs prod - ✅ Moins de fichiers à maintenir ### Approche 2 : Séparation complète (Alternative) **Principe** : Chaque profil dans son propre fichier ``` application.properties └── Configuration de base uniquement (sans préfixes %dev/%prod) application-dev.properties └── TOUTES les configurations dev (sans préfixe %dev.) application-prod.properties └── TOUTES les configurations prod (sans préfixe %prod.) ``` **Avantages** : - ✅ Séparation claire des environnements - ✅ Fichiers plus petits - ✅ Facile de voir ce qui change entre dev et prod ## 🎯 Recommandation pour ce projet **Utiliser l'Approche 1** car : 1. La configuration OIDC est déjà bien organisée dans `application.properties` 2. `application-dev.properties` devrait contenir UNIQUEMENT : - Logging spécifique dev - Surcharges non couvertes par `%dev.*` dans `application.properties` 3. `application-prod.properties` peut être supprimé ou gardé pour des surcharges très spécifiques ## 📝 Règles à suivre 1. **Pas de doublons** : Si une propriété est dans `application.properties` avec `%dev.`, ne pas la remettre dans `application-dev.properties` 2. **Ordre de priorité** (du plus spécifique au moins spécifique) : - Variables d'environnement - `application-{profile}.properties` - `%{profile}.property` dans `application.properties` - `property` dans `application.properties` 3. **Clarté** : Un commentaire indiquant où trouver la configuration principale