共用方式為


validate 命令

驗證資料 API 產生器組態檔,而不啟動執行階段。 執行一系列檢查 (結構描述、結構、權限、連線能力、中繼資料),並傳回成功 (0) 或失敗 (非零) 的結束碼。 在 CI/CD 管道中很有用。

語法

dab validate [options]

快速瀏覽

Option 總結
-c, --config 設定檔的路徑。 預設為環境特定或 dab-config.json

備註

validate 不接受 以外的旗標 --config

退出代碼

Code Meaning
0 Config 已通過所有階段。
非零 一或多個階段失敗。 如需詳細資訊,請參閱日誌。

CI 範例:

dab validate && echo "OK" || { echo "INVALID CONFIG"; exit 1; }

-c, --config

設定檔的路徑。 如果省略,驗證器會先尋找 , dab-config.<DAB_ENVIRONMENT>.json 然後 dab-config.json尋找 。

Example

dab validate --config ./dab-config.prod.json

驗證階段

驗證按順序進行。 如果一個階段失敗,則會略過後續階段。

1. 模式

檢查組態 JSON 是否符合結構描述。

規則

  • $schema 可連線或結構有效
  • data-sourceruntimeentities 區段存在且格式正確
  • 不允許的非預期屬性 (每個結構描述)
  • 列舉值(如 database-type)有效

失敗與修復

Problem Example 修復
拼錯的屬性 "conn-string" 請使用 "connection-string"
無效的列舉 "database-type": "mydb" 使用支援的值。
形狀錯誤 entities 作為陣列 使用以實體名稱為索引鍵的物件。

2. 配置屬性

檢查結構描述以外的一致性。

規則

  • 提供有效database-type
  • 對於 cosmosdb_nosql,資料庫和 GraphQL 結構描述路徑是必需的。 根據實體,可能還需要容器。 REST 設定會被忽略。
  • 必須啟用至少一個端點 (REST、GraphQL、MCP)
  • REST/GraphQL 路徑開頭為 且 / 不會衝突
  • 舊版 *.disabled 旗標會發出警告,但不會失敗
  • 如果使用 JWT,則必須同時設定發行者和對象

失敗與修復

Problem Example 修復
所有端點都已關閉 REST=false、GraphQL=false、MCP=false 重新啟用一個。
Cosmos DB 遺漏結構描述 graphql-schema 提供結構描述路徑。
驗證不相符 發行者集,缺少對象 兩者都提供或兩者都不提供。

3. 權限

檢查每個實體的許可是否有效。

規則

  • 每個項目都有一個非空的角色

  • 動作必須有效:

    • 表格/視圖: create, read, update, delete, *
    • 儲存的程序: execute, *
  • 沒有空的動作清單

  • 單一動作集必須是 OR 明確動作, * 而不是兩者

失敗與修復

Problem Example 修復
不支援的動作 "drop" 使用 read等。
SP 與 CRUD 預存程序用途 update 使用 execute*
空白清單 "actions": [] 提供動作。

4. 資料庫連接

檢查資料庫連線是否正常運作。

規則

  • 可剖析的連接字串
  • 認證有效
  • 資料庫/容器存在

失敗與修復

Problem Example 修復
暫停 無法連線到伺服器 檢查網路/防火牆。
登入錯誤 驗證失敗 修復用戶名/密碼。
缺少資料庫 找不到資料庫 建立資料庫或更新組態。

5. 實體元資料

根據資料庫檢查實體定義。

規則

  • 來源物件存在
  • 資料表/檢視:索引鍵欄位有效,包含/排除的欄位存在
  • 視圖總是需要 source.key-fields
  • 預存程序:params match signature
  • 關係:目標實體存在,連結欄位與鍵對齊;linking.object 必須存在於多對多
  • 原則參考有效欄位
  • 快取 TTL 非負數

失敗與修復

Problem Example 修復
缺少索引鍵欄位 查看無 key-fields 加入 source.key-fields
不正確的欄 fields.include 清單遺失欄 刪除或修復名稱。
關係不匹配 連結欄位計數 != PK 計數 修正連結欄位。

輸出範例

勝:

Data API builder <version>
Config is valid.

蹉:

Data API builder <version>
Error: View 'sales_summary' missing required key-fields.
Config is invalid.

備註

驗證錯誤是特定階段的。 在重新執行之前修正第一個失敗階段。

Environment-Specific 檔案

如果設定,則DAB_ENVIRONMENT載入 dab-config.<DAB_ENVIRONMENT>.jsonvalidate

Example

DAB_ENVIRONMENT=Staging dab validate

備註

驗證器只會檢查單一已解析的檔案。 它不會合併環境變體。

範例使用方式

基本:

dab validate

明確檔案:

dab validate --config ./configs/dab-config.test.json

多環境:

for env in Development Staging Production; do
  echo "Validating $env..."
  DAB_ENVIRONMENT=$env dab validate || exit 1
done

CI 快速失敗:

dab validate && echo "OK" || { echo "INVALID CONFIG"; exit 1; }

Workflow

  1. dab validate執行
  2. 修正第一個失敗階段
  3. 重新執行,直到結束碼為 0 為止
  4. 認可已驗證的組態

小提示

經常驗證小的變更。 使用版本控制差異快速找出回歸。