Skip to content

brand-viewer.html: surface trust tier + mutual-assertion state for 5th variant #4526

@bokelley

Description

@bokelley

Follow-up from PR #4505 (3.1 distributed brand.json).

What ships in 3.1

The trust model now resolves at two layers — identity (TLS-only) and relationships (mutual-assertion-gated). A leaf can be in any of these states:

  • Mutual assertion — leaf says `house_domain: A`, A's `brand_refs[]` includes it. Full trust.
  • Leaf-only — leaf claims A, A is silent. Identity trusted on TLS, relationship unverified.
  • House-only — A claims the leaf, leaf has no `house_domain`. Treat leaf as standalone.
  • Standalone — no `house_domain` at all.

See `brand.json` § Mutual-assertion trust model.

What's missing in the viewer

`server/public/brand-viewer.html` (today 135KB) renders brand.json contents but doesn't yet:

  • Show the trust tier for each `brand_refs[]` entry. Render a badge: mutual / leaf-only / house-only / standalone.
  • Show the `effective_at` date on each portfolio entry and surface how stale the edge is per the consumer's chosen TTL.
  • Fetch and display the leaf's canonical document for Brand Canonical Documents — the viewer should be able to follow a `brand_refs[]` pointer and render the resolved brand.
  • Surface `managed_by` as the directory field it is — group by `managed_by` in a separate aggregation view, distinct from the per-house portfolio view.
  • Visualize the strictest-of compliance resolution. When a leaf carries its own `data_subject_contestation` and the house also publishes one, show both side-by-side with the resolved (strictest) value.
  • Show the typed trademark fields (`status`, `license_type`, `licensor_domain`, `countries`, `nice_classes`) where they're now schema-typed.

Scope

Single UI surface (`server/public/brand-viewer.html`). Likely needs:

  • Trust-tier badge component
  • Pointer-following fetch logic (with the 3-hop redirect cap and the requirement to follow House Redirects on the house side before comparing `brand_refs[]` — see Conformance)
  • Aggregation view for `managed_by`
  • Side-by-side compliance resolution view

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    brandIssue concerns the brand protocol domainenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions