Files
khadhroony-bot3/ks-config/README.md
2026-08-10 01:36:42 +02:00

48 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- file: ks-config/README.md -->
<!-- version: 8 -->
# ks-config
`ks-config` définit le contrat de configuration générale typé du workspace, son schéma JSON embarqué et les fonctions de chargement, résolution denvironnement, validation et sérialisation.
## Responsabilités
- exposer `AppConfig` et les sections de configuration générale ;
- valider le JSON général contre `config/schemas/app.config.schema.json` ;
- appliquer les invariants métier après désérialisation ;
- charger `.env`, ou le fichier sélectionné par `KS_ENV_FILE`, depuis la racine du workspace ;
- résoudre les placeholders namespacés `${KS_*}` / `${KB_*}` et leurs fallbacks ;
- sélectionner le profil applicatif actif ;
- exporter les types généraux nécessaires au frontend avec `ts-rs`.
## Hors périmètre
`ks-config` ne possède plus le contrat logging. `LoggingConfig`, les routes, filtres, profils logging et `config/schemas/logging.config.schema.json` appartiennent à `ks-logging`.
La crate ninitialise ni PostgreSQL, ni les transports et ne manipule aucun secret de wallet. Elle fournit uniquement la configuration générale validée à ces consommateurs.
## Surface publique
Les principales fonctions sont `read_config_json_file_with_environment`, `parse_config_json`, `validate_config`, `validate_config_json_schema`, `active_profile` et les sérialiseurs JSON.
Les types publics couvrent les profils applicatifs, endpoints, listeners, base de données, wallet, exécution et démonstration.
## Relations
- dépend de `ks-core` pour les erreurs structurées ;
- fournit les profils généraux à `ks-store`, `ks-onchain-transport`, `ks-pipeline`, `ks-wallet` et aux applications ;
- fournit à `ks-logging` les helpers génériques de chargement `.env` et de résolution des placeholders ;
- embarque [`../config/schemas/app.config.schema.json`](../config/schemas/app.config.schema.json) ;
- utilise [`../config/app.config.json`](../config/app.config.json) comme configuration générale chargée par défaut et [`../config/example.app.config.json`](../config/example.app.config.json) comme exemple minimal conforme.
## Statut
Le split config/logging est effectif : un profil applicatif ne transporte plus de bloc logging et la sélection logging est indépendante. La prerelease suivante sépare les représentations source/runtime/public/diagnostic et ferme lexposition des secrets résolus.
## Documents
- [Utilisation](USAGE.md)
- [Travaux restants](TODO.md)
- [Historique](CHANGELOG.md)
- [Configuration locale](../config/README.md)