ks-config
ks-config fournit les contrats de configuration généralistes Khadhroony Solana, les chargeurs des documents spécialisés et la résolution des compositions facultatives utilisées par les binaires.
Responsabilités
- charger l'environnement du workspace et résoudre les placeholders
${KS_*}/${KB_*}; - valider les documents transport, listeners, store, wallet, execution et composition contre leurs schémas sous
config/schemas/; - fournir les types partagés d'endpoints, listeners, stockage, wallet, exécution et profils runtime ;
- résoudre les defaults de chaque document ou les overrides d'une composition ;
- refuser une référence de fichier ou de profil inexistante ;
- reconstruire temporairement
AppConfig/ProfileConfigpour les consommateurs existants ; - rester indépendant de la liste des applications et workers futurs.
Defaults et composition
Chaque document partagé possède un default_profile. Un consommateur qui accepte les defaults n'a pas besoin de composition dédiée.
Le desktop possède config/kb-app-demo-desktop.default.config.json parce qu'il sélectionne des combinaisons propres à l'application. ks-pipeline-demo-scenarios utilise directement les defaults partagés ; KS_DEVNET_CONFIG_PATH permet encore un override explicite lorsque nécessaire.
Un futur worker pourra ajouter son propre <binary>.default.config.json uniquement s'il doit remplacer des fichiers/profils ou ajouter des paramètres propres au binaire.
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/store.config.json/config/schemas/store.config.schema.json;config/wallet.config.json/config/schemas/wallet.config.schema.json;config/execution.config.json/config/schemas/execution.config.schema.json;config/logging.config.jsonreste possédé parks-logging;config/schemas/resolved.app.config.schema.jsondécrit uniquement le contrat runtime transitoire.
Les valeurs globales telles que logs_directory et wallets_directory ne sont pas des propriétés de profils.
API publique principale
read_composed_app_config_with_environment;read_default_shared_app_config_with_environment;parse_composition_json,composition_profile,active_composition_profile;read_transport_json_file_with_environment,transport_profile,default_transport_profile;read_listeners_json_file_with_environment,listeners_profile,default_listeners_profile;read_store_json_file_with_environment,store_profile,default_store_profile;read_wallet_json_file_with_environment,wallet_profile,default_wallet_profile;read_execution_json_file_with_environment,execution_profile,default_execution_profile;load_workspace_environment,resolve_environment_placeholders;AppConfig,ProfileConfigpendant 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.
Les dérivations TS-RS des types de ks-config sont encore présentes pendant pre.007, mais elles ne sont pas considérées comme une frontière durable. L'audit montre que le frontend desktop n'importe pas directement ces bindings ; leur suppression ou réduction est prévue avec les DTO publics sûrs de la prochaine prerelease.