2.7 KiB
2.7 KiB
Guide de configuration
Objectif
Ce guide décrit le chargement et l’utilisation de la configuration bot3. La référence d’API détaillée reste kb-config/USAGE.md.
Fichiers actifs
config/example.config.json: exemple utilisateur complet ;config/schema.config.json: contrat JSON formel ;.envet variantes locales : valeurs d’environnement non versionnées ;.env.example: noms de variables attendues sans secrets.
Le format actif est JSON. Le futur split de configuration prévu en 0.5.x ne modifie pas le contrat actuel.
Séquence de chargement
- charger les fichiers d’environnement autorisés avec
load_workspace_environment; - lire le fichier JSON ;
- résoudre les placeholders
${NAME}ou${NAME:-fallback}; - parser avec
load_config_from_strouload_config_from_path; - valider le schéma et les invariants typés ;
- sélectionner le profil actif avec
active_profile.
Exemple opérateur
let environment = match kb_config::load_workspace_environment(
std::path::Path::new("."),
) {
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
let config = match kb_config::load_config_from_path(
std::path::Path::new("config/example.config.json"),
) {
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
let profile = match kb_config::active_profile(&config) {
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
println!("loaded environment files={}", environment.loaded_files.len());
println!("active profile={}", profile.name);
Invariants
- aucun secret ne doit être ajouté à l’exemple versionné ;
- les placeholders non résolus doivent provoquer un diagnostic explicite ;
- le schéma embarqué et
config/schema.config.jsondoivent rester identiques ; - une sérialisation publique doit être précédée d’une validation ;
- les noms de profils et rôles d’endpoints doivent rester cohérents avec leurs consommateurs.
Diagnostic
Pour isoler une erreur :
- afficher la liste des fichiers d’environnement chargés ;
- résoudre le JSON sans l’écrire dans les logs s’il contient des secrets ;
- valider le schéma ;
- valider le modèle typé ;
- vérifier le profil actif ;
- vérifier les rôles HTTP, WebSocket, stockage et logging.
Références
kb-config/README.md;kb-config/USAGE.md;kb-config/TODO.md;config/README.md;docs/decisions/WINCODE_COMPATIBILITY_POLICY.md.