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

# Field types

> Every Parable scalar, by namespaced name, and how it looks on the Workspace API wire.

Workspace API fields use **scalars**, not bare `string` or `number`. The
type name is namespaced: `Identity.UUID`, `Contact.Email`,
`Temporal.DateTime`. Send the wrong shape and the request fails with a
`400` before anything is applied.

The [Workspace API reference](/protocols/workspace/http.md) shows each field's
scalar. The [SDKs](/protocols/sdk/typescript.md) apply the same rules before
the request is sent. Catalog column metadata uses the same names
(`parableScalar`, `scalarRef`).

This page is the integrator catalog. Flight SQL Arrow types are on
[Types and metadata](/protocols/sql/sql-behavior/types-and-metadata.md).

Examples below are the canonical (normalized) form. Many scalars accept
other spellings on the way in and normalize them.

## Artifact and Asset

| Scalar | JSON | Example | Notes |
| - | - | - | - |
| `Artifact.File` | object | `{"mimeType":"text/csv","size":204800,"filename":"export.csv"}` | Also includes a `gcsPath` storage URI. |
| `Asset.File` | object | `{"url":"https://cdn.example.com/file.pdf","mimeType":"application/pdf","size":204800,"filename":"document.pdf"}` | Generic file metadata. `assetId` is optional. |
| `Asset.FilePath` | string | `exports/q1/report.csv` | A filesystem path. Min length 1. |
| `Asset.Image` | object | `{"url":"https://cdn/x","mimeType":"image/png","size":1024,"width":100,"height":100,"filename":"x.png"}` | Image metadata including pixel size. |
| `Asset.LogoImage` | object | same as `Asset.Image` plus `"hasTransparency":true` | Transparent PNG logo. |

## Auth

| Scalar | JSON | Example | Notes |
| - | - | - | - |
| `Auth.JWT` | string | `eyJhbGc.cGF5bG9hZA.SflKxwRJ` | Three base64url segments separated by `.`. |
| `Auth.Password` | string | `hunter2!` | 8 to 128 characters. |

## Connector and Tap

| Scalar | JSON | Example | Notes |
| - | - | - | - |
| `Connector.Slug` | string | `github` | Connector definition id. 1-32 chars; `^[a-z][a-z0-9]*(?:[-_][a-z0-9]+)*$`. Reserved: `identity`, `artifacts`. |
| `Tap.Identifier` | string | `group_members` | Tap name. 1-80 chars; `^[a-z][a-z0-9_]*$`. Hyphens are rewritten to `_` and letters lowercased on the way in. |

## Contact

| Scalar | JSON | Example | Notes |
| - | - | - | - |
| `Contact.Email` | string | `user@example.com` | Trimmed and lowercased. Max 255. |
| `Contact.PhoneNumber` | string | `+14155552671` | E.164 (`+` then 2-15 digits). Max 16. |

## Crypto

| Scalar | JSON | Example | Notes |
| - | - | - | - |
| `Crypto.RSAPublicKey` | string | PEM block | PKCS#8 public key PEM (`BEGIN PUBLIC KEY`). |
| `Crypto.RSAPrivateKey` | string | PEM block | PKCS#1 or PKCS#8 private-key PEM. Do not log it. |
| `Crypto.SHA256` | string | `0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef` | Lowercase hex. Exactly 64 characters. |

## Design

| Scalar | JSON | Example | Notes |
| - | - | - | - |
| `Design.Color` | string | `#FF5733FF` | Stored as 8-digit RGBA hex. `#F00`, `#FF5733`, and CSS names like `red` coerce to this form. |

## Embedding

| Scalar | JSON | Example | Notes |
| - | - | - | - |
| `Embedding.Vector` | array | `[0.1, 0.2, 0.3]` | Fixed-dimensional float32 vector. |

## File

| Scalar | JSON | Example | Notes |
| - | - | - | - |
| `File.SizeBytes` | integer | `204800` | Non-negative byte count. |
| `File.SizeMebibytes` | integer | `2048` | Non-negative count of mebibytes (MiB). One MiB is 1,048,576 bytes. |

## Finance

| Scalar | JSON | Example | Notes |
| - | - | - | - |
| `Finance.Money` | integer | `1000` | Amount in the smallest currency unit (cents for USD). Not an object. Non-negative. |

## Generic

| Scalar | JSON | Example | Notes |
| - | - | - | - |
| `Generic.Int64` | integer | `1000` | Signed 64-bit integer. Stay inside JavaScript's safe-integer range if you parse in JS. |
| `Generic.JSON` | JSON | `{"k": 1}` | Any JSON value, including objects, arrays, strings, numbers, booleans, and explicit `null`. |
| `Generic.Probability` | number | `0.75` | Inclusive range `0.0` to `1.0`. |
| `Generic.StringMap` | object | `{"a": "b"}` | String keys, string values. |

The [Rust SDK](/protocols/sdk/rust.md) keeps JSON property names and number
precision in `Generic.JSON` values, including in nullable fields, lists, and
maps. A required JSON field must be present; its value may be `null`. Nullable
fields may be omitted or set to `null`, and required lists and maps may be empty.

## Geo

| Scalar | JSON | Example | Notes |
| - | - | - | - |
| `Geo.Location` | object | `{"lat": 37.7749, "lon": -122.4194}` | Latitude and longitude. |

## Identity

| Scalar | JSON | Example | Notes |
| - | - | - | - |
| `Identity.UUID` | string | `YQJpYwUwvbaLOwTUr4thA` | Client-facing form is base62. A hyphenated UUID is accepted and rewritten. |
| `Identity.UserID` | string | `YQJpYwUwvbaLOwTUr4thA` | Base62 UUID. Same wire family as `Identity.UUID`, but the hyphenated form is not the stored shape. |
| `Identity.Slug` | string | `acme-corp` | URL-friendly token. 1-255 chars; `^[a-z0-9]+(?:[-_][a-z0-9]+)*$`. |
| `Identity.Name` | string | `A Name` | Display name. 2-80 characters. |

Ids use one UUID family everywhere. Prefer the base62 value you received
from the API when you send an id back.

## Localization

| Scalar | JSON | Example | Notes |
| - | - | - | - |
| `Localization.Locale` | string | `en-US` | BCP 47 tag (`en`, `en-US`, `zh-Hant-TW`). Max 35. |

## Network

| Scalar | JSON | Example | Notes |
| - | - | - | - |
| `Network.Url` | string | `https://api.github.com` | `http` or `https` URL. Max 2048. |
| `Network.Uri` | string | `postgres://user:pass@localhost:5432/dbname` | RFC 3986 URI (connection strings and non-HTTP resources). Max 4096. |
| `Network.DomainName` | string | `example.com` | RFC 1035 domain. Max 255. |
| `Network.IpAddress` | string | `192.168.1.1` | IPv4 or IPv6. |
| `Network.Port` | integer | `8080` | TCP or UDP port, `1` to `65535`. A `host:port` pair is a string. |
| `Network.HttpStatus` | integer | `429` | HTTP status code, an integer from 100 to 599. A field can narrow the range, for example 200 to 299 for an async completion code. |

## Parable

| Scalar | JSON | Example | Notes |
| - | - | - | - |
| `Parable.Slug` | string | `acme-corp` | Short URL token. 1-17 chars; hyphen only (no `_`). Reserved: `parable`, `admin`, `trust`, `cdn`, `app`, `mcp`. |
| `Parable.Handle` | string | `q3RevenueByRegion` | Handle in a Parable or Piece URL. camelCase that starts with a lowercase letter. Max 200. |
| `Parable.Permission` | string | `tenant.view` | Dot-separated permission leaf (`tenant.connectors.create`). |
| `Parable.ErrorCode` | string | `ERR_NOT_FOUND` | `^[A-Z_][A-Z0-9_]*$`. Max 50. |
| `Parable.Scalar` | string | `Identity.UUID` | Canonical name of a scalar on this page. |
| `Parable.Schema` | object | `{"a": 1}` | A Parable schema document. |
| `Parable.SchemaData` | object | `{"x": 1}` | Data that conforms to a Parable schema. |
| `Parable.LtreePath` | string | `reports.q1.draft` | Dot-separated path labels. Max 2048. |
| `Parable.Icon` | string | `fa:classic:regular-outline:circle-check` | `fa:pack:weight-fill:name`, `emoji:...`, or `image:...`. Optional `@#rrggbb` on `fa:`. |

`Parable.Permission` values keep the `tenant.` prefix. In a permission
identifier, `tenant` means the Workspace.

## Temporal

Integer counts are the unit in the name. Use `Temporal.Minutes` for a
minute cadence, not `Temporal.Milliseconds` unless you need sub-minute
precision.

| Scalar | JSON | Example | Notes |
| - | - | - | - |
| `Temporal.DateTime` | string | `2026-08-19T14:30:00Z` | RFC 3339 / ISO 8601 timestamp. Returned in a consistent RFC 3339 form. |
| `Temporal.Date` | string | `2025-01-15` | Calendar date `YYYY-MM-DD`. Slash dates, named months, and RFC 3339 datetimes coerce; the time is dropped. |
| `Temporal.Time` | string | `09:30:00` | Time of day. 24-hour `HH:MM` / `HH:MM:SS`, or 12-hour with AM/PM in any case, with or without a space before it. Parses to 24-hour `HH:MM:SS`: `1:05pm` is `13:05:00`. |
| `Temporal.TimeZone` | string | `America/New_York` | IANA tz name: `UTC`, `GMT`, or `/`-separated segments of letters, digits, `_`, `-`, `+` (`America/Port-au-Prince`, `Etc/GMT+5`). Checks shape, not a tz release. Max 100. |
| `Temporal.Duration` | string | `30s` | Go duration (`1h30m0s`, `500ms`). Not ISO 8601 `PT30S`. |
| `Temporal.Milliseconds` | integer | `1000` | Signed millisecond count. |
| `Temporal.Seconds` | integer | `60` | Signed second count. |
| `Temporal.Minutes` | integer | `5` | Signed minute count. |
| `Temporal.Hours` | integer | `2` | Signed hour count. |
| `Temporal.Days` | integer | `7` | Signed day count. |
| `Temporal.CronExpression` | string | `0 9 * * MON-FRI` | Standard 5-field cron. Max 100. |
| `Temporal.Month` | string | `01` | `01`-`12`. `2`, `Feb`, and `February` coerce. |
| `Temporal.Quarter` | string | `Q1` | `Q1`-`Q4`. |
| `Temporal.QuarterYear` | string | `2025-Q1` | `YYYY-Q#`. `Q1/2025` and `Q1-25` coerce. |
| `Temporal.Year` | string | `2025` | Four-digit year. |

## Text

| Scalar | JSON | Example | Notes |
| - | - | - | - |
| `Text.Markdown` | string | `## Hello, World!` | Markdown. Accepts the empty string. A field that needs text shows `minLength: 1` in the API reference. |
| `Text.Sql` | string | `SELECT 1` | SQL text. Min length 1. |

## Validation errors

An invalid value fails the whole request with a `400`. The error names
the field and the rule it broke. Nothing is half-applied.


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