Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
72db294
The Prebid crate reads the cookie its script writes
jwrosewell Oct 14, 2026
769fe9b
Merge 40-rsc-flight into 41-prebid-eids
jwrosewell Oct 14, 2026
2007e8a
Merge 40-rsc-flight into 41-prebid-eids
jwrosewell Oct 14, 2026
036d0a0
Merge 40-rsc-flight into 41-prebid-eids
jwrosewell Oct 15, 2026
e87090b
Merge 40-rsc-flight into 41-prebid-eids
jwrosewell Oct 15, 2026
d6ca6df
The identifier modules design states what asking on every read costs …
jwrosewell Oct 15, 2026
43fc26d
The identifier modules design takes its round 2 corrections
jwrosewell Oct 15, 2026
5dab536
Merge 40-rsc-flight into 41-prebid-eids
jwrosewell Oct 15, 2026
a712e95
Merge 40-rsc-flight into 41-prebid-eids
jwrosewell Oct 15, 2026
71c54ba
Merge 40-rsc-flight into 41-prebid-eids
jwrosewell Oct 15, 2026
207363d
Merge split/40-rsc-flight into split/41-prebid-eids
jwrosewell Oct 16, 2026
42cbdb5
Merge split/40-rsc-flight into split/41-prebid-eids
jwrosewell Oct 16, 2026
9402bdb
Merge split/40-rsc-flight into split/41-prebid-eids
jwrosewell Oct 16, 2026
6dd2bc5
Merge split/40-rsc-flight into split/41-prebid-eids
jwrosewell Oct 16, 2026
fcad6d8
Merge split/40-rsc-flight into split/41-prebid-eids
jwrosewell Oct 16, 2026
4db586c
Merge split/40-rsc-flight into split/41-prebid-eids
jwrosewell Oct 16, 2026
4c1512f
Merge split/40-rsc-flight into split/41-prebid-eids
jwrosewell Oct 16, 2026
227af89
Merge split/40-rsc-flight into split/41-prebid-eids
jwrosewell Oct 16, 2026
691c1a8
Merge split/40-rsc-flight into split/41-prebid-eids
jwrosewell Oct 16, 2026
f7764fc
Merge split/40-rsc-flight into split/41-prebid-eids
jwrosewell Oct 16, 2026
1a32594
Merge split/40-rsc-flight into split/41-prebid-eids
jwrosewell Oct 16, 2026
df711d1
Merge split/40-rsc-flight into split/41-prebid-eids
jwrosewell Oct 16, 2026
a27b034
Merge split/40-rsc-flight into split/41-prebid-eids
jwrosewell Oct 16, 2026
0211810
Merge split/40-rsc-flight into split/41-prebid-eids
jwrosewell Oct 16, 2026
8af17d1
Merge split/40-rsc-flight into split/41-prebid-eids
jwrosewell Oct 16, 2026
8461a15
Merge split/40-rsc-flight into split/41-prebid-eids
jwrosewell Oct 18, 2026
0a5e8b3
Merge split/40-rsc-flight into split/41-prebid-eids
jwrosewell Oct 18, 2026
19499d4
No log line carries the source of an EID the reader sent
jwrosewell Oct 18, 2026
160958a
The identifier test modules answer fixed names, as every module does
jwrosewell Oct 18, 2026
dbf21ee
The identifier modules design lists the test of the skipped EID log l…
jwrosewell Oct 18, 2026
3b92b79
Merge split/40-rsc-flight into split/41-prebid-eids
jwrosewell Oct 18, 2026
4fd147c
Merge split/40-rsc-flight into split/41-prebid-eids
jwrosewell Oct 18, 2026
4d1be12
Merge split/40-rsc-flight into split/41-prebid-eids
jwrosewell Oct 18, 2026
a91e1b6
Merge split/40-rsc-flight into split/41-prebid-eids
jwrosewell Oct 18, 2026
84d9e99
Merge split/40-rsc-flight into split/41-prebid-eids
jwrosewell Oct 19, 2026
bc21b4a
Merge split/40-rsc-flight into split/41-prebid-eids
jwrosewell Oct 19, 2026
a0e4a23
Merge split/40-rsc-flight into split/41-prebid-eids
jwrosewell Oct 19, 2026
e3ec48c
Merge split/40-rsc-flight into split/41-prebid-eids
jwrosewell Oct 19, 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
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Changed

- **Breaking for crates outside core:** the identifiers a request carries come from identifier modules. Core declares `IdentifierModule` in `trusted_server_core::ec::identifiers`, a registration offers one with `IntegrationRegistrationBuilder::with_identifier_module`, and core asks every running module once per request, when it reads the Edge Cookie state, then syncs the answers to the identity graph and carries them to the auction as it did the `ts-eids` cookie. The Prebid module owns that cookie, its two shapes and its size limit, and is the first identifier module. `COOKIE_EIDS` is removed from core, `ec_finalize_response` no longer takes the cookie's value, `EcContext::module_eids` holds what the modules learned, and `RuntimeServices` carries the modules through `with_identifier_modules`. A `template_cache_key_cookies` entry naming any cookie under the public prefix is refused, where the Edge Cookie and the EIDs cookie were refused by name. A deployment's settings do not change.
- **Breaking:** The React Server Components Flight rewriter is the middleware `framework.nextjs.flight` of the Next.js module, which runs on a `text/x-component` response where a `[[fetch]]` entry names it, where core rewrote every Flight response by media type. A deployment that fronts a Next.js site selects `[framework] module = "nextjs"` and adds the entry, as `trusted-server.example.toml` shows it. With the module selected and no entry, a Flight response passes through as the origin sent it, and an entry may now cover `text/x-component`. A middleware says with `Middleware::moves_origin_address` that it moves the origin's address itself, and core then leaves the addresses in a body of the media types it handles to it, whether or not an entry names it, because a plain replacement in a length prefixed row leaves the old length. **For crates outside core**, `trusted_server_core::rsc_flight` is removed.
- **Breaking:** Where content comes from is a source module. `[source]` selects the publisher's, and each `[[proxy.asset_routes]]` entry selects its own in a `source` table of the same shape, with `module` naming the source and its settings in the table beneath. Core supplies `origin`, an HTTP origin, and a module a build links can offer another through `IntegrationRegistrationBuilder::with_source_module`. A source answers for each request where that request's content comes from, and core fetches, caches, rewrites the origin host and follows the redirect rule from that answer. `[source]` is required. The origin settings move into the `origin` table, and a document that still writes one where it was is refused at startup naming the new place. An environment variable that set the address is now `TRUSTED_SERVER__SOURCE__ORIGIN__URL`. The old name is refused where the build reads variables, and `ts config push` ignores it, as it ignores any variable for a key the document does not hold. A path in an asset route's `url` names a folder the target path is added under, where a path was refused, a target path with a `.` or `..` segment under a folder is answered `400`, and a route applies `directory_index` as the publisher does. Stored pages and the publisher's stored assets are fetched again after the upgrade, because their keys hold a code worked out from the settings, but an asset route's stored copies keep their keys. Where `host_header` is set, the page pipeline and every middleware are now told that `Host` as the page's origin host, where they were told the address's host, so the page's own addresses under that name are rewritten to the request's host. **For crates outside core**, `handle_asset_proxy_request` takes the route's source, which `IntegrationRegistry::route_source` gives, and `Publisher::origin_host`, `origin_host_header` and `origin_query_is_stripped` are replaced by `Settings::origin_source` and the `SourceLocation` a source answers.

Expand Down
Loading
Loading