Skip to content
Strife Docs

Reference Field Reference

fields.references()

Multi-template document references, sized and scoped by allowed template names. Not localizable.

Multi-template document references. Maps to editor { name: 'str-references', type: 'references' }: a sized, ordered list scoped by allowed template names. Use it for every reference to another document; fields.reference() is deprecated.

Stored as an array of document ids (string[]), in the list's order. That is the write shape Infer<> gives you:

JSON
{
  "related": ["6f1c2e9a-4b7d-4f3e-9a21-8c5d7b3e0f12", "0b9e4d7c-2a1f-4c8e-b5d3-7e6f1a2c9d48"]
}

At read time the content index replaces each id with the target document, so strife typegen emits Target[].

Example

TypeScript
fields.references({
  label: 'Related content',
  allow: ['article', 'video-post'],
  size: 5,
})

Options

OptionTypeRequiredDescription
label
string
Yes
Label shown to editors in Strife Studio.
allow
string | readonly string[]
Yes
The defineType name(s) this field may reference. Emitted as wire options.availableTypes (normalized template names) and drives the generated read type. Pass several to allow a union.
description
string
No
Not shown in Studio's editor panel.
searchable
boolean
No
Stored on the template; nothing uses it today.
filterable
boolean
No
Stored on the template; nothing uses it today.
protected
boolean
No
Stops the field from being edited or removed in Studio's template designer. No effect in the editor panel.
propertyName
string
No
Override the stored property name.
size
number | null
No
Maximum number of references.
hint
string | null
No
Display hint shown above the references list in the editor.

No localizable option.

Output type

Write shape: string[], the document ids in order. Generated read shape (via strife typegen): Target[].

See also