0.5.1-pre.007

This commit is contained in:
2026-08-10 09:28:57 +02:00
parent 34a670eaec
commit a2820062eb
81 changed files with 3357 additions and 2381 deletions

View File

@@ -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