Skip to content

4.0: drop required: ["authentication"] from reporting-webhook and artifact_webhook #4288

@bokelley

Description

@bokelley

Context

In AdCP 3.x, authentication is required on:

  • static/schemas/source/core/reporting-webhook.json
  • artifact_webhook block of static/schemas/source/media-buy/create-media-buy-request.json

This forces every receiver into the deprecated Bearer / HMAC-SHA256 path even though the canonical signing profile is RFC 9421 (seller signs with the key published at its brand.json agents[].jwks_uri; buyer verifies against the seller's JWKS).

The schema descriptions already advertise this: "This field is required in AdCP 3.x; the requirement is removed in AdCP 4.0 when the default RFC 9421 path becomes the only path" (landed in #4271).

Scope for 4.0

  1. Drop "authentication" from required[] in reporting-webhook.json.
  2. Drop "authentication" from the artifact_webhook.required[] block in create-media-buy-request.json.
  3. Confirm the security doc's webhook-callbacks section covers signing-mode selection for both surfaces (it currently focuses on push_notification_config); extend if not.
  4. Decide whether to remove the authentication block entirely or keep it as an optional opt-in for legacy receivers. Recommendation: keep optional in 4.0 with a 4.x removal target — gives sellers a one-major escape hatch.

Why this isn't 3.x

Per playbook, removing a required[] constraint is a signing-profile change and never patch-eligible. Description-only updates landed in #4271 (patch, 3.0.x). This issue tracks the structural change for the next major.

Refs

Metadata

Metadata

Assignees

No one assigned

    Labels

    claude-triagedIssue has been triaged by the Claude Code triage routine. Remove to re-triage.needs-wg-reviewBlocked on a working-group decision — surface in WG meeting agendasschemaJSON Schema source-of-truth: definitions, codegen artifacts, validation, hygiene

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions