L'édition de fichier nécessitait que le process web ait un accès en
écriture sur .env — problématique en prod (permissions, plusieurs
instances). À la place :
- Table `settings` (clé/valeur) + SettingsRegistry, une liste blanche
explicite des réglages modifiables (mail, OnlyOffice, GLPI, nom/URL de
l'app) mappés vers leur chemin de config Laravel.
- Volontairement exclu : tout ce qui touche à l'infrastructure (APP_KEY,
DB_*, SESSION_DRIVER, CACHE_STORE, QUEUE_CONNECTION...) — ces valeurs
sont nécessaires avant même qu'une connexion BDD existe, donc une
surcharge en base ne serait pas fiable et reste réservée au .env.
- AppServiceProvider applique les surcharges au boot (cache 5 min,
invalidé immédiatement à l'enregistrement) ; le reste du code continue
de lire config() normalement, sans changement ailleurs.
- Tant qu'aucun réglage n'est enregistré, le comportement reste identique
au .env actuel — transition sans rupture.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Nouvelle page "Configuration (.env)" réservée au rôle Administrateur :
- EnvFileManager lit/réécrit le .env ligne à ligne en préservant
commentaires et mise en forme, avec écriture atomique (fichier
temporaire + rename).
- Variables critiques (APP_KEY, DB_*, SESSION_DRIVER) en lecture seule
pour éviter de casser la connexion base de données ou de bloquer
l'accès admin — protection appliquée aussi côté serveur, pas
seulement dans l'affichage.
- Valeurs sensibles (mots de passe, jetons, clés) masquées par défaut
avec un bouton de révélation par champ.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>