Add pluggable introspection routes (manifest / config / routes)#300
Draft
aram356 wants to merge 18 commits into
Draft
Add pluggable introspection routes (manifest / config / routes)#300aram356 wants to merge 18 commits into
aram356 wants to merge 18 commits into
Conversation
…nfig/app-demo test coverage, workspace commands
…dy-mode rename, Internal->500, scaffold CI checks
… roadmap update, macro crate test
Match the edgezero-cli precedent and the workspace-dependency convention. Adds quote to [workspace.dependencies].
…veat - emit `include_bytes!` const in app! output so edits to edgezero.toml trigger a Cargo rebuild without requiring a .rs change - strengthen middleware_sees_introspection_data to assert manifest_json presence and non-empty route list, mirroring dispatch test - add content-type assertion to routes_lists_registered_routes - add security caveat to routing.md Introspection Routes section noting endpoints are unauthenticated and environment.variables values are emitted
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
Adds three reusable, framework-supplied introspection handlers bound via
[[triggers.http]]:edgezero_core::introspection::manifestedgezero_core::introspection::config.data(secret-safe: secret fields stay as unresolved key-name references)edgezero_core::introspection::routes[{method, path}]from the live route indexDefault-mounted at
/_<app-name>/{manifest,config,routes}in app-demo and every generated app (plain, editable trigger rows). Theapp!macro serializes the manifest and injects it viaRouterBuilder::with_manifest_json;RouterInner::dispatchinjectsIntrospectionDatainto each request's extensions (shared chokepoint — no global state, no per-adapter changes). Removes the legacyenable_route_listing//__edgezero/routesmachinery.Also: the
app!macro now emitsinclude_bytes!(<manifest>)so Cargo rebuilds whenedgezero.tomlchanges, and edgezero-macros'proc-macro2/quote/synnow use workspace deps.Spec:
docs/superpowers/specs/2026-07-01-introspection-routes-design.mdPlan:
docs/superpowers/plans/2026-07-02-introspection-routes.mdStatus
introspection_routes_are_wired)Notes
/manifestemitsenvironment.variables[].value, so do not store secrets in[environment.variables](only[environment.secrets]values are redacted). Documented indocs/guide/routing.md.Closes #299