v0.3.2-pre.004-fix.001

This commit is contained in:
2026-08-29 19:04:47 +02:00
parent 6d2b1401aa
commit 0a4cddafc4
17 changed files with 509 additions and 99 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/019-V0_3_2_STORE_POSTGRES_FOUNDATION.md -->
<!-- version: 5 -->
<!-- version: 6 -->
# Validation `0.3.2` — Store/PostgreSQL runtime foundation
@@ -213,28 +213,46 @@ Critères :
std.store enregistré
schema V1 valide
example valide
profiles typés
profiles/targets nommés typés
un réseau explicite par target
backend postgres explicite
```
Matérialisé par `pre.004` avec `cfg.std.store` / `schema.std.store`, V1 profilée, backend PostgreSQL typé et example canonique.
Matérialisé par `pre.004` puis corrigé par `pre.004-fix.001` avec `cfg.std.store` / `schema.std.store`, trois targets committed `devnet`/`mainnet`/`testnet`, `default_profile = devnet`, un `network` explicite par target et des URI PostgreSQL séparées.
Statut : `TODO gate opérateur pre.004`.
Statut : `TODO gate opérateur pre.004-fix.001`.
### V32-CONFIG-002 — Secrets/provenance
Critères :
```text
KSP_SECRET_STORE_POSTGRES_URI classé Secret
KSP_SECRET_STORE_{DEVNET,MAINNET,TESTNET}_POSTGRES_URI classés Secret
safe projection redacted
provenance sans valeur
dotenv inventory à jour
```
Matérialisé par `pre.004` : `KSP_SECRET_STORE_POSTGRES_URI` est inventorié, le fallback reste `Secret`, la safe projection est redacted et la provenance n'embarque aucune valeur.
Matérialisé par `pre.004-fix.001` : les trois URI réseau-spécifiques sont inventoriées, chaque fallback reste `Secret`, la safe projection est redacted et la provenance n'embarque aucune valeur.
Statut : `TODO gate opérateur pre.004`.
Statut : `TODO gate opérateur pre.004-fix.001`.
### V32-CONFIG-002B — Target/réseau sans multiplexage
Critères :
```text
profile_id std.store = identifiant de target Store
default_profile choisit exactement un target
StoreSettings porte exactement un RawNetworkId
résolution explicite mainnet/devnet/testnet retourne URI + network du target choisi
ksp-store-lib ne possède aucun routeur multi-target/multi-réseau
future RAW mismatch Store.network != entity/query.network rejeté avant I/O
```
Matérialisé contractuellement par `pre.004-fix.001`; l'enforcement sur opérations RAW sera exercé dans `0.3.3`/`0.3.4`.
Statut : `TODO gate opérateur pre.004-fix.001 / TODO 0.3.3-0.3.4`.
### V32-CONFIG-003 — No-env Store/backend
@@ -249,17 +267,17 @@ PG*
.pgpass
```
`pre.004` renforce aussi le canari d'ownership avec les nouveaux filenames Store ; Store/backend restent sans dépendance Config et sans lecture KSP/KSPB.
`pre.004` renforce aussi le canari d'ownership avec les nouveaux filenames Store ; `pre.004-fix.001` conserve cette frontière tout en ajoutant le réseau au contrat `StoreSettings`. Store/backend restent sans dépendance Config et sans lecture KSP/KSPB.
Statut : `TODO gate opérateur pre.004 / TODO pre.009`.
Statut : `TODO gate opérateur pre.004-fix.001 / TODO pre.009`.
### V32-CONFIG-004 — Adapter Config -> Store
Critère : `ksp-config-lib` seul transforme un profil résolu en `StoreSettings` et ne transmet aucun secret dans diagnostics.
Critère : `ksp-config-lib` seul transforme un profil/target résolu en `StoreSettings` réseau-spécifique et ne transmet aucun secret dans diagnostics.
Matérialisé par `pre.004` : seul `ksp-config-lib` dépend de `ksp-store-lib` avec `default-features = false` et construit `StoreSettings` sans forcer la feature backend.
Matérialisé par `pre.004` puis `pre.004-fix.001` : seul `ksp-config-lib` dépend de `ksp-store-lib` avec `default-features = false`; il mappe le `profile_id` sélectionné vers un target, construit son `RawNetworkId` et ses settings backend sans forcer la feature backend.
Statut : `TODO gate opérateur pre.004`.
Statut : `TODO gate opérateur pre.004-fix.001`.
## 6. Pool et lifecycle PostgreSQL