v0.2.11-pre.010
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/validation/014-V0_2_11_OFFCHAIN_PRICE_TRANSPORT.md -->
|
||||
<!-- version: 15 -->
|
||||
<!-- version: 16 -->
|
||||
|
||||
# Validation `0.2.11` — Off-chain price transport SOL/USD
|
||||
|
||||
@@ -288,30 +288,54 @@ Les tests déterministes de `pre.008` vérifient le registry de service sur les
|
||||
|
||||
## 3.12 Gate `0.2.11-pre.009`
|
||||
|
||||
| Critère | Statut | Preuve |
|
||||
|----------------------------------------------------------------------|---------|----------------------------------------------------------------|
|
||||
| version workspace `0.2.11-pre.9` | PASS | `Cargo.toml` racine |
|
||||
| document `cfg.std.offchain_transport` enregistré | PASS | registry Config + `std.offchain_transport.json` |
|
||||
| schema `schema.std.offchain_transport` enregistré | PASS | registry Config + schema Draft 2020-12 |
|
||||
| domaine actuel imbriqué sous `market_price` | PASS | document/schema V1 |
|
||||
| profils `public_keyless` et `all_free` versionnés | PASS | document standard + exemple |
|
||||
| huit branches provider Config obligatoires | PASS | schema + fixture |
|
||||
| credentials conditionnés par mode/provider | PASS | `if/then` du schema |
|
||||
| credentials effectifs exigent une provenance Config Secret | PASS | adapter `offchain_transport.rs` + tests |
|
||||
| littéral credential rejeté par l'adapter effectif | PASS | test `literal_or_nonsecret_provider_credentials...` |
|
||||
| DexScreener pair requis seulement lorsque le provider est activé | PASS | schema + `MarketPriceDexScreenerSettings` |
|
||||
| Dex pair via environnement exige une provenance Public | PASS | adapter Config + test |
|
||||
| `.env.example` inventorie quatre secrets et la paire publique | PASS | `.env.example` |
|
||||
| Config construit `MarketPriceService` via `MarketPriceProviderSetup` | PASS | `ResolvedOffchainTransportConfig` |
|
||||
| Off-chain Transport ne dépend pas de Config | PASS | dependency ownership + manifest |
|
||||
| aucune cadence provider libre ajoutée à Config | PASS | schema/document sans rate-limit override |
|
||||
| Config Debug/safe view ne divulgue pas les API keys | PASS | tests adapter |
|
||||
| applications desktop embarquent document + schema | PASS | deux `tauri.conf.json` + canaries desktop |
|
||||
| audit Rust sandbox | PASS | clean, 0 candidate export |
|
||||
| audit Markdown sandbox | PASS | clean, 123 tables / 115 fichiers |
|
||||
| `cargo check` / Clippy / tests Config et workspace | PLANNED | gate opérateur requis après application de l'archive `pre.009` |
|
||||
| Critère | Statut | Preuve |
|
||||
|----------------------------------------------------------------------|--------|-----------------------------------------------------|
|
||||
| version workspace `0.2.11-pre.9` | PASS | `Cargo.toml` racine |
|
||||
| document `cfg.std.offchain_transport` enregistré | PASS | registry Config + `std.offchain_transport.json` |
|
||||
| schema `schema.std.offchain_transport` enregistré | PASS | registry Config + schema Draft 2020-12 |
|
||||
| domaine actuel imbriqué sous `market_price` | PASS | document/schema V1 |
|
||||
| profils `public_keyless` et `all_free` versionnés | PASS | document standard + exemple |
|
||||
| huit branches provider Config obligatoires | PASS | schema + fixture |
|
||||
| credentials conditionnés par mode/provider | PASS | `if/then` du schema |
|
||||
| credentials effectifs exigent une provenance Config Secret | PASS | adapter `offchain_transport.rs` + tests |
|
||||
| littéral credential rejeté par l'adapter effectif | PASS | test `literal_or_nonsecret_provider_credentials...` |
|
||||
| DexScreener pair requis seulement lorsque le provider est activé | PASS | schema + `MarketPriceDexScreenerSettings` |
|
||||
| Dex pair via environnement exige une provenance Public | PASS | adapter Config + test |
|
||||
| `.env.example` inventorie quatre secrets et la paire publique | PASS | `.env.example` |
|
||||
| Config construit `MarketPriceService` via `MarketPriceProviderSetup` | PASS | `ResolvedOffchainTransportConfig` |
|
||||
| Off-chain Transport ne dépend pas de Config | PASS | dependency ownership + manifest |
|
||||
| aucune cadence provider libre ajoutée à Config | PASS | schema/document sans rate-limit override |
|
||||
| Config Debug/safe view ne divulgue pas les API keys | PASS | tests adapter |
|
||||
| applications desktop embarquent document + schema | PASS | deux `tauri.conf.json` + canaries desktop |
|
||||
| audit Rust sandbox | PASS | clean, 0 candidate export |
|
||||
| audit Markdown sandbox | PASS | clean, 123 tables / 115 fichiers |
|
||||
| `cargo check` / Clippy / tests Config et workspace | PASS | gate opérateur complet du 2026-08-26 |
|
||||
|
||||
La tranche n'ajoute aucune URL provider configurable, aucun SDK provider et aucune lecture directe de l'environnement dans `ksp-offchain-transport-lib`. Les secrets restent résolus par `ksp-config-lib`; le service runtime reçoit uniquement les settings typés nécessaires. La modification DexScreener est capability-aware : une paire absente est valide uniquement lorsque l'adapter est désactivé, ce qui permet de conserver son entrée dans l'inventaire générique sans fabriquer de fausse configuration.
|
||||
La tranche n'ajoute aucune URL provider configurable, aucun SDK provider et aucune lecture directe de l'environnement dans `ksp-offchain-transport-lib`. Les secrets restent résolus par `ksp-config-lib`; le service runtime reçoit uniquement les settings typés nécessaires. La modification DexScreener est capability-aware : une paire absente est valide uniquement lorsque l'adapter est désactivé, ce qui permet de conserver son entrée dans l'inventaire générique sans fabriquer de fausse configuration. Le gate opérateur de `pre.009` est intégralement PASS : audits Rust/Markdown, `cargo check --workspace`, `cargo clippy --workspace --all-targets`, tests ciblés Off-chain, 119 tests unitaires Config et `cargo test --workspace`. Seuls les smokes live et probes de timing explicitement `ignored` restent non exécutés par le gate déterministe.
|
||||
|
||||
## 3.13 Gate `0.2.11-pre.010`
|
||||
|
||||
| Critère | Statut | Preuve |
|
||||
|------------------------------------------------------------------------|---------|------------------------------------------------------|
|
||||
| version workspace `0.2.11-pre.10` | PASS | `Cargo.toml` racine |
|
||||
| enums publiques évolutives marquées `#[non_exhaustive]` | PASS | provider/access modes/setup + canari completeness |
|
||||
| adapter Config future-safe face aux access modes non exhaustifs | PASS | branches wildcard vers erreur effective sûre |
|
||||
| inventaire exact des huit providers et sémantiques verrouillé | PASS | `tests/release_completeness.rs` |
|
||||
| aucun environnement lu par les modules `market_price_*` | PASS | `tests/security_hardening.rs` |
|
||||
| aucun `as_f64` utilisé comme vérité de prix `market_price` | PASS | `tests/security_hardening.rs` |
|
||||
| aucun `tracing::` direct dans `market_price_*` | PASS | `tests/security_hardening.rs` |
|
||||
| Debug keyed settings/service ne divulgue pas les API keys | PASS | canari secret déterministe |
|
||||
| Config rejette URL provider et override de rate limit | PASS | schema strict + test Config adversarial |
|
||||
| timestamps RFC3339/pre-epoch/overflow durcis | PASS | unit test `market_price_adapter` |
|
||||
| JSON numeric pathologique/null/non-numérique rejeté | PASS | unit test `market_price_decimal` |
|
||||
| provenance accepte la borne et rejette trim/control/oversize | PASS | unit test `market_price_observation` |
|
||||
| `refresh_many` / `refresh_all` V1 documentés séquentiels/déterministes | PASS | plan + `README.md` / `USAGE.md` Off-chain |
|
||||
| README/USAGE techniques créés sans usurper la réconciliation finale | PASS | crate Off-chain + compléments Config |
|
||||
| audit Rust sandbox | PLANNED | à exécuter sur l'état final de l'archive |
|
||||
| audit Markdown sandbox | PLANNED | à exécuter sur l'état final de l'archive |
|
||||
| `cargo check` / Clippy / tests ciblés et workspace | PLANNED | gate opérateur requis après application de `pre.010` |
|
||||
|
||||
`pre.010` ne fait aucun smoke live, ne change aucun endpoint provider et n'introduit ni fallback, ni consensus, ni scheduler. Les documents crate créés ici sont des brouillons techniques courants ; `pre.012` reste seule propriétaire de la réconciliation documentaire finale après le gate technique/live de `pre.011`.
|
||||
|
||||
## 4. Matrice provider prévue
|
||||
|
||||
|
||||
Reference in New Issue
Block a user