Skip to content

Wire typed local provisioning into generated CLIs #294

Description

@aram356

Description

Section 6 of #288 covers typed validation/secret placeholders and scaffold integration. PR #287 contains the proposed implementation but remains unmerged. Dependencies: #289, #290, #291, #292, #293.

Steps to reproduce

Inspection steps (no tests executed):

  1. Inspect generated CLI provision/serve dispatch.
  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

Generated CLIs still call the untyped path and cannot emit placeholders derived from their app config.

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, #290, #291, #292, #293.

Done when

  • Task 29: Add pub fn run_provision_typed<C> export to crates/edgezero-cli/src/lib.rs; full body with cloud short-circuit, base-preflight gates (capability + handler paths), three-step typed validation via run_typed_preflight, shared staging for dry-run
  • Task 30: Update scaffold template main.rs.hbs:98 — Cmd::Provision(args) => edgezero_cli::run_provision_typed::<{{NameUpperCamel}}Config>(&args)
  • Task 30b: Update in-tree examples/app-demo/crates/app-demo-cli/src/main.rs:98 to call run_provision_typed (mirror of Task 30; smokes warm up via app-demo-cli)
  • Task 31: edgezero new generator loops run_provision over every selected adapter (untyped — scaffolded #[secret] fields commented out)
  • Run the complete manifest-shape gates for typed dry-run as well as non-dry-run, per the umbrella amendment.

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, #290, #291, #292, #293

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 6 — Typed provision wiring (Tasks 29–31, 30b)[/-] [+]Wire typed local provisioning into generated CLIs[/+] 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