Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
0f924d7
provision --local implementation: tracking branch
aram356 Jun 29, 2026
1ffe5a9
Add ProvisionMode + ProvisionArgs.local for provision --local
aram356 Jun 29, 2026
feb607e
Add neutral ProvisionOutcome + AdapterDeployedState types + crate-roo…
aram356 Jun 29, 2026
5896a8e
Thread ProvisionMode + ProvisionOutcome through Adapter::provision
aram356 Jun 30, 2026
63f9a4d
Add Adapter::provision_typed trait method with default no-op
aram356 Jun 30, 2026
5121603
Extract run_typed_preflight; route validate/push/diff through it
aram356 Jun 30, 2026
a8e54e1
Task 5 fix: promote resolve_app_config_path_primitive to pub(crate) p…
aram356 Jun 30, 2026
d184c8f
Add path_safety module with containment helper
aram356 Jun 30, 2026
a347422
Wire path_safety into config push --local
aram356 Jul 1, 2026
d8d6622
Wire path_safety + ProvisionMode into run_provision
aram356 Jul 1, 2026
7074ac7
Add Adapter::synthesise_baseline_manifest + CLI bootstrap before vali…
aram356 Jul 1, 2026
a0bec7a
Add copy_tree helper; promote tempfile + toml_edit to CLI runtime deps
aram356 Jul 1, 2026
3fa8c22
Merge branch 'main' into feature/provision-local-impl
aram356 Jul 1, 2026
ba3f891
Move config push --local containment guard above run_shared_checks
aram356 Jul 1, 2026
619541a
Merge remote-tracking branch 'origin/feature/provision-local-impl' in…
aram356 Jul 1, 2026
1617bb8
Make provision_local accept-tests actually exercise their code paths
aram356 Jul 2, 2026
12d7129
Add run_with_staging tempdir helper for dry-run staging
aram356 Jul 2, 2026
42c198e
Wire mode x dry-run dispatch matrix into run_provision
aram356 Jul 2, 2026
cd87c24
Add dry-run allow-list diff + would-write status rewriting
aram356 Jul 2, 2026
66ab458
Add provision_local_dry_run worktree-clean + no-tempdir-leak test (ig…
aram356 Jul 2, 2026
2b3e700
Add ManifestAdapterDeployed struct + deployed field on ManifestAdapter
aram356 Jul 2, 2026
5531f72
Fix local dry-run to dispatch adapters with dry_run = false
aram356 Jul 2, 2026
6033e72
Add adapter-owned deployed_fields + Manifest-level cross-check
aram356 Jul 2, 2026
af4baa9
Task 15 followup: refresh #[expect] reasons + document case-handling
aram356 Jul 2, 2026
b3466c1
Add toml_edit-based [adapters.<name>.deployed] writeback
aram356 Jul 2, 2026
277f614
Cloudflare: cloud provision returns created namespace ids via deployed
aram356 Jul 2, 2026
d7d6b1a
Add edgezero_adapter::env_file::append_lines_dedup (used by Section 5)
aram356 Jul 2, 2026
9c21d15
Wire deployed_state_for translator + validate_deployed_field_ownershi…
aram356 Jul 2, 2026
fac82ab
Clean up misleading adapter-named tests in provision.rs
aram356 Jul 2, 2026
1e1e206
Fix three review findings: dry-run leak, baseline containment, deploy…
aram356 Jul 2, 2026
c640931
Cloudflare: primitive synthesiser for wrangler.toml + bootstrap override
aram356 Jul 2, 2026
91205a6
Cloudflare: local-mode provision emits [[kv_namespaces]] bindings (de…
aram356 Jul 2, 2026
da4a2b9
Cloudflare: local-mode provision writes .dev.vars __NAME / __KEY lines
aram356 Jul 2, 2026
140728e
Cloudflare: provision_typed appends secret placeholders to .dev.vars
aram356 Jul 2, 2026
84f8908
Fastly: primitive synthesiser for fastly.toml + bootstrap override
aram356 Jul 2, 2026
706d2cd
Fastly: local-mode provision writes [local_server.*] + edgezero_runti…
aram356 Jul 2, 2026
efd0be3
Fastly: provision_typed writes [[local_server.secret_stores.*]] entries
aram356 Jul 2, 2026
6642598
Spin: primitive synthesiser for spin.toml + runtime-config.toml + boo…
aram356 Jul 2, 2026
8f6776c
Spin: local-mode provision writes bindings + runtime-config + .env __…
aram356 Jul 2, 2026
00157fe
Spin: provision_typed writes lowercased [variables] + SPIN_VARIABLE_ …
aram356 Jul 2, 2026
84bfea9
Axum: local-mode provision creates .edgezero/ and writes .env (no axu…
aram356 Jul 2, 2026
dad90a2
Axum: provision_typed appends secret placeholders to .edgezero/.env
aram356 Jul 2, 2026
8f68180
Re-enable provision_local_dry_run worktree-clean test (Section 5 lock…
aram356 Jul 2, 2026
324c106
Fix two Section 5 contract gaps: Spin silent success + missing header
aram356 Jul 3, 2026
b00440c
Fastly: additive merge for edgezero_runtime_env on re-provision
aram356 Jul 3, 2026
0778ec9
Add run_provision_typed<C> public entry point
aram356 Jul 3, 2026
c729d93
Route Cmd::Provision through run_provision_typed (scaffold + app-demo)
aram356 Jul 3, 2026
50455b4
Scaffold: loop run_provision over every selected adapter
aram356 Jul 3, 2026
7e458aa
Scaffold: extend .gitignore with provision-owned manifests + local state
aram356 Jul 3, 2026
1a631ad
Gitignore Cloudflare/Fastly/Spin manifests; regenerate via provision …
aram356 Jul 3, 2026
9a5eb49
run_serve: adapter-scoped env-file load (axum vs spin); existing env …
aram356 Jul 3, 2026
3ad53c0
Smoke: warm-up via provision --local; drop obsolete backup_in_tree calls
aram356 Jul 3, 2026
d980113
CI: gate fastly/spin/wrangler/runtime-config.toml + .dev.vars (axum.t…
aram356 Jul 3, 2026
d0199dc
Docs: update for provision --local + gitignored adapter manifests
aram356 Jul 3, 2026
6361d87
Axum: per-adapter provision_local_ contract tests (axum.toml untouched)
aram356 Jul 3, 2026
20970d2
Fastly: per-adapter provision_local_ contract tests
aram356 Jul 3, 2026
afc6fbe
Cloudflare: per-adapter provision_local_ contract tests
aram356 Jul 3, 2026
31ca168
Spin: per-adapter provision_local_ contract tests + env-label alignment
aram356 Jul 3, 2026
492f774
Axum: split cli.rs into cli/{mod,provision_local,run}.rs
aram356 Jul 3, 2026
637e6a6
Cloudflare: split cli.rs into cli/{mod,provision_local,provision_clou…
aram356 Jul 3, 2026
9ea12d5
Fastly: split cli.rs into cli/{mod,provision_local,provision_cloud,pu…
aram356 Jul 3, 2026
09fcb85
Spin: split cli.rs; rename push_sqlite→push_local; fold housekeeping
aram356 Jul 3, 2026
20c29b7
Adapters: hoist path_mutation_guard to cli/mod.rs to fix cross-module…
aram356 Jul 3, 2026
e3657b7
Cloudflare: fix .dev.vars commented KEY placeholder value
aram356 Jul 3, 2026
d3c4b81
Fastly: fix service_id root-key positioning + populate cloud deployed…
aram356 Jul 4, 2026
2e7b0c2
CLI: merge outcome.deployed from run_provision_typed real-write path
aram356 Jul 4, 2026
ed5bf83
Deployed schema: colocate scalar+sub-table field arrays with the struct
aram356 Jul 4, 2026
6bb5c7e
Docs: correct axum.toml claim + Spin dotenv recipe + gitignore list
aram356 Jul 4, 2026
153fa7c
Fastly: template no longer seeds empty service_id; docs match cloud/l…
aram356 Jul 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,20 @@ jobs:
- name: Nested AppConfig audit
run: cargo run -q --bin check_no_nested_app_config --features nested-app-config-check -- examples/app-demo crates/edgezero-cli/src/templates

# Enforce spec §"Cloudflare / Fastly / Spin manifests are gitignored"
# + §"Migration for downstream projects". The four generated adapter
# manifests (`wrangler.toml`, `fastly.toml`, `spin.toml`,
# `runtime-config.toml`) and Cloudflare's `.dev.vars` MUST NOT be
# tracked -- teammates regenerate them locally via
# `provision --local`. `axum.toml` is intentionally exempt:
# Axum owns its manifest and it stays tracked.
- name: Enforce Cloudflare/Fastly/Spin manifests and .dev.vars are not tracked
run: |
if git ls-files | grep -E '(^|/)(fastly|spin|wrangler|runtime-config)\.toml$|(^|/)\.dev\.vars$'; then
echo "::error::These adapter manifests AND Cloudflare's .dev.vars must be gitignored (spec §'Cloudflare / Fastly / Spin manifests are gitignored' + §'Migration for downstream projects'). axum.toml is the only adapter manifest that stays tracked. .dev.vars carries operator secret values and must NEVER be committed."
exit 1
fi

- name: Run workspace tests
run: cargo test --workspace --all-targets

Expand Down
18 changes: 17 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,23 @@ target/
.spin/
.edgezero/

# env
# Cloudflare / Fastly / Spin adapter manifests -- regenerated by
# `edgezero provision --local` (Tasks 17-28). Teammates must not
# commit each other's per-machine ids (namespace ids, platform
# binding names, etc.). axum.toml is INTENTIONALLY NOT in this
# list -- Axum owns its manifest and it stays tracked.
fastly.toml
spin.toml
wrangler.toml
runtime-config.toml

# Cloudflare per-adapter local secret placeholders -- written by
# `<app-cli> provision --adapter cloudflare --local` (Task 20).
# Operator-edited values must NEVER be committed.
.dev.vars

# env -- `.env` is provision-owned for Spin (Task 25) and Axum
# (Task 27) too. Operator overrides live here.
.env

# OS
Expand Down
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading