Skip to main content
HASP entities support 12 field types. Each field has a key (slug), name (display label), type, and optional validation rules.

Summary

select and multi_select must define an options array.

text

Single-line plain text. Max 255 characters.

textarea

Multi-line plain text. Max 5000 characters.

number

Numeric value — integer or decimal. Optional constraints: min, max, decimal_places (configured in the Schema Builder).

boolean

True/false toggle.

select

Single choice from a predefined list. The stored value must exactly match one of the defined options.

multi_select

Multiple choices from a predefined list. Stored as an array of strings.

date

Calendar date without time. Format: YYYY-MM-DD.

datetime

Date and time with timezone. Format: ISO 8601 (YYYY-MM-DDTHH:mm:ssZ).

email

Email address. Validated as a properly-formatted email.

url

Web URL. Validated as a properly-formatted URL.

file

File attachment. The value stored in the record is a fileId ULID returned from the file upload flow. See File Uploads & Downloads.

relation

A reference to a record in another entity within the same app. The stored value is the ULID of the target record.
When you read a record that has a relation field, the value is the target record’s id string. To load the referenced record’s data, call sdk.getRecord(relatedEntityKey, value).

System Fields

Every record automatically includes these read-only fields — never include them in create/update payloads:

Naming Conventions

  • Field keys: snake_case, lowercase — due_date, is_complete, contact_email
  • Field names: Title Case — “Due Date”, “Completed”, “Contact Email”
  • Entity keys: snake_case, plural — tasks, contacts, inventory_items
  • Entity names: Title Case, plural — “Tasks”, “Contacts”