Repository navigation
Conversation
dhruv8sh
changed the base branch from
main
to
spec/1246-server-side-identity-providers
October 27, 2026 23:59
This was referenced Oct 28, 2026
dhruv8sh
marked this pull request as draft
October 28, 2026 10:30
ID5, LiveIntent, LiveRamp ATS, UID2 and Yahoo ConnectID resolve IDs at the edge, and Lockr captures revocations from its proxied API. Providers can read a hashed email from the first-party ts-hem cookie, which the JS SDK writes with setEmail or setHashedEmail and Trusted Server never stores or forwards, and declared first-party cookies such as LiveIntent's _lc2_fpi. Client IPs that cannot identify a visitor are not sent to vendors. Signed-off-by: dhruv8sh <dhruv8sh@proton.me>
One plan per vendor provider, plus the shared hashed-email and cookie inputs they depend on. Signed-off-by: dhruv8sh <dhruv8sh@proton.me>
dhruv8sh
force-pushed
the
feat/1246-identity-provider-vendors
branch
from
October 28, 2026 16:57
11f585b to
3d9efb8
Compare
This branch has not been deployed
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
ts-hemcookie (set withtsjs.setEmail/setHashedEmail, never stored in KV, never sent to the origin or Prebid Server) and declared first-party cookies such as LiveIntent's_lc2_fpi.Stacked on #1428, which adds the identity provider framework these providers implement. Merge #1428 first.
Changes
integrations/{id5,liveintent,liveramp,uid2,connectid}.rs[integrations.<id>]integrationintegrations/lockr_identity.rs,integrations/lockr.rscapture_identityintegrations/vendor_eid.rs,integrations/vendor_request.rsis_routable_ip, so loopback and private client IPs are never sent to vendorsec/identity/{input,descriptor,request,flush,test_support}.rs,ec/mod.rswith_cookiecookies.rs,constants.rsts-hemcookie, treated as a TS identity cookie and stripped from origin requestsconfig.rs,integrations/mod.rs,Cargo.tomlaes-gcmfor UID2 envelopestrusted-server-js/lib/src/core/hashed_email.tssetEmail,setHashedEmail,clearHashedEmaildocs/guide/integrations/identity-vendors.md,docs/guide/identity-providers.mddocs/superpowers/plans/2026-10-28-identity-provider-*.mdCloses
Closes #1246
Spec
Spec:
docs/superpowers/specs/2026-10-20-server-side-identity-providers-design.md(section 12, vendor examples), from #1428.Test plan
cargo test-fastly && cargo test-fastly-reuse && cargo test-axum && cargo test-cloudflare && cargo test-spincargo clippy-fastly,clippy-axum,clippy-cloudflare,clippy-cloudflare-wasm,clippy-spin-native,clippy-spin-wasm,clippy-cli,clippy-codegencargo fmt --all -- --checkscripts/lint-wasm-clock.shcd crates/trusted-server-js/lib && npx vitest run, plusnpm run lintcd crates/trusted-server-js/lib && npm run formatcd docs && npm run formatcargo build --package trusted-server-adapter-fastly --release --target wasm32-wasip1ts dev proxystored ID5, ConnectID (from the hashed email) and LiveIntent's partner IDs in KV, alongside browser-ingested IDsChecklist
unwrap()in production code — useexpect("should ...")tracingmacros (notprintln!)