v0.3.3-pre.004
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/plans/024-V0_3_3_STORE_POSTGRES_RAW_TRANSACTION_PLAN.md -->
|
||||
<!-- version: 4 -->
|
||||
<!-- version: 5 -->
|
||||
|
||||
# Plan `0.3.3` — Store/PostgreSQL RawTransaction vertical slice
|
||||
|
||||
@@ -1074,12 +1074,19 @@ Une base PostgreSQL sur laquelle le commit `pre.003` aurait déjà enregistré l
|
||||
|
||||
### `0.3.3-pre.004` — mapping et lectures
|
||||
|
||||
- codecs SQL privés ;
|
||||
- conversions exactes `u64/u32/timestamps/bytes/codes` ;
|
||||
- `get_raw_transaction` ;
|
||||
- `get_raw_transaction_observation` ;
|
||||
- lectures rétention/tombstone ;
|
||||
- corruption DB -> erreurs sûres.
|
||||
Tranche matérialisée :
|
||||
|
||||
- module SQL/mapping `raw_transaction` privé au backend ;
|
||||
- aucune dépendance physique nouvelle ;
|
||||
- `slot NUMERIC(20,0)` lu en décimal texte puis converti falliblement vers `u64`, couvrant `u64::MAX` sans narrowing ;
|
||||
- `format_version BIGINT -> u32`, timestamps/source-size `BIGINT -> u64`, bytes fixes et codes tous décodés falliblement ;
|
||||
- `get_raw_transaction` : `Full` depuis payload chaud, `Archived` via `LEFT JOIN` archive, `Purged -> None`, incohérence hot/archive -> `DataInvalid` ;
|
||||
- `get_raw_transaction_observation` : reconstruction exacte de la provenance complète/optionnelle et réseau issu du backend mono-réseau ;
|
||||
- `get_raw_transaction_retention_state` et `get_raw_transaction_tombstone`, avec validation de l'absence de `block_time` sur un tombstone `Purged` ;
|
||||
- références réseau-scopées rejetées via garde `WrongNetwork` avant acquisition d'un client du pool ;
|
||||
- nouveaux kinds backend sûrs `ReadFailed`, `DataInvalid`, `WrongNetwork`, sans texte serveur/SQL/bind ;
|
||||
- tests déterministes des bornes, rows hostiles, `Full/Archived/Purged`, tombstone et provenance ;
|
||||
- aucune écriture, aucun cursor/list et aucune implémentation complète de trait avant les tranches dédiées.
|
||||
|
||||
### `0.3.3-pre.005` — écriture atomique et observations
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/validation/020-V0_3_3_STORE_POSTGRES_RAW_TRANSACTION.md -->
|
||||
<!-- version: 6 -->
|
||||
<!-- version: 7 -->
|
||||
|
||||
# Validation `0.3.3` — Store/PostgreSQL RawTransaction vertical slice
|
||||
|
||||
@@ -551,12 +551,24 @@ cap 500/1000 dans Store pagination
|
||||
- binding des paramètres catalogue `&str` vers `ToSql` corrigé avec `&&str` : PASS statique ;
|
||||
- constantes de contrat renommées sans préfixe `KSP_` réservé au namespace d’environnement Config : PASS statique ;
|
||||
- aucune ressource SQL, aucun ordre de migration et aucun checksum V000/V001 modifié ;
|
||||
- gate Cargo opérateur : À EXÉCUTER.
|
||||
- gate opérateur : FAIL Clippy (`question_mark_used` + warning) et ancien `include_str!` V000 du test live.
|
||||
|
||||
### `pre.003-fix.003`
|
||||
|
||||
- warning `unused variable`, opérateurs `?` et canari test Clippy corrigés : PASS ;
|
||||
- `postgres_foundation_live` relocalisé vers V000 versionnée : PASS ;
|
||||
- README/USAGE backend réconciliés avec l'arborescence split : PASS ;
|
||||
- gate opérateur complet du 2026-08-30 : PASS (`check`, Clippy, Store/API/PostgreSQL/Config, no-default-features).
|
||||
|
||||
### `pre.004`
|
||||
|
||||
- row codecs et lectures ;
|
||||
- malformed DB matrix.
|
||||
- quatre lectures RAW backend-specific sans fuite de row/SQL : PASS statique ;
|
||||
- conversion `NUMERIC(20,0) -> u64` jusqu'à `u64::MAX` et conversions entières/timestamps fallibles : PASS unit design ;
|
||||
- `Full/Archived/Purged`, observation complète, rétention/tombstone : PASS unit design ;
|
||||
- mauvais réseau avant pool I/O : PASS unit design ;
|
||||
- malformed DB -> `DataInvalid`, SELECT -> `ReadFailed`, aucune valeur hostile retenue : PASS statique/unit design ;
|
||||
- SQL strictement read-only dans cette tranche : PASS canari source ;
|
||||
- gate Cargo opérateur : À EXÉCUTER.
|
||||
|
||||
### `pre.005`
|
||||
|
||||
@@ -603,7 +615,7 @@ cap 500/1000 dans Store pagination
|
||||
|
||||
- publication stable.
|
||||
|
||||
## 22. Gate courant `pre.002`
|
||||
## 22. Gate courant `pre.004`
|
||||
|
||||
```bash
|
||||
cargo fmt --all
|
||||
@@ -643,4 +655,16 @@ cargo check -p ksp-store-lib --no-default-features
|
||||
- [PASS] canari unitaire sans assertion constante ;
|
||||
- [PASS] test live V000 relocalisé vers `migrations/v000_bootstrap/tables/001_ksp_store_schema_migrations.sql` ;
|
||||
- [PASS] aucune ressource SQL V000/V001 modifiée ; checksums inchangés ;
|
||||
- [À FAIRE] gate Cargo opérateur complet de `fix.003`.
|
||||
- [PASS] gate opérateur complet de `fix.003` fourni le 2026-08-30.
|
||||
|
||||
### `pre.004` — état de la tranche
|
||||
|
||||
- [PASS] module privé `raw_transaction` avec SELECT uniquement ;
|
||||
- [PASS] `get_raw_transaction` Full/Archived/Purged ;
|
||||
- [PASS] `get_raw_transaction_observation` et provenance complète ;
|
||||
- [PASS] lectures rétention/tombstone ;
|
||||
- [PASS] conversions fallibles `NUMERIC(20,0)/BIGINT/BYTEA/TEXT` sans narrowing ;
|
||||
- [PASS] wrong-network gardé avant pool I/O ;
|
||||
- [PASS] `ReadFailed` / `DataInvalid` / `WrongNetwork` sans texte externe ;
|
||||
- [PASS] tests déterministes de row mapping et hostile data ajoutés ;
|
||||
- [À FAIRE] gate Cargo opérateur complet de `pre.004`.
|
||||
|
||||
Reference in New Issue
Block a user