Align guide docs with the code on main - #373
Open
aram356 wants to merge 3 commits into
Open
Conversation
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.
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.
ChristianPavilonis
approved these changes
Sep 7, 2026
ChristianPavilonis
left a comment
Contributor
There was a problem hiding this comment.
Summary
Reviewed the locked PR revision against its base. The documentation alignment is broadly correct, with five actionable documentation corrections noted inline.
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.
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
docs/guideagainst the current crates found names that no longer exist, behaviour the code contradicts, and public surface with no coverage. This PR fixes what the audit turned up, so a reader following the guides lands on APIs and commands that exist and behave as described.Changes
docs/guide/adapters/fastly.mddispatch_with_config*with theFastlyServicebuilder; add Custom entry points (runtime_env_config,dispatch_with_registries,RUNTIME_ENV_STORE_NAME, both footguns); buffering,-C,manifest_version = 3,[setup],proxy::importdocs/guide/adapters/cloudflare.mdCloudflareServicebuilder;worker-buildbuild command;context::/proxy::imports;wrangler kv key put; Secret Store section; kv/config merged-id collisiondocs/guide/adapters/axum.mddev_server::run_app,AxumProxyClient::try_new(), bind-address precedence,EDGEZERO__LOGGING__LEVEL,owns_logging; KV Storage and Secret Store sections; KV no longer listed as unavailabledocs/guide/adapters/spin.mdrequired = truevsdefault = ""docs/guide/adapters/overview.mddocs/guide/streaming.md,proxying.mdSpinProxyClient,AxumProxyClient::try_new()?docs/guide/routing.md,handlers.md,middleware.md,kv.mdKv,Config,Secrets,AppConfig<C>);FnMiddleware/middleware_arc; Axum KV file namingdocs/guide/configuration.mdapp!argument table; adapter metadatacomponent/host/port;auth-*command overrides;rename_allandstore_refrules; compiling secret-resolution exampledocs/guide/blob-app-config-migration.mdconfig push --stagingas the supported staging path; Axum env-var andwrangler secret putforms; canary key in examples;config.rsdiff entry pointdocs/guide/manifest-store-migration.mdEDGEZERO__LOGGING__*rows; dropdispatch_with_*_handledocs/guide/cli-reference.md,cli-walkthrough.md-C/--manifest-pathserve and deploy forms; healthcheck outputs and token behaviour; Cloudflare--binding --local;pushed-key/pushed-store;EDGEZERO_MANIFESTscope;my-app.tomlin the tree; lifecycle commands in the generated CLIdocs/guide/deploy-github-actions.md,docs/specs/edgezero-deploy-github-action.mdcache/restore@v6+cache/save@v6, nocheckout; cache-key components; artifact retention and job summarydocs/guide/architecture.md,what-is-edgezero.md,roadmap.md,docs/index.mddispatch_with_configdropped from the diagramdocs/.vitepress/config.mtscrates/edgezero-adapter-axum/src/key_value_store.rs.edgezero/kv-<slug>-<hash>.redb, not the removed.edgezero/kv.redbdefaultCloses
Closes #372
Closes #361
Closes #77
Test plan
cargo fmt --all -- --checkcd docs && npm run lint && npm run format && npm run builddocs/guidereports only placeholder app names and third-party namescargo test --workspace --all-targets(no Rust code changed; one//!comment)cargo clippy --workspace --all-targets --all-features -- -D warnings(not applicable)cargo check --workspace --all-targets --features "fastly cloudflare spin"(not applicable)examples/app-demoworkspace (not applicable)edgezero serve --adapter axum(not applicable)Checklist
{id}syntax (not:id)edgezero_core(nothttpcrate)KvRegistry/ConfigRegistry/SecretRegistry(not the legacy single-handle setters) — see spec §6.6