Skip to content

[finding] validation-rules.mdx promises constraints for "each field type" and covers 44 of 49 — and it is the same page that carries the location and currency shape errors #10587

Description

@os-elon

Found by the docs audit of the first-run path (#10563).

What is wrong

content/docs/data-modeling/validation-rules.mdx is described in its own
frontmatter as

"Default validation behavior, required properties, and constraints for each
ObjectStack field type"

It has ### sections for 44 of the 49 members of the FieldType enum
(packages/spec/src/data/field.zod.ts:39-101). Missing:

  • secret — reversible encrypted-at-rest credential (ADR-0100). Its constraints
    are the least guessable of the five: fail-closed, writes throw with no registered
    ICryptoProvider, ciphertext handle in sys_secret, masked on read.
  • user — person picker specialized to sys_user; multiple: true ⇒ JSON array.
  • composite — single embedded sub-object.
  • repeater — repeating embedded sub-object array.
  • record — name-keyed map of embedded sub-objects (ADR-0007).

The sibling gallery page has all 49 (content/docs/data-modeling/field-types.mdx,
verified: 49 ### headings against a 49-member enum), so the drift is one-sided —
validation-rules.mdx stopped tracking new field types while field-types.mdx
kept up.

Wider point for triage

This page carries three of the defects found in the whole content/docs/** card-1
sweep — this one plus the location stored-value error (#10584) and the currency
"Stored as { value, currency } pair" error — while the page it duplicates,
field-types.mdx, carries one. The two pages document overlapping ground (per-type
property tables + constraints) and are adjacent in data-modeling/meta.json.
Whether the right fix is to complete this page or to fold it into field-types.mdx
is a maintainer call, not an audit call, but patching the five gaps without deciding
that leaves the duplication that produced them.

Back-link: #10563

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions