0.5.1-pre.007
This commit is contained in:
@@ -1,49 +1,50 @@
|
||||
<!-- file: ks-config/README.md -->
|
||||
<!-- version: 9 -->
|
||||
<!-- version: 10 -->
|
||||
|
||||
# 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.
|
||||
`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 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 ;
|
||||
- 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/ProfileConfig` pour les consommateurs existants ;
|
||||
- rester indépendant de la liste des applications et workers futurs.
|
||||
|
||||
## Composition
|
||||
## Defaults et 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`.
|
||||
Chaque document partagé possède un `default_profile`. Un consommateur qui accepte les defaults n'a pas besoin de composition dédiée.
|
||||
|
||||
Une composition choisit :
|
||||
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.
|
||||
|
||||
- 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 `<binary>.default.config.json` sans créer une branche spécifique dans `ks-config`.
|
||||
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.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.
|
||||
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` ;
|
||||
- `read_listeners_json_file_with_environment`, `listeners_profile` ;
|
||||
- `compose_app_config` ;
|
||||
- `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`, `ProfileConfig` pendant la phase de compatibilité.
|
||||
|
||||
@@ -51,9 +52,9 @@ Les anciens `config/app.config.json` et `config/example.app.config.json` ne sont
|
||||
|
||||
`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.
|
||||
`ks-onchain-transport` peut consommer directement `TransportProfileConfig`.
|
||||
|
||||
Les sections database/data, wallet, execution et demo restent transitoires dans la composition jusqu'au split suivant.
|
||||
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.
|
||||
|
||||
## Documents
|
||||
|
||||
|
||||
Reference in New Issue
Block a user