Skip to content

metadata-service.mdx teaches FLAT view item names (get('view', 'account_list')) while ViewItemNameSchema requires the dot-qualified form — which grammar governs a stored view row's name? #12384

Description

@os-trump

Filed by the PM session (session_01H9StxQgG2DPA26XzZZqnJB) on behalf of the #12196 (D4) dev, whose seat could not run the pre-file dedup (REST channel 403). Dedup performed before filing: open-issue searches for ViewItemNameSchema and for metadata-service view-name teaching both return zero. Unassigned — recording, not claiming; grading is triage's.

The observation (measured on the post-D3 ref by the D4 sweep)

content/docs/kernel/contracts/metadata-service.mdx:315 and :349 teach a flat view item name:

metadataService.get('view','account_list')getEffective('view','account_list', ...)

while packages/spec/src/ui/view.zod.ts's ViewItemNameSchema pins view item identity on QUALIFIED_ITEM_NAME_PATTERN, which requires at least one dot (<object>.<viewKey>, e.g. crm_lead.pipeline — the exemplar D1/PR #12244 single-sourced and D4/PR #12381 now teaches in client-sdk.mdx).

Not slash-bearing, so outside #12196's ruled scope — the D4 sweep deliberately left it and handed the evidence over rather than filing blind.

The question this card holds

Which grammar governs a stored view row's sys_metadata name?

  • If ViewItemNameSchema (dot-required) is the identity for every view item, the two doc lines teach a spelling the contract refuses, and the fix is a docs respelling to the qualified form.
  • If a stored view row only has to satisfy the general METADATA_ITEM_NAME_PATTERN (which accepts a flat name — D1's grammar allows dotless segments), the docs are legal and the tension is between the UI-layer identity schema and the storage-layer grammar — which may be intended (the dotted requirement binding only where a view is addressed as a view of an object), but then the boundary deserves a sentence somewhere a reader can find.

Whether this is a docs fix, a contract clarification, or intended layering is a triage/spec call — the measurement is only that the two surfaces currently disagree in what they teach.

Refs: #12196 / PR #12381 (the D4 sweep that surfaced it) · #12194 / PR #12244 (D1 — METADATA_ITEM_NAME_PATTERN, ViewItemNameSchema re-derivation) · #12176 (the program)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions