Part of the EdgeZero CLI Extensions effort — stage 2 of 8. Largest stage; review hotspot.
Precondition: PR #253 (feat/spin-store-support) must be merged first — this stage wires SpinKvStore / SpinConfigStore / SpinSecretStore into the multi-store runtime.
Scope (atomic — manifest + runtime ship together under the hard cutoff): rewrite the [stores] / [adapters.*] manifest schema to the logical-id + per-adapter-mapping model with the capability matrix (legacy fields become hard load errors); make ConfigStore::get async; add KvError::Unsupported + KvError::LimitExceeded; introduce BoundKvStore / BoundConfigStore / BoundSecretStore and id-keyed RequestContext accessors + StoreRegistry; make Hooks / ConfigStoreMetadata / the app! macro id-keyed; refactor Kv / Secrets extractors to default() / named() and add Config; rewrite all four adapters' store impls (Cloudflare config [vars] → KV); remove [stores.config.defaults]; migrate examples/app-demo/edgezero.toml + handlers (store-accessor change only); publish docs/guide/manifest-store-migration.md.
Ship gate: multi-store handlers work on axum/cloudflare/fastly/spin; async config reads work; all four CI gates + the wasm32 spin gate green.
Design spec: §8, §6.6, §6.7, §6.9 — Implementation plan: Stage 2.
Part of the EdgeZero CLI Extensions effort — stage 2 of 8. Largest stage; review hotspot.
Precondition: PR #253 (
feat/spin-store-support) must be merged first — this stage wiresSpinKvStore/SpinConfigStore/SpinSecretStoreinto the multi-store runtime.Scope (atomic — manifest + runtime ship together under the hard cutoff): rewrite the
[stores]/[adapters.*]manifest schema to the logical-id + per-adapter-mapping model with the capability matrix (legacy fields become hard load errors); makeConfigStore::getasync; addKvError::Unsupported+KvError::LimitExceeded; introduceBoundKvStore/BoundConfigStore/BoundSecretStoreand id-keyedRequestContextaccessors +StoreRegistry; makeHooks/ConfigStoreMetadata/ theapp!macro id-keyed; refactorKv/Secretsextractors todefault()/named()and addConfig; rewrite all four adapters' store impls (Cloudflare config[vars]→ KV); remove[stores.config.defaults]; migrateexamples/app-demo/edgezero.toml+ handlers (store-accessor change only); publishdocs/guide/manifest-store-migration.md.Ship gate: multi-store handlers work on axum/cloudflare/fastly/spin; async config reads work; all four CI gates + the wasm32 spin gate green.
Design spec: §8, §6.6, §6.7, §6.9 — Implementation plan: Stage 2.