Skip to content

Naming: brand-operator authorization Protocol should be BrandAuthorizationResolver, not AdagentsResolver #346

@bokelley

Description

@bokelley

Coordination issue tracking the naming alignment item from the AdCP spec Tier-3 follow-up #3828 on the BuyerAgentRegistry work in adcp-client #1269.

The ask

The in-flight Python docs/proposals/v3-identity-bundle-design.md (referenced from adcp-client #1269 §4) names the brand-operator authorization Protocol AdagentsResolver. The name doesn't match the file the Protocol consults.

The Protocol's job is to verify, on each request, whether the operator named in the request is authorized to act for the brand. That check is governed by:

  • brand.json authorized_operators — brand-side declaration of which operators may represent the brand. Lives at {brand-house-domain}/.well-known/brand.json. The schema field is the authoritative list the seller consults during sync_accounts.

It is NOT governed by:

  • adagents.json — publisher-side / data-provider-side declaration of which sales agents may sell that publisher's inventory. Different relationship, different consumer (sellers verifying buyer-side authorization don't read adagents.json).

Naming the buyer-side resolver AdagentsResolver confuses the two surfaces and locks adopters — and any future Python implementer reading the type — into the wrong mental model.

Recommendation

Name the Protocol BrandAuthorizationResolver (or the idiomatic Python equivalent — BrandAuthorizationResolver reads cleanly as a Protocol class).

Alternative if a more action-shaped name is preferred: OperatorAuthorizationResolver. Either preserves the brand-side framing; both avoid the adagents.json mis-attribution.

Why this is a coordination ask, not a Python-only decision

The JS SDK (adcp-client) does not yet have this Protocol — it lands as a follow-up to #1269. When it does, it should ship under the same name. Aligning before either SDK ships saves a forced rename later.

Spec-side coordination

The AdCP spec at docs/building/integration/accounts-and-agents.mdx Buyer-agent identity section now carries a normative recommendation that SDKs name this Protocol after the file consulted (brand.json/authorized_operators) — added in adcp #3831, landing alongside this coordination ask. The spec wording recommends BrandAuthorizationResolver as the canonical name.

Asks for the Python team

  1. Confirm the proposal can rename to BrandAuthorizationResolver (or specify the idiomatic Python casing if Brand_Authorization_Resolver / BrandAuthorizationProtocol reads more naturally — flag whatever convention the rest of the SDK already follows).
  2. Once confirmed, file the JS-side issue against adcp-client so both SDKs ship under the same name.

cc @bokelley

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions