リファレンス
フィールドタイプ オブジェクトに宣言できるすべてのフィールドタイプ — 何を格納し、どのオプションを受け付け、REST、Console、AI Builder にどう現れるか。
48 個の組み込みフィールドタイプを、ファミリーごとに分類しています。完全な Zod スキーマは
packages/spec/src/data/field.zod.ts にあります — このページは実用的なサマリーです。
プロパティ 型 デフォルト 目的 namestring (snake_case) — マシン識別子 — REST パスセグメント、SQL カラム labelstring — Console での表示ラベル typeFieldType — 下記の型テーブルを参照 requiredboolean falseNOT NULL 制約 uniqueboolean falseユニークインデックス searchableboolean false/api/v1/search 用にインデックス化multipleboolean false値の配列を格納 defaultValueunknown — 初期値(リテラルまたは CEL) hiddenboolean falseデフォルトの Console ビューから非表示 readonlyboolean falseフォームで無効化 systemboolean false自動注入(id, created_at, …) externalIdboolean false外部キーによる upsert の対象 inlineHelpTextstring — ツールチップ / ヘルパーテキスト conditionalRequiredP 述語— CEL が真のとき必須 trackHistoryboolean false値の変更を、レコードのアクティビティタイムラインに人間が読める形式のエントリとして表示(ADR-0052)
型 用途 主なオプション text短い文字列 maxLength, minLengthtextarea複数行 maxLengthemailメールアドレス フォーマット検証あり。小文字化される urlURL フォーマット検証あり phone電話番号 E.164 password一方向シークレット 認証サブシステムによってハッシュ化され、GET では返されない secret復号可能なシークレット(API キー、トークン、DB パスワード) crypto プロバイダーによって保存時に暗号化され、不透明な参照として格納され、読み取り時にマスクされる。フェイルクローズ——プロバイダー未設定では、書き込みは平文を永続化せずにスローする markdownmarkdown 本文 Console プレビューでレンダリング htmlサニタイズ済み HTML 書き込み時に DOMPurify を適用 richtextWYSIWYG Console エディタ + シリアライズされた JSON
型 用途 主なオプション number浮動小数点 min, max, precision, scalecurrency金額 currencyConfig: { precision, currencyMode: 'fixed' | 'dynamic', defaultCurrency }percent0〜100 % min, max, scale
integer と decimal は別の型ではありません。整数には scale: 0 を指定した number、
固定小数には precision+scale を指定した number を使用してください。
型 格納するもの 備考 dateカレンダー日付 タイムゾーンなし datetime瞬間 UTC time壁時計の時刻 日付なし
型 備考 booleanチェックボックス toggleboolean と同じ。スイッチ UI
型 備考 select単一選択 — オプションをインラインで宣言するか、picklist から参照 multiselect複数選択。配列として格納 radioラジオ表示の select の UI エイリアス checkboxesチェックボックス表示の multiselect の UI エイリアス
オプションの形:
options : [
{ value: 'low' , label: 'Low' },
{ value: 'high' , label: 'High' , color: '#e02' },
{ value: 'urgent' , label: 'Urgent' , color: '#c00' }
]
型 多重度 セマンティクス lookup多対一 緩い参照。親を削除してもデフォルトでは子は削除されない master_detail多対一、カスケード 親なしには子が存在できない。権限は親から継承される tree自己参照 階層構造(同じオブジェクト上の parent_id)
共通オプション:
{
type : 'lookup' ,
reference : 'account' , // target object name
lookupFilters : [ // narrow the lookup picker
{ field: 'status' , operator: 'eq' , value: 'active' }
],
deleteBehavior : 'set_null' // 'set_null' | 'cascade' | 'restrict'
}
型 機能 主なオプション formula導出値。読み取り時または再計算時に評価される expression: F\record.qty * record.unit_price`` — CEL を参照summary子リレーションのロールアップ summaryOperations: { object, field, function, filter? }(count | sum | avg | min | max。省略可能な filter — クエリの where 条件、例 { status: 'received' } — は条件に一致する子行のみを集計、16.0+)autonumber自動採番される表示番号 format(例: TKT-{0000})、startAt
Formula の例:
{
name : 'profit_margin' ,
type : 'formula' ,
expression : F `(record.revenue - record.cost) / record.revenue * 100`
}
型 用途 主なオプション image画像添付 multiple / accept / maxSize(下記参照)file任意のファイル 同上 avatarプロフィール画像 正方形クロップ、適切なデフォルト video動画アップロード 再生時間 + サムネイルキャプチャ audio音声 波形プレビュー
{
type : 'file' ,
multiple : true , // store an array of attachments
accept : [ 'image/png' , 'image/jpeg' ], // MIME types / extensions
maxSize : 10_000_000 // bytes
}
型 格納するもの 備考 json任意の JSON Postgres では JSONB として格納 composite名前付きフィールドを持つサブレコード インライン構造体。別テーブルではない repeatercomposite 値の配列 子オブジェクトなしの一対多
型 備考 location緯度/経度 + 精度 address番地 / 市区町村 / 地域 / 郵便番号 / 国 codeソースコードフィールド — language, theme, lineNumbers colorcolorFormat: 'hex' | 'rgb' | 'rgba' | 'hsl', presetColors[]rating1〜N 個の星 — max, icon sliderスライダー UI を持つ範囲付き数値 signature手書き署名。画像として格納 qrcode値を QR またはバーコード(EAN / UPC / Code128)としてレンダリング progress導出されたパーセントをバーとして表示 tagsオートコンプリート付きの自由形式タグ配列 vector埋め込みカラム — フラットな dimensions(例: OpenAI 埋め込みは 1536)。ネストされた vectorConfig(distanceMetric/indexed/indexType)は 16.0 で削除
フィールド 型 備考 idtext (ULID) 主キー created_atdatetime UTC の挿入時刻 updated_atdatetime UTC の最終書き込み時刻 created_bylookup → user 挿入したユーザー updated_bylookup → user 最後に書き込んだユーザー versioninteger 楽観的並行性トークン
これらは宣言しません — オブジェクトごとに
ObjectSpec.systemFields: false でオプトアウトできます(推奨されることはほとんどありません)。
*.object.ts (field spec)
│
├─► Postgres / MySQL / SQLite column + index + constraint
├─► REST: validated on POST/PATCH, exposed on GET
├─► Console: form widget + list column
├─► AI Builder: tool argument schema (so the AI knows what to ask)
└─► Audit: change-tracked if `trackHistory: true`