Skip to content

Persist deployed adapter state during provisioning #292

Description

@aram356

Description

Section 4 of #288 covers typed deployed-state schema, writeback and shared env-file merging. PR #287 contains the proposed implementation but remains unmerged. Dependencies: #289.

Steps to reproduce

Inspection steps (no tests executed):

  1. Inspect main Adapter::provision contract.
  2. Compare this section’s tasks in local-provision plan with the open branch.
  3. Confirm the local-provision contract is still absent from main rather than treating checked-off branch tasks as delivery.

Expected behavior

The section’s contract is present on main and composes with the other local-provision sections without cloud operations during local mode.

Impact

The manifest cannot persist the provision outcome required by repeatable local binding generation.

Proposed fix

Review and merge this section through PR #287, preserving the tasks below and subsequent umbrella amendments. Reconcile with current main rather than reintroducing removed Fastly runtime-env descriptors.

Dependencies: #289.

Done when

  • Task 14: Add ManifestAdapterDeployed struct + deployed field on ManifestAdapter; remove deployed from unknown-subtable reject list
  • Task 15: Add Manifest-level case-insensitive validate_manifest_deployed_adapter_match schema validator
  • Task 16: Add CLI merge_deployed_into_manifest writeback via toml_edit::DocumentMut (canonical adapter key from adapter_entry)
  • Task 16b: Cloudflare cloud provision returns created namespace ids (create-with-platform, persist-under-logical)
  • Task 16c: Add edgezero_adapter::env_file::append_lines_dedup helper used by Section 5 (single-# dedup semantics; lives in edgezero-adapter, not edgezero-cli)
  • Reject deployed fields belonging to the wrong adapter even when its manifest key uses mixed case.

Required repository verification: cargo fmt --all -- --check; cargo clippy --workspace --all-targets --all-features -- -D warnings; cargo test --workspace --all-targets; cargo check --workspace --all-targets --features "fastly cloudflare spin"; cargo check -p edgezero-adapter-spin --target wasm32-wasip2 --features spin. These are acceptance requirements, not tests executed during this audit.

Related

#288; local-provision plan; PR #287 is the fully covering open PR. #289

July amendment: all five generated manifests, including axum.toml, are gitignored.

Activity

  1. self-assigned this
    on Jun 30, 2026
  2. changed the title [-]Section 4 — ManifestAdapterDeployed schema + writeback (Tasks 14–16, 16b–16c)[/-] [+]Persist deployed adapter state during provisioning[/+] on Nov 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions