Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
9221df6
Rename Synthetic ID to Edge Cookie (EC) and simplify generation
ChristianPavilonis Mar 25, 2026
ef55eab
Fix CI: remove re-introduced placeholder secret validation tests
ChristianPavilonis Mar 30, 2026
63e896c
Add EC module with lifecycle management, consent gating, and config m…
ChristianPavilonis Mar 25, 2026
7851ac5
Add KV identity graph with CAS concurrency control
ChristianPavilonis Mar 25, 2026
db93ed4
Add partner registry and admin registration endpoint
ChristianPavilonis Mar 25, 2026
a037e7a
Centralize EC lifecycle finalization in middleware
ChristianPavilonis Mar 25, 2026
16a13b7
Add EC sync and identify endpoints
ChristianPavilonis Mar 24, 2026
dbf0ccd
Decorate auction bidstream with partner EIDs from KV identity graph
ChristianPavilonis Mar 25, 2026
b776377
Add authenticated S2S batch sync endpoint
ChristianPavilonis Mar 25, 2026
f420023
Add background pull-sync dispatch for organic routes
ChristianPavilonis Mar 25, 2026
ad20ad9
Add EC lifecycle integration test scenarios
ChristianPavilonis Mar 25, 2026
5dc8079
Deduplicate EC helpers, fix error variants, and improve documentation
ChristianPavilonis Mar 26, 2026
da7782c
Fix 8 EC spec deviations identified in branch audit
ChristianPavilonis Mar 26, 2026
6244da2
Harden EC endpoints: input validation, binary-search EIDs encoding, a…
ChristianPavilonis Mar 30, 2026
d544aad
Fix post-rebase compilation: restore missing methods, imports, and er…
ChristianPavilonis Mar 31, 2026
b15c233
Restore iframe creative rendering accidentally reverted by EC migration
ChristianPavilonis Mar 31, 2026
f02b538
Restrict EC generation to document navigations to prevent consent bypass
ChristianPavilonis Mar 31, 2026
bcca87d
Migrate admin endpoints to /_ts/admin namespace
ChristianPavilonis Apr 2, 2026
2d39f60
Migrate batch sync API to /_ts/api/v1/sync namespace
ChristianPavilonis Apr 2, 2026
f294b91
Refresh EC header and cookie on returning requests
ChristianPavilonis Apr 2, 2026
71fd00c
Add end-to-end EC setup and API documentation
ChristianPavilonis Apr 2, 2026
a88e892
Use full EC IDs for identity graph keys
ChristianPavilonis Apr 2, 2026
22ef443
docs: update EC spec to reflect full EC ID used as KV key
ChristianPavilonis Apr 6, 2026
c4fa376
Add ASN/DMA geo fields and publisher domain tracking to EC KV schema
ChristianPavilonis Apr 6, 2026
69b92c8
Add network cluster evaluation to EC identify endpoint
ChristianPavilonis Apr 6, 2026
3a43dc8
Add device signal derivation and bot gate for EC identity graph
ChristianPavilonis Apr 6, 2026
e1f14a5
Update EC technical spec with schema extensions, device signals, and …
ChristianPavilonis Apr 6, 2026
34aa527
Replace bot gate allowlist with signal-presence check
ChristianPavilonis Apr 7, 2026
39031ac
Backfill pub_properties on update_last_seen for pre-existing entries
ChristianPavilonis Apr 7, 2026
1591329
Namespace new Edge Cookie endpoints under versioned routes
ChristianPavilonis Apr 7, 2026
45a1276
Fix Prebid bidder duplication and blank auction EC header
ChristianPavilonis Apr 7, 2026
562efef
Fix EC review findings: error handling, docs, dead code, and UID limi…
ChristianPavilonis Apr 7, 2026
0940c34
Fix post-rebase compilation: reconcile platform abstraction with EC m…
ChristianPavilonis Apr 7, 2026
19cccd8
Truncate EC IDs in log output to satisfy CodeQL sensitive data rule
ChristianPavilonis Apr 7, 2026
6692e45
Harden EC module: fix cleartext logging, input validation, security, …
ChristianPavilonis Apr 9, 2026
7f88602
Address all blocking PR review findings from aram356 and prk-Jr
ChristianPavilonis Apr 10, 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
2 changes: 1 addition & 1 deletion .github/actions/setup-integration-test-env/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ runs:
env:
TRUSTED_SERVER__PUBLISHER__ORIGIN_URL: http://127.0.0.1:${{ inputs.origin-port }}
TRUSTED_SERVER__PUBLISHER__PROXY_SECRET: integration-test-proxy-secret
TRUSTED_SERVER__EDGE_COOKIE__SECRET_KEY: integration-test-secret-key
TRUSTED_SERVER__EC__PASSPHRASE: integration-test-ec-secret
TRUSTED_SERVER__PROXY__CERTIFICATE_CHECK: "false"
run: cargo build --package trusted-server-adapter-fastly --release --target wasm32-wasip1

Expand Down
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -366,7 +366,7 @@ both runtime behavior and build/tooling changes.
| `crates/trusted-server-core/src/tsjs.rs` | Script tag generation with module IDs |
| `crates/trusted-server-core/src/html_processor.rs` | Injects `<script>` at `<head>` start |
| `crates/trusted-server-core/src/publisher.rs` | `/static/tsjs=` handler, concatenates modules |
| `crates/trusted-server-core/src/edge_cookie.rs` | Edge Cookie (EC) ID generation |
| `crates/trusted-server-core/src/ec/` | EC identity subsystem (generation, consent, cookies) |
| `crates/trusted-server-core/src/cookies.rs` | Cookie handling |
| `crates/trusted-server-core/src/consent/mod.rs` | GDPR and broader consent management |
| `crates/trusted-server-core/src/http_util.rs` | HTTP abstractions and request utilities |
Expand Down
69 changes: 69 additions & 0 deletions crates/integration-tests/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion crates/integration-tests/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,11 @@ harness = true

[dev-dependencies]
testcontainers = { version = "0.25", features = ["blocking"] }
reqwest = { version = "0.12", features = ["blocking"] }
reqwest = { version = "0.12", features = ["blocking", "cookies", "json"] }
scraper = "0.21"
log = "0.4.29"
serde_json = "1.0.149"
error-stack = "0.6"
derive_more = { version = "2.0", features = ["display"] }
env_logger = "0.11"
urlencoding = "2.1"
22 changes: 22 additions & 0 deletions crates/integration-tests/fixtures/configs/viceroy-template.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,32 @@
[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.consent_store]]
key = "placeholder"
data = "placeholder"

[[local_server.kv_stores.ec_identity_store]]
key = "placeholder"
data = "placeholder"

[[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.
Expand Down
Loading
Loading