feat(content-standards): deprecate inline asset credentials - #6225
feat(content-standards): deprecate inline asset credentials#6225bokelley wants to merge 2 commits into
Conversation
There was a problem hiding this comment.
Ladon verdict: Escalate to human review
Escalate — gated schema paths require human/CODEOWNERS approval.
This PR modifies static/schemas/source/** (the published protocol surface), which places it under the deterministic hard approval gate (gated_paths: true). The current review_decision is REVIEW_REQUIRED, not APPROVED, so per decision-table row 2 the outcome must be escalate rather than approve.
Reviewer found no code-correctness, spec-drift, changeset, or oneOf-discriminator issues: the deprecation of inline service_account.credentials is handled via a deprecated: true annotation while keeping the field schema-valid for the 3.x compatibility window, docs/release-notes/migration guide/changeset (minor) are coherent with the schema, the oneOf discriminator is intact, and no released dist/** artifacts are touched. The change reads as a non-breaking deprecation/clarification rather than a breaking-class change.
No blocking findings exist. The escalation is purely to satisfy the schema-source approval gate — a human/CODEOWNERS approval on the gated files (static/schemas/source/content-standards/artifact.json, static/schemas/source/trusted-match/context-match-request.json) lifts it.
Escalation reasons
- Modifies gated schema-source files under
static/schemas/source/**whilereview_decisionisREVIEW_REQUIRED— human/CODEOWNERS approval required before merge.
Why human review
- Modifies gated schema-source files (static/schemas/source/content-standards/artifact.json, static/schemas/source/trusted-match/context-match-request.json) under a hard approval gate while review_decision is REVIEW_REQUIRED — human/CODEOWNERS approval required.
- This PR touches a path under a hard, non-overridable approval gate (static/schemas/source/content-standards/artifact.json (modified) matches
static/schemas/source/**; static/schemas/source/trusted-match/context-match-request.json (modified) 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.
Summary
service_account.credentialswhile keeping legacy 3.x payloads schema-validWhy
Standing cloud credentials embedded in artifact responses can flow through agent transport, logs, traces, and model context. AdCP 3.2 needs to stop new producers from emitting that pattern without breaking existing 3.x consumers before the 4.0 removal window.
This change deliberately does not add
authorized_principal: payload metadata is not proof of authorization. The broader extensible and identity-bound access-method design is tracked in #6224, while removal of the deprecated field remains tracked in #5699.Developer impact
service_accountremains available withoutcredentialsfor pre-authorized workload identity.Validation
npm run test:schemasnode --test tests/asset-access-deprecation.test.cjsnpm run test:json-schema -- --file docs/reference/migration/asset-access.mdxnpm run test:docs-navnode scripts/check-changeset-protocol-scope.cjs origin/mainnpx --yes @changesets/cli@^2.31.0 status --since=origin/mainCloses #5698.