> ## Documentation Index
> Fetch the complete documentation index at: https://www.rootset.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Fields and types

> Define columns, defaults and constraints with Rootset’s field editor.

export const Screenshot = ({light, dark, alt, caption, width, height, sizes, portrait = false}) => <figure className={portrait ? "oss-doc-screenshot oss-doc-screenshot-portrait" : "oss-doc-screenshot"}>
    <div className="oss-product-light">
      <img src={light} alt={alt} width={width} height={height} sizes={sizes} loading="lazy" />
    </div>
    <div className="oss-product-dark">
      <img src={dark || light} alt={alt} width={width} height={height} sizes={sizes} loading="lazy" />
    </div>
    {caption ? <figcaption>{caption}</figcaption> : null}
  </figure>;

Open a table's **Settings → Fields**. The table lists each column's name and type, required setting, default and constraints. Use the arrows before the name to change its position. Select **Add field** or **Edit** to open the form.

## Supported types

| Type | Stored value and browser behaviour |
| - | - |
| `text` | String with an optional maximum character count. |
| `uri` | Plain string representing a URI. No address-format validation. |
| `url` | Plain string representing a URL. No address-format validation. |
| `image` | URL stored as a plain string, displayed as a compact image thumbnail. An unavailable image shows a muted image icon. |
| `integer` | Whole number with optional inclusive minimum and maximum. |
| `float` | Number with optional inclusive minimum and maximum. |
| `boolean` | `true` or `false`; displayed in green and orange. |
| `date` | Calendar date such as `2026-10-09`. |
| `time` | UTC time; the browser edits hours and minutes. |
| `date-time` | UTC instant; the browser displays your chosen date/time format. |
| `json` | JSON object, array, number, string, boolean or NULL. |

Date, time and date-time fields support inclusive minimum and maximum bounds. Date-time bounds use a date picker and default to midnight UTC. URI, URL and image fields have no custom address constraints.

## Required and default values

Optional fields allow `NULL` and use `NULL` as their default unless you supply a literal value. Required fields cannot contain `NULL`; the editor requires a valid non-NULL literal default. New rows must supply a valid value or use that default. There is no separate nullable setting.

Column names use 1–64 letters or underscores. They are the keys used in API row values. Rootset rejects reserved system names.

## Change or remove a field

Editing a field previews the proposed schema change before applying it. Changes validate existing data, and long operations run through the worker. An invalid change fails without silently converting incompatible values. Removing a field also removes its cell history; review any dependent unique rules before removal.

<Screenshot light="/assets/screenshots/fields-light.png" dark="/assets/screenshots/fields-dark.png" alt="Fields table showing types, required checks, defaults and constraints" caption="Types appear below column names; defaults and constraints have their own columns." width={3840} height={2160} />


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.