kb-config
kb-config définit le contrat de configuration typé du workspace, son schéma JSON embarqué et les fonctions de chargement, résolution d’environnement, validation et sérialisation.
Responsabilités
- exposer
AppConfiget les sections de configuration publiques ; - valider le JSON contre le schéma embarqué ;
- appliquer les invariants métier après désérialisation ;
- charger
.envet.env.localdepuis la racine du workspace ; - résoudre les placeholders
${NAME}et${NAME:-fallback}; - sélectionner le profil actif ;
- exporter les types nécessaires au frontend avec
ts-rs.
Hors périmètre
La crate n’initialise ni le logging, ni PostgreSQL, ni les transports et ne manipule aucun secret de wallet. Elle fournit uniquement la configuration validée à ces consommateurs.
Surface publique
Les principales fonctions sont read_config_json_file_with_environment, parse_config_json, validate_config, validate_config_json_schema, active_profile et les sérialiseurs JSON. Les types publics couvrent les profils, endpoints, listeners, logging, base de données, wallet, exécution et démonstration.
Relations
- dépend de
kb-corepour les erreurs structurées ; - alimente
kb-logging,kb-store,kb-onchain-transport,kb-pipeline,kb-walletet les applications ; - utilise
../config/example.config.jsonet../config/schema.config.jsoncomme exemple utilisateur et contrat de schéma actifs.
Statut
La configuration actuelle est fonctionnelle et validée, mais son format 0.4.8 reste monolithique. Le cadrage 0.5.0-pre.002 confirme que 0.5.1 séparera la configuration générale et le logging en documents et schémas distincts, introduira le namespace d’environnement KS_* et séparera les représentations source, runtime et publiques afin qu’aucun secret résolu ne soit exposé.