You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Establish a technical permission model and gate Edge Cookie creation on it #779
As a deployer, I want Edge Cookie creation gated by technical permissions that are established outside the core, so that the legal policy is mine to set and is not baked into Trusted Server.
Description
Replace the country-based allows_ec_creation check with a technical permission model that separates legal policy from the core. Each module declares the permissions its data use requires, named by the IAB Tech Lab Privacy Taxonomy's Data Uses and used only as technical identifiers. No policy framework is implemented in the core. The core runs a module only when every required permission is held. Whether a permission is held is established from the country the geo module returns (keyed by ISO 3166-1) and from request signals. When no country is known, or the country and region match no rule, the deployer's configured default country applies. The model is source-agnostic, so a held permission can equally come from an interaction with the user that establishes a preference, or from data provided by another source. The EC Set-Cookie operation always requires store-on-device (purpose 1). A module that stores nothing requires nothing, so a default deployment needs no policy interaction at all.
Done when
A technical permission model resolves held permissions, keyed by country or region. An unmatched request (no country, or no rule for the country and region) falls to the required top node of the policy's rules: tree, and a failed lookup floors instead, so no failure reaches a permissive default.
A module's required permissions are honored, and it runs only when all are held.
The built-in HMAC module declares necessary.operations.storage, and a module that stores nothing requires nothing.
consent::allows_ec_creation is removed, and its country-based gate tests are replaced by permission-model tests.
The permission vocabulary is the IAB Tech Lab Privacy Taxonomy's Data Uses, used only as identifiers, with the TCF purposes mapped onto them inside the TCF module and no policy framework in the core.
Update. The permission model (#1045) stands, and the module context (fork pull request 3, jwrosewell#3) makes it structural for every module, because a value whose use needs a permission, the location, the device signals or the Edge Cookie identifier, is passed only to a module that declares that permission through required_permissions and is granted it on the request. /_ts/permissions (fork pull request 4, jwrosewell#4) shows anyone the permissions resolved for the request that asks, the signals that produced them and the terms the data is held under.
Activity
Address review: close identity/privacy gaps in the provider and permi…
Address second review: close permission-algebra, egress, durability, …
jwrosewell commentedon Oct 12, 2026
Update. The permission model (#1045) stands, and the module context (fork pull request 3, jwrosewell#3) makes it structural for every module, because a value whose use needs a permission, the location, the device signals or the Edge Cookie identifier, is passed only to a module that declares that permission through
required_permissionsand is granted it on the request./_ts/permissions(fork pull request 4, jwrosewell#4) shows anyone the permissions resolved for the request that asks, the signals that produced them and the terms the data is held under.