-
Notifications
You must be signed in to change notification settings - Fork 13
Open the integration seam so a vendor module can live outside core #1094
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
jwrosewell
wants to merge
208
commits into
IABTechLab:main
Choose a base branch
from
jwrosewell:split/7-integration-seam-impl
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
208 commits
Select commit
Hold shift + click to select a range
b740265
Add a pluggable Edge Cookie provider seam with the built-in HMAC prov…
jwrosewell d2ad2a9
Accept the provider-code envelope on the partner-facing identifier paths
jwrosewell b2623cb
Rename the legacy passphrase migration so CodeQL stops tainting Settings
jwrosewell 918f96c
Stop serving without identity when a selected provider is unavailable
jwrosewell 61b7cf1
Hold the deprecated EC passphrase to the same rules as the new block
jwrosewell 5b01f98
Reject unknown keys in the built-in HMAC provider block
jwrosewell 7424932
Stop rather than run stateless when the hmac block is missing
jwrosewell d6dc848
Restore the missing line continuation in the mint rejection message
jwrosewell 45ec829
Give EdgeCookieProvider its own doc comment back
jwrosewell c4c584c
Delete the unused ec::get_ec_id helper
jwrosewell 5203c2d
Correct the provider module docs about when evidence arrives
jwrosewell e44ff38
Replace the scattered EC provider key strings with a typed selector
jwrosewell afdb7be
Reserve core's own response surface against provider effects
jwrosewell e90b471
Dispatch partner-path identifier checks by provider code
jwrosewell 3b74d74
Let each provider decide whether it needs the client IP
jwrosewell 29a3a7f
State a real retirement condition for the legacy bare-identifier reader
jwrosewell cb62786
Key identity-graph reads and write-backs by the canonical form
jwrosewell fe23dcc
Egress only an Edge Cookie identifier the provider recognizes
jwrosewell e3ba579
Record the cluster-count gap the identifier envelope opens
jwrosewell 292df1f
Consume the refused Report in the testlight egress tests
jwrosewell a3a5d57
Drop the request-evidence accessors that have no caller
jwrosewell b70ddc0
Collapse the EC provider selector to statelessness and a named provider
jwrosewell 5da52c8
Accumulate provider response headers instead of replacing the origin's
jwrosewell 67c3b0b
State what a provider switch really does to existing identities
jwrosewell 1f62e1a
Name the design documents rather than their paths in doc comments
jwrosewell c7464bc
Restore the line continuations missed in the neighbouring files
jwrosewell ef81e88
Correct the two provider doc comments the earlier pass missed
jwrosewell acb416f
Stop a provider code from panicking when a vendor builds one at run time
jwrosewell 8eb0a9b
Refuse two Edge Cookie providers claiming the same name
jwrosewell f2b1825
Build the internal header list from the Edge Cookie response headers
jwrosewell 52e2692
Resolve the Edge Cookie provider once per request instead of twice
jwrosewell 1c7df60
Load Spin settings from the config store instead of a baked template
jwrosewell 3234092
Stop exposing an inbound Edge Cookie identifier nothing has vouched for
jwrosewell 1df8bf7
Keep the whole request-evidence interface
jwrosewell 8a29373
Documentation and house-style cleanup for the Edge Cookie provider PR
jwrosewell 147a37b
Name the caching reason accurately in the reserved-header rejection
jwrosewell 7dda9dd
Collapse Edge Cookie provider injection to a single seam
jwrosewell c16c99d
Remove the orphaned no-client-IP test fixture
jwrosewell 99b1acd
Add device and geo provider selection with the host-signal Edge Cooki…
jwrosewell 20fee6a
Omit an unset provider selector from the serialized config
jwrosewell 74047c1
Read the Cloudflare visitor region so US state opt-outs are honored
jwrosewell cf8d098
Reunite the request-info builders with their own documentation
jwrosewell de98934
Documentation and house-style cleanup for the device and geo provider PR
jwrosewell d3b4b06
Drop the unused HeaderMap import from the device tests
jwrosewell dcdb493
Give each vendor crate a visible maintainers declaration
jwrosewell 8bb5987
Log the jurisdiction class rather than the value when EC creation is …
jwrosewell 4ef07d5
Add the permission model with the Privacy Taxonomy vocabulary
jwrosewell 68f67d0
Correct the permission-model docs to what the code does
jwrosewell 4c889b0
Give the remaining test fixtures the now-required default country
jwrosewell bb56ceb
Say which geo lookups can reach the requires-signal floor, and prove it
jwrosewell 8adbb06
Scope the permission-gating claim to the provider it is true of
jwrosewell f446393
State that evidence is not rationed and use is
jwrosewell 292352a
Name the IAB Tech Lab Privacy Taxonomy as the source of the vocabulary
jwrosewell 625e816
Build the test provider code through the macro that cannot fail
jwrosewell 0dd10fd
Documentation and house-style cleanup for the permission model PR
jwrosewell 1a73fe6
Complete the mint and fingerprint house-style sweep after rebase
jwrosewell c793b23
Document how the resolved permissions reach filters and the page
jwrosewell e759653
Expose the request permission state on the tsjs core API
jwrosewell 5eb8132
Pass the resolved permission state to integration request filters
jwrosewell e56cf0d
Carry the resolved permission state to the page
jwrosewell af386ca
Document the permission rules tree and retire the default country
jwrosewell 84b97c2
Match the guide's jurisdiction values to the policy parser
jwrosewell 7459346
Document jurisdiction as a per-node inherited attribute
jwrosewell 76fe217
Note the unknown jurisdiction on a failed lookup and the DE codes
jwrosewell 4c0758b
Point the GDPR page at the rules tree for jurisdiction assignment
jwrosewell ec86a6f
Add the permission model guide to the site navigation
jwrosewell 1f9b03f
Restructure the permission policy into a tree of places
jwrosewell c681310
Give the integration environment a real place through Viceroy geoloca…
jwrosewell 6f50829
Give the template-cache harness a real place through Viceroy geolocation
jwrosewell e8f0343
Anchor the harness's geo selector uncomment to the whole line
jwrosewell 4ea7757
Repair the harness's geo selector uncomment
jwrosewell 204393b
Model a realistic demo policy in permissions.yaml
jwrosewell f3f64f8
State that no policy ever ships with Trusted Server
jwrosewell 361d934
Move the sample permissions into config/permissions
jwrosewell 187a66a
Add the permissions inspector, driven by the real code as WebAssembly
jwrosewell 069ec9d
Mark the inspector build script executable
jwrosewell 9909f2e
Limit the inspector workflow token to reading contents
jwrosewell aa0bce0
Point the compiled-in rules doc at config/permissions
jwrosewell 15af0ec
Add the client-set Edge Cookie value path
jwrosewell 92a9594
Tidy the client-cycle spec prose and state the no-store rule precisely
jwrosewell a80c8a2
Hold the resolve endpoint to the reserved response-surface contract
jwrosewell dc60823
Accumulate provider response headers on the resolve endpoint too
jwrosewell 73ea970
Build the resolve test provider code through the macro that cannot fail
jwrosewell 5413ccb
Documentation and house-style cleanup for the client-resolve PR
jwrosewell ead75e2
Align the header-accumulation test with the reserved cache-control su…
jwrosewell 678b322
Reach the resolve endpoint's provider through the single seam
jwrosewell ee07418
Authorize the client resolve endpoint by exact origin, and restart th…
jwrosewell e2a7d49
Compare resolve origins by the RFC 6454 same-origin test
jwrosewell 93e3d69
Make the demo page script check its required permission before posting
jwrosewell 3ff6054
Add the provider documentation set and finish the decomposition
jwrosewell 1f6eea4
Correct the documentation set against the code
jwrosewell aba3399
Remove the test fixture and import the evidence rewrite left behind
jwrosewell 72542e3
Put back the check on what a provider is handed with no client IP
jwrosewell e28ffc8
Run the core library tests natively in CI as well as on WebAssembly
jwrosewell 5494e0f
Documentation and house-style cleanup for the response-hook and docs PR
jwrosewell bcc9a5b
Drop the retired default_country from the configuration guide
jwrosewell 158c129
Correct the configuration guide's permissions file location
jwrosewell 85276bd
Open the integration registry to externally supplied builders
jwrosewell b675189
Keep builders() as the built-in set and derive Debug for the builder
jwrosewell 1ef46fd
Compose the served tsjs script in core from content-addressed parts
jwrosewell e7ac332
Tighten the tsjs part contract on hashes and ids
jwrosewell fd18ab2
Carry a browser module on the integration registration
jwrosewell ca56e2c
Honor disabled modules in js_part and make the JS delivery flags orde…
jwrosewell 4a3cd46
Serve and tag the tsjs script from registry parts
jwrosewell 521fb51
Cover carried modules in the template cache fingerprint
jwrosewell 9b38100
Make the standalone route test discriminate the flag and stop repairi…
jwrosewell 9c141e2
Read a neutral personalized-response marker instead of DataDome's
jwrosewell 8373d72
Open the auction orchestrator to externally supplied providers
jwrosewell ab2121d
Drive deploy validation from the integration and auction builders
jwrosewell 5079bc0
Bind the DataDome filter to the neutral personalized-response marker …
jwrosewell 0e5eec5
Open the bid renderer descriptor while keeping its wire form
jwrosewell 162bf70
Run integration request preparers from the registry
jwrosewell 943c255
Select a module's geo provider through the registration
jwrosewell 41dd39c
Let adapters compose the deployment from externally supplied builders
jwrosewell 95e546c
Prove the integration seam with a probe module outside core
jwrosewell 55f6a1e
Run request preparers once per request on the Axum fallback path
jwrosewell 18f4fc4
Document modules outside core and the geo selector
jwrosewell 5cfe16b
Reserve the bundle buffer before composing the served script
jwrosewell 9750c19
Say where the bundle hash memo can actually hit
jwrosewell 83a5954
Read the renderer bid id without copying the whole payload
jwrosewell 36080d4
Correct where the application is actually built once
jwrosewell 02edd06
Pin the renderer wire form without pinning JSON key order
jwrosewell 2e60640
Repair the seam against the stack it now sits on
jwrosewell 8dba426
Let a module id count as a selected geo provider
jwrosewell b950abf
Carry identity and device on the registration alongside geo
jwrosewell e74783a
Give every registry initializer the new provider fields
jwrosewell a047359
Hold the geo and device selectors to the contract the seam now has
jwrosewell d860f2a
Give the provider seams the async shape and the services a real vendo…
jwrosewell 248690a
Documentation, house-style, and test-compilation fixes for the seam i…
jwrosewell 894b83d
Complete the mint and fingerprint house-style sweep after rebase
jwrosewell cb69c92
Drop the unused EdgeCookieProvider import from the seam-probe test
jwrosewell 1d1fa44
Land the module-supplied Edge Cookie provider on the single seam
jwrosewell b650c1a
Refuse a module device provider whose permissions nothing can enforce
jwrosewell 3399d42
Format the guide pages for the docs Prettier gate and tidy the device…
jwrosewell ef6c042
Name the declared permissions in the device refusal and align the gui…
jwrosewell 5bb867d
Finish the default_country retirement across the seam branches
jwrosewell 5b1f2a4
Point the permission-model guide at the config/permissions sample
jwrosewell ebf0117
Merge branch 'main' into split/1-ec-provider
aram356 02f79c7
Put the permission signal models behind a seam
jwrosewell da4ea02
Evaluate permission signals in order, each amending the last
jwrosewell 5383a36
Name the permission signal models in configuration
jwrosewell 1c369bf
Stop treating an unreadable consent record as a model to choose
jwrosewell 5d11c51
Open the permission signal seam to providers outside core
jwrosewell cce1f45
Ship the four IAB signal schemes as crates the adapters link
jwrosewell 48919be
Document permission signals and the provider order
jwrosewell b752d96
Carry the terms the data is available under
jwrosewell 0a54cf3
Merge the permission signal work from split/3
jwrosewell 6534bbd
Merge the permission signal work from split/4
jwrosewell 90f5c9f
Merge the permission signal work from split/5
jwrosewell c43ebef
Keep the provider rationale on the docs page
jwrosewell 2eb8712
Say what each permission signal assertion checks
jwrosewell 8c36bba
Merge the follow-up commits from split/3
jwrosewell 13c27d7
Merge the follow-up commits from split/4
jwrosewell f57ad1d
Merge the follow-up commits from split/5
jwrosewell af2e2f5
Merge main into the Edge Cookie provider seam
jwrosewell cb28ad3
Build the Axum test state from the compiled auction plan
jwrosewell 0832f00
Merge main into device and geo selection through split/1
jwrosewell a75571d
Resolve the host-signals passphrase from the secret store
jwrosewell 2ea1c69
Merge main into the permission model through split/2
jwrosewell 3c9f4b0
Correct the Windows notes on CI runners and the CLI
jwrosewell 69e7d57
Merge main into client resolve through split/3
jwrosewell d484805
Merge main into the response hook docs through split/4
jwrosewell 3d04183
Say the host-signal provider also hashes the client IP
jwrosewell 8b7cd94
Stop naming the retired default_country in the geo guide
jwrosewell 0980b73
Describe rejected provider effects accurately
jwrosewell 0e7f7eb
Key the remaining identity-graph paths canonically
jwrosewell fb1bc28
Correct comment claims and test a stale preload read
jwrosewell be0ed2d
Acknowledge one jurisdiction in the adapter startup tests
jwrosewell cb6f717
Keep provider headers only from candidates that generation commits
jwrosewell 1b88e42
Correct the admin lookup forms and the bare reader row note
jwrosewell 37eadae
Merge the Edge Cookie review follow-ups from split/1
jwrosewell e3bb4b9
Merge the Edge Cookie review follow-ups through split/2
jwrosewell 2c34be4
Merge the Edge Cookie review follow-ups through split/3
jwrosewell 5406acf
Merge the Edge Cookie review follow-ups through split/4
jwrosewell 88a7482
Run the permission signal providers in the permissions inspector
jwrosewell b7dd13f
Merge the permissions inspector fix from split/3
jwrosewell 65f7005
Merge the permissions inspector fix from split/4
jwrosewell a2a1dfc
Name the permissions sample for what it is
jwrosewell e17090b
Merge the permissions sample rename from split/3
jwrosewell 672cc60
Merge the permissions sample rename from split/4, and follow it in the
jwrosewell b5442bb
Merge main and the permission work into the integration seam through …
jwrosewell 7ea7682
Hand the Axum startup check the Edge Cookie provider a module supplies
jwrosewell 60bf324
Name the client-fixed demo Edge Cookie provider client_fixed
jwrosewell f5b9c04
Select permission signal providers with provider, named in snake_case
jwrosewell 9adf988
Switch integrations on by naming them in [integration] provider
jwrosewell b231b55
Write the integration list from ts audit and the test fixtures
jwrosewell 6e61e0b
Name the host-signal Edge Cookie provider host_signals
jwrosewell 14a3ffb
Give each identity provider its own table under [ec]
jwrosewell 6943587
Select demand sources and the ad server like every other provider
jwrosewell 07dd08b
Document how an integration is switched on
jwrosewell 973a81a
Say that an integration runs rather than that it is enabled
jwrosewell 18e6946
Write down the one rule every provider configuration follows
jwrosewell d9e6e1c
Merge the integration selector into the demand and ad server seam
jwrosewell 194874e
Select the APS renderer test's source in the demand table
jwrosewell 396bc80
Select the adapters' test demand sources in the demand table
jwrosewell 558bde5
Merge the per-provider [ec] tables from split/1
jwrosewell 5c9f27e
Merge the per-provider [ec] tables and the host_signals name from spl…
jwrosewell ea716f5
Merge the per-provider [ec] tables and the permission signal rename f…
jwrosewell 6004c99
Merge the four provider renames from split/4, and follow them in the …
jwrosewell bddec03
Merge the Edge Cookie provider tables and the docs from split/5
jwrosewell d11895b
Join four clauses in the Edge Cookie guides with words rather than marks
jwrosewell 27e05fa
Hand a demand implementation only the parts of a request it owns
jwrosewell 29d1fde
Refuse an integration setting no integration knows, and say only what…
jwrosewell 6a7cbb9
Merge the Edge Cookie guide wording fix from split/5
jwrosewell e40b80e
Name the Edge Cookie block the Axum test fixture writes
jwrosewell f50c32e
Count the asset proxy entries the audit writes rather than the templa…
jwrosewell 59a2eb2
Drive the CLI overlay tests from the demand table the fixture already…
jwrosewell ede61f6
Write the Fastly adapter's test fixtures on the demand table
jwrosewell File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,26 @@ | ||
| name: "Permissions Inspector" | ||
|
|
||
| on: | ||
| push: | ||
| branches: [main] | ||
| pull_request: | ||
|
|
||
| permissions: | ||
| contents: read | ||
|
|
||
| jobs: | ||
| build-inspector-wasm: | ||
| name: build inspector wasm | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Retrieve Rust version | ||
| id: rust-version | ||
| run: echo "rust-version=$(grep -oP 'channel = "\K[^"]+' rust-toolchain.toml)" >> "$GITHUB_OUTPUT" | ||
| - name: Set up Rust toolchain | ||
| uses: actions-rust-lang/setup-rust-toolchain@v1 | ||
| with: | ||
| toolchain: ${{ steps.rust-version.outputs.rust-version }} | ||
| target: wasm32-unknown-unknown | ||
| - name: Build the inspector engine | ||
| run: ./scripts/build-inspector-wasm.sh | ||
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
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.