Skip to content

feat(schema): add portable attestations and audience evidence - #6218

Draft
bokelley wants to merge 1 commit into
mainfrom
5934-choose-option-a-or-b
Draft

feat(schema): add portable attestations and audience evidence#6218
bokelley wants to merge 1 commit into
mainfrom
5934-choose-option-a-or-b

Conversation

@bokelley

@bokelley bokelley commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add a portable, reference-first attestation primitive with evaluator-owned issuer, resolver, verifier, and capability policy
  • consume attestations for signal-activation governance while ensuring runtime evidence can never block deactivation
  • add immutable audience evidence, buyer admissibility requirements, exact discovery-to-commit pins, and package readback
  • document how portable attestations complement the existing creative AI provenance and C2PA workflow

Why

HTTP message signatures prove who sent a request, not whether an application claim is true. These schemas let independent credentials travel between agents while the receiving seller or governance agent remains verifier of record. Audience evidence also needs to survive product selection without becoming targeting semantics or drifting before commitment.

Security and audit

  • reject off-policy issuers, resolvers, verifiers, and proof formats before network access
  • resolve through evaluator-configured fixed POST endpoints with redirects disabled and bounded response parsing
  • tie signature verification to configured issuer key authority
  • digest-bind typed subjects, credential bytes, audience evidence content, and consuming actions
  • preserve ordered reference/evaluation pairs and complete findings in governance audit records
  • keep deactivation available without signal-quality attestations

Review

Protocol, security, and documentation specialists reviewed the change. Their blocker findings were resolved, including typed-subject matching, issuer-key authority, exact evidence binding and pinning, independent issuer policy, capability dependencies, audit completeness, and the deactivation safety boundary.

Validation

  • npm run test:attestation-vectors — 21/21
  • npm run test:governance-runtime-attestations — 17/17
  • npm run test:audience-evidence — 20/20
  • npm run test:schemas — 680 schemas and all 20 validation groups
  • schema projection, JSON Schema, docs navigation/audit, discriminator, UTF-8, compliance packaging, OpenAPI, and typecheck suites pass
  • npm test — 5,151 passed and 30 skipped; the remaining 9 C2PA-only tests are blocked locally because the installed @contentauth/c2pa-node binary is not a valid Mach-O slice

Closes #4529
Closes #5418
Closes #6126

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant