Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
5b86758
Store and serve full-fidelity provider EIDs
dhruv8sh Oct 30, 2026
00fb3b6
Make every browser-driven EC write a single page-load write
dhruv8sh Oct 30, 2026
3f36d00
Collect identity provider lookups on publisher navigations
dhruv8sh Nov 1, 2026
b64bd15
Fix provider ownership, orphan attribution and size cap issues
dhruv8sh Nov 2, 2026
49b73b2
Skip partner token length checks in deploy-time provider validation
dhruv8sh Nov 2, 2026
9e2a2d7
Stop warning about unregistered provider kinds where kinds are unknown
dhruv8sh Nov 2, 2026
c559b89
Write orphan-recovery lookups to the replacement EC row
dhruv8sh Nov 2, 2026
4ab0a1c
Keep responses whose headers arrive in an expired deadline snapshot
dhruv8sh Nov 2, 2026
e43ea9a
Surface arrived bodies once in an expired deadline snapshot
dhruv8sh Nov 2, 2026
dfd160a
Fall back to browser IDs for provider-owned sources the provider did …
dhruv8sh Nov 2, 2026
1b84e3c
Use an example host in the identify record test
dhruv8sh Nov 2, 2026
7db9e88
Send sec-fetch-mode navigate from the EC integration test client
dhruv8sh Nov 2, 2026
7c35af4
Skip identity lookups without EC consent
dhruv8sh Nov 3, 2026
2de6d0d
Raise the UID length limit to 1024 bytes and drop oversized IDs on KV…
dhruv8sh Nov 3, 2026
8320c3f
Merge branch 'main' into feat/s2s-eid-collection-core
dhruv8sh Nov 4, 2026
ff5113d
Gate TCF vendor consent only where TCF applies and skip lookups on un…
dhruv8sh Nov 3, 2026
f0e2fb0
Mint a new EC only on navigations that may write its row
dhruv8sh Nov 3, 2026
97e6806
Reject batch sync records for provider-owned sources
dhruv8sh Nov 1, 2026
665f8d3
Skip pull sync for provider-owned sources
dhruv8sh Nov 3, 2026
c4684f6
Document navigation-only browser EID writes and the narrowed TCF vend…
dhruv8sh Nov 3, 2026
09cad52
Skip the snapshot preload for a freshly generated EC
dhruv8sh Nov 3, 2026
17072f4
Build the partner registry once per app state
dhruv8sh Nov 3, 2026
54079ae
Remove EID resolution, create-if-absent and proxy inputs left unused
dhruv8sh Nov 3, 2026
a987581
Track the row size incrementally while enforcing the size cap
dhruv8sh Nov 3, 2026
e681663
Reuse the core clock for lookups and use should-style expect messages
dhruv8sh Nov 3, 2026
ef7ad61
Collect provider IDs after the response and keep provider refresh state
dhruv8sh Nov 4, 2026
d45b508
Never store browser UIDs for provider-owned sources
dhruv8sh Nov 5, 2026
e171d1d
Hand refresh state only to the provider that wrote it
dhruv8sh Nov 5, 2026
cbe3a2b
Remember a provider opt-out so the provider is not called again for 3…
dhruv8sh Nov 5, 2026
ca915db
Add an empty owned-entries view for providers with nothing stored
dhruv8sh Nov 5, 2026
97a69f1
Run after-response lookups only for an existing consented row
dhruv8sh Nov 5, 2026
a6adc26
Re-read the row just before the after-response write
dhruv8sh Nov 5, 2026
eb2c868
Drop provider refresh state that is already due
dhruv8sh Nov 5, 2026
aade0ff
Document collect timing, the after-response budget and rate limit gra…
dhruv8sh Nov 6, 2026
49ec524
Generate IDs only for due sources without a live UID
dhruv8sh Nov 6, 2026
dbb9fa6
Reuse the partner registry and core clock for after-response lookups
dhruv8sh Nov 6, 2026
1826524
Hide the body and context from provider response debug output
dhruv8sh Nov 6, 2026
bc65fb9
Plan no row write when pruning is the only change
dhruv8sh Nov 6, 2026
b334e75
Test after-response write conflicts and a row withdrawn before the write
dhruv8sh Nov 6, 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
4 changes: 2 additions & 2 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ test_details = "test --target aarch64-apple-darwin"
# (native) are simply not listed.
build-fastly = "build -p trusted-server-core -p trusted-server-adapter-fastly -p trusted-server-js -p trusted-server-openrtb --target wasm32-wasip1"
check-fastly = "check -p trusted-server-core -p trusted-server-adapter-fastly -p trusted-server-js -p trusted-server-openrtb --target wasm32-wasip1"
clippy-fastly = "clippy -p trusted-server-core -p trusted-server-adapter-fastly -p trusted-server-js -p trusted-server-openrtb --all-targets --all-features --target wasm32-wasip1 -- -D warnings"
test-fastly = "test -p trusted-server-core -p trusted-server-adapter-fastly -p trusted-server-js -p trusted-server-openrtb --target wasm32-wasip1"
clippy-fastly = "clippy -p trusted-server-core -p trusted-server-adapter-fastly -p trusted-server-identity-providers -p trusted-server-js -p trusted-server-openrtb --all-targets --all-features --target wasm32-wasip1 -- -D warnings"
test-fastly = "test -p trusted-server-core -p trusted-server-adapter-fastly -p trusted-server-identity-providers -p trusted-server-js -p trusted-server-openrtb --target wasm32-wasip1"
# Feature-on counterpart of `test-fastly`. `test-fastly` does NOT pass
# --all-features, so without this the reusable-sandbox code is linted by
# `clippy-fastly` but its tests never execute.
Expand Down
11 changes: 11 additions & 0 deletions Cargo.lock

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

2 changes: 2 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ members = [
"crates/trusted-server-adapter-spin",
"crates/trusted-server-cli",
"crates/trusted-server-core",
"crates/trusted-server-identity-providers",
"crates/trusted-server-integration-tests",
"crates/trusted-server-js",
"crates/trusted-server-openrtb",
Expand Down Expand Up @@ -121,6 +122,7 @@ toml_edit = "0.23.10"
tower = "0.4"
tracing = "0.1"
trusted-server-core = { path = "crates/trusted-server-core" }
trusted-server-identity-providers = { path = "crates/trusted-server-identity-providers" }
trusted-server-js = { path = "crates/trusted-server-js" }
trusted-server-openrtb = { path = "crates/trusted-server-openrtb" }
url = "2.5.8"
Expand Down
6 changes: 1 addition & 5 deletions crates/trusted-server-adapter-axum/src/app.rs
Original file line number Diff line number Diff line change
Expand Up @@ -224,15 +224,12 @@ async fn dispatch_fallback(
}

if state.registry.has_route(&method, &path) {
let mut ec_context = EcContext::default();
return state
.registry
.handle_proxy(ProxyDispatchInput {
method: &method,
path: &path,
settings: &state.settings,
kv: None,
ec_context: &mut ec_context,
services,
req,
})
Expand Down Expand Up @@ -499,8 +496,7 @@ fn named_route_handler(
Ok(admin_ec_lookup_not_supported())
}
NamedRouteHandler::AdminEidsLookup => {
let partner_registry =
PartnerRegistry::from_config(&state.settings.ec.partners)?;
let partner_registry = PartnerRegistry::from_ec(&state.settings.ec)?;
handle_admin_eids_lookup(&partner_registry, &req)
}
NamedRouteHandler::LegacyAdminDenied => Ok(legacy_admin_alias_denied()),
Expand Down
5 changes: 1 addition & 4 deletions crates/trusted-server-adapter-cloudflare/src/app.rs
Original file line number Diff line number Diff line change
Expand Up @@ -535,15 +535,12 @@ fn build_router(state: &Arc<AppState>) -> RouterService {
EdgeCacheHeader::CloudflareCdnCacheControl,
)
} else if state.registry.has_route(&method, &path) {
let mut ec_context = EcContext::default();
state
.registry
.handle_proxy(ProxyDispatchInput {
method: &method,
path: &path,
settings: &state.settings,
kv: None,
ec_context: &mut ec_context,
services: &services,
req,
})
Expand Down Expand Up @@ -655,7 +652,7 @@ fn build_router(state: &Arc<AppState>) -> RouterService {
.get(
"/_ts/admin/eids",
make_handler(Arc::clone(&state), |s, _services, req| async move {
let partner_registry = PartnerRegistry::from_config(&s.settings.ec.partners)?;
let partner_registry = PartnerRegistry::from_ec(&s.settings.ec)?;
handle_admin_eids_lookup(&partner_registry, &req)
}),
)
Expand Down
1 change: 1 addition & 0 deletions crates/trusted-server-adapter-fastly/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ log-fastly = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
trusted-server-core = { workspace = true }
trusted-server-identity-providers = { workspace = true }
url = { workspace = true }
urlencoding = { workspace = true }
web-time = { workspace = true }
Expand Down
Loading
Loading