Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .changeset/25681-skills-repeater-untyped.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
'@objectstack/skills': patch
---

docs(skills): object-level `composite` / `repeater` are untyped JSON — a typed list is a child object

Clause-②: no
Metadata-protocol: none

The `objectstack-data` field-types table said a `composite` carries "declared sub-fields". An object field has no member that declares them: `fields`, `subFields` and `columns` are refused on the field. The two rows now say the types are untyped JSON and that a list needing typed columns is a child object with a `master_detail` field (`inlineEdit: 'grid'` edits it inline on the parent's form).

What to do: nothing. No key, value or behaviour changes.
4 changes: 2 additions & 2 deletions skills/objectstack-data/rules/field-types.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,8 +113,8 @@ Stored as JSON on the parent row — no separate table / FK:

| Type | When to Use |
|:-----|:------------|
| `composite` | Single embedded sub-object with declared sub-fields |
| `repeater` | Repeating embedded sub-object **array** |
| `composite` | Single embedded JSON object, **untyped** — a field declares no sub-fields (`fields` / `subFields` are refused) |
| `repeater` | Embedded JSON **array**, **untyped** — no sub-fields or `columns`; a typed list is a child object (`master_detail`, `inlineEdit: 'grid'`) |
| `record` | Name-keyed **map** of embedded sub-objects (insertion order = display order; ADR-0007) |

## Calculated
Expand Down
Loading