-
Notifications
You must be signed in to change notification settings - Fork 0
State<T> + nested/array #[secret] + Fastly dispatch fidelity + app! app-state injection #306
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
Merged
Merged
Changes from all commits
Commits
Show all changes
81 commits
Select commit
Hold shift + click to select a range
b082c3c
Add design spec for pluggable introspection routes
aram356 2e04b26
Add implementation plan for introspection routes
aram356 98d225a
Revise introspection plan per review: enum serialization, imports, co…
aram356 7301bce
Revise plan (round 2): real body assertions, oneshot config tests, bo…
aram356 4254ed4
Revise plan (round 3): single-filter test commands, scoped doc greps,…
aram356 9011684
Plan: stage roadmap.md alongside routing.md in Task 7 commit
aram356 5ab3546
Make Manifest serializable with secret-value redaction
aram356 d09c068
Inject IntrospectionData at router dispatch chokepoint
aram356 beed0a4
Add edgezero_core::introspection handlers (manifest/config/routes)
aram356 83dd8c4
app! macro: bake manifest JSON into build_router via with_manifest_json
aram356 5ed4e8c
Use workspace deps for edgezero-macros proc-macro2/quote/syn
aram356 9b3b820
Sync app-demo Cargo.lock for edgezero-macros serde_json dep
aram356 2cd9b0c
Remove legacy route-listing machinery and /__edgezero/routes
aram356 6869389
Wire default introspection triggers into app-demo and generated apps
aram356 adbc94d
Docs: replace route-listing with introspection routes
aram356 8999623
Track manifest as build input; strengthen introspection tests; doc ca…
aram356 56cca34
Spec/plan: introspection access via independent extractors (no gating)
aram356 0feb194
Expose introspection via ManifestJson/RouteTable extractors
aram356 c9c6f34
Spec/plan: per-route gated introspection injection (macro auto-flags,…
aram356 692dd17
Spec/plan: #[action(introspection)] opt-in drives gated injection (ap…
aram356 9cb3b79
Docs cleanup: single gated architecture in spec; plan status banner +…
aram356 a9ad7bc
Spec/plan: fully-atomic introspection (IntrospectionNeeds, per-capabi…
aram356 e7f9d57
Plan: prove per-capability atomicity (3-case probe); atomic header li…
aram356 be2e9a4
Add IntrospectionNeeds + DynHandler::introspection_needs
aram356 8273395
#[action]: accept atomic (manifest|routes) params; emit capability-ca…
aram356 c30e1e5
Opt manifest/routes into introspection via #[action(manifest|routes)]
aram356 15949c8
Gate introspection injection per capability via IntrospectionNeeds
aram356 e68df70
Review fixes: combined-caps atomicity test, no-params fn assertion, s…
aram356 2efa2da
Add macro-level test for combined #[action(manifest, routes)] codegen
aram356 585cbc5
docs: add State<T> + nested #[secret] design spec
aram356 304e236
docs: fold second-pass review blockers into spec §8
aram356 051a9ad
Merge PR #300 (introspection routes) as base for State<T> + nested se…
aram356 c208524
docs: implementation plans for State<T> + nested secrets; reconcile s…
aram356 d51e8b9
feat(core): add State<T> extractor for app-owned shared state
aram356 4487355
feat(core): RouterBuilder::with_state injects app state into request …
aram356 21c1488
test(macros): prove #[action] composes State<T>; docs: sharing app state
aram356 a632669
chore: sync Cargo.lock for edgezero-macros futures dev-dep
aram356 6ebc29a
docs: fold review-round-4 plan fixes; reconcile spec §4.3 with fn sec…
aram356 44b32ad
refactor(secrets): owned path-qualified SecretField + AppConfigMeta::…
aram356 f8132bd
refactor(core): store app state in an Extensions bag, not closure ins…
aram356 d390874
feat(secrets): path-navigating secret_walk (nested objects, arrays, o…
aram356 fe7bd72
feat(secrets): nested/list-aware validate_excluding_secrets pruning
aram356 9351db1
feat(macros): #[app_config(nested)] recursion, Option<String> secrets…
aram356 e26529b
ci(secrets): allow nested AppConfig when field opts in via #[app_conf…
aram356 4ce2bc5
feat(cli): path-aware secret reflection in config validate/push/diff
aram356 aa8b67a
test(secrets): end-to-end nested + named-store resolution; docs: nest…
aram356 47c827f
fix(macros): hard-error empty/bare #[app_config]; refresh stale SECRE…
aram356 aaf6e28
test(cli): nested config push preserves key names; nested config diff…
aram356 8c2e8a7
docs: mark superseded StateInserter steps; correct derive empty-app_c…
aram356 af1e40c
docs: retire remaining stale SECRET_FIELDS / StateInserter wording in…
aram356 47a112c
docs: last stale SECRET_FIELDS in a config.rs test comment
aram356 65afbd3
docs: P0-C/P0-D spec (Fastly dispatch fidelity + macro app-state), ma…
aram356 c86c039
docs: implementation plans for P0-C (Fastly dispatch fidelity) + P0-D…
aram356 2174a54
docs(p0c plan): cover FastlyService::dispatch caller; add app! owns_l…
aram356 26f694c
docs(p0 plans): C3 handler-visible test; app-demo clippy (separate wo…
aram356 a8b6046
docs(p0c plan): correct run_app_with_config dispatch path (via Fastly…
aram356 b11c71e
fix(fastly): preserve multi-value response headers (Set-Cookie) in fr…
aram356 2332aeb
docs(p0c plan): correct fastly test invocation (wasm32-wasip1 + Vicer…
aram356 02a0292
fix(fastly): preserve multi-value headers in proxy response/request c…
aram356 fe5b675
feat: Hooks::owns_logging() opt-out gated in all four adapter run_app…
aram356 5795fe2
docs(p0c plan): targeted fastly Viceroy filters (blanket --lib aborts…
aram356 3518fc3
feat(macros): app!(owns_logging = <bool>) keyword argument + AppArgs …
aram356 44bd0d0
feat(fastly): run_app_with_request_extensions pre-dispatch hook for r…
aram356 77b001a
feat(macros): app!(state = <expr>) emits RouterBuilder::with_state fo…
aram356 6feed2a
docs(app-demo): app!(state = ...) + State<T> handler example with end…
aram356 c01c490
docs(p0 plans): reconcile with implementation (AppArgs Debug, mod tes…
aram356 d8f71a4
fix(ci): nested-AppConfig guard footer states the #[app_config(nested…
aram356 bac9f8a
docs: document app!(state=)/owns_logging + run_app_with_request_exten…
aram356 8fc67f0
docs: correct state=<expr> guidance, JA4 snippet, and P0-D plan app_s…
aram356 222cb3a
docs: align config-push + Fastly guides with the blob/secret-metadata…
aram356 2fc3082
docs: fix Axum local-config shape + remaining #[secret]-stripping claims
aram356 ead34fe
docs: fix bundled-push examples + blob-key precision
aram356 306bd4b
docs: document config diff + missing config push flags; clarify __KEY…
aram356 d32859d
docs: note --dry-run errors against Spin Cloud (unsupported read-back)
aram356 08e8293
Merge remote-tracking branch 'origin/main' into worktree-state-nested…
aram356 88d3e69
docs: drop blank line before nested ordered list (prettier 3.8.3)
aram356 ff53028
docs: drop phase infixes from spec/plan filenames + fix cross-references
aram356 27a75e9
review: require nested intermediates, skip StoreRef early, guard self…
aram356 a338071
review: redact secrets from runtime validation errors (P1); keep Host…
aram356 04f9e77
review round 2: no userinfo in Host, cycle backstop, generic nested c…
aram356 c4d234a
Merge branch 'main' into worktree-state-nested-secrets-spec-review
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
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
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
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.