Repository navigation
feat: add adapter-owned local provisioning and CLI lifecycle #287
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
aram356
wants to merge
161
commits into
main
Choose a base branch
from
feature/provision-local-impl
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
161 commits
Select commit
Hold shift + click to select a range
0f924d7
provision --local implementation: tracking branch
aram356 1ffe5a9
Add ProvisionMode + ProvisionArgs.local for provision --local
aram356 feb607e
Add neutral ProvisionOutcome + AdapterDeployedState types + crate-roo…
aram356 5896a8e
Thread ProvisionMode + ProvisionOutcome through Adapter::provision
aram356 63f9a4d
Add Adapter::provision_typed trait method with default no-op
aram356 5121603
Extract run_typed_preflight; route validate/push/diff through it
aram356 a8e54e1
Task 5 fix: promote resolve_app_config_path_primitive to pub(crate) p…
aram356 d184c8f
Add path_safety module with containment helper
aram356 a347422
Wire path_safety into config push --local
aram356 d8d6622
Wire path_safety + ProvisionMode into run_provision
aram356 7074ac7
Add Adapter::synthesise_baseline_manifest + CLI bootstrap before vali…
aram356 a0bec7a
Add copy_tree helper; promote tempfile + toml_edit to CLI runtime deps
aram356 3fa8c22
Merge branch 'main' into feature/provision-local-impl
aram356 ba3f891
Move config push --local containment guard above run_shared_checks
aram356 619541a
Merge remote-tracking branch 'origin/feature/provision-local-impl' in…
aram356 1617bb8
Make provision_local accept-tests actually exercise their code paths
aram356 12d7129
Add run_with_staging tempdir helper for dry-run staging
aram356 42c198e
Wire mode x dry-run dispatch matrix into run_provision
aram356 cd87c24
Add dry-run allow-list diff + would-write status rewriting
aram356 66ab458
Add provision_local_dry_run worktree-clean + no-tempdir-leak test (ig…
aram356 2b3e700
Add ManifestAdapterDeployed struct + deployed field on ManifestAdapter
aram356 5531f72
Fix local dry-run to dispatch adapters with dry_run = false
aram356 6033e72
Add adapter-owned deployed_fields + Manifest-level cross-check
aram356 af4baa9
Task 15 followup: refresh #[expect] reasons + document case-handling
aram356 b3466c1
Add toml_edit-based [adapters.<name>.deployed] writeback
aram356 277f614
Cloudflare: cloud provision returns created namespace ids via deployed
aram356 d7d6b1a
Add edgezero_adapter::env_file::append_lines_dedup (used by Section 5)
aram356 9c21d15
Wire deployed_state_for translator + validate_deployed_field_ownershi…
aram356 fac82ab
Clean up misleading adapter-named tests in provision.rs
aram356 1e1e206
Fix three review findings: dry-run leak, baseline containment, deploy…
aram356 c640931
Cloudflare: primitive synthesiser for wrangler.toml + bootstrap override
aram356 91205a6
Cloudflare: local-mode provision emits [[kv_namespaces]] bindings (de…
aram356 da4a2b9
Cloudflare: local-mode provision writes .dev.vars __NAME / __KEY lines
aram356 140728e
Cloudflare: provision_typed appends secret placeholders to .dev.vars
aram356 84f8908
Fastly: primitive synthesiser for fastly.toml + bootstrap override
aram356 706d2cd
Fastly: local-mode provision writes [local_server.*] + edgezero_runti…
aram356 efd0be3
Fastly: provision_typed writes [[local_server.secret_stores.*]] entries
aram356 6642598
Spin: primitive synthesiser for spin.toml + runtime-config.toml + boo…
aram356 8f6776c
Spin: local-mode provision writes bindings + runtime-config + .env __…
aram356 00157fe
Spin: provision_typed writes lowercased [variables] + SPIN_VARIABLE_ …
aram356 84bfea9
Axum: local-mode provision creates .edgezero/ and writes .env (no axu…
aram356 dad90a2
Axum: provision_typed appends secret placeholders to .edgezero/.env
aram356 8f68180
Re-enable provision_local_dry_run worktree-clean test (Section 5 lock…
aram356 324c106
Fix two Section 5 contract gaps: Spin silent success + missing header
aram356 b00440c
Fastly: additive merge for edgezero_runtime_env on re-provision
aram356 0778ec9
Add run_provision_typed<C> public entry point
aram356 c729d93
Route Cmd::Provision through run_provision_typed (scaffold + app-demo)
aram356 50455b4
Scaffold: loop run_provision over every selected adapter
aram356 7e458aa
Scaffold: extend .gitignore with provision-owned manifests + local state
aram356 1a631ad
Gitignore Cloudflare/Fastly/Spin manifests; regenerate via provision …
aram356 9a5eb49
run_serve: adapter-scoped env-file load (axum vs spin); existing env …
aram356 3ad53c0
Smoke: warm-up via provision --local; drop obsolete backup_in_tree calls
aram356 d980113
CI: gate fastly/spin/wrangler/runtime-config.toml + .dev.vars (axum.t…
aram356 d0199dc
Docs: update for provision --local + gitignored adapter manifests
aram356 6361d87
Axum: per-adapter provision_local_ contract tests (axum.toml untouched)
aram356 20970d2
Fastly: per-adapter provision_local_ contract tests
aram356 afc6fbe
Cloudflare: per-adapter provision_local_ contract tests
aram356 31ca168
Spin: per-adapter provision_local_ contract tests + env-label alignment
aram356 492f774
Axum: split cli.rs into cli/{mod,provision_local,run}.rs
aram356 637e6a6
Cloudflare: split cli.rs into cli/{mod,provision_local,provision_clou…
aram356 9ea12d5
Fastly: split cli.rs into cli/{mod,provision_local,provision_cloud,pu…
aram356 09fcb85
Spin: split cli.rs; rename push_sqlite→push_local; fold housekeeping
aram356 20c29b7
Adapters: hoist path_mutation_guard to cli/mod.rs to fix cross-module…
aram356 e3657b7
Cloudflare: fix .dev.vars commented KEY placeholder value
aram356 d3c4b81
Fastly: fix service_id root-key positioning + populate cloud deployed…
aram356 2e7b0c2
CLI: merge outcome.deployed from run_provision_typed real-write path
aram356 ed5bf83
Deployed schema: colocate scalar+sub-table field arrays with the struct
aram356 6bb5c7e
Docs: correct axum.toml claim + Spin dotenv recipe + gitignore list
aram356 153fa7c
Fastly: template no longer seeds empty service_id; docs match cloud/l…
aram356 0483c00
Deep review batch 1: API hardening + PATH-guard unification + env-ove…
aram356 a72ff10
Deep review P1-b: cross-process advisory lock for provision + config …
aram356 24f2b20
Deep review batch 2: template hygiene walker + Fastly reparse asserts…
aram356 b766f75
Deep review batch 3: env-file hardening + case-insensitive test + Clo…
aram356 4a31c78
Provision status lines: name the file each mutation lands in
aram356 99b122c
Axum: axum.toml joins the provision-generated set
aram356 b9cdbd8
Provision: emit 'wrote baseline <path>' line for every synthesised ad…
aram356 ba9479f
Cloud path safety + provision lock in .edgezero/ + config push lock t…
aram356 6da249f
Axum dry-run: preview generated axum.toml + sanitise typed dry-run er…
aram356 10da44d
config.rs: remove all non-test #[expect] via code restructure
aram356 d584a23
Docs: spec + plan align on axum.toml provision-generated model
aram356 19c2180
Non-test #[expect] cleanup: stream module + scaffold Result + syn hel…
aram356 22964f5
args.rs: hoist no_diff+no_env into ConfigPushSuppressions sub-struct
aram356 1435d58
Remove two non-test expects in fastly + spin adapter crates
aram356 9cd1357
Remove missing_trait_methods expects across adapters + core manifest
aram356 1bddba5
Remove clippy::panic expect from canonical_form::write_number
aram356 9085a2e
app-demo-cli: track ConfigPushArgs.suppress hoist
aram356 0703a3f
Provision-local review findings: single-source axum.toml + docs + cop…
aram356 5e19f4f
Provision-local review v3: single-source all 5 manifests + gitignore …
aram356 2bb6487
Synth crate-name honours renamed adapter crates (not just <app>-adapt…
aram356 0dcdd13
Merge remote-tracking branch 'origin/main' into feature/provision-loc…
aram356 39bcb5e
Synth crate-name walks up nested manifest + Spin decouples component …
aram356 77fe77c
Docs formatting
aram356 a1e000e
Docs: split base vs typed provision --local + drop stale Spin synth m…
aram356 6589957
Docs sweep: primitive-synth <crate_name>, Spin override, base-vs-type…
aram356 7a92e57
Provision review: manifest required + diff path guard + env redaction…
aram356 44c9a2d
Provision review v2: redact commented env lines + require both manife…
aram356 c38cb54
Spin serve: load .env from adapter.manifest parent (matches provision…
aram356 57826a9
run_serve: path-safety guard + contract test for adapter env-file load
aram356 5bae973
run_serve contract test: intercept SPAWNED CHILD's env, not just pare…
aram356 bcd635e
Merge branch 'main' into feature/provision-local-impl
aram356 7d6d886
PR #287 review: config-validate path guard, symlink rejection, .env o…
aram356 3f340ef
Merge remote-tracking branch 'origin/main' into feature/provision-loc…
aram356 e0688aa
PR #287 v2 review: Windows paths, CF retry, Spin/Axum nested prefixes…
aram356 cc6ac4a
Merge remote-tracking branch 'origin/main' into feature/provision-loc…
aram356 b7ff41b
Fix Axum config push destroying sibling keys on read failure
aram356 65f4f62
Close symlink escapes and case-collision silent-wrong-value bugs
aram356 3d5c51c
Stop stale gitignored fastly.toml replacing tracked service_id
aram356 5af527e
Thread an exec context into the registry-fallback dispatch
aram356 007357e
Align provisioning to the v1 spec and close round-10 review findings
aram356 b4dd8b8
Add push-after-provision contract tests and fix migration docs
aram356 9cae021
Refresh a single-component spin.toml when the selector changes
aram356 ce4f6db
Harden Spin KV I/O, CF id capture, and validate/refresh split
aram356 c9c069d
Thread declared manifest into fallback, preserve TOML decor, compose …
aram356 cacda8c
Close round-12 review findings across provisioning and push
aram356 290c0e5
Require declared adapter manifests and harden Fastly cloud provisioning
aram356 b48fd6a
Fix clippy gate, nested-manifest resolution, and smoke isolation
aram356 467488b
Harden local-state containment and preflight the cutoff checks
aram356 f37413a
Close round-15 P2/P3 runtime-correctness and CI findings
aram356 8807a28
Close round-16 containment, preflight, and consistency findings
aram356 18297c1
Preflight remote mutations and tighten provision/push edge cases
aram356 b2ede4a
Anchor vendor CLIs, harden diffs, and make smoke backups fail-closed
aram356 ff19cc9
Anchor CF config path, prove the deploy lock, and fail smoke restore …
aram356 7f3b245
Serialize sibling lock borrowers and complete cargo target-dir parity
aram356 6483454
Harden provision lock auth, target resolution, and smoke cleanup
aram356 657d34a
Close reentrancy, resolver, and provider gaps; wire shell CI
aram356 df19357
Merge branch 'main' into feature/provision-local-impl
aram356 7b576e2
Fix cargo config parity, provider guards, and smoke ownership
aram356 9966115
Add explicit Spin cloud flag and fix composed-deploy deadlock
aram356 d4a3d04
Deliver Spin runtime overrides to the guest via spin up --env
aram356 008238a
Merge remote-tracking branch 'origin/feature/provision-local-impl' in…
aram356 babb74c
Sync app-demo Cargo.lock with the syn 3 bump
aram356 0c92b2c
Merge origin/main: integrate Fastly config gc into the split cli/ mod…
aram356 aaec172
Regenerate app-demo Cargo.lock after the merge
aram356 a2d0c53
Gate fastly cli test helpers on cfg(unix) for the wasm target
aram356 99d3bdf
Merge remote-tracking branch 'origin/main' into feature/provision-loc…
aram356 ab8ed5c
Fix Round-24 review: P0 build breakages + P1 provider/containment def…
aram356 e2c3e55
Serialize composed deploys with a depth-keyed sibling lock
aram356 563b9a3
Fix Round-25 review: dry-run snapshot consistency + provider/lock/con…
aram356 6c6e877
Merge origin/main into feature/provision-local-impl
aram356 022b933
Fix TMPDIR test leak that poisoned the shared env guard
aram356 348e57b
Fix CI: wasm clippy, commands-only adapter, and the deploy lock dirty…
aram356 72a961c
Merge main into provision-local implementation
aram356 0bd6b4c
Fix adapter crate declarations in deployment smoke fixtures
aram356 334dd8e
Keep immutable application releases free of project lock state
aram356 522ae79
Document adapter-owned CLI correctness redesign
aram356 ddb3306
Make adapters own CLI policy and harden local transactions
aram356 5e20eae
Keep dotenv encoding diagnostics separate from value bytes
aram356 d71d38e
Separate dotenv success and diagnostic branches explicitly
aram356 09733d0
fix: close local provisioning disclosure and path gaps
aram356 5c07986
Merge branch 'main' into feature/provision-local-impl
aram356 dac4838
Merge branch 'main' into feature/provision-local-impl
aram356 3912b21
Merge main into PR 287 and retain both CI test sets
aram356 139e5ff
fix: address provisioning safety and CLI review findings
aram356 80b9480
fix: retain static ingress fixtures in generated-state CI guard
aram356 d5c810a
fix: align adapter paths with Cargo and Wrangler
aram356 d62a151
Merge remote-tracking branch 'origin/main' into fix/pr-287-nov02
aram356 ca74224
fix: harden local provisioning and adapter CLI contracts
aram356 5de3c00
docs: disclose adapter CLI scope and provisioning migrations
aram356 d8f8bb3
docs: align Spin environment and cloud targeting guidance
aram356 06af5df
fix: declare required Spin secret variables explicitly
aram356 d590f0e
docs: correct required Spin secret migration examples
aram356 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.