-
Notifications
You must be signed in to change notification settings - Fork 11
Add dual-path EdgeZero entry point with feature flag (PR 14) #628
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
Open
prk-Jr
wants to merge
212
commits into
main
Choose a base branch
from
feature/edgezero-pr14-entry-point-dual-path
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
212 commits
Select commit
Hold shift + click to select a range
180471e
Rename crates to trusted-server-core and trusted-server-adapter-fastly
prk-Jr f63e5b2
Add platform abstraction layer with traits and RuntimeServices
prk-Jr 020e88c
Merge remote-tracking branch 'origin/main' into feature/edgezero-pr1-…
prk-Jr 37c8fbf
Merge branch 'feature/edgezero-pr1-crate-rename' into feature/edgezer…
prk-Jr 7495d96
Merge branch 'main' into feature/edgezero-pr2-platform-traits
prk-Jr 2c40d58
Address platform layer review feedback
prk-Jr 46e3360
Reject host strings containing control characters in BackendConfig
prk-Jr 2f40b4c
Fix clippy error
prk-Jr 8210a85
Validate scheme and host for control characters in BackendConfig
prk-Jr 99d7bee
Address review findings on platform abstraction layer
prk-Jr a2597e5
Address review findings on platform abstraction layer
prk-Jr d7a35a1
Merge branch 'main' into feature/edgezero-pr2-platform-traits
prk-Jr d8b267b
Add config store read path and storage module split
prk-Jr 591b9b3
Merge branch 'main' into feature/edgezero-pr2-platform-traits
aram356 ce456a9
Merge branch 'main' into feature/edgezero-pr3-config-store
prk-Jr ed57b14
Merge branch 'main' into feature/edgezero-pr3-config-store
prk-Jr a8c5648
Harden legacy config-store reads and align Fastly adapter stubs
prk-Jr 14e54c4
Address storage review feedback
prk-Jr c682c6d
Resolved github-advanced-security bot problems
prk-Jr eec34fb
Address PR review feedback on platform abstraction layer
prk-Jr d6be0b2
Merge branch 'main' into feature/edgezero-pr2-platform-traits
prk-Jr b25bfd6
Add PR 4 design spec for secret store trait (read-only)
prk-Jr a641eb0
Clarify test scope and deferred branches in PR 4 spec
prk-Jr 1ee695c
Add implementation plan for PR 4 secret store trait
prk-Jr 5b205bb
Add test for get_secret_bytes open-failure path
prk-Jr df6bc60
Add NotImplemented tests for FastlyPlatformSecretStore write stubs
prk-Jr 21ec187
Inline StoreId binding and add section comment in write-stub tests
prk-Jr e51a7d6
Remove plan
prk-Jr b4bda32
Add PR 6 design spec for backend and HTTP client traits
prk-Jr 57d6bec
Address spec review findings on PR 6 design
prk-Jr 571656c
Implement PlatformHttpClient and thread RuntimeServices through proxy…
prk-Jr e271dce
Merge branch 'main' into feature/edgezero-pr6-backend-http-client
prk-Jr 7181a92
Merge branch 'main' into feature/edgezero-pr3-config-store
prk-Jr f4c4b57
Merge branch 'main' into feature/edgezero-pr2-platform-traits
prk-Jr b8c4daf
Merge branch 'main' into feature/edgezero-pr4-secret-store
prk-Jr 2bc167e
Merge branch 'main' into feature/edgezero-pr2-platform-traits
prk-Jr b458d64
Address pr review findings
prk-Jr 089a805
Merge branch 'feature/edgezero-pr2-platform-traits' into feature/edge…
prk-Jr 882fd29
Merge branch 'feature/edgezero-pr3-config-store' into feature/edgezer…
prk-Jr 291ad66
Merge branch 'feature/edgezero-pr4-secret-store' into feature/edgezer…
prk-Jr ebf129b
Resolve pr review findings
prk-Jr 2ff0ce9
Add PR7 design spec for geo lookup + client info extract-once
prk-Jr ead539c
Fix spec review issues in PR7 design doc
prk-Jr 8bbfc74
Update PR7 spec to address all five agent review findings
prk-Jr b39cd79
Add PR7 implementation plan and address plan review findings
prk-Jr d6a624a
Fix three plan review findings and two open questions
prk-Jr 986a1b2
Broaden two low-severity doc cleanup steps in PR7 plan
prk-Jr 86079c5
Fix two remaining low findings in PR7 plan
prk-Jr a03a765
Fix count drift in Step 7: four → five locations
prk-Jr ac79961
Add client_info field to AuctionContext and fix all construction sites
prk-Jr b96aec0
Change RequestInfo::from_request to take &ClientInfo, thread services…
prk-Jr 661e3df
Add Task 2 follow-up coverage and README route fixes
prk-Jr 774a07f
Add services param to generate_synthetic_id, remove Fastly IP/geo cal…
prk-Jr 95ce45e
Revert premature publisher geo change from Task 3
prk-Jr b10dcec
Replace deprecated GeoInfo::from_request in publisher.rs with service…
prk-Jr 888170d
Remove Fastly IP extraction from Didomi copy_headers, use ClientInfo …
prk-Jr f856b68
Move IpAddr import to test module level in didomi.rs
prk-Jr eb12522
Apply rustfmt formatting to didomi.rs, publisher.rs, and synthetic.rs
prk-Jr 7fcb3b4
Add test coverage for generate_synthetic_id with concrete client IP
prk-Jr 1844290
Align geo lookup warn log format with codebase convention ({e} not {e…
prk-Jr 0132a36
Apply Prettier formatting to PR7 plan and spec docs
prk-Jr ffa1174
Document content rewriting as platform-agnostic in platform module
prk-Jr fbbf767
Document html_processor as platform-agnostic
prk-Jr b89a9e6
Document streaming_processor as platform-agnostic
prk-Jr 6fa8b38
Fix unresolved doc link: replace EdgeRequest with edgezero_core::http…
prk-Jr e9ce63d
Add plan for content rewriting
prk-Jr 794b66d
Add plan for PR9: wire signing to store primitives
prk-Jr e13537b
Add build_services_with_config_and_secret to test_support
prk-Jr b0c6571
Merge branch 'main' into feature/edgezero-pr6-backend-http-client
prk-Jr 14f282b
Merge branch 'feature/edgezero-pr6-backend-http-client' into feature/…
prk-Jr 34c44bd
Merge branch 'feature/edgezero-pr7-geo-client-info' into feature/edge…
prk-Jr 04b9cda
Merge branch 'feature/edgezero-pr8-content-rewriting' into feature/ed…
prk-Jr 2c0c4eb
Add FastlyManagementApiClient to adapter
prk-Jr f6b00c8
Implement FastlyPlatformConfigStore and FastlyPlatformSecretStore wri…
prk-Jr ec62970
Migrate KeyRotationManager from FastlyApiClient to RuntimeServices st…
prk-Jr 27a0949
Migrate signing.rs from FastlyConfigStore/FastlySecretStore to Runtim…
prk-Jr 5b6555f
Delete storage/api_client.rs from core; remove FastlyApiClient
prk-Jr 0a8915c
Fix formatting after CI gate check
prk-Jr 2f1cc97
Add services to AuctionContext; remove deprecated from_config shim
prk-Jr ba141fa
Fix prettier formatting in PR9 plan document
prk-Jr 7310198
Add PR 10 logging initialization design
prk-Jr a05189e
Add PR 10 logging initialization plan
prk-Jr 4617253
Fix PR 10 logging plan to avoid per-log allocation
prk-Jr 236eecf
Extract Fastly logging initialization into adapter module
prk-Jr cd68357
Wire Fastly main.rs to adapter-local logging module
prk-Jr 41cb0df
Remove log-fastly from core dependencies
prk-Jr e437454
Format Fastly logging module declaration
prk-Jr f9b4d62
format plan docs
prk-Jr 1a0c0b6
Address PR findings
prk-Jr 49e3f1d
Restore idiomatic fern logging and improve target label extraction
prk-Jr 086b32c
Migrate utility layer to HTTP types
prk-Jr a9dd665
Migrate handler layer to HTTP types
prk-Jr 7365ec4
Address PR review findings
prk-Jr 079a97f
Address review findings
prk-Jr e9ec0a8
Migrate integration and provider HTTP types
prk-Jr 3924a98
Address review findings
prk-Jr dd6929c
Resolve review findings
prk-Jr 2817761
Resolve PR review findings
prk-Jr ba9c608
Address review findings
prk-Jr 4cd511c
Removed unused import
prk-Jr d2fa12d
Merge branch 'feature/edgezero-pr12-handler-layer-types' into feature…
prk-Jr 442a6e2
Resolve PR findings
prk-Jr 0db7beb
Resolve PR findings
prk-Jr f5a984a
Add dual-path entry point with feature-flag dispatch and legacy_main …
prk-Jr a81b1d6
Fix clippy doc_markdown, fmt, and add warn log on flag-read failure
prk-Jr 7d2f059
Add FinalizeResponseMiddleware and AuthMiddleware with golden header-…
prk-Jr 4410813
Simplify EdgeError::internal call and fix comment accuracy in middleware
prk-Jr 68ddcba
Revert anyhow direct dependency; use std::io::Error::other for EdgeEr…
prk-Jr 8c9cb56
Implement TrustedServerApp with all routes via Hooks trait
prk-Jr 5e30906
Fix app.rs spec gaps: remove double-Arc, move tsjs into catch-all, fi…
prk-Jr e1bce63
Clean up app.rs: remove gratuitous allocation, Box::pin inconsistency…
prk-Jr 181d866
Reference legacy-cleanup issue in legacy_main comment
prk-Jr e8e0d9f
Fix lint issues
prk-Jr d3c2798
Pin edgezero dependencies to branch=main and bump toml to 1.1
prk-Jr a300109
Switch EdgeZero dispatch to dispatch_with_config, add routing log lines
prk-Jr 86a44b6
Register explicit GET / and POST / routes to cover matchit root path gap
prk-Jr a48d956
Add trusted_server_config config store for local dev
prk-Jr dacc403
Address PR review findings in app.rs
prk-Jr d5f5c0d
Fix rotate/delete atomicity, HTTP verb, idempotent deletes, and weak …
prk-Jr f9df8da
Merge branch 'main' into feature/edgezero-pr9-wire-signing-to-store-p…
prk-Jr 1acbfa7
Resolve PR review feedback on logging module
prk-Jr ae402ff
Address review findings
prk-Jr ff2e0cd
Resolve PR review findings
prk-Jr 6a2ad3f
Merge feature/edgezero-pr11-utility-layer-migration-v2
prk-Jr 5dbbfb0
Merge feature/edgezero-pr12-handler-layer-types
prk-Jr 94ec947
Address review findings: safe body reads and bounded inbound forwarding
prk-Jr c2b4bc9
Merge remote-tracking branch 'origin/feature/edgezero-pr13-integratio…
prk-Jr 40b4598
Resolve PR review findings and format lint
prk-Jr 1a2cb46
Address round-3 review findings
prk-Jr e8c06e9
Address PR review: add body-size caps and remove orchestrator duplica…
prk-Jr 6d9d96a
Merge feature/edgezero-pr12-handler-layer-types: resolve body-cap and…
prk-Jr 4b27087
Address PR review: fmt, testlight body cap, auction constant, stale R…
prk-Jr 3bd4a1b
Merge feature/edgezero-pr13: use AUCTION_MAX_BODY_BYTES and testlight…
prk-Jr 373c8e4
Address PR14 review findings: middleware finalize and missing HTTP me…
prk-Jr 6c016d8
Make AppState private — not part of any public API
prk-Jr eb6a9e9
Resolve review findings
prk-Jr 9a1fd41
Resolve PR review findings
prk-Jr cd9cda7
Resolve PR review findings
prk-Jr cf0df8e
Resolve PR review findings
prk-Jr 3bb3006
Use append_header in place of set_header
prk-Jr ed3c161
Merge branch 'feature/edgezero-pr11-utility-layer-migration-v2' into …
prk-Jr 7321e79
fix lint
prk-Jr dfa0386
Merge branch 'main' into feature/edgezero-pr9-wire-signing-to-store-p…
prk-Jr e0c9bb8
Merge branch 'feature/edgezero-pr9-wire-signing-to-store-primitives' …
prk-Jr 5f5b067
Merge branch 'feature/edgezero-pr10-abstract-logging-initialization' …
prk-Jr 1d22f8c
Route Fastly cookie calls through compat bridge after PR10 merge
prk-Jr 8eb72ee
Remove unused Logger import
prk-Jr 2986f33
Merge branch 'feature/edgezero-pr10-abstract-logging-initialization' …
prk-Jr caaface
Merge branch 'feature/edgezero-pr11-utility-layer-migration-v2' into …
prk-Jr a2036eb
Merge branch 'feature/edgezero-pr12-handler-layer-types' into feature…
prk-Jr 16c0978
Merge branch 'feature/edgezero-pr13-integration-provider-type-migrati…
prk-Jr fb8beac
fix cargo fmt
prk-Jr a94ddd8
resolve PR review findings
prk-Jr b901037
Added E2E tests dispatch_auth_rejected_401_carries_finalize_headers, …
prk-Jr 76df6f8
Resolve PR review findings
prk-Jr 2a908d4
Merge branch 'main' into feature/edgezero-pr11-utility-layer-migratio…
prk-Jr 65d1e2d
Fix fmt lint
prk-Jr 73734dd
Rename synthetic_id_cookie_value_is_safe → ec_cookie_value_is_safe
prk-Jr c23663c
Resolve PR review findings
prk-Jr ca5585c
Merge branch 'feature/edgezero-pr11-utility-layer-migration-v2' into …
prk-Jr 86bd21e
Resolve PR review findings
prk-Jr 9694980
Merge branch 'feature/edgezero-pr12-handler-layer-types' into feature…
prk-Jr c17fa27
Address PR review findings
prk-Jr f797f56
Resolve PR 624 review findings
prk-Jr e50068e
Merge main into feature/edgezero-pr12-handler-layer-types
prk-Jr cd4c621
Call StreamingBody::finish() to properly terminate chunked response
prk-Jr e093d01
Apply cargo fmt formatting
prk-Jr bf31cca
Resolve PR 626 review findings
prk-Jr f360b82
Apply cargo fmt formatting
prk-Jr 28205a0
Merge feature/edgezero-pr12-handler-layer-types into PR13
prk-Jr 611c68f
Merge feature/edgezero-pr13-integration-provider-type-migration
prk-Jr 3cca51c
Address review Non blocker findings
prk-Jr 6574790
Address PR 628 review findings
prk-Jr 189c57c
Update pr review findings
prk-Jr b30581c
Merge branch 'main' into feature/edgezero-pr12-handler-layer-types
prk-Jr 58b754a
Resolve PR 624 round-6 review findings
prk-Jr 62923fd
Merge branch 'main' into feature/edgezero-pr12-handler-layer-types
prk-Jr f551544
Resolve PR 626 round-1 review findings
prk-Jr 2b17d4c
Merge feature/edgezero-pr12-handler-layer-types into PR13
prk-Jr 1973b5d
Resolve PR 628 round-1 review findings
prk-Jr 8a83c5e
Merge feature/edgezero-pr13-integration-provider-type-migration into …
prk-Jr 971a7f5
Bound publisher response body size and document interim buffering
prk-Jr a2af24a
Merge main into feature/edgezero-pr12-handler-layer-types
prk-Jr acf775a
Add edge_cookie module, test helpers, and integration handle signatures
prk-Jr 78302a2
Fix remaining code review findings from merge
prk-Jr c229146
Fix cargo fmt lint
prk-Jr 936e721
Resolve merge conflicts from feature/edgezero-pr12-handler-layer-types
prk-Jr b71da80
Resolve PR 626 round-2 review findings
prk-Jr 6c4b66c
Resolve merge conflicts between PR14 and PR13
prk-Jr ed065ba
Resolve PR14 round-1 review findings
prk-Jr 04ca534
Update integration-tests lock file to fix CI --locked failure
prk-Jr 63538f5
Update root workspace lock file to match integration-tests versions
prk-Jr 79531d6
Merge remote-tracking branch 'origin/main' into feature/edgezero-pr12…
prk-Jr 4fbafd5
Resolve PR14 round-2 review findings
prk-Jr 726301d
Port EC identity lifecycle and EC API routes to the EdgeZero path
prk-Jr cc9a2e5
Align shared dependency versions in integration-tests lock file
prk-Jr afecb5d
Strip internal fastly-ssl signal from publisher origin requests
prk-Jr 34e1609
Enforce max_buffered_body_bytes on the buffered publisher post-proces…
prk-Jr 6e191e9
Merge branch 'main' into feature/edgezero-pr12-handler-layer-types
aram356 cf39f2d
Migrate auction format tests to edgezero http types after merge
prk-Jr 609154e
Merge remote-tracking branch 'origin/feature/edgezero-pr12-handler-la…
prk-Jr 4d57b83
Give auction transport failures a consistent error envelope
prk-Jr 023cb2e
Merge remote-tracking branch 'origin/feature/edgezero-pr13-integratio…
prk-Jr c869faf
Bound the HTML post-processing accumulator by max_buffered_body_bytes
prk-Jr eeabc24
Correct max_buffered_body_bytes failure status in sample config
prk-Jr 50c9e2e
Merge remote-tracking branch 'origin/main' into feature/edgezero-pr14…
prk-Jr 36a0ba7
Fix EdgeZero fallback asset-route and EC partner parity
prk-Jr a1e108f
Merge remote-tracking branch 'origin/main' into feature/edgezero-pr14…
prk-Jr 9785872
Capture EdgeZero device signals before request conversion
prk-Jr bb180ff
Preserve origin Content-Length for bodiless EdgeZero asset responses
prk-Jr b0a57ac
Align Publisher Default with the config buffer-cap default
prk-Jr ba07d4b
Run integration request filters on the EdgeZero entry point
prk-Jr 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
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
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
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
93 changes: 93 additions & 0 deletions
93
crates/integration-tests/fixtures/configs/viceroy-template-edgezero.toml
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,93 @@ | ||
| # Viceroy local server configuration template for integration tests — | ||
| # EdgeZero entry-point variant. | ||
| # | ||
| # Identical to `viceroy-template.toml` but adds the `trusted_server_config` | ||
| # config store with `edgezero_enabled = "true"`, so the same WASM binary routes | ||
| # requests through the EdgeZero entry point instead of the legacy path. Used by | ||
| # the `integration-tests-edgezero` CI job (via `VICEROY_CONFIG_PATH`) to exercise | ||
| # Fastly request conversion, config-store dispatch, and end-to-end EC wiring on | ||
| # the EdgeZero path. Keep the shared stores in sync with `viceroy-template.toml`. | ||
| # | ||
| # This configures the Viceroy runtime itself (backends, KV stores, etc.), | ||
| # separate from the application config (trusted-server.toml). | ||
|
|
||
| [local_server] | ||
|
|
||
| [local_server.backends] | ||
|
|
||
| [local_server.kv_stores] | ||
| # These inline placeholders satisfy Viceroy's local KV configuration | ||
| # requirements without exercising KV-backed application behavior. | ||
| [[local_server.kv_stores.counter_store]] | ||
| key = "placeholder" | ||
| data = "placeholder" | ||
|
|
||
| [[local_server.kv_stores.opid_store]] | ||
| key = "placeholder" | ||
| data = "placeholder" | ||
|
|
||
| [[local_server.kv_stores.creative_store]] | ||
| key = "placeholder" | ||
| data = "placeholder" | ||
|
|
||
| [[local_server.kv_stores.ec_identity_store]] | ||
| key = "placeholder" | ||
| data = "placeholder" | ||
|
|
||
| # Pre-seeded EC rows for KV-backed EC lifecycle tests. Each scenario | ||
| # uses a separate row so withdrawal tombstones do not leak across | ||
| # sequential scenario execution in the same Viceroy instance. | ||
| [[local_server.kv_stores.ec_identity_store]] | ||
| key = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.test01" | ||
| data = '{"v":1,"created":1700000000,"consent":{"ok":true,"updated":1700000000},"geo":{"country":"US","region":"CA"}}' | ||
|
|
||
| [[local_server.kv_stores.ec_identity_store]] | ||
| key = "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb.test02" | ||
| data = '{"v":1,"created":1700000000,"consent":{"ok":true,"updated":1700000000},"geo":{"country":"US","region":"CA"}}' | ||
|
|
||
| [[local_server.kv_stores.ec_identity_store]] | ||
| key = "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc.test03" | ||
| data = '{"v":1,"created":1700000000,"consent":{"ok":true,"updated":1700000000},"geo":{"country":"US","region":"CA"}}' | ||
|
|
||
| [[local_server.kv_stores.ec_identity_store]] | ||
| key = "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd.test04" | ||
| data = '{"v":1,"created":1700000000,"consent":{"ok":true,"updated":1700000000},"geo":{"country":"US","region":"CA"}}' | ||
|
|
||
| [[local_server.kv_stores.ec_identity_store]] | ||
| key = "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee.test05" | ||
| data = '{"v":1,"created":1700000000,"consent":{"ok":true,"updated":1700000000},"geo":{"country":"US","region":"CA"}}' | ||
|
|
||
| [[local_server.kv_stores.ec_partner_store]] | ||
| key = "placeholder" | ||
| data = "placeholder" | ||
|
|
||
| # These are generated test-only key pairs, not production credentials. | ||
| # The Ed25519 private key (data) and its matching public key (x in jwks_store below) | ||
| # exist solely for signing and verifying tokens in the integration test environment. | ||
| # They were generated specifically for testing and are safe to commit — they | ||
| # have never been used in any production or staging environment. | ||
| [local_server.secret_stores] | ||
| [[local_server.secret_stores.signing_keys]] | ||
| key = "ts-2025-10-A" | ||
| data = "NVnTYrw5xoyTJDOwoUWoPJO3A6UCCXOJJUzgGTxxx7k=" | ||
|
|
||
| [[local_server.secret_stores.api-keys]] | ||
| key = "api_key" | ||
| data = "test-api-key" | ||
|
|
||
| [local_server.config_stores] | ||
| # Routes requests through the EdgeZero entry point. `is_edgezero_enabled` | ||
| # in the Fastly adapter reads this key at runtime; `"true"` (or `"1"`) | ||
| # enables EdgeZero, anything else falls back to the legacy path. | ||
| [local_server.config_stores.trusted_server_config] | ||
| format = "inline-toml" | ||
| [local_server.config_stores.trusted_server_config.contents] | ||
| edgezero_enabled = "true" | ||
|
|
||
| [local_server.config_stores.jwks_store] | ||
| format = "inline-toml" | ||
| [local_server.config_stores.jwks_store.contents] | ||
| ts-2025-10-A = "{\"kty\":\"OKP\",\"crv\":\"Ed25519\",\"kid\":\"ts-2025-10-A\",\"use\":\"sig\",\"x\":\"UVTi04QLrIuB7jXpVfHjUTVN5aIdcbPNr50umTtN8pw\"}" | ||
| ts-2025-10-B = "{\"kty\":\"OKP\",\"crv\":\"Ed25519\",\"kid\":\"ts-2025-10-B\",\"use\":\"sig\",\"x\":\"HVTi04QLrIuB7jXpVfHjUTVN5aIdcbPNr50umTtN8pw\"}" | ||
| current-kid = "ts-2025-10-A" | ||
| active-kids = "ts-2025-10-A,ts-2025-10-B" |
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Automated review: P2 / Medium — EdgeZero CI can false-pass on the legacy path.
This job relies on
VICEROY_CONFIG_PATHenablingedgezero_enabled, butmain()intentionally falls back tolegacy_mainwhen the config store cannot be opened/read. The reused EC lifecycle scenarios are also valid on the legacy path, so a fixture/env/config-store regression could make this job green while exercising legacy instead of EdgeZero.Suggested fix: add an EdgeZero-only canary to this job/suite, such as asserting
TRACE /returns the documented EdgeZero router-level 405 rather than the legacy publisher fallback, or exposing a test-only response marker that proves the EdgeZero branch was taken.