Skip to content

Entity Types

An entity type defines a category of objects in your database. Create one for each kind of thing you need to store — for example project, invoice, or product. The fields each entity carries are defined by property definitions, which are child entities of the entity type.

All configuration happens through the Entu UI — no code or config files.

Creating an Entity Type

  1. Open Configuration in the sidebar
  2. Add a new entity of type Entity
  3. Fill in the parameters below

Entity Type Parameters

Identity

ParamDescription
nameInternal identifier (e.g. project, invoice). Used in API queries — lowercase, no spaces by convention.
labelDisplay name shown in the UI (e.g. Project, Invoice).
descriptionExplanation of what this entity type represents. Shown on the edit view of entities of this type.

Behaviour

ParamDescription
add_fromControls where entities of this type can be created. Reference a menu entity to show this type in the "New …" button when that menu is active. Reference an entity type to allow adding this type as a child on any instance of that type. Reference a specific entity to allow creating this type only as a child of that specific entity. Without this, the "Add" button will never offer this type.
default_parentWhen a new entity of this type is created, the entity set here is automatically added as an additional _parent. Useful for routing new records into a fixed folder regardless of where the user clicked "Add".
pluginAttaches a plugin to run on entities of this type. See Plugins.

WARNING

If add_from is not set, users will have no way to create entities of this type through the UI. Reference at least one menu, entity type, or specific entity.

To control who can see entities of this type, see Visibility below.

Adding Property Definitions

On the entity type's page, use the "Add" button to create child entities of type Property. Create one for each field entities of that type should have.

Property Definition Parameters

Identity

ParamDescription
nameInternal identifier (e.g. status, due_date). Used in API queries — must contain only letters, digits, and underscores (A–Z, a–z, 0–9, _). Must be unique within the entity type.
typeData type — determines the UI input and how values are stored. See Property Types below.
labelDisplay name shown above the field in both the edit form and entity page.
label_pluralPlural label shown when the field has multiple values (e.g. Tags instead of Tag).
descriptionHelp text shown in an info popover next to the field label.

Display

ParamDescription
groupGroups related fields into named sections; the value is used as the section heading. Applies in both the edit form and entity page.
ordinalNumeric sort order within the group. Lower numbers appear first.
hiddenHides the field from the edit form but still shows its value on the entity page. Use for formula-driven or integration-managed fields.
readonlyHidden from the edit form; shown on the entity page as a read-only value.
tableIncludes this property as a column in the child list table view.

Behaviour

ParamDescription
mandatoryMarks the field as required — always shown with a red indicator when empty.
defaultPre-filled value when creating a new entity. Supports relative offsets for date/datetime (e.g. +1d, -7d, +1m). See Property Defaults below.
listAllows multiple values. Extra inputs appear automatically as the user fills them in.
multilingualStores a separate value per language. A language selector appears next to each input.
pluginAttaches a plugin at the field level for custom UI or behaviour.

Computation

ParamDescription
formulaA server-side expression computed on every save; the result replaces the field's stored value. See Formulas.
searchIndexes values for full-text search. Choose carefully — indexing too many fields slows down search across the entire account.

Type options

ParamDescription
markdownEnables markdown rendering for text type fields.
decimalsNumber of decimal places for number type fields.
setDefines a fixed list of allowed values — renders a dropdown instead of free text. Values added here are presented as options in the entity edit view. Use with string type.
reference_queryFilters which entities are selectable in a reference field (e.g. _type.string=person).

TIP

Enable search on properties users frequently filter by (e.g. name, status, reference code).

Property Types

Available types: string, text, number, boolean, date, datetime, file, reference, counter.

See Properties → Property Types for descriptions of each type and their UI behaviour.

Visibility

Entity Type Visibility

The _sharing parameter on an entity type controls which property values are projected into domain and public API responses. It does not make entity instances publicly accessible by itself — entity-level access is still governed by _sharing on each entity instance.

ParamDescription
_sharingEnables and caps property projection for this type: not set (default — no domain/public projection), private (no capping), domain, or public. See Entities → Sharing.

WARNING

Setting _sharing: public on an entity type enables property values to appear in public API responses, but entities are still only accessible to unauthenticated users if the entity instance itself also has _sharing: public. The type controls what data can be exposed; the instance controls whether it is accessible.

Property Visibility

By default, all properties are private — they are only included in API responses for users who have explicit access to the entity. To expose specific properties to a broader audience, set _sharing on each property definition individually.

ParamDescription
_sharingVisibility of this property's value: private (default), domain, or public. Capped by the entity type's _sharing.

How They Interact

The entity type's _sharing acts as a cap on how broadly property definitions can expose data:

Entity type _sharingProperty definition _sharing behaviour
not setNo properties are projected into domain or public views, regardless of property definition settings.
privateNo capping is applied — properties use their own _sharing value.
domainProperties set to domain are exposed to domain users. Properties set to public are automatically capped to domain.
publicNo capping is applied — properties use their own _sharing value.

TIP

Setting _sharing on a property definition only controls whether that property appears in the domain or public view of an entity. It does not affect who can access the entity itself — entity-level access is governed by _sharing and rights properties on the entity instance.

TIP

For a full worked example of an entity type with properties, see Use-Case Examples.

Property Defaults

The default value is applied automatically by the server when an entity is first created — regardless of whether creation happens through the UI or directly via the API. It is also pre-filled in the create form so users see it immediately. If the caller already provides a value for that property, the default is skipped.

Supported formats by type:

TypeFormatExample
string, textAny textdraft, Untitled
numberNumeric value0, 100
booleantrue or false (case-insensitive)true, True, TRUE
dateISO date or relative offset2025-01-01, +1d, -7d
datetimeISO datetime or relative offset2025-01-01T09:00:00, +2h, +1d
referenceEntity ID6789abc...

Relative offsets for date and datetime:

Use the format [+/-][number][unit] where unit is one of:

UnitMeaningExample
hHours+1h, -2h
dDays+1d, -7d
wWeeks+2w
mMonths+1m, -3m
yYears+1y

The offset is resolved when the entity is first created.

TIP

Use +0d to default a date field to today, or +1d for tomorrow.