feat: provision --local (umbrella PR)#287
Draft
aram356 wants to merge 1 commit into
Draft
Conversation
Empty tracking commit for the implementation work tracked in: docs/superpowers/plans/2026-06-27-provision-local.md Issues: - Epic: <epic-issue-url> - Per-section sub-issues linked from the epic. This PR opens as a DRAFT and stays draft until Section 1 lands its first real commit. Each section opens as its own follow-up PR that lands here before the umbrella merges to main.
This was referenced Jun 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Umbrella PR for the
provision --localworkstream.Closes #288.
Source artifacts
docs/superpowers/specs/2026-06-23-provision-local.md(signed off by external review)docs/superpowers/plans/2026-06-27-provision-local.md— 43 tasks across 9 sections, also signed offArchitecture
A new
ProvisionMode::Localarm threads throughAdapter::provision. Local mode:toml_edit::DocumentMut(CLI-owned bootstrap, before validation).edgezero/.env,.dev.vars,<spin_crate>/.env)Dry-run stages a real
fs::copyinto atempfile::TempDirand diffs the result back. Cloudflare/Fastly/Spin manifests become gitignored generated state; Axum'saxum.tomlstays tracked. Generated<app-cli>runsrun_provision_typed::<C>to add#[secret]-field placeholders the bundlededgezerocan't see.Execution plan
This umbrella PR opens as draft and stays draft. Each plan section gets its own follow-up PR that merges into this branch; once Sections 1–9 are all green, this PR converts to ready-for-review and merges to
main.Section breakdown
Each section tracks one sub-issue:
ManifestAdapterDeployedschema + writeback (Tasks 14–16, 16b–16c) — Section 4 — ManifestAdapterDeployed schema + writeback (Tasks 14–16, 16b–16c) #292CI gates (from the plan's Global Constraints)
cargo fmt --all -- --checkcargo clippy --workspace --all-targets --all-features -- -D warningscargo test --workspace --all-targetscargo check --workspace --all-targets --features "fastly cloudflare spin"cargo check -p edgezero-adapter-spin --target wasm32-wasip2 --features spinTest plan
scripts/smoke_test_{config,kv,secrets,config_key_override}.sh) pass with warm-upprovision_local_*cases + Spin's env-label alignment quartet (Section 9)