42 lines
1.9 KiB
Markdown
42 lines
1.9 KiB
Markdown
<!-- file: kb-config/README.md -->
|
||
<!-- version: 4 -->
|
||
|
||
# kb-config
|
||
|
||
`kb-config` définit le contrat de configuration typé du workspace, son schéma JSON embarqué et les fonctions de chargement, résolution d’environnement, validation et sérialisation.
|
||
|
||
## Responsabilités
|
||
|
||
- exposer `AppConfig` et les sections de configuration publiques ;
|
||
- valider le JSON contre le schéma embarqué ;
|
||
- appliquer les invariants métier après désérialisation ;
|
||
- charger `.env` et `.env.local` depuis la racine du workspace ;
|
||
- résoudre les placeholders `${NAME}` et `${NAME:-fallback}` ;
|
||
- sélectionner le profil actif ;
|
||
- exporter les types nécessaires au frontend avec `ts-rs`.
|
||
|
||
## Hors périmètre
|
||
|
||
La crate n’initialise ni le logging, ni PostgreSQL, ni les transports et ne manipule aucun secret de wallet. Elle fournit uniquement la configuration 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, endpoints, listeners, logging, base de données, wallet, exécution et démonstration.
|
||
|
||
## Relations
|
||
|
||
- dépend de `kb-core` pour les erreurs structurées ;
|
||
- alimente `kb-logging`, `kb-store`, `kb-onchain-transport`, `kb-pipeline`, `kb-wallet` et les applications ;
|
||
- utilise [`../config/example.config.json`](../config/example.config.json) et [`../config/schema.config.json`](../config/schema.config.json) comme exemple utilisateur et contrat de schéma actifs.
|
||
|
||
## Statut
|
||
|
||
La configuration actuelle est fonctionnelle et validée. Un futur découpage de la configuration générale et du logging est prévu en `0.5.x` afin de réduire les duplications entre profils.
|
||
|
||
## Documents
|
||
|
||
- [Utilisation](USAGE.md)
|
||
- [Travaux restants](TODO.md)
|
||
- [Historique](CHANGELOG.md)
|
||
- [Architecture](../docs/architecture/ARCHITECTURE.md)
|