4.7 KiB
Delta 0.1.4-pre.012 — management/test .env
Statut
Tranche livrée pour validation locale.
0.1.4-pre.011-fix.001 est considérée validée : fmt, check, clippy, les tests Config Desk, les tests Config, les cinq audits ownership et les tests d'API publique sont propres ; le runtime Environnement retourne correctement les trois variables .env actuellement configurées.
Objectif
Rendre fonctionnelle la zone de management/test .env du panneau Environnement / .env, exclusivement via ConfigManagement, afin de démontrer les créations/modifications/suppressions, le rapport de changement et la priorité process > .env sans lecture/écriture directe du fichier par l'application.
Modifications
Backend
- ajout du DTO TS-RS
ConfigEnvironmentChangeDto; - ajout des services applicatifs :
environment::set_value()->ConfigManagement::set_dotenv_value();environment::remove_value()->ConfigManagement::remove_dotenv_value();
- projection sûre de
ConfigEnvironmentChangeReport:source_changed;effective_changed;shadowed_by_process_environment;reload_required;
- ajout des commandes Tauri centralisées :
set_environment_value;remove_environment_value;
- classification de sensibilité déléguée à
ConfigSensitivity::from_variable_name(); - logging
debuglimité au nom de variable, à l'opération, à la sensibilité et aux booléens du rapport ; - aucune valeur soumise n'est journalisée.
Frontend
- transformation de la vue Environnement en surface de management/test complète ;
- formulaire permettant :
- sélection d'une variable existante via la table/datalist ;
- saisie d'un nouveau nom
KSP_*/KSPB_*; - création/modification ;
- suppression avec confirmation ;
- aucune ancienne valeur n'est préchargée dans le champ d'édition ;
- les nouvelles saisies Secret sont masquées ;
- affichage explicite du dernier
ConfigEnvironmentChangeReport; - rechargement du rapport Config après chaque mutation ;
- destruction/réinitialisation propre de DataTables avant remplacement des lignes ;
- clic sur une ligne du rapport = sélection du nom uniquement ;
- instrumentation
debug/tracedes actions et transitions sans contenu de valeur.
Tests
- classification de sensibilité de mutation par le contrat Config ;
- stabilité des labels d'opération
set/remove; - conservation des tests de projection sûre/redacted du rapport Environnement.
Documentation
pre.011marquée réalisée dans le plan ;pre.012marquée en cours ;- README/USAGE/TODO alignés sur la nouvelle surface de mutation
.env; - scénario de validation du shadowing documenté.
Sécurité / ownership
- l'application ne lit ni ne parse
.envdirectement ; - l'application ne modifie jamais l'environnement process hérité ;
- Config reste seul responsable de la validation des noms, de l'encodage
.env, de la persistence atomique et du calcul desired/effective ; - le rapport ordinaire continue à redacter les Secrets ;
- le flux reveal de valeurs réelles reste hors périmètre et réservé à
pre.013.
Scénarios de validation
Mutation normale
- créer une variable KSP/KSPB de test depuis le formulaire ;
- vérifier
source_changed=trueeteffective_changed=truelorsqu'aucune valeur process ne la masque ; - vérifier que le rapport rechargé affiche la variable avec
source=dotenv; - supprimer la variable ;
- vérifier qu'elle disparaît du rapport si elle n'existe pas dans le process.
Shadowing process > .env
Lancer ponctuellement Config Desk avec KSP_LOGS_DIRECTORY défini dans le process, puis modifier la même variable dans .env via le panneau.
Résultat attendu :
source_changed = true
effective_changed = false
shadowed_by_process_environment = true
reload_required = false
Le desired .env doit changer alors que l'effective reste issue du process.
Placeholder Logging
Sans override process, modifier KSP_LOGS_DIRECTORY depuis le panneau puis recharger le panneau Profils. /logs_directory doit refléter la nouvelle valeur/provenance .env dans l'effective sûre. Le runtime Logging déjà installé n'est pas hot-reloadé dans cette tranche ; cette responsabilité reste prévue en pre.016.
Version technique
workspace.package.version = "0.1.4-pre.12"
Validation locale demandée
cargo fmt --all
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-app-config-desk
cargo test -p ksp-config-lib
cargo tree -p ksp-app-config-desk
cargo tauri dev -c crates/ksp-app-config-desk/tauri.conf.json