Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
4427751
Add EdgeZero requirements for the PR 275 hard cutover
aram356 Oct 18, 2026
847f1fe
Save EdgeZero PR 275 cutover spec draft before removing its worktree
aram356 Nov 4, 2026
a537266
Rewrite the EdgeZero PR 275 cutover spec against head 8f82547b
aram356 Nov 6, 2026
57cb811
Apply round-5 review fixes to the EdgeZero PR 275 cutover spec
aram356 Nov 6, 2026
854fe2e
Update the EdgeZero PR 275 cutover spec to head 9b31a697 and its review
aram356 Nov 6, 2026
5bd1134
Address review 5810751514 on the EdgeZero PR 275 cutover spec
aram356 Nov 7, 2026
a83dc4d
Address review 5815168335 on the EdgeZero PR 275 cutover spec
aram356 Nov 7, 2026
85f5ca3
Record the maintainer's answers to Q1 to Q7 in the EdgeZero PR 275 cu…
aram356 Nov 8, 2026
e3e0550
Add the implementation plan for the EdgeZero PR 275 cut
aram356 Nov 8, 2026
402fcbd
Merge branch 'main' into spec/edgezero-pr275-migration
aram356 Nov 8, 2026
fb3818e
Cover all 15 CI gates in the cutover plan's baseline and final checks
aram356 Nov 8, 2026
6109bdd
Add baseline ingress cases and a Fastly response diff for the EdgeZer…
aram356 Nov 8, 2026
556cce8
Repin EdgeZero to PR 275 and port core to its body and hook APIs
aram356 Nov 8, 2026
387f153
Map an expired trace action body read to 408
aram356 Nov 8, 2026
e36217b
Port the Fastly and Axum adapters to EdgeZero PR 275 APIs
aram356 Nov 8, 2026
f166d10
Port the Cloudflare and Spin adapters to EdgeZero PR 275 and install …
aram356 Nov 9, 2026
2de2837
Check synthesized headers on the Axum canonical 404 and 405
aram356 Nov 9, 2026
50ea8a1
Read every inbound body through a bounded EdgeZero reader
aram356 Nov 9, 2026
bb0e734
Add a scripted EdgeZero outbound client for tests
aram356 Nov 9, 2026
10980a3
Offset the scripted test clock from process time
aram356 Nov 9, 2026
e742aef
Carry EdgeZero's outbound client and clock in RuntimeServices
aram356 Nov 9, 2026
977c9d2
Run the parity suite on EdgeZero's Axum test server
aram356 Nov 9, 2026
be96e28
Check bodiless forward framing and keep the client out of production …
aram356 Nov 9, 2026
f2a1b12
Send integration requests through EdgeZero's client
aram356 Nov 9, 2026
358dbf9
Follow redirects and proxy assets through EdgeZero's client
aram356 Nov 9, 2026
13785ef
Run the first-party proxy redirect policy on the Axum binary
aram356 Nov 9, 2026
d6b70c7
Run auctions as EdgeZero batches on every adapter
aram356 Nov 9, 2026
0e9e5db
Keep backend registration failures as auction launch failures
aram356 Nov 9, 2026
9d76f8d
Test registration timeouts as completed auction outcomes and drop the…
aram356 Nov 9, 2026
caa4691
Fetch the publisher origin through EdgeZero's client inside the respo…
aram356 Nov 9, 2026
9f0a84b
Decode the Cloudflare publisher origin and drop dead cookie and stub …
aram356 Nov 11, 2026
5e5dc96
Make platform store writes async and send management calls through Ed…
aram356 Nov 11, 2026
1baa582
Run key rotation through the scripted management client in test 14
aram356 Nov 11, 2026
9441d4e
Run Fastly on EdgeZero's canonical lifecycle
aram356 Nov 11, 2026
7867214
Drop the dead HTTP stub and tighten Fastly lifecycle tests
aram356 Nov 11, 2026
ac414af
Drop the cross-IP geo fallback and the unused Fastly geo client
aram356 Nov 11, 2026
1d09fb3
Probe the geo fallback with an IP the simulator answers
aram356 Nov 11, 2026
151d2fb
Delete Trusted Server's outbound layer
aram356 Nov 11, 2026
19234e5
Pin EdgeZero to PR 275 head a7d7fd0f
aram356 Nov 11, 2026
b1b3269
Reject operator framing headers and read Axum ingress limits from the…
aram356 Nov 11, 2026
ff04dfb
Test that live configs keeping framing headers still load
aram356 Nov 12, 2026
8515370
Document the EdgeZero PR 275 cut
aram356 Nov 12, 2026
4680483
Pin EdgeZero to PR 275 head 14a6ca8b
aram356 Nov 12, 2026
ebb577e
Merge remote-tracking branch 'origin/main' into spec/edgezero-pr275-m…
aram356 Nov 12, 2026
983c602
Fix signed first-party href tests after merging main
aram356 Nov 12, 2026
dfce21d
Merge remote-tracking branch 'origin/main' into spec/edgezero-pr275-m…
aram356 Nov 12, 2026
2c723a2
Kill the Spin trigger process group in the trace harness
aram356 Nov 12, 2026
8b407e0
Pin the mediator non-success path as a processing failure
aram356 Nov 12, 2026
5389d90
Reap the trace harness leader before probing its process group
aram356 Nov 12, 2026
6c39a56
Correct the in-flight table in the cutover spec
aram356 Nov 12, 2026
fd74d51
Log client-caused request errors at warn through one core helper
aram356 Nov 12, 2026
2c86475
Share the outbound-client and publisher-cap helpers across adapters
aram356 Nov 12, 2026
b01b669
Keep header values out of the scripted client's assertion output
aram356 Nov 12, 2026
3d43e06
Assert the version headers on every canonical 404 and 405
aram356 Nov 12, 2026
352f90d
Warn once per request for a skipped operator header on Fastly
aram356 Nov 12, 2026
e1dd32b
Route pull sync and Tinybird failures through outbound_error
aram356 Nov 12, 2026
9ec4711
Bring the cutover spec in line with the code
aram356 Nov 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions .env.dev
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,6 @@ TRUSTED_SERVER__SYNTHETIC__COUNTER_STORE=counter_store
TRUSTED_SERVER__SYNTHETIC__OPID_STORE=opid_store

# [proxy]
# Disable TLS certificate verification for local dev with self-signed certs
# TRUSTED_SERVER__PROXY__CERTIFICATE_CHECK=false
#
# Restrict first-party proxy redirect targets to an allowlist (JSON array or indexed form).
# Leave unset in local dev; configure in production to prevent SSRF via redirect chains
# initiated by signed first-party proxy URLs.
Expand Down
3 changes: 0 additions & 3 deletions .github/actions/setup-integration-test-env/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,6 @@ runs:
TRUSTED_SERVER__EC__PASSPHRASE: integration-test-ec-secret-padded-32
TRUSTED_SERVER__EC__PARTNERS: >-
[{"name":"Integration Test Partner","source_domain":"inttest.example.com","bidstream_enabled":true,"api_token":"integration-test-token-alpha-32-bytes-ok"},{"name":"Integration Test Partner 2","source_domain":"inttest2.example.com","bidstream_enabled":true,"api_token":"integration-test-token-bravo-32-bytes-ok"}]
TRUSTED_SERVER__PROXY__CERTIFICATE_CHECK: "false"
run: cargo build --package trusted-server-adapter-fastly --release --target wasm32-wasip1

- name: Build Axum native binary
Expand All @@ -101,7 +100,6 @@ runs:
TRUSTED_SERVER__PUBLISHER__ORIGIN_URL: http://127.0.0.1:${{ inputs.origin-port }}
TRUSTED_SERVER__PUBLISHER__PROXY_SECRET: integration-test-proxy-secret
TRUSTED_SERVER__EC__PASSPHRASE: integration-test-ec-secret-padded-32
TRUSTED_SERVER__PROXY__CERTIFICATE_CHECK: "false"
run: cargo build -p trusted-server-adapter-axum

- name: Build WordPress test container
Expand Down Expand Up @@ -132,5 +130,4 @@ runs:
TRUSTED_SERVER__PUBLISHER__ORIGIN_URL: http://127.0.0.1:${{ inputs.origin-port }}
TRUSTED_SERVER__PUBLISHER__PROXY_SECRET: integration-test-proxy-secret
TRUSTED_SERVER__EC__PASSPHRASE: integration-test-ec-secret-padded-32
TRUSTED_SERVER__PROXY__CERTIFICATE_CHECK: "false"
run: bash crates/trusted-server-adapter-cloudflare/build.sh
14 changes: 14 additions & 0 deletions .github/workflows/format.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,20 @@ jobs:
- name: Verify jobs pin Node before compiling Rust
run: node scripts/check-ci-node-pin.mjs

fastly-response-diff:
name: Fastly response diff script
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version-file: .tool-versions

- name: Test the response comparison
run: node --test scripts/fastly-response-diff.test.mjs

format-rust:
name: cargo fmt
runs-on: ubuntu-latest
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/integration-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,9 @@ jobs:
-- --include-ignored
--skip test_wordpress_fastly --skip test_nextjs_fastly
--skip trace_browser_workflow --skip trace_runtime_boundary
--skip multi_provider_auction_runs_spin --skip spin_runtime_
--skip navigation_bids_include_180_and_320_ms_and_exclude_600_ms_spin
--skip publisher_head_and_conditional_304_return_real_status_spin
--test-threads=1
env:
WASM_BINARY_PATH: ${{ env.WASM_ARTIFACT_PATH }}
Expand Down Expand Up @@ -229,6 +232,7 @@ jobs:
run: |
cargo test --manifest-path crates/trusted-server-integration-tests/Cargo.toml --target x86_64-unknown-linux-gnu --test integration trace_runtime_boundary -- --ignored --test-threads=1 --nocapture
cargo test --manifest-path crates/trusted-server-integration-tests/Cargo.toml --target x86_64-unknown-linux-gnu --test integration trace_browser_workflow -- --ignored --test-threads=1 --nocapture
cargo test --manifest-path crates/trusted-server-integration-tests/Cargo.toml --target x86_64-unknown-linux-gnu --test integration -- --ignored --test-threads=1 --nocapture multi_provider_auction_runs_spin spin_runtime_ navigation_bids_include_180_and_320_ms_and_exclude_600_ms_spin publisher_head_and_conditional_304_return_real_status_spin
env:
WASM_BINARY_PATH: ${{ env.WASM_ARTIFACT_PATH }}
AXUM_BINARY_PATH: ${{ env.AXUM_ARTIFACT_PATH }}
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,6 @@ jobs:
TRUSTED_SERVER__PUBLISHER__ORIGIN_URL: http://127.0.0.1:8080
TRUSTED_SERVER__PUBLISHER__PROXY_SECRET: integration-test-proxy-secret
TRUSTED_SERVER__EC__PASSPHRASE: integration-test-ec-secret-padded-32
TRUSTED_SERVER__PROXY__CERTIFICATE_CHECK: "false"
run: cargo build --package trusted-server-adapter-spin --target wasm32-wasip1 --features spin --release

- name: Run Spin adapter tests (native host)
Expand Down
1 change: 1 addition & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -378,6 +378,7 @@ Every PR must pass:
14. Fastly absolute-deadline network fixtures under Viceroy (the harness builds the adapter test binary itself): `node crates/trusted-server-adapter-fastly/tests/deadline-origin.mjs "$(command -v viceroy)"`
15. Worker auction-deadline runtime fixtures (`worker-auction-deadlines.yml`): build and lint the runtime fixture, then run it under the local runtime. For Cloudflare, `cargo build --locked -p trusted-server-adapter-cloudflare --example deadline-runtime --target wasm32-unknown-unknown --features cloudflare` and `node scripts/test-worker-auction-deadlines.mjs cloudflare --runtime "$(command -v wrangler)"` (requires wrangler and the `Cargo.lock` wasm-bindgen CLI). For Spin, `cargo build --locked -p trusted-server-adapter-spin --example deadline-runtime --target wasm32-wasip1 --features spin` and `node scripts/test-worker-auction-deadlines.mjs spin --runtime "$(command -v spin)"`. CI lints each fixture with the same `cargo clippy` arguments plus `-- -D warnings`
16. Release producer checks: `node --test scripts/release/phase1.test.mjs && shellcheck scripts/release/phase1-build.sh`
17. Fastly response diff script: `node --test scripts/fastly-response-diff.test.mjs` with the `.tool-versions` Node

CI also runs these HTML EOF checks. Run them locally only when changing EOF
finalization, publisher or HTML-processor code:
Expand Down
Loading
Loading