Repository navigation
Commit f717674
authored
Bind Fastly stores per deployment environment (#381)
* fix(fastly): apply canonical store selectors at deploy
* test(actions): model Fastly resource link IDs
* docs: move deploy specs under superpowers
* docs: align deploy design artifact layout
* docs: design version-scoped Fastly selectors
* docs: plan version-scoped Fastly selectors
* refactor(deploy): let adapters claim managed deployment
* feat(fastly): define versioned runtime descriptors
* feat(fastly): load runtime config by service version
* docs: drop legacy Fastly selector migration
* fix(fastly): validate managed deploy inputs before dispatch
* docs: require immutable Fastly application releases
* feat(fastly): plan descriptors and resource links before deploy
* fix(fastly): prepare selectors before publishing versions
* fix(actions): retain failed Fastly deploy versions
* test(actions): model version-scoped Fastly descriptors
* fix(fastly): compile host-only tests for host targets
* docs(fastly): explain version-scoped runtime selectors
* chore: generalize lifecycle examples
* fix(actions): tighten Fastly lifecycle contracts
* fix(config): align staging keys with runtime descriptors
* fix(config): apply manifest store defaults consistently
* test(fastly): redact sensitive assertion diagnostics
* fix(fastly): close managed deployment review gaps
* test(fastly): gate package hash fixture by target
* test(actions): satisfy shellcheck for literal domains
* docs: replace Fastly runtime selector design
* fix(config): reject invalid store selectors before provider access
* refactor(fastly): use logical version resource links
* test(actions): align staging link mutation order
* test(fastly): avoid logging selector errors
* fix(fastly): keep runtime store keys target independent
* fix(manifest): resolve adapter logging case insensitively
* fix(fastly): harden managed deployment lifecycle
* test(actions): align smokes with logical store keys
* fix(fastly): harden immutable release publication
* fix(actions): align immutable release contracts
* fix(actions): scope Fastly releases to Fastly
* docs(actions): design provider-neutral action cores
* docs(actions): define lifecycle capability contract
* docs(actions): preserve repeated lifecycle outputs
* docs(actions): preserve lifecycle parsing semantics
* docs(actions): tighten modular core contracts
* fix(fastly): parse live resource link types
* docs(fastly): document runtime selector migration
* docs(actions): plan provider-neutral action cores
* refactor(actions): modularize application release lifecycle
* fix(actions): preserve caller script directory
* fix(ci): refresh app demo lockfile
* test(ci): run every adapter CLI suite
* ci: split host test suites by surface
* ci: retain uploaded artifacts for 14 days
* fix(fastly): avoid unsupported compute version diff
* fix(fastly): use pubsub logging API path
* fix(fastly): use current service commands
* ci: retain full workspace test baseline
* ci: add reusable Rust build cache
* fix(fastly): canonicalize configuration snapshots
* ci: cache application Cargo target artifacts
* test(ci): satisfy cache action shellcheck
* fix: address managed Fastly deployment review
* fix: address deployment review after main merge
* test: cover mixed-case deploy selector precedence
* fix: thread packaged digest into deploy smoke
* test: cover stale cached CLI under a configured Cargo target
* fix: build the app CLI for an explicit native target
A configured Cargo target (CARGO_BUILD_TARGET or build.target) moves the
fresh executable to <target-dir>/<triple>/release, but build-app-cli always
packaged <target-dir>/release. With a restored cache, an older root-level
executable still passed --help and was published as the current CLI.
Pass the toolchain's host triple as --target, which overrides any configured
target, and package the executable from that triple's directory.
* docs: restore corrections the main merge dropped
Merging main (9da604f) resolved five guide files to this branch's side
and dropped the corrections #373 made against the code. Restore each one
that still matches the code here: the Fastly manifest version, provision
behavior, build/serve commands, proxy import path, and streaming note;
Cloudflare local push by binding; the serve fallbacks, healthcheck
outputs, push outputs, and manifest/service-id rows in the CLI reference;
and the bare-handle constructors and `wrangler kv key put` spelling in
the store migration guide.
Also correct the local secret commands that never worked: `wrangler
secret put` takes no `--binding`, Fastly CLI 15.1.0 reads secret values
from `--stdin` or `--file`, and Spin reads `SPIN_VARIABLE_<NAME>` rather
than the bare variable name. Note the runner 2.327.1 requirement for the
Node 24 producer actions and drop stale overlay references from the
Fastly request rustdoc.
* fix(scaffold): make the commented upstream handler compile
The example returned `text(...)`, which does not exist, so uncommenting it
in a generated app failed with E0425. Return `Text<&'static str>` like the
template's other handlers.
* feat(axum): read secrets from EDGEZERO__SECRETS__<KEY>
The Axum dev server looked a secret key up as an environment variable of
the same name, so `api_token = "demo_api_token"` read `demo_api_token`.
That breaks env-var conventions and lets any inherited variable whose
name matches a key answer for it silently.
Secret key `k` now resolves from `EDGEZERO__SECRETS__` plus `k` in ASCII
uppercase, e.g. `EDGEZERO__SECRETS__DEMO_API_TOKEN`. One rule in
`secret_env` serves both the runtime store and `config validate`/`push`:
a key must be ASCII letters, digits, or `_`, and two different keys that
differ only in case are rejected because they would share a variable.
The bare variable is no longer read.
Update the Axum guide, CLI reference, migration guide, the generated
README and app config template, the core rustdoc, and the smoke scripts.1 parent 683202c commit f717674
128 files changed
Lines changed: 16895 additions & 10549 deletions
File tree
- .github
- actions
- build-app-cli
- scripts
- config-push-fastly
- scripts
- deploy-core
- scripts
- tests
- deploy-fastly
- scripts
- tests
- fastly-common/scripts
- healthcheck-fastly
- scripts
- package-application-release-fastly
- scripts
- tests
- release-core
- scripts
- tests
- require-github-environment
- scripts
- tests
- rollback-fastly
- scripts
- setup-rust-build-cache
- scripts
- tests
- workflows
- crates
- edgezero-adapter-axum/src
- edgezero-adapter-fastly
- src
- tests
- edgezero-adapter
- src
- edgezero-cli
- src
- templates
- app
- core/src
- root
- tests
- edgezero-core/src
- edgezero-macros
- src
- tests
- fixtures
- docs
- .vitepress
- guide
- adapters
- specs
- superpowers
- plans
- specs
- examples/app-demo
- scripts
- tests/fixtures/reusable-app/crates
- fixture-fastly/src
- fixture-harness/src
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
50 | | - | |
| 50 | + | |
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
| |||
105 | 105 | | |
106 | 106 | | |
107 | 107 | | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
108 | 111 | | |
109 | 112 | | |
110 | 113 | | |
| |||
276 | 279 | | |
277 | 280 | | |
278 | 281 | | |
279 | | - | |
280 | | - | |
281 | | - | |
| 282 | + | |
282 | 283 | | |
283 | 284 | | |
284 | 285 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
| 6 | + | |
6 | 7 | | |
7 | 8 | | |
8 | 9 | | |
| |||
17 | 18 | | |
18 | 19 | | |
19 | 20 | | |
| 21 | + | |
20 | 22 | | |
21 | 23 | | |
22 | 24 | | |
| |||
194 | 196 | | |
195 | 197 | | |
196 | 198 | | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
197 | 212 | | |
198 | 213 | | |
199 | 214 | | |
| 215 | + | |
200 | 216 | | |
201 | 217 | | |
202 | 218 | | |
| |||
260 | 276 | | |
261 | 277 | | |
262 | 278 | | |
263 | | - | |
264 | | - | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
265 | 294 | | |
266 | | - | |
| 295 | + | |
267 | 296 | | |
268 | | - | |
| 297 | + | |
269 | 298 | | |
270 | 299 | | |
271 | 300 | | |
| |||
278 | 307 | | |
279 | 308 | | |
280 | 309 | | |
281 | | - | |
| 310 | + | |
282 | 311 | | |
283 | 312 | | |
284 | 313 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
6 | | - | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
7 | 13 | | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | 14 | | |
13 | | - | |
| 15 | + | |
14 | 16 | | |
15 | 17 | | |
16 | | - | |
| 18 | + | |
17 | 19 | | |
18 | 20 | | |
19 | | - | |
20 | | - | |
21 | | - | |
22 | | - | |
23 | 21 | | |
24 | | - | |
| 22 | + | |
25 | 23 | | |
26 | 24 | | |
27 | 25 | | |
28 | | - | |
| 26 | + | |
29 | 27 | | |
30 | 28 | | |
31 | 29 | | |
32 | | - | |
| 30 | + | |
33 | 31 | | |
34 | 32 | | |
35 | 33 | | |
36 | | - | |
| 34 | + | |
37 | 35 | | |
38 | 36 | | |
39 | 37 | | |
40 | | - | |
| 38 | + | |
41 | 39 | | |
42 | 40 | | |
43 | 41 | | |
44 | | - | |
| 42 | + | |
45 | 43 | | |
46 | 44 | | |
47 | 45 | | |
48 | 46 | | |
49 | 47 | | |
50 | | - | |
| 48 | + | |
51 | 49 | | |
52 | 50 | | |
53 | | - | |
| 51 | + | |
54 | 52 | | |
55 | 53 | | |
56 | | - | |
| 54 | + | |
57 | 55 | | |
58 | 56 | | |
59 | | - | |
| 57 | + | |
60 | 58 | | |
61 | 59 | | |
62 | 60 | | |
63 | 61 | | |
64 | 62 | | |
65 | | - | |
66 | | - | |
67 | | - | |
68 | 63 | | |
69 | 64 | | |
70 | 65 | | |
71 | | - | |
72 | | - | |
73 | | - | |
74 | 66 | | |
75 | 67 | | |
76 | 68 | | |
| |||
97 | 89 | | |
98 | 90 | | |
99 | 91 | | |
100 | | - | |
| 92 | + | |
| 93 | + | |
101 | 94 | | |
102 | 95 | | |
103 | | - | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
104 | 99 | | |
105 | 100 | | |
106 | 101 | | |
| |||
119 | 114 | | |
120 | 115 | | |
121 | 116 | | |
122 | | - | |
123 | | - | |
124 | | - | |
125 | | - | |
126 | | - | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
127 | 120 | | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
128 | 129 | | |
129 | 130 | | |
130 | 131 | | |
| |||
141 | 142 | | |
142 | 143 | | |
143 | 144 | | |
| 145 | + | |
144 | 146 | | |
145 | | - | |
| 147 | + | |
146 | 148 | | |
147 | 149 | | |
148 | 150 | | |
149 | 151 | | |
150 | 152 | | |
151 | | - | |
| 153 | + | |
152 | 154 | | |
153 | | - | |
154 | 155 | | |
155 | 156 | | |
156 | 157 | | |
| |||
199 | 200 | | |
200 | 201 | | |
201 | 202 | | |
202 | | - | |
203 | | - | |
204 | 203 | | |
205 | 204 | | |
206 | | - | |
207 | | - | |
208 | 205 | | |
209 | | - | |
210 | 206 | | |
211 | 207 | | |
212 | 208 | | |
213 | 209 | | |
214 | | - | |
215 | | - | |
| 210 | + | |
216 | 211 | | |
217 | 212 | | |
218 | 213 | | |
219 | | - | |
220 | | - | |
221 | | - | |
222 | | - | |
| 214 | + | |
| 215 | + | |
223 | 216 | | |
224 | 217 | | |
225 | 218 | | |
| |||
0 commit comments