Files
khadhroony-bot3/ks-config/README.md
2026-08-10 02:44:24 +02:00

64 lines
2.8 KiB
Markdown

<!-- file: ks-config/README.md -->
<!-- version: 9 -->
# 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 `<binary>.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)