ks-config
ks-config définit le contrat de configuration générale 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 générale ; - valider le JSON général contre
config/schemas/app.config.schema.json; - appliquer les invariants métier après désérialisation ;
- charger
.env, ou le fichier sélectionné parKS_ENV_FILE, depuis la racine du workspace ; - résoudre les placeholders namespacés
${KS_*}/${KB_*}et leurs fallbacks ; - sélectionner le profil applicatif actif ;
- exporter les types généraux nécessaires au frontend avec
ts-rs.
Hors périmètre
ks-config ne possède plus le contrat logging. LoggingConfig, les routes, filtres, profils logging et config/schemas/logging.config.schema.json appartiennent à ks-logging.
La crate n’initialise ni PostgreSQL, ni les transports et ne manipule aucun secret de wallet. Elle fournit uniquement la configuration générale 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 applicatifs, endpoints, listeners, base de données, wallet, exécution et démonstration.
Relations
- dépend de
ks-corepour les erreurs structurées ; - fournit les profils généraux à
ks-store,ks-onchain-transport,ks-pipeline,ks-walletet aux applications ; - fournit à
ks-loggingles helpers génériques de chargement.envet de résolution des placeholders ; - embarque
../config/schemas/app.config.schema.json; - utilise
../config/app.config.jsoncomme configuration générale chargée par défaut et../config/example.app.config.jsoncomme exemple minimal conforme.
Statut
Le split config/logging est effectif : un profil applicatif ne transporte plus de bloc logging et la sélection logging est indépendante. La prerelease suivante sépare les représentations source/runtime/public/diagnostic et ferme l’exposition des secrets résolus.