From e52ff39d151a2e009c09744f2082f7ef3bc6ab5c Mon Sep 17 00:00:00 2001 From: Christian Date: Wed, 25 Mar 2026 18:23:46 -0500 Subject: [PATCH] Add EC module with lifecycle management, consent gating, and config migration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add ec/ module with EcContext lifecycle, generation, cookies, and consent - Compute cookie domain from publisher.domain, move EC cookie helpers - Fix auction consent gating, restore cookie_domain for non-EC cookies - Add integration proxy revocation, refactor EC parsing, clean up ec_hash - Remove fresh_id and ec_fresh per EC spec §12.1 - Migrate [edge_cookie] config to [ec] per spec §14 --- CLAUDE.md | 2 +- PUBLISHER_IDS_AUDIT.md | 5 +- .../fixtures/configs/viceroy-template.toml | 4 +- crates/js/lib/package-lock.json | 271 +++++------ crates/js/lib/package.json | 2 +- crates/js/lib/src/core/render.ts | 13 +- .../js/lib/src/integrations/prebid/index.ts | 7 - crates/js/lib/test/core/render.test.ts | 6 +- .../test/integrations/prebid/index.test.ts | 67 +-- crates/trusted-server-core/README.md | 9 +- .../src/auction/endpoints.rs | 46 +- .../src/auction/formats.rs | 8 +- .../src/auction/orchestrator.rs | 1 - .../trusted-server-core/src/auction/types.rs | 2 - crates/trusted-server-core/src/consent/mod.rs | 49 +- crates/trusted-server-core/src/constants.rs | 2 - crates/trusted-server-core/src/creative.rs | 24 +- crates/trusted-server-core/src/ec/consent.rs | 22 + crates/trusted-server-core/src/ec/cookies.rs | 125 ++++++ .../trusted-server-core/src/ec/generation.rs | 251 +++++++++++ crates/trusted-server-core/src/ec/mod.rs | 421 ++++++++++++++++++ crates/trusted-server-core/src/edge_cookie.rs | 322 -------------- .../src/integrations/adserver_mock.rs | 2 - .../src/integrations/aps.rs | 1 - .../src/integrations/google_tag_manager.rs | 8 +- .../src/integrations/prebid.rs | 9 +- .../src/integrations/registry.rs | 2 +- .../src/integrations/testlight.rs | 2 +- crates/trusted-server-core/src/lib.rs | 4 +- crates/trusted-server-core/src/openrtb.rs | 27 -- crates/trusted-server-core/src/proxy.rs | 2 +- crates/trusted-server-core/src/publisher.rs | 4 +- crates/trusted-server-core/src/settings.rs | 90 ++-- .../trusted-server-core/src/settings_data.rs | 24 +- .../trusted-server-core/src/test_support.rs | 4 +- docs/guide/configuration.md | 55 ++- docs/guide/edge-cookies.md | 2 +- docs/guide/error-reference.md | 12 +- docs/guide/first-party-proxy.md | 2 +- docs/guide/onboarding.md | 4 +- docs/guide/testing.md | 5 +- docs/internal/ssc_technical_spec.md | 8 +- trusted-server.toml | 4 +- 43 files changed, 1216 insertions(+), 714 deletions(-) create mode 100644 crates/trusted-server-core/src/ec/consent.rs create mode 100644 crates/trusted-server-core/src/ec/cookies.rs create mode 100644 crates/trusted-server-core/src/ec/generation.rs create mode 100644 crates/trusted-server-core/src/ec/mod.rs delete mode 100644 crates/trusted-server-core/src/edge_cookie.rs diff --git a/CLAUDE.md b/CLAUDE.md index 9ad427e9..5ce75d6b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -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 `