Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
168 commits
Select commit Hold shift + click to select a range
85276bd
Open the integration registry to externally supplied builders
jwrosewell Aug 28, 2026
b675189
Keep builders() as the built-in set and derive Debug for the builder
jwrosewell Aug 28, 2026
1ef46fd
Compose the served tsjs script in core from content-addressed parts
jwrosewell Aug 28, 2026
e7ac332
Tighten the tsjs part contract on hashes and ids
jwrosewell Aug 28, 2026
fd18ab2
Carry a browser module on the integration registration
jwrosewell Aug 28, 2026
ca56e2c
Honor disabled modules in js_part and make the JS delivery flags orde…
jwrosewell Aug 28, 2026
4a3cd46
Serve and tag the tsjs script from registry parts
jwrosewell Aug 28, 2026
521fb51
Cover carried modules in the template cache fingerprint
jwrosewell Aug 28, 2026
9b38100
Make the standalone route test discriminate the flag and stop repairi…
jwrosewell Aug 28, 2026
9c141e2
Read a neutral personalized-response marker instead of DataDome's
jwrosewell Aug 28, 2026
8373d72
Open the auction orchestrator to externally supplied providers
jwrosewell Aug 28, 2026
ab2121d
Drive deploy validation from the integration and auction builders
jwrosewell Aug 28, 2026
5079bc0
Bind the DataDome filter to the neutral personalized-response marker …
jwrosewell Aug 28, 2026
0e5eec5
Open the bid renderer descriptor while keeping its wire form
jwrosewell Aug 28, 2026
162bf70
Run integration request preparers from the registry
jwrosewell Aug 28, 2026
943c255
Select a module's geo provider through the registration
jwrosewell Aug 28, 2026
41dd39c
Let adapters compose the deployment from externally supplied builders
jwrosewell Aug 28, 2026
95e546c
Prove the integration seam with a probe module outside core
jwrosewell Aug 28, 2026
55f6a1e
Run request preparers once per request on the Axum fallback path
jwrosewell Aug 28, 2026
18f4fc4
Document modules outside core and the geo selector
jwrosewell Aug 28, 2026
5cfe16b
Reserve the bundle buffer before composing the served script
jwrosewell Aug 29, 2026
9750c19
Say where the bundle hash memo can actually hit
jwrosewell Aug 29, 2026
83a5954
Read the renderer bid id without copying the whole payload
jwrosewell Aug 29, 2026
36080d4
Correct where the application is actually built once
jwrosewell Aug 29, 2026
02edd06
Pin the renderer wire form without pinning JSON key order
jwrosewell Aug 29, 2026
2e60640
Repair the seam against the stack it now sits on
jwrosewell Aug 30, 2026
8dba426
Let a module id count as a selected geo provider
jwrosewell Aug 30, 2026
b950abf
Carry identity and device on the registration alongside geo
jwrosewell Aug 30, 2026
e74783a
Give every registry initializer the new provider fields
jwrosewell Aug 30, 2026
a047359
Hold the geo and device selectors to the contract the seam now has
jwrosewell Aug 30, 2026
d860f2a
Give the provider seams the async shape and the services a real vendo…
jwrosewell Aug 30, 2026
248690a
Documentation, house-style, and test-compilation fixes for the seam i…
jwrosewell Aug 31, 2026
894b83d
Complete the mint and fingerprint house-style sweep after rebase
jwrosewell Aug 31, 2026
cb69c92
Drop the unused EdgeCookieProvider import from the seam-probe test
jwrosewell Aug 31, 2026
1d1fa44
Land the module-supplied Edge Cookie provider on the single seam
jwrosewell Aug 31, 2026
b650c1a
Refuse a module device provider whose permissions nothing can enforce
jwrosewell Sep 1, 2026
3399d42
Format the guide pages for the docs Prettier gate and tidy the device…
jwrosewell Sep 1, 2026
ef6c042
Name the declared permissions in the device refusal and align the gui…
jwrosewell Sep 1, 2026
5bb867d
Finish the default_country retirement across the seam branches
jwrosewell Sep 1, 2026
5b1f2a4
Point the permission-model guide at the config/permissions sample
jwrosewell Sep 2, 2026
90f5c9f
Merge the permission signal work from split/5
jwrosewell Sep 14, 2026
f57ad1d
Merge the follow-up commits from split/5
jwrosewell Sep 14, 2026
b5442bb
Merge main and the permission work into the integration seam through …
jwrosewell Sep 15, 2026
7ea7682
Hand the Axum startup check the Edge Cookie provider a module supplies
jwrosewell Sep 15, 2026
9adf988
Switch integrations on by naming them in [integration] provider
jwrosewell Sep 15, 2026
b231b55
Write the integration list from ts audit and the test fixtures
jwrosewell Sep 15, 2026
6943587
Select demand sources and the ad server like every other provider
jwrosewell Sep 15, 2026
07dd08b
Document how an integration is switched on
jwrosewell Sep 15, 2026
973a81a
Say that an integration runs rather than that it is enabled
jwrosewell Sep 15, 2026
18e6946
Write down the one rule every provider configuration follows
jwrosewell Sep 15, 2026
d9e6e1c
Merge the integration selector into the demand and ad server seam
jwrosewell Sep 15, 2026
194874e
Select the APS renderer test's source in the demand table
jwrosewell Sep 15, 2026
396bc80
Select the adapters' test demand sources in the demand table
jwrosewell Sep 15, 2026
bddec03
Merge the Edge Cookie provider tables and the docs from split/5
jwrosewell Sep 15, 2026
27e05fa
Hand a demand implementation only the parts of a request it owns
jwrosewell Sep 15, 2026
29d1fde
Refuse an integration setting no integration knows, and say only what…
jwrosewell Sep 15, 2026
6a7cbb9
Merge the Edge Cookie guide wording fix from split/5
jwrosewell Sep 15, 2026
e40b80e
Name the Edge Cookie block the Axum test fixture writes
jwrosewell Sep 15, 2026
f50c32e
Count the asset proxy entries the audit writes rather than the templa…
jwrosewell Sep 15, 2026
59a2eb2
Drive the CLI overlay tests from the demand table the fixture already…
jwrosewell Sep 15, 2026
ede61f6
Write the Fastly adapter's test fixtures on the demand table
jwrosewell Sep 15, 2026
da0bd7c
Merge main into the integration seam
jwrosewell Sep 25, 2026
f48e2a8
Merge the test state and fixture fixes from split/5
jwrosewell Sep 25, 2026
986c33d
Merge the withdrawal test fix from split/5
jwrosewell Sep 25, 2026
4ef7328
Compile the auction plan with the integrations the adapter was given
jwrosewell Sep 25, 2026
a5a3b98
Make main's new fixture compile against the seam
jwrosewell Sep 25, 2026
b41c61e
Remove the section replacer the seam left with no caller
jwrosewell Sep 25, 2026
b1dfdc4
Make main's new tests run against the seam
jwrosewell Sep 25, 2026
52feb1c
Fix the audit port and point the diagnostics at the demand table
jwrosewell Sep 25, 2026
742ecfd
Stop importing the plan compiler the adapters no longer call
jwrosewell Sep 25, 2026
408fad3
Re-pad the API reference table and drop a test re-import
jwrosewell Sep 25, 2026
7757770
Let the adapter test fixtures import the plan compiler they use
jwrosewell Sep 25, 2026
8aa8ca1
Bring main's CLI tests and documented fixture onto this stack
jwrosewell Sep 25, 2026
44b56d0
Put the test import where rustfmt wants it
jwrosewell Sep 25, 2026
8fcb54a
Merge split/5-response-hook-docs at ecb5fb737 into split/7-integratio…
jwrosewell Oct 6, 2026
b8d451b
The seam says module where an operator selects a capability
jwrosewell Oct 6, 2026
79c1a9f
Finish the documentation for the demand, adserver and integration tables
jwrosewell Oct 6, 2026
cccce58
Read the demand table in ts prebid server inspect
jwrosewell Oct 6, 2026
d8e09a9
Merge split/5-response-hook-docs at 30fbc6d36 into split/7-integratio…
jwrosewell Oct 6, 2026
0d5755f
The local harness names prebid in [integration] module
jwrosewell Oct 6, 2026
060b442
Merge split/5-response-hook-docs at 93af3ea2b into split/7-integratio…
jwrosewell Oct 7, 2026
22fa839
The auction's tables select with modules and module
jwrosewell Oct 7, 2026
90f6690
Page integrations are selected in the section of their type
jwrosewell Oct 7, 2026
ad734fd
The audit generator borrows the detected integration's name
jwrosewell Oct 7, 2026
d3e2366
An auction implementation is named by its module path
jwrosewell Oct 7, 2026
35eb0ea
Messages and guides name a setting by the section it is read from
jwrosewell Oct 7, 2026
1579133
Merge split/5-response-hook-docs at f220687ba into split/7-integratio…
jwrosewell Oct 7, 2026
6b335b7
Comments say what the code does, and one names the ad server's table
jwrosewell Oct 7, 2026
6c7e0d6
The Fastly adapter is a library, and the seam's round trip runs on it
jwrosewell Oct 7, 2026
0810bbe
The integration guide says how an integration ships outside core
jwrosewell Oct 7, 2026
b52e347
Merge split/7-integration-seam-impl at 0810bbe40 into the Fastly comp…
jwrosewell Oct 7, 2026
b98dc7a
The guide and changelog say how a Fastly deployment composes a vendor…
jwrosewell Oct 7, 2026
b5ef822
Comments and the onboarding pages name the library root as the entry …
jwrosewell Oct 7, 2026
2b5ca44
A registration names the Edge Cookie, geo and device modules it supplies
jwrosewell Oct 7, 2026
b3ef39e
Merge split/7-integration-seam-impl at 2b5ca444a into the Fastly comp…
jwrosewell Oct 7, 2026
5a2e8f6
A demand source or ad server from outside core is known when the sett…
jwrosewell Oct 7, 2026
93f7db0
Merge split/7-integration-seam-impl at 5a2e8f602 into the Fastly comp…
jwrosewell Oct 7, 2026
1eabe04
On Fastly, the device module [device] selects classifies each request
jwrosewell Oct 7, 2026
e4b9a62
Merge split/7-integration-seam-impl at 1eabe0426 into the Fastly comp…
jwrosewell Oct 7, 2026
812c90c
The seam probe supplies a demand source
jwrosewell Oct 7, 2026
7dbe938
Merge split/7-integration-seam-impl at 812c90c2a into the Fastly comp…
jwrosewell Oct 7, 2026
afe895e
Merge the Fastly library target into split/7-integration-seam-impl
jwrosewell Oct 7, 2026
7a186db
Merge split/5-response-hook-docs at 1f31ba53e into split/7-integratio…
jwrosewell Oct 7, 2026
d2e68d0
The seam probe's notes name both adapters whose tests use it
jwrosewell Oct 7, 2026
3bb85a6
Osano moves out of core, and a stock build's modules are listed in on…
jwrosewell Oct 7, 2026
693b590
Core offers what an integration crate outside it needs
jwrosewell Oct 7, 2026
b90b4db
Lockr moves out of core
jwrosewell Oct 7, 2026
947cedd
Permutive moves out of core
jwrosewell Oct 7, 2026
9e8e663
Sourcepoint moves out of core
jwrosewell Oct 7, 2026
5832b17
Didomi moves out of core
jwrosewell Oct 7, 2026
91af0a1
Google Tag Manager moves out of core
jwrosewell Oct 7, 2026
8392960
Testlight moves out of core
jwrosewell Oct 7, 2026
215c5dc
Next.js moves out of core
jwrosewell Oct 8, 2026
5f0e9c0
Google Publisher Tags moves out of core
jwrosewell Oct 8, 2026
ccdae38
A module acts on one request without core naming it
jwrosewell Oct 8, 2026
4f8fd2a
The Google Publisher Tags diagnostics module moves out of core
jwrosewell Oct 8, 2026
4087052
A module declares its own secret settings
jwrosewell Oct 8, 2026
609154d
DataDome moves out of core
jwrosewell Oct 8, 2026
e08ef73
The audit generator asks the stock list where a module is selected
jwrosewell Oct 8, 2026
d31e511
A module registers and validates against the auction plan
jwrosewell Oct 8, 2026
549cbb7
The mock ad server moves out of core
jwrosewell Oct 8, 2026
a1339c9
APS moves out of core
jwrosewell Oct 8, 2026
27648c0
Prebid's file is divided between the page integration and the demand
jwrosewell Oct 8, 2026
39f1240
Prebid moves out of core
jwrosewell Oct 8, 2026
dd7f232
The Prebid Server demand moves out of core
jwrosewell Oct 8, 2026
2e60184
The Fastly adapter's test fixtures compile their plan with the stock …
jwrosewell Oct 8, 2026
8aba9c4
The guides say where an integration lives
jwrosewell Oct 8, 2026
3481121
Prebid raises the integration error every module raises
jwrosewell Oct 8, 2026
e1b6513
Core drops an ad server model and an error variant nothing uses
jwrosewell Oct 8, 2026
036618b
Prebid's request extension types go with the provider that writes them
jwrosewell Oct 8, 2026
4db59c8
Routing's zone limit and transport headers are named for what they are
jwrosewell Oct 8, 2026
7689923
Every crate outside core names its maintainers
jwrosewell Oct 8, 2026
a90a141
Merge split/5-response-hook-docs at 3c7ef00e7 into split/7-integratio…
jwrosewell Oct 8, 2026
9ce9e3e
Every tool and test that validates settings registers the stock modules
jwrosewell Oct 8, 2026
1e2577e
Merge split/7-integration-seam-impl at a90a141bc into the move of the…
jwrosewell Oct 8, 2026
190ea05
The Viceroy generator's test loads its blob with the stock modules
jwrosewell Oct 8, 2026
f5a2858
The plain OpenRTB demand moves out of core
jwrosewell Oct 8, 2026
49bdf21
Merge the move of the integration modules out of core into split/7-in…
jwrosewell Oct 8, 2026
b826d6e
Merge split/5-response-hook-docs into split/7-integration-seam-impl
Jamesr51d Oct 13, 2026
af04ad6
Lock the web-time dependency of the DataDome crate
Jamesr51d Oct 13, 2026
d3bbc32
Keep the compiled-in git version out of the legacy settings loader an…
Jamesr51d Oct 13, 2026
6814506
Merge split/5-response-hook-docs into split/7-integration-seam-impl
jwrosewell Oct 15, 2026
887e8c2
Merge split/5-response-hook-docs into split/7-integration-seam-impl
jwrosewell Oct 16, 2026
d7a3663
Merge split/5-response-hook-docs into split/7-integration-seam-impl
jwrosewell Oct 16, 2026
5696afc
Merge split/5-response-hook-docs into split/7-integration-seam-impl
jwrosewell Oct 16, 2026
21af0ba
A refused module table names the setting and never its value
jwrosewell Oct 16, 2026
aba29a6
The Axum and APS guides name the demand table and the module crates
jwrosewell Oct 16, 2026
77e0b97
Merge split/5-response-hook-docs into split/7-integration-seam-impl
jwrosewell Oct 16, 2026
f2a1e12
Merge the review fixes into split/7-integration-seam-impl
jwrosewell Oct 16, 2026
6e17704
Merge the review fixes into split/7-integration-seam-impl
jwrosewell Oct 16, 2026
9ab0b0c
A settings validation error carries the validator's message
jwrosewell Oct 16, 2026
0085dcc
The Spin application state is built for every request
jwrosewell Oct 17, 2026
10cb2f8
Merge split/5-response-hook-docs into split/7-integration-seam-impl
jwrosewell Oct 18, 2026
4eb3619
The canonical timeout test backend answers a constant of its type
jwrosewell Oct 18, 2026
920b6c4
Merge split/5-response-hook-docs into split/7-integration-seam-impl
jwrosewell Oct 18, 2026
17cfe60
Merge split/5-response-hook-docs into split/7-integration-seam-impl
jwrosewell Oct 18, 2026
3336877
Merge split/5-response-hook-docs into split/7-integration-seam-impl
jwrosewell Oct 19, 2026
a08c2e8
Merge split/5-response-hook-docs into split/7-integration-seam-impl
jwrosewell Oct 19, 2026
3a324c1
Merge split/5-response-hook-docs into split/7-integration-seam-impl
jwrosewell Oct 19, 2026
493119a
Merge split/5-response-hook-docs into split/7-integration-seam-impl
jwrosewell Oct 19, 2026
c514d17
Merge split/5-response-hook-docs into split/7-integration-seam-impl
jwrosewell Oct 28, 2026
9a8dc2f
Merge split/5-response-hook-docs into split/7-integration-seam-impl
jwrosewell Oct 28, 2026
bdea3ca
The finalize services and the module tests carry a permission policy
jwrosewell Oct 28, 2026
edad59f
The finalize services take the policy loaded settings carry
jwrosewell Oct 28, 2026
43dad46
Merge split/5-response-hook-docs into split/7-integration-seam-impl
jwrosewell Oct 28, 2026
c71c298
Merge split/5-response-hook-docs into split/7-integration-seam-impl
jwrosewell Oct 28, 2026
97c4b6c
Merge split/5-response-hook-docs into split/7-integration-seam-impl
jwrosewell Oct 28, 2026
236ffce
Merge split/5-response-hook-docs into split/7-integration-seam-impl
jwrosewell Oct 28, 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
12 changes: 6 additions & 6 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,10 @@ test_details = "test --target aarch64-apple-darwin"
# native crate needs no change here. Axum (native), Cloudflare
# (wasm32-unknown-unknown), Spin, the CLI (native), and integration-tests
# (native) are simply not listed.
build-fastly = "build -p trusted-server-core -p trusted-server-adapter-fastly -p trusted-server-device-fastly -p trusted-server-geo-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-device-fastly -p trusted-server-geo-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-device-fastly -p trusted-server-geo-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-device-fastly -p trusted-server-geo-fastly -p trusted-server-js -p trusted-server-openrtb --target wasm32-wasip1"
build-fastly = "build -p trusted-server-core -p trusted-server-adapter-fastly -p trusted-server-device-fastly -p trusted-server-geo-fastly -p trusted-server-cmp-osano -p trusted-server-modules -p trusted-server-identity-lockr -p trusted-server-audience-permutive -p trusted-server-cmp-sourcepoint -p trusted-server-cmp-didomi -p trusted-server-tag-google-tag-manager -p trusted-server-testing-testlight -p trusted-server-framework-nextjs -p trusted-server-ad-tag-google -p trusted-server-bot-protection-datadome -p trusted-server-ad-server-mock -p trusted-server-auction-aps -p trusted-server-auction-prebid -p trusted-server-auction-prebid-server -p trusted-server-auction-protocol-openrtb -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-device-fastly -p trusted-server-geo-fastly -p trusted-server-cmp-osano -p trusted-server-modules -p trusted-server-identity-lockr -p trusted-server-audience-permutive -p trusted-server-cmp-sourcepoint -p trusted-server-cmp-didomi -p trusted-server-tag-google-tag-manager -p trusted-server-testing-testlight -p trusted-server-framework-nextjs -p trusted-server-ad-tag-google -p trusted-server-bot-protection-datadome -p trusted-server-ad-server-mock -p trusted-server-auction-aps -p trusted-server-auction-prebid -p trusted-server-auction-prebid-server -p trusted-server-auction-protocol-openrtb -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-device-fastly -p trusted-server-geo-fastly -p trusted-server-cmp-osano -p trusted-server-modules -p trusted-server-identity-lockr -p trusted-server-audience-permutive -p trusted-server-cmp-sourcepoint -p trusted-server-cmp-didomi -p trusted-server-tag-google-tag-manager -p trusted-server-testing-testlight -p trusted-server-framework-nextjs -p trusted-server-ad-tag-google -p trusted-server-bot-protection-datadome -p trusted-server-ad-server-mock -p trusted-server-auction-aps -p trusted-server-auction-prebid -p trusted-server-auction-prebid-server -p trusted-server-auction-protocol-openrtb -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-device-fastly -p trusted-server-geo-fastly -p trusted-server-cmp-osano -p trusted-server-modules -p trusted-server-identity-lockr -p trusted-server-audience-permutive -p trusted-server-cmp-sourcepoint -p trusted-server-cmp-didomi -p trusted-server-tag-google-tag-manager -p trusted-server-testing-testlight -p trusted-server-framework-nextjs -p trusted-server-ad-tag-google -p trusted-server-bot-protection-datadome -p trusted-server-ad-server-mock -p trusted-server-auction-aps -p trusted-server-auction-prebid -p trusted-server-auction-prebid-server -p trusted-server-auction-protocol-openrtb -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 All @@ -40,8 +40,8 @@ test-fastly-reuse = "test -p trusted-server-adapter-fastly --target wasm32-wasip
# run with the Axum adapter in CI.
build-axum = "build -p trusted-server-adapter-axum"
check-axum = "check -p trusted-server-adapter-axum"
clippy-axum = "clippy -p trusted-server-adapter-axum -p trusted-server-permission-signal-gpc -p trusted-server-permission-signal-gpp -p trusted-server-permission-signal-mtm -p trusted-server-permission-signal-tcf -p trusted-server-permission-signal-us-privacy --all-targets --all-features -- -D warnings"
test-axum = "test -p trusted-server-adapter-axum -p trusted-server-permission-signal-gpc -p trusted-server-permission-signal-gpp -p trusted-server-permission-signal-mtm -p trusted-server-permission-signal-tcf -p trusted-server-permission-signal-us-privacy"
clippy-axum = "clippy -p trusted-server-adapter-axum -p trusted-server-permission-signal-gpc -p trusted-server-permission-signal-gpp -p trusted-server-permission-signal-mtm -p trusted-server-permission-signal-tcf -p trusted-server-permission-signal-us-privacy -p trusted-server-cmp-osano -p trusted-server-modules -p trusted-server-identity-lockr -p trusted-server-audience-permutive -p trusted-server-cmp-sourcepoint -p trusted-server-cmp-didomi -p trusted-server-tag-google-tag-manager -p trusted-server-testing-testlight -p trusted-server-framework-nextjs -p trusted-server-ad-tag-google -p trusted-server-bot-protection-datadome -p trusted-server-ad-server-mock -p trusted-server-auction-aps -p trusted-server-auction-prebid -p trusted-server-auction-prebid-server -p trusted-server-auction-protocol-openrtb --all-targets --all-features -- -D warnings"
test-axum = "test -p trusted-server-adapter-axum -p trusted-server-permission-signal-gpc -p trusted-server-permission-signal-gpp -p trusted-server-permission-signal-mtm -p trusted-server-permission-signal-tcf -p trusted-server-permission-signal-us-privacy -p trusted-server-cmp-osano -p trusted-server-modules -p trusted-server-identity-lockr -p trusted-server-audience-permutive -p trusted-server-cmp-sourcepoint -p trusted-server-cmp-didomi -p trusted-server-tag-google-tag-manager -p trusted-server-testing-testlight -p trusted-server-framework-nextjs -p trusted-server-ad-tag-google -p trusted-server-bot-protection-datadome -p trusted-server-ad-server-mock -p trusted-server-auction-aps -p trusted-server-auction-prebid -p trusted-server-auction-prebid-server -p trusted-server-auction-protocol-openrtb"

# --- Cloudflare adapter (native host + wasm32-unknown-unknown) ---
# Build/check target the WASM runtime (requires the `cloudflare` feature);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,17 @@ Before asking questions the repository can answer:
4. Add observations to the existing deployment decision record with source path/key, candidate requirement, confidence/status, and the remaining question. Report credential identifiers or presence only; keep raw TOML, credential values, and commercially sensitive publisher values out of reports and generated examples.
5. Verify candidate adapters against the selected PBS Go release and confirm partner authorization. Record each host-secret requirement as required, not needed, or unresolved. A bidder name alone proves neither a secret requirement nor permission to use the bidder.

| Trusted Server input | Discovery use |
| ------------------------------------------------------------------ | ------------------------------------------------------------------------------------------- |
| `auction.enabled` | Determine active versus disabled server-auction intent without expanding defaults |
| `auction.providers.<id>` with `profile = "prebid-server"` | Identify each configured PBS provider; withhold endpoint values |
| Provider `timeout_ms` and `profile_config.test_mode` or `debug` | Record explicit timeout and diagnostic intent, not permission to contact bidders |
| Provider `profile_config.bid_param_override_rules` | Count conditional publisher or placement inputs without reporting their values |
| `auction.bidders.<bidder>.provider` | Group candidate server-side adapters under the referenced PBS provider |
| `integrations.prebid.enabled`, `account_id`, `timeout_ms`, `debug` | Record browser integration intent and compatibility questions separately from server demand |
| `integrations.prebid.client_side_bidders` | Browser-side participation; do not automatically enable these adapters in PBS |
| `integrations.prebid.bundle` | Browser bundle and identity capabilities, not proof of server-side use |
| Relevant privacy, format, and stored-request settings | Identify dependencies that need confirmation from the caller or request path |
| Trusted Server input | Discovery use |
| --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| `auction.enabled` | Determine active versus disabled server-auction intent without expanding defaults |
| `demand.<name>` with `implementation = "auction.prebid-server"` | Identify each configured PBS demand source and whether `demand.modules` selects it; withhold endpoint values |
| Demand source `timeout_ms`, `test_mode` and `debug` | Record explicit timeout and diagnostic intent, not permission to contact bidders |
| Demand source `bid_param_override_rules` | Count conditional publisher or placement inputs without reporting their values |
| `auction.bidders.<bidder>.module` | Group candidate server-side adapters under the referenced PBS demand source |
| `prebid` in `auction.modules`, and `auction.prebid` `account_id`, `timeout_ms`, `debug` | Record browser integration intent and compatibility questions separately from server demand |
| `auction.prebid.client_side_bidders` | Browser-side participation; do not automatically enable these adapters in PBS |
| `auction.prebid.bundle` | Browser bundle and identity capabilities, not proof of server-side use |
| Relevant privacy, format, and stored-request settings | Identify dependencies that need confirmation from the caller or request path |

Use `ts prebid server inspect --config <selected-path>` for redacted local discovery. It reports explicit values without expanding defaults or proving host-secret requirements. Resolve schema defaults and adapter metadata separately, recording unsupported details as unresolved rather than fetching credentials or inventing mappings. Read config without invoking commands that publish or rewrite it. Leave `trusted-server.toml` unchanged. Propose caller endpoint/account changes separately after integration approval; discovery must not activate bidders, publish configuration, or change traffic.

Expand Down
47 changes: 21 additions & 26 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -40,41 +40,36 @@ TRUSTED_SERVER__REQUEST_SIGNING__ENABLED=false
# =============================================================================
# Integrations
# =============================================================================
# Which integrations run is set in the TOML file, in the section of each
# one's type, as `[auction] modules = ["prebid"]` and
# `[framework] module = "nextjs"`. There is no per-integration enabled flag.
# An overlay below changes a setting the file already carries, and it cannot
# add one the file leaves out or replace a list. An overlay names its section
# as the file writes it, so a section with a hyphen in its name, such as
# `[ad-tag]`, is set with `env 'NAME=value' command`, because a shell's
# `export` refuses the name.

# Prebid
TRUSTED_SERVER__INTEGRATIONS__PREBID__ENABLED=false
# TRUSTED_SERVER__INTEGRATIONS__PREBID__SERVER_URL=https://prebid-server.example.com/openrtb2/auction
# TRUSTED_SERVER__INTEGRATIONS__PREBID__TIMEOUT_MS=1000
# TRUSTED_SERVER__INTEGRATIONS__PREBID__BIDDERS=kargo,rubicon,appnexus
# TRUSTED_SERVER__INTEGRATIONS__PREBID__BID_PARAM_OVERRIDES='{"bidder-name":{"param1":12345,"param2":"value"}}'
# Compatibility env shape for bidder -> zone -> params overrides
# TRUSTED_SERVER__INTEGRATIONS__PREBID__BID_PARAM_ZONE_OVERRIDES='{"kargo":{"header":{"placementId":"_abc"}}}'
# Preferred canonical env shape for future generic rules
# TRUSTED_SERVER__INTEGRATIONS__PREBID__BID_PARAM_OVERRIDE_RULES='[{"when":{"bidder":"kargo","zone":"header"},"set":{"placementId":"_abc"}}]'
# TRUSTED_SERVER__INTEGRATIONS__PREBID__SUPPRESS_NURL_BIDDERS=exampleBidder,anotherBidder
# TRUSTED_SERVER__INTEGRATIONS__PREBID__AUTO_CONFIGURE=false
# TRUSTED_SERVER__INTEGRATIONS__PREBID__DEBUG=false
# TRUSTED_SERVER__INTEGRATIONS__PREBID__TEST_MODE=false
# Prebid, the browser side. The Prebid Server endpoint belongs to a demand
# source, so its overlay is TRUSTED_SERVER__DEMAND__<NAME>__ENDPOINT.
# TRUSTED_SERVER__AUCTION__PREBID__ACCOUNT_ID=
# TRUSTED_SERVER__AUCTION__PREBID__TIMEOUT_MS=1000
# TRUSTED_SERVER__AUCTION__PREBID__DEBUG=false

# Next.js
TRUSTED_SERVER__INTEGRATIONS__NEXTJS__ENABLED=false
# TRUSTED_SERVER__INTEGRATIONS__NEXTJS__REWRITE_ATTRIBUTES=href,link,url
# TRUSTED_SERVER__FRAMEWORK__NEXTJS__MAX_COMBINED_PAYLOAD_BYTES=10485760

# Didomi
TRUSTED_SERVER__INTEGRATIONS__DIDOMI__ENABLED=false
# TRUSTED_SERVER__INTEGRATIONS__DIDOMI__SDK_ORIGIN=https://sdk.privacy-center.org
# TRUSTED_SERVER__INTEGRATIONS__DIDOMI__API_ORIGIN=https://api.privacy-center.org
# TRUSTED_SERVER__CMP__DIDOMI__SDK_ORIGIN=https://sdk.privacy-center.org
# TRUSTED_SERVER__CMP__DIDOMI__API_ORIGIN=https://api.privacy-center.org

# Permutive
TRUSTED_SERVER__INTEGRATIONS__PERMUTIVE__ENABLED=false
# TRUSTED_SERVER__INTEGRATIONS__PERMUTIVE__ORGANIZATION_ID=
# TRUSTED_SERVER__INTEGRATIONS__PERMUTIVE__WORKSPACE_ID=
# TRUSTED_SERVER__INTEGRATIONS__PERMUTIVE__PROJECT_ID=
# TRUSTED_SERVER__AUDIENCE__PERMUTIVE__ORGANIZATION_ID=
# TRUSTED_SERVER__AUDIENCE__PERMUTIVE__WORKSPACE_ID=
# TRUSTED_SERVER__AUDIENCE__PERMUTIVE__PROJECT_ID=

# Lockr
TRUSTED_SERVER__INTEGRATIONS__LOCKR__ENABLED=false
# TRUSTED_SERVER__INTEGRATIONS__LOCKR__APP_ID=
# TRUSTED_SERVER__INTEGRATIONS__LOCKR__CACHE_TTL_SECONDS=3600
# TRUSTED_SERVER__IDENTITY__LOCKR__APP_ID=
# TRUSTED_SERVER__IDENTITY__LOCKR__CACHE_TTL_SECONDS=3600

# =============================================================================
# Rewrite Configuration (optional)
Expand Down
8 changes: 8 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,14 @@ jobs:
run: |
cargo test --package trusted-server-core --target "$(rustc -vV | sed -n 's/host: //p')"

# The seam-probe fixture crate's own unit tests only run when invoked on
# the host target, because no adapter alias compiles its test target. Run
# them here so a fault in the seam fixture cannot sit unseen behind a
# green gate set.
- name: Run host-target seam-probe integration tests
run: |
cargo test --package trusted-server-integration-seam-probe --target "$(rustc -vV | sed -n 's/host: //p')"

- name: Verify Fastly WASM release build
run: cargo build --package trusted-server-adapter-fastly --release --target wasm32-wasip1

Expand Down
Loading
Loading