Files
2026-08-16 16:26:03 +02:00

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 debug limité 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/trace des 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.011 marquée réalisée dans le plan ;
  • pre.012 marqué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 .env directement ;
  • 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

  1. créer une variable KSP/KSPB de test depuis le formulaire ;
  2. vérifier source_changed=true et effective_changed=true lorsqu'aucune valeur process ne la masque ;
  3. vérifier que le rapport rechargé affiche la variable avec source=dotenv ;
  4. supprimer la variable ;
  5. 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