Skip to content

Section 5 — Per-adapter local writers (Tasks 17–28, 28b) #293

Description

@aram356

Part of #288 (epic). Umbrella PR: #287.

Plan reference

docs/superpowers/plans/2026-06-27-provision-local.md — Section 5.

Tasks

Cloudflare

  • Task 17: Cloudflare primitive synthesiser for wrangler.toml (toml_edit, not raw format!) + synthesise_baseline_manifest override
  • Task 18: Cloudflare local-mode provision[[kv_namespaces]] bindings with deployed precedence (logical vs platform split); resolve wrangler_path via adapter_manifest_path
  • Task 19: Cloudflare .dev.vars emission (key-normalised line dedup)
  • Task 20: Cloudflare provision_typed.dev.vars secret placeholders (next to wrangler.toml, NOT manifest_root)

Fastly

  • Task 21: Fastly primitive synthesiser for fastly.toml (toml_edit)
  • Task 22: Fastly local-mode provision[local_server.*] + edgezero_runtime_env; contents MUST be a sub-table (NOT contents = ""); upsert deployed service_id even on existing manifests
  • Task 23: Fastly provision_typed[[local_server.secret_stores.<store_id>]] entries

Spin

  • Task 24: Spin primitive synthesiser — spin.toml (component-id resolution) + runtime-config.toml (toml_edit; ArrayOfTables for [[trigger.http]])
  • Task 25: Spin local-mode provision — bindings + runtime-config.toml blocks + .env __NAME lines (NO SPIN_VARIABLE_* here — typed-only)
  • Task 26: Spin provision_typed — lowercased [variables] + SPIN_VARIABLE_* placeholders (canonical spin_var = key_value.to_ascii_lowercase())

Axum

  • Task 27: Axum local-mode provision — ensure .edgezero/ + write .edgezero/.env; does NOT touch axum.toml
  • Task 28: Axum provision_typed — append secret placeholders to .edgezero/.env

Re-enable

  • Task 28b: Re-enable Task 13's worktree-clean dry-run test

Dependencies

Sections 1, 3, 4. Adapter local arms assume Task 8b's CLI bootstrap wrote the baseline.

CI

All five gates must pass. Spin must cargo check -p edgezero-adapter-spin --target wasm32-wasip2 --features spin.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No fields configured for Task.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions