> ## Documentation Index
> Fetch the complete documentation index at: https://developers.askparable.com/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 wire.

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 [API Reference](/api-reference/overview) shows each field's scalar.
The [SDKs](/platform/sdks) apply the same rules before the request is
sent. Catalog column metadata uses the same names (`parableScalar`,
`scalarRef`).

Examples below are the canonical (normalized) form. Many scalars accept
other spellings on the way in and rewrite 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 | `../dist/api/web-api`                                                                                             | 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. Lowercase alphanumeric, `_`, `-`.                                                                   |

## 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                                                          | `-----BEGIN PUBLIC KEY-----` ... `-----END PUBLIC KEY-----`.                       |
| `Crypto.RSAPrivateKey` | string | PEM block                                                          | `-----BEGIN RSA PRIVATE KEY-----` or `-----BEGIN PRIVATE KEY-----`. 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. |

## 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 (object, array, string, number).                                        |
| `Generic.Probability` | number  | `0.75`       | Inclusive range `0.0` to `1.0`.                                                        |
| `Generic.StringMap`   | object  | `{"a": "b"}` | String keys, string values.                                                            |

## 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 (`123e4567-e89b-12d3-a456-426614174000`) 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.                                                       |

## 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`. |
| `Parable.Handle`       | string | `q3-revenue-by-region`                                | Handle in a Parable or Piece URL. Hyphenated lowercase. Max 200.                                        |
| `Parable.Permission`   | string | `tenant.view`                                         | Dot-separated permission leaf (`admin.user.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.GcpSecretRef` | string | `projects/my-project/secrets/api-key/versions/latest` | GCP Secret Manager resource name. Not a queryable lake column.                                          |

`Parable.Permission` values keep the `tenant.` prefix. That is the
permission identifier. User-facing copy still says 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.                                          |
| `Temporal.TimeZone`       | string  | `America/New_York`     | IANA zone.                                                                                                 |
| `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. Min length 1. |
| `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.
