58 lines
1.2 KiB
Markdown
58 lines
1.2 KiB
Markdown
# Universal Cookie Consent — Jurisdiction Engine v1
|
|
|
|
Stage 3.2 introduces a pure, deterministic Jurisdiction Engine.
|
|
|
|
## Responsibilities
|
|
|
|
The engine resolves a jurisdiction context and maps it to a policy family.
|
|
It deliberately does **not**:
|
|
|
|
- read IP addresses;
|
|
- call geolocation APIs;
|
|
- access browser location;
|
|
- inspect GPC;
|
|
- enforce consent;
|
|
- modify the Core;
|
|
- integrate GTM;
|
|
- provide legal advice.
|
|
|
|
## Modes
|
|
|
|
- `fixed`: the site explicitly selects a jurisdiction.
|
|
- `auto`: the site supports multiple jurisdictions and supplies available signals.
|
|
- `global`: the site deliberately selects the global baseline for everyone.
|
|
|
|
## Resolution priority
|
|
|
|
`site-config` > `server` > `application` > `browser` > `fallback`
|
|
|
|
The resolver is deterministic and uses only supplied signals.
|
|
|
|
## Initial catalog
|
|
|
|
- `global`
|
|
- `us`
|
|
- `us-ma`
|
|
- `us-ca`
|
|
- `eu`
|
|
|
|
The policy catalog is intentionally a structural placeholder. Detailed legal requirements will be researched and added in a later policy stage rather than being guessed or embedded in the resolver.
|
|
|
|
## Tests
|
|
|
|
Node regression:
|
|
|
|
```bash
|
|
node tests/jurisdiction-test.mjs
|
|
```
|
|
|
|
Browser Test Lab:
|
|
|
|
```bash
|
|
python -m http.server 8000
|
|
```
|
|
|
|
Then open:
|
|
|
|
`http://localhost:8000/tests/jurisdiction-test.html`
|