You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 9893091
Browse filesBrowse the repository at this point in the historyBrowse files
* Align guide docs with the code on main
A page-by-page audit of docs/guide against the current crates found
names that no longer exist, behaviour descriptions the code contradicts,
and public surface with no coverage. This commit fixes what the audit
turned up.
Phantom names: dispatch_with_config / dispatch_with_config_handle
(fastly, cloudflare, architecture), AxumProxyClient::default(),
EDGEZERO_SECRET_ prefix, wrangler secret put --binding, diff.rs entry
point, dispatch_with_*_handle, crate-root imports for types that live
in proxy:: / context:: / dev_server::.
Behaviour: response streaming is preserved only on Cloudflare (Fastly,
Spin and Axum buffer); duplicate routes panic at build rather than
first-registered-wins; Axum honours the axum.toml port through the CLI
and reads EDGEZERO__LOGGING__LEVEL, not edgezero.toml; Axum KV files are
.edgezero/kv-<slug>-<hash>.redb; healthcheck emits status-code only when
an HTTP status arrived and degrades to service-level without a token;
EDGEZERO_MANIFEST and the missing-manifest fallback apply to
build/deploy/serve only; Cloudflare local push selects by --binding;
deploy actions use cache/restore@v6 + cache/save@v6 and no checkout;
the cache key includes the workspace path and build-args hash.
Coverage: Fastly custom entry points (runtime_env_config,
dispatch_with_registries, RUNTIME_ENV_STORE_NAME and the two footguns);
FastlyService / CloudflareService builders; store extractors (Kv,
Config, Secrets, AppConfig<C>); FnMiddleware and middleware_arc; app!
argument list; adapter metadata component/host/port and auth-* command
overrides; EDGEZERO__LOGGING__* rows; config push --staging as the
supported staging path; Spin everywhere it was missing (landing page,
platform table, architecture, roadmap, overview tests and capability
table, and Logging / Proxy / Context / Testing sections on its page);
Axum KV and Secret Store sections; Cloudflare Secret Store and the
kv/config merged-id collision; scaffold tree and generated CLI surface;
KV page added to the sidebar.
* Fix stale KV storage path in Axum key_value_store module doc
The dev server derives .edgezero/kv-<slug>-<hash>.redb for every
declared id (kv_store_path in dev_server.rs); the hard-coded
.edgezero/kv.redb default the module doc described no longer exists.
* Address review on docs alignment
Five inline comments from the PR 373 review, each checked against
source before editing.
"Cloudflare's documented manual dispatch call does not compile": the
builder's dispatch takes (req, env, ctx) and is async. Documented the
real call with a complete entrypoint example.
"Duplicate routes are not always caught at startup": only Axum builds
the router once at startup; Fastly, Cloudflare, and Spin call
build_app() per request, so the panic lands on the first request after
a successful deploy. Said so and pointed at the Axum dev server as the
pre-deploy check.
"These Fastly logging controls are not applied on the runtime-env path":
FastlyLogging::from(&EnvConfig) derives logger use from ENDPOINT alone
and hard-codes echo_stdout. Marked USE_FASTLY_LOGGER and ECHO_STDOUT as
resolved but not applied, and noted that ENDPOINT is what enables the
logger.
"Buffering adapters do not provide the claimed memory benefit": Axum
collects into an unbounded buffer and Spin caps at 16 MiB. Scoped the
memory claim to Cloudflare and described streaming on the buffering
adapters as composability only.
"EDGEZERO_MANIFEST also applies to auth": run_auth calls
load_manifest_optional and has no --manifest flag. Added auth to the
env-var scope and the missing-manifest fallback.
* Address second review on docs alignment
Ten findings from the PR 373 review, each re-checked against source.
"Cloudflare's dispatch_with_registries is pub(crate)": reworded so the
name is not presented as a public entry point, unlike Fastly's.
"Fastly custom entry point omits the owns_logging guard": the example
now mirrors run_app's `use_fastly_logger && !owns_logging()` check.
"cargo install worker-builder installs nothing": the crate is
worker-build; prerequisite fixed.
"The same stale wrangler command survives": `wrangler kv:key put` in
manifest-store-migration.md is now the space form.
"proxying.md bullets still say Fastly and Cloudflare": Spin buffers
outbound bodies with a 16 MiB cap and also decodes gzip/br; both
bullets say so.
".edgezero/kv.redb still stands in core": the put_bytes_with_ttl doc
comment now names the per-store kv-<slug>-<hash>.redb file.
"[local_server.*] framing": provision writes only [setup.*], keyed by
platform name; config push --local writes the config-store stanzas,
kv/secret local seeding is hand-edited.
"(geolocation) names a gap that does not exist": parenthetical
replaced with a claim that holds.
"each declared KV id": files are keyed by resolved store name; the
module doc says store.
"Redundant Ok(...?)": dropped; dispatch_with_registries already returns
the right Result.
* Address third review on docs alignment
The review's theme was claims corrected in one file and left standing
in another. Each item below was re-checked against source.
Blocking:
"handlers.md example cannot compile": there is no free text(); the
example now returns Text<String> via Text::new and carries the
extractor:: imports, with a note that edgezero_core::AppConfig at the
root is the derive macro.
"fastly.md Logging section still points at edgezero.toml": rewritten to
the EDGEZERO__LOGGING__* runtime-env path, with ENDPOINT as the enabler
and ECHO_STDOUT / USE_FASTLY_LOGGER marked as not applied; the tip no
longer says run_app always installs a logger.
"streaming.md sections contradict the new one": decompression scoped
to Fastly/Cloudflare/Spin; Memory Considerations and Chunked Transfer
now say only Cloudflare delivers progressively and the others still
collect the body.
"cli-reference serve/deploy bullets mix scaffold and fallback": both
lists now lead with the manifest-wins rule and give the built-in
fallback per adapter, naming the scaffolded form where it differs.
"manifest-store-migration presents dispatch_with_registries
generically": now attributed to Fastly only.
Non-blocking: Cloudflare KV Storage section rewritten to the
store-registry shape; Environment Variables & Secrets folded so
secrets live in one place; overview's generic dispatch claim widened
to free function or service builder; --service-id required on three
of four lifecycle commands; active-version / healthcheck / rollback
load no manifest; core key_value_store doc notes list_keys also
sweeps expired keys; kv.md keys files by resolved name; routing.md
panic timing is at registration; middleware.md names middleware_fn and
the real Fn bound; axum.md run_app logger install is guarded by
owns_logging; pushed-store is the logical id; config diff also reads
the app config file; job summary reports whether caching was enabled;
setup-rust-toolchain added to the Node 24 list; diff.rs also owns
change collection; Body::Stream capitalised on cloudflare.md; Spin
added to the streaming and proxying Next Steps.
* Address fourth review on docs alignment
"Use the app's CLI for config push": the bundled edgezero binary stubs
config push with exit 2; fastly.md now names the generated app CLI for
the --local seeding step.
"Qualify Spin's 16 MiB cap as applying to stream collection":
collect_body_bytes checks size only on the Stream arm, so proxying.md
and streaming.md now say the cap applies to streamed-body collection
and that an already-buffered Body::Once bypasses it.
While Axum provides a convenient development environment, always test on actual edge platforms before deploying. Some edge-specific features (KV stores, geolocation) aren't available in the Axum adapter.
272
+
While Axum provides a convenient development environment, always test on actual edge platforms before deploying. Provider-specific behaviour such as store backends and request context differs on the real targets.
0 commit comments