# 📋 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

