參考
欄位型別 你可以在物件上宣告的所有欄位型別 —— 儲存什麼、接受哪些選項、在 REST、Console 和 AI Builder 中如何呈現。
48 個內建欄位型別,按家族分組。完整的 Zod schema 在
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)
16.0 中已移除:columnName(物理列始終等於欄位名;外部/聯邦物件通過
external.columnMap 對映列)以及欄位級 index 布林值(請在物件的
indexes[] 陣列中宣告索引)。
型別 用途 關鍵選項 text短字串 maxLength、minLengthtextarea多行 maxLengthemail郵箱 格式校驗;小寫化 urlURL 格式校驗 phone電話 E.164 password單向金鑰 由 auth 子系統雜湊;GET 永不返回 secret可逆金鑰(API key、token、資料庫密碼) 通過加密提供方在靜態時加密,存為不透明引用,讀取時脫敏。Fail-closed —— 未配置提供方時,寫入會拋錯而非以明文持久化 markdownmarkdown 正文 在 Console 預覽中渲染 html清洗後的 HTML 寫入時經 DOMPurify richtext所見即所得 Console 編輯器 + 序列化 JSON
型別 用途 關鍵選項 number浮點 min、max、precision、scalecurrency貨幣 currencyConfig: { precision, currencyMode: 'fixed' | 'dynamic', defaultCurrency }percent0–100 % min、max、scale
integer 和 decimal 不是獨立型別 —— 整數用 number 配 scale: 0,定點小數用 precision+scale。
型別 儲存 說明 date日曆日期 無時區 datetime瞬時 UTC time時鐘時間 無日期
型別 說明 boolean核取方塊 toggle等同 boolean,開關 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' , // 目标对象名
lookupFilters : [ // 收窄查找选择器
{ field: 'status' , operator: 'eq' , value: 'active' }
],
deleteBehavior : 'set_null' // 'set_null' | 'cascade' | 'restrict'
}
舊的字串陣列 referenceFilters 已在 16.0 移除——記錄選擇器只識別結構化的
lookupFilters 形式。支援的 operator 取值:eq、ne、gt、lt、gte、
lte、contains、in、notIn。
型別 作用 關鍵選項 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
公式示例:
{
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 , // 存储附件数组
accept : [ 'image/png' , 'image/jpeg' ], // MIME 类型 / 扩展名
maxSize : 10_000_000 // 字节
}
巢狀的 fileAttachmentConfig 物件已在 16.0 移除——執行時從未讀取過它。
請使用扁平的 multiple / accept / maxSize 屬性。儲存按部署配置
(見 Configure → Storage),而非按欄位配置。
型別 儲存 說明 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 樂觀併發 token
你不宣告它們 —— 通過 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`