0.5.0-pre.002

This commit is contained in:
2026-08-09 17:47:35 +02:00
parent c9241622f2
commit 92dccabf53
15 changed files with 499 additions and 71 deletions

View File

@@ -1,8 +1,15 @@
<!-- file: kb-config/CHANGELOG.md -->
<!-- version: 10 -->
<!-- version: 11 -->
# CHANGELOG — kb-config
## `0.5.0-pre.002`
- confirme pour `0.5.1` le split de la configuration générale et du logging en documents et schémas distincts ;
- fixe la convention cible `KS_SECRET_*` / `KS_PUBLIC_*` / `KS_*` pour les variables denvironnement propres au projet ;
- documente la séparation future source/runtime/public et interdit lusage diagnostic du JSON résolu complet ;
- précise les tâches de migration, tests externes et non-divulgation sans modifier encore le contrat runtime `0.4.8`.
## 0.4.6
- alignement de la crate sur la version fonctionnelle bot3 `0.4.6` ;

View File

@@ -1,5 +1,5 @@
<!-- file: kb-config/README.md -->
<!-- version: 4 -->
<!-- version: 5 -->
# kb-config
@@ -31,7 +31,7 @@ Les principales fonctions sont `read_config_json_file_with_environment`, `parse_
## 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.
La configuration actuelle est fonctionnelle et validée, mais son format `0.4.8` reste monolithique. Le cadrage `0.5.0-pre.002` confirme que `0.5.1` séparera la configuration générale et le logging en documents et schémas distincts, introduira le namespace denvironnement `KS_*` et séparera les représentations source, runtime et publiques afin quaucun secret résolu ne soit exposé.
## Documents

View File

@@ -1,15 +1,20 @@
<!-- file: kb-config/TODO.md -->
<!-- version: 3 -->
<!-- version: 4 -->
# TODO — kb-config
## Série `0.5.x`
- [ ] Configuration - décider si la configuration doit être scindée en deux ou trois fichiers.
- [ ] Configuration - extraire les blocs de logging dupliqués entre profils vers une configuration dédiée.
- [ ] Configuration - alléger la configuration générale sans casser les invariants existants.
- [ ] Migration - définir une stratégie explicite pour les fichiers de configuration actuels.
- [ ] Contrat - maintenir lidentité entre le schéma embarqué et `config/schema.config.json`.
- [ ] Tests - ajouter les tests de migration et de compatibilité du futur format multi-fichiers.
- [ ] Documentation - mettre à jour les guides et exemples après implémentation.
- [ ] Intégration - coordonner la migration avec `kb-logging` et les crates consommatrices.
- [ ] `0.5.1` - séparer la configuration générale et le logging en documents et schémas JSON distincts.
- [ ] `0.5.1` - rendre la sélection du profil logging indépendante du profil généraliste.
- [ ] `0.5.1` - définir un propriétaire unique du contrat source logging et supprimer la conversion manuelle du desktop.
- [ ] `0.5.1` - migrer toutes les variables denvironnement propres au projet vers le namespace `KS_*`.
- [ ] `0.5.1` - appliquer les classes `KS_SECRET_*`, `KS_PUBLIC_*` et `KS_*` interne avec propagation de sensibilité aux valeurs composées.
- [ ] `0.5.1` - séparer les représentations source, runtime résolue, publique et diagnostic.
- [ ] `0.5.1` - interdire quun secret résolu soit sérialisé, loggé, inclus dans une erreur ou transmis via Tauri.
- [ ] `0.5.1` - supprimer lexposition frontend de `AppConfig` et `ProfileConfig` résolus complets.
- [ ] Migration - fournir une table exhaustive des anciens noms denvironnement vers `KS_*` et une stratégie explicite pour le format `0.4.8`.
- [ ] Contrat - maintenir lidentité entre chaque schéma embarqué et son fichier sous `config/`.
- [ ] Tests - ajouter les tests dAPI externe, de migration multi-fichiers et les canaris de non-divulgation.
- [ ] Documentation - mettre à jour guides, exemples et `.env.example` seulement avec limplémentation correspondante.
- [ ] Intégration - coordonner la migration avec logging, transports, pipeline, scénarios et applications.

View File

@@ -1,5 +1,5 @@
<!-- file: kb-config/USAGE.md -->
<!-- version: 3 -->
<!-- version: 4 -->
# Utilisation de kb-config
@@ -35,7 +35,7 @@ for path in report.loaded_files {
}
```
`EnvironmentLoadReport` indique les fichiers chargés. Les placeholders non résolus sans fallback restent visibles afin que la validation ou le consommateur puisse les signaler explicitement.
`EnvironmentLoadReport` indique les fichiers chargés. Les placeholders non résolus sans fallback restent visibles afin que la validation ou le consommateur puisse les signaler explicitement. Le format `0.4.8` accepte encore les anciens noms denvironnement ; la migration `0.5.1` imposera le namespace `KS_*`.
## Résolution explicite des placeholders
@@ -46,7 +46,7 @@ let resolved = kb_config::resolve_environment_placeholders(raw);
assert!(resolved.contains("databaseUrl"));
```
Cette API est utile pour un outil de diagnostic qui veut afficher le JSON résolu avant parsing.
Cette API retourne actuellement une chaîne résolue ordinaire et peut donc contenir des secrets issus de lenvironnement. Elle doit rester strictement backend et ne doit pas être utilisée pour afficher, logger ou transmettre le JSON résolu. `0.5.1` remplacera cette frontière par une résolution conservant la classification de sensibilité.
## Validation et parsing