Skip to content

Cross-link/relocate initial-fetch redirect policy; define it for brand.json too #6906

Description

@LukasGoTom

Human: it's a bit confusing. Are 3XX redirects allowed or not. LLMs say no, but actually yes.

Addie:

Confirmed and it's a direct contradiction, not just a locality gap:

adagents. json Tech Spec (the primary doc): "Validators reject any HTTP redirect... The URL must resolve directly to the JSON file with a 200 response — no 301, 302, or other redirect chain. "
Managed Network Deployment doc: "Same-registrable-domain redirects MUST be followed on the /. well-known/adagents. json fetch... Capping the chain at 3 hops. "
These are opposite normative statements about the same fetch. One says reject all redirects, the other says MUST follow same-eTLD+1 redirects. That's not a "hard to find" problem — it's a real spec conflict, and no implementer reading both docs can satisfy both.

Context

The redirect policy for the initial fetch of a well-known file (before any authoritative_location variant is known) already exists for adagents.json, in the Managed Network Deployment doc:

"Same-registrable-domain redirects MUST be followed on the /.well-known/adagents.json fetch — apex ↔ www, and any redirect that stays on the same registrable domain (eTLD+1) — re-validating the SSRF controls on every hop, refusing any redirect to a non-HTTPS scheme, and capping the chain at 3 hops. Refusing these silently reports a correctly-configured publisher as unauthorized."

This matches the leashed-redirect approach implementers (e.g. ssrfSafeFetchAdAgents in adcp-client) already use: ≤3 hops, same registrable domain, HTTPS-only, per-hop SSRF revalidation.

Problem

  1. This rule lives only in the "Managed Network Deployment" doc, not in the primary adagents.json Tech Spec fetch-reference steps. An implementer reading the adagents.json spec top-to-bottom will not find it and may reasonably conclude (as we did) that initial-fetch redirects are unaddressed — leading verifiers to refuse redirects at hop zero and fail-open on the authorized_operators check for any publisher doing an ordinary apex↔www redirect.
  2. The equivalent rule does not appear to exist for brand.json's initial /.well-known/brand.json fetch at all.

Ask

  • Cross-link (or relocate) the same-registrable-domain redirect rule from Managed Network Deployment into the adagents.json Tech Spec's fetch-reference steps, so it's visible where implementers actually look.
  • State explicitly whether the same rule (≤3 hops, same registrable domain, HTTPS-only, per-hop SSRF revalidation) applies to the initial brand.json fetch, and if so, add it to the brand.json spec.

Affected docs: governance/property/adagents, governance/property/managed-networks, brand-protocol/brand-json.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    brandIssue concerns the brand protocol domainclaude-triagedIssue has been triaged by the Claude Code triage routine. Remove to re-triage.governanceIssue concerns the governance protocol domainneeds-wg-reviewBlocked on a working-group decision — surface in WG meeting agendas

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions