115 lines
3.9 KiB
Markdown
115 lines
3.9 KiB
Markdown
<!-- file: deltas/0.3.8/pre.009.md -->
|
|
<!-- version: 1 -->
|
|
|
|
# Delta `0.3.8-pre.009` — inspection Store des observations RAW
|
|
|
|
## Base requise
|
|
|
|
Base directe attendue : `0.3.8-pre.008-fix.001` (`workspace.package.version = 0.3.8-pre.8.fix.1`).
|
|
|
|
## Objet
|
|
|
|
Ajouter les listings backend-neutres et random-access des observations RAW Transaction et Account, sans modifier le schéma PostgreSQL, les reads par clé existants ni l'UI Store Desk.
|
|
|
|
## Store API
|
|
|
|
Deux queries sont ajoutées :
|
|
|
|
```text
|
|
RawTransactionObservationInspectionQuery
|
|
RawAccountObservationInspectionQuery
|
|
```
|
|
|
|
Elles portent uniquement :
|
|
|
|
```text
|
|
network obligatoire
|
|
référence d'entité exacte optionnelle
|
|
direction canonique
|
|
RawInspectionPageRequest { offset, limit }
|
|
```
|
|
|
|
Une référence fournie doit appartenir au même network que la query.
|
|
|
|
Deux summaries sûres sont ajoutées :
|
|
|
|
```text
|
|
RawTransactionObservationSummary
|
|
RawAccountObservationSummary
|
|
```
|
|
|
|
La summary Transaction contient observation key, référence transaction et provenance d'acquisition sûre. La summary Account contient observation key, référence account, provenance sûre et metadata Yellowstone optionnelles déjà présentes dans le modèle (`is_startup`, transaction signature, `write_version`). Aucun payload transaction ni byte Account n'est exposé.
|
|
|
|
Deux nouvelles capabilities complètent l'API :
|
|
|
|
```text
|
|
RawTransactionObservationInspectionRead
|
|
RawAccountObservationInspectionRead
|
|
```
|
|
|
|
L'inventaire RAW passe de 12 à 14 capabilities. Les reads `RawTransactionObservationRead` / `RawAccountObservationRead` par observation key restent inchangés.
|
|
|
|
## Store façade
|
|
|
|
`ksp-store-lib::Store` implémente et dispatch les deux capabilities après le même contrôle de cohérence network pré-I/O que les autres opérations Store. Aucun type PostgreSQL, SQL ou handle physique ne traverse la façade.
|
|
|
|
Les exports crate-root et les canaris d'inventaire sont réconciliés à 105 exports Store façade et 14 capabilities RAW symétriques.
|
|
|
|
## PostgreSQL
|
|
|
|
`ksp-store-postgres-lib` ajoute quatre statements privés :
|
|
|
|
```text
|
|
INSPECT_OBSERVATIONS_ASC_SQL
|
|
INSPECT_OBSERVATIONS_DESC_SQL
|
|
INSPECT_ACCOUNT_OBSERVATIONS_ASC_SQL
|
|
INSPECT_ACCOUNT_OBSERVATIONS_DESC_SQL
|
|
```
|
|
|
|
Chaque famille utilise une seule instruction par requête avec :
|
|
|
|
```text
|
|
filtered COUNT exact
|
|
total COUNT exact
|
|
LEFT JOIN LATERAL
|
|
LIMIT/OFFSET checked avant I/O
|
|
ordre déterministe received_at_unix_millis + observation_key
|
|
```
|
|
|
|
Transaction filtre optionnellement par signature exacte de la référence Transaction. Account filtre optionnellement par l'identité complète `(pubkey, slot, state_hash)`.
|
|
|
|
Les projections sont strictement metadata-only : aucun payload/archive Transaction et aucun `account data` ne sont sélectionnés. Les statements keyset/cursor existants restent OFFSET-free et les reads par clé restent inchangés.
|
|
|
|
Aucune migration ou index n'est ajouté dans cette tranche.
|
|
|
|
## Règles d'Items
|
|
|
|
Les nouveaux items `pub`/`pub(crate)` sont réexportés jusqu'aux `lib.rs` concernés. Les accès crate-wide utilisent les chemins `crate::Item`, y compris pour les helpers PostgreSQL visibles entre modules.
|
|
|
|
## Hors scope
|
|
|
|
Aucune UI Observation n'est ajoutée à Store Desk dans `pre.009`; l'intégration visuelle et le hardening UX restent réservés à `pre.010`. Aucun Config, capability Tauri, migration, index, action de rétention ou changement des DataTables Transactions/Accounts n'est introduit.
|
|
|
|
## Version
|
|
|
|
```text
|
|
delivery = 0.3.8-pre.009
|
|
workspace.package.version = 0.3.8-pre.9
|
|
commit = v0.3.8-pre.009
|
|
tag = aucun
|
|
```
|
|
|
|
## Gate requis
|
|
|
|
```bash
|
|
cargo fmt --all
|
|
python3 scripts/audit_rust_workspace_rules.py
|
|
python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas
|
|
cargo check --workspace
|
|
cargo clippy --workspace --all-targets
|
|
cargo test -p ksp-store-api
|
|
cargo test -p ksp-store-postgres-lib
|
|
cargo test -p ksp-store-lib
|
|
cargo check -p ksp-store-lib --no-default-features
|
|
```
|