---
title: 'Data Types and Input Types'
description: 'Reference and usage guidance for Data Types and Input Types.'
---

# Data Types and Input Types

`dataType` and `inputType` are related but different:

- `dataType`: storage/data semantics.
- `inputType`: form UI component used in Studio.

## Supported `dataType` Values

- `string`
- `int`
- `float`
- `bigint`
- `boolean`
- `id`
- `date`
- `datetime`
- `time`
- `duration`
- `point`
- `cartesianpoint`
- `asset`

## Built-in `inputType` Values

- `text`
- `textarea`
- `number`
- `select`
- `switch`
- `datetime`
- `relationship`
- `asset`
- `editor`

Custom input types can be added through extensions (`contributes.formFields`).

## Input Type Reference

### `text`

- Typical `dataType`: `string`, `id`
- Options: `comment`, `size`, `placeholder`

### `textarea`

- Typical `dataType`: `string`
- Options: `comment`, `size`, `placeholder`

### `number`

- Typical `dataType`: `int`, `float`, `bigint`
- Options: `comment`, `size`, `placeholder`, `min`, `max`

### `select`

- Typical `dataType`: `string`, sometimes `int`
- Options:
  - `list: { label; value }[] | { groupLabel; items }[]`
  - `comment`, `size`, `placeholder`

### `switch`

- Typical `dataType`: `boolean`
- Options: `comment`, `size`, `placeholder`

### `datetime`

- Typical `dataType`: `date`, `datetime`, `time`
- Options: `comment`, `size`, `placeholder`, `format`

### `relationship`

- Typical `dataType`: usually `string` with relationship metadata
- Requires `relationship: { entity, mode, field }`
- Supports `single` and `multiple` connections
- Supports ordered asset galleries with `relationship: { mode: 'multiple', entity: '_asset', field: 'originalFilename' }`

### `asset`

- Typical `dataType`: `asset`
- Options: `comment`, `size`, `placeholder`, `accept`
- Supports upload workflows and file/image metadata

### `editor`

- Typical `dataType`: `string`
- Stores rich content as JSON string

## Common Patterns

```tsx
// Boolean switch
{
  name: 'isActive',
  label: 'Active',
  scope: 'global',
  dataType: 'boolean',
  inputType: 'switch',
  defaultValue: false,
}

// Numeric amount
{
  name: 'amount',
  label: 'Amount',
  scope: 'global',
  dataType: 'float',
  inputType: 'number',
  options: { min: 0, max: 1000000 },
  defaultValue: 0,
}
```

## Important Notes

- Invalid or unregistered `inputType` values show a runtime field-type error in Studio.
- `select` can cast values based on `dataType` (for example integer values).
- For scoped entities, fields can inherit defaults via the “Use default value” behavior.


---

[View full sitemap](/docs/sitemap.md)
