feat(tmp): standardize publisher targeting KV mapping - #6283
Conversation
There was a problem hiding this comment.
Ladon verdict: Escalate to human review
Escalate — gated paths touched and required review not yet satisfied.
This PR modifies files under two hard, path-based approval gates (.github/workflows/** and static/schemas/source/**) while review_decision is REVIEW_REQUIRED (not APPROVED). Per decision rule row 2, the gate is not satisfied and the outcome must be escalate regardless of how clean the diff is. Human/CODEOWNERS approval is required before merge.
The reviewer surfaced no critical, high, or medium defects: the two hop-specific experimental schemas are disjoint via not.anyOf + additionalProperties: false (a known walker limitation, correctly not reported), schema↔docs coherence checks out, the new publisher-targeting-kv mapping is prototype-safe, and two changesets accompany the wire-surface change. Only one low finding (web.mdx wording) exists, which is non-blocking.
Additionally, static/schemas/source/trusted-match/provider-context-match-response.json and publisher-targeting-kv-config.json are new files (added) matching high-risk globs — inherently low risk as scaffolding, not an independent escalation trigger. The escalation here rests solely on the unsatisfied gated-paths gate.
Escalation reasons
- Touches
static/schemas/source/**(protocol source of truth) and.github/workflows/build-check.yml— both under hard approval gates — whilereview_decisionisREVIEW_REQUIRED. Human/CODEOWNERS review required.
Why human review
- Modifies gated paths (static/schemas/source/**, .github/workflows/build-check.yml) while review_decision is REVIEW_REQUIRED — human/CODEOWNERS approval required before merge.
- This PR touches a path under a hard, non-overridable approval gate (.github/workflows/build-check.yml (modified) matches
.github/workflows/**; static/schemas/source/index.json (modified) matchesstatic/schemas/source/**; static/schemas/source/trusted-match/context-match-response.json (modified) matchesstatic/schemas/source/**; static/schemas/source/trusted-match/provider-context-match-response.json (added) matchesstatic/schemas/source/**; static/schemas/source/trusted-match/provider-registration.json (modified) matchesstatic/schemas/source/**; static/schemas/source/trusted-match/publisher-targeting-kv-config.json (added) matchesstatic/schemas/source/**) and the current GitHub review decision is 'REVIEW_REQUIRED', not APPROVED. This is a hard gate enforced in code — Ladon cannot auto-approve until a human/CODEOWNERS approval is recorded, regardless of how clean the diff is.
Closes #6282.
Stacked on #6281. The second commit (
2803f63f11) is the publisher-mapping follow-up; the first commit is exactly #6281 and will disappear from this PR when that dependency merges. This PR targetsmainnow so the repository's full base-filtered CI runs against the complete stack.What changed
/schemas/trusted-match/publisher-targeting-kv-config.jsonwith a publisher-ownedtargeting_kv_mappingfrom(provider_id, provider-local key)to a local ad-server destination.provider_iddescriptions for both Context and Identity attribution roles.Why
#6281 standardizes provider attribution on the wire. This follow-up standardizes the publisher-side configuration needed to translate attributed provider vocabulary into publisher-owned ad-server keys without router naming, fallback, or cross-provider collisions.
Validation
npm run test:schemas— 690 schemas plus 4 deprecation testsnpm run test:examples— 79 examples plus 9 focused mapping testsnpm run test:tmp-context-merge— 9/9The pre-commit full server suite exposed five unrelated
replace-subscriptionmock-order failures; the exact file passed 23/23 in isolation. The stacked PR's GitHub Build Check is the authoritative clean-suite run.