# ks-config `ks-config` fournit les contrats de configuration généralistes Khadhroony Solana, les chargeurs de documents spécialisés et la résolution des compositions utilisées par les binaires. ## Responsabilités - charger l'environnement du workspace et résoudre les placeholders `${KS_*}` / `${KB_*}` ; - valider les documents transport, listeners et composition contre leurs schémas sous `config/schemas/` ; - fournir les types partagés d'endpoints, listeners et profils runtime ; - résoudre les références d'une composition vers des profils transport/listeners ; - reconstruire temporairement `AppConfig/ProfileConfig` pour les consommateurs existants ; - rester indépendant de la liste des applications et workers futurs. ## Composition Le desktop possède `config/kb-app-demo-desktop.default.config.json`. Le CLI des scénarios possède `config/ks-pipeline-demo-scenarios.default.config.json`. Une composition choisit : - les documents partagés à charger ; - le profil logging ; - le profil transport ; - le profil listeners ; - temporairement les sections encore non séparées. Un futur worker pourra donc ajouter son propre `.default.config.json` sans créer une branche spécifique dans `ks-config`. ## Documents spécialisés actuels - `config/transport.config.json` / `config/schemas/transport.config.schema.json` ; - `config/listeners.config.json` / `config/schemas/listeners.config.schema.json` ; - `config/logging.config.json` reste possédé par `ks-logging` ; - `config/schemas/resolved.app.config.schema.json` décrit uniquement le contrat runtime transitoire. Les anciens `config/app.config.json` et `config/example.app.config.json` ne sont plus des fichiers runtime. ## API publique principale - `read_composed_app_config_with_environment` ; - `parse_composition_json`, `composition_profile`, `active_composition_profile` ; - `read_transport_json_file_with_environment`, `transport_profile` ; - `read_listeners_json_file_with_environment`, `listeners_profile` ; - `compose_app_config` ; - `load_workspace_environment`, `resolve_environment_placeholders` ; - `AppConfig`, `ProfileConfig` pendant la phase de compatibilité. ## Frontières `ks-logging` dépend de `ks-config` pour les helpers d'environnement, mais `ks-config` ne possède aucun type logging runtime. `ks-onchain-transport` peut consommer directement `TransportProfileConfig`. Un worker n'a donc pas besoin d'un profil applicatif complet pour construire ses pools réseau. Les sections database/data, wallet, execution et demo restent transitoires dans la composition jusqu'au split suivant. ## Documents - [Utilisation](USAGE.md) - [Travaux restants](TODO.md) - [Historique](CHANGELOG.md) - [Configuration locale](../config/README.md)