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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions