152 lines
9.8 KiB
Markdown
152 lines
9.8 KiB
Markdown
<!-- file: ks-config/CHANGELOG.md -->
|
||
<!-- version: 26 -->
|
||
|
||
# CHANGELOG — ks-config
|
||
|
||
## `0.5.3-pre.002-delta-fix-001`
|
||
|
||
- aligne tous les contrats/types publics de `ks-config` sur la règle workspace imposant `crate::Item` depuis leur crate propriétaire, y compris dans leur module de déclaration et dans les tests ;
|
||
- aligne les appels aux fonctions publiques réexportées sur le crate-root et ajoute le canari `KH_CFG015` pour empêcher le retour d'une référence locale non qualifiée à un type public de configuration.
|
||
|
||
## `0.5.3-pre.002`
|
||
|
||
- remplace les contrats runtime `PostgresConfig`/`SqliteConfig` par `DatabaseConfig { enabled, backend, backend_options }` afin que `ks-config` ne connaisse plus les paramètres d'un moteur non sélectionné ;
|
||
- limite la validation store à la structure backend-agnostique et laisse `ks-store` interpréter/valider les options concrètes, sans modifier les conventions `KS_SECRET_*` ni la résolution des placeholders ;
|
||
- aligne `store.config.json`, son exemple, le schéma spécialisé, le schéma runtime et les fixtures de configuration sur ce contrat opaque.
|
||
|
||
## `0.5.2-pre.006-delta-fix-007`
|
||
|
||
- corrige le test de séparation des répertoires wallet afin qu’il résolve d’abord `${KS_WALLETS_DIRECTORY:-wallets}` comme le chemin de chargement runtime ;
|
||
- rend le test indépendant d’un éventuel override `KS_WALLETS_DIRECTORY` en vérifiant la relation `temporary_wallet_dir = wallet_dir/temporary/local_devnet` plutôt qu’une racine littérale.
|
||
|
||
## `0.5.2-pre.006-delta-fix-006`
|
||
|
||
- réinclut dans le delta `config/wallet.config.json` et `config/exemples/example.wallet.config.json`, omis par erreur dans `fix-005`, afin que leurs sous-répertoires temporaires `temporary/...` correspondent au contrat runtime résolu ;
|
||
- précise dans le schéma wallet que `wallets_directory` est la racine persistante `.kswallet` et que `profile.directory` désigne les wallets/fixtures temporaires du profil.
|
||
|
||
## `0.5.2-pre.006-delta-fix-005`
|
||
|
||
- sépare le store natif persistant `wallet_dir` de `temporary_wallet_dir` : les `.kswallet` utilisent désormais directement la racine `wallets_directory`, tandis que les wallets et keypairs de fixtures restent sous le sous-répertoire temporaire du profil ;
|
||
- propage les deux chemins dans le contrat runtime résolu et son schéma sans déplacer automatiquement les fichiers existants.
|
||
|
||
## `0.5.2-pre.006`
|
||
|
||
- ajoute `wallet_alias` aux profils du document wallet comme sélection optionnelle/nullable d'un wallet natif persistant, sans password ni matériau secret dans `ks-config` ;
|
||
- propage cette sélection non sensible vers le contrat runtime `WalletConfig` et valide l'alias avec les mêmes bornes que `ks-wallet` ;
|
||
- garde les documents `0.5.1` compatibles lorsque `wallet_alias` est omis, conserve `null` comme absence explicite de sélection et documente un exemple de sélection persistante.
|
||
|
||
## `0.5.1-pre.009`
|
||
|
||
- réconcilie schémas, exemples sous `config/exemples/`, guide de configuration et documentation de crate avant archivage du plan `0.5.1` ;
|
||
- retire du TODO la tâche de clôture `pre.009` désormais terminée, sans modifier les contrats runtime.
|
||
|
||
## `0.5.1-pre.008`
|
||
|
||
- Fix: use `Result::is_err()` for execution and wallet schema validation checks, removing the Clippy redundant-pattern warnings without changing fail-closed behavior.
|
||
|
||
- retire `ts-rs` de `ks-config`, supprime ses bindings TypeScript générés et réserve les projections frontend aux DTO des applications propriétaires ;
|
||
- rend les contrats source/runtime susceptibles de contenir des valeurs résolues non sérialisables et non `Debug` par défaut, et retire les sérialiseurs publics de `AppConfig` ;
|
||
- ajoute la classification `Secret > Internal > Public`, y compris pour les chaînes composées contenant plusieurs placeholders d'environnement, ainsi qu'une représentation diagnostic générique qui ne révèle jamais les valeurs secret/internal ;
|
||
- rend la section `application` des compositions opaque pour `ks-config` et fournit un helper générique de validation JSON Schema pour les fragments possédés par les binaires ;
|
||
- durcit les erreurs de validation/décodage afin de ne plus recopier les valeurs rejetées, notamment pour les URLs et fragments contenant potentiellement des secrets ;
|
||
- ajoute un test d'API externe et des canaris de non-divulgation pour les helpers de sensibilité.
|
||
|
||
## `0.5.1-pre.007`
|
||
|
||
- extrait store, wallet et execution vers `config/store.config.json`, `config/wallet.config.json` et `config/execution.config.json`, chacun avec schéma, exemple et `default_profile` ;
|
||
- place `wallets_directory` hors profils wallet et déplace les autorisations `*_send_enabled` dans la politique execution ;
|
||
- remplace `app.auto_reconnect_default` par des classes de defaults WebSocket nommées dans le transport, avec overrides propres à chaque endpoint ;
|
||
- permet la composition directe des defaults partagés sans fichier applicatif et valide les références de profils d’une composition avant production du contrat runtime ;
|
||
- supprime la nécessité d’une composition par défaut propre à `ks-pipeline-demo-scenarios`.
|
||
|
||
## `0.5.1-pre.006`
|
||
|
||
- remplace le document source monolithique `app.config.json` par des compositions propres aux binaires, dont `config/kb-app-demo-desktop.default.config.json` et `config/ks-pipeline-demo-scenarios.default.config.json` ;
|
||
- extrait les endpoints HTTP/WebSocket vers `config/transport.config.json` et les listeners vers `config/listeners.config.json`, chacun avec schéma et exemple dédiés sous `config/schemas/` / `config/` ;
|
||
- conserve `AppConfig`/`ProfileConfig` comme contrat runtime résolu transitoire, reconstruit depuis la composition et les documents partagés ;
|
||
- ajoute les APIs typées de chargement, validation et sélection de profils de composition, transport et listeners ;
|
||
- ajoute un test d’API externe garantissant que composition, transport et listeners restent accessibles uniquement via les exports crate-root ;
|
||
- réserve le split store/data, wallet, execution et configuration spécifique des binaires à `pre.007`, avant les surfaces publiques sûres de `pre.008`.
|
||
|
||
## `0.5.1-pre.005`
|
||
|
||
- retire définitivement le bloc `logging` de `ProfileConfig` et du schéma général ;
|
||
- aligne le contrat général et le desktop sur `config/app.config.json`, validé par `config/schemas/app.config.schema.json` ;
|
||
- conserve des profils applicatifs indépendants du document logging possédé par `ks-logging` ;
|
||
- ajoute `config/example.app.config.json` comme exemple minimal conforme.
|
||
|
||
## `0.5.1-pre.004`
|
||
|
||
- migre le sélecteur d'environnement vers `KS_ENV_FILE` et les placeholders PostgreSQL/Helius vers `KS_SECRET_*` ;
|
||
- aligne `.env.example`, `config/example.config.json`, les tests et la documentation sur le namespace Khadhroony Solana ;
|
||
- ne met pas encore en œuvre le camouflage ou la propagation de sensibilité, réservés à la frontière runtime/public après le split config/logging.
|
||
|
||
## `0.5.1-pre.003`
|
||
|
||
- aligne `config/example.config.json` sur les identités hiérarchiques `ks-lib-*` afin que les routes de logging de référence suivent les producteurs renommés ;
|
||
- ne modifie ni le schéma de configuration ni les variables d'environnement, réservées aux prereleases suivantes.
|
||
|
||
## `0.5.1-pre.002`
|
||
|
||
- renomme `kb-config` en `ks-config` et l'identifiant Rust `kb_config` en `ks_config` ;
|
||
- met à jour les chemins TS-RS source vers `frontend/ts/bindings/ks_config` sans livrer les bindings générés ;
|
||
- conserve le format de configuration et les variables d'environnement historiques jusqu'aux prereleases dédiées.
|
||
|
||
## `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 d’environnement propres au projet ;
|
||
- documente la séparation future source/runtime/public et interdit l’usage 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` ;
|
||
- clôture des tâches de migration applicables et report explicite des évolutions ultérieures dans le TODO.
|
||
|
||
## 0.1.0-pre.075
|
||
|
||
- validation statique que `ks-config` reste l’unique propriétaire direct de `dotenvy` ;
|
||
|
||
## 0.1.0-pre.073
|
||
|
||
- ajout du guide transversal [`docs/guides/CONFIGURATION.md`](../docs/guides/CONFIGURATION.md) ;
|
||
|
||
## 0.1.0-pre.072
|
||
|
||
- reclassement du TODO selon les blocants avant `0.4.6`, les travaux `0.4.7`, les versions ultérieures et les dépendances conditionnelles.
|
||
|
||
## 0.1.0-pre.070
|
||
|
||
- enrichissement de `USAGE.md` avec plusieurs exemples couvrant les familles d’API publiques significatives.
|
||
|
||
## 0.1.0-pre.069
|
||
|
||
### Documentation
|
||
|
||
- création de `TODO.md`, `USAGE.md` et du changelog détaillé ;
|
||
- réécriture du README selon l’architecture bot3 ;
|
||
- suppression de la section `Non publié`, incompatible avec le rôle chronologique du changelog ;
|
||
- retrait des limitations et travaux futurs, désormais maintenus dans `TODO.md` ou `USAGE.md` selon leur nature ;
|
||
- clarification de la séparation entre historique de prerelease et objectifs futurs ;
|
||
- réécriture de `TODO.md` sous forme de tâches uniquement ;
|
||
- correction des exemples de `USAGE.md` afin de ne pas utiliser l’opérateur `?`.
|
||
|
||
## 0.1.0
|
||
|
||
### Migré
|
||
|
||
- migration et consolidation de la configuration typée bot2 dans `ks-config` ;
|
||
- conservation du schéma JSON, des profils, endpoints, listeners, paramètres de stockage, logging, wallet et exécution.
|
||
|
||
### Modifié
|
||
|
||
- adoption des règles Rust 2024 et Khadhroony ;
|
||
- export TypeScript contrôlé des types destinés au frontend ;
|
||
- validation structurée par `ks_core::Error`.
|
||
|
||
### Validation
|
||
|
||
- validation de l’exemple contre le schéma ;
|
||
- tests de round-trip, profils actifs, placeholders, URLs, rôles et invariants opérationnels.
|