次の方法で共有


validate コマンド

ランタイムを開始せずに、データ API ビルダー構成ファイルを検証します。 一連のチェック (スキーマ、構造、アクセス許可、接続、メタデータ) を実行し、成功 (0) または失敗 (ゼロ以外) の終了コードを返します。 CI/CD パイプラインで役立ちます。

構文

dab validate [options]

チラッ

Option 概要
-c, --config 構成ファイルへのパス。 既定値は環境固有または dab-config.jsonです。

validate は、 --config以外のフラグを受け入れなくなります。

終了コード

Code Meaning
0 構成は、すべてのステージに合格しました。
0 以外 1 つ以上のステージが失敗しました。 詳細については、ログを参照してください。

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 つのステージが失敗した場合、後のステージはスキップされます。

1. スキーマ

構成 JSON がスキーマと一致することを確認します。

準則

  • $schema 到達可能であるか、または構造的に有効である
  • data-sourceruntime、および entities セクションが存在し、整形式である
  • 許可されていない予期しないプロパティ (スキーマごと)
  • 列挙値 ( database-type など) は有効です

エラーと修正

問題 Example 修正する
スペルミスのプロパティ "conn-string" "connection-string" を使用してください。
列挙型が無効です "database-type": "mydb" サポートされている値を使用します。
図形が間違っている entities 配列として エンティティ名でキー指定されたオブジェクトを使用します。

2. 構成プロパティ

スキーマ以外の整合性を確認します。

準則

  • 有効な database-type が指定されました
  • cosmosdb_nosqlでは、データベースと GraphQL のスキーマ パスが必要です。 エンティティによっては、コンテナーが必要になる場合もあります。 REST 設定は無視されます。
  • 少なくとも 1 つのエンドポイント (REST、GraphQL、MCP) を有効にする必要があります
  • REST/GraphQL パスは / で始まり、競合しません
  • レガシ *.disabled フラグは警告を出力しますが、失敗しません
  • JWT を使用する場合は、発行者と対象ユーザーの両方を設定する必要があります

エラーと修正

問題 Example 修正する
すべてのエンドポイントがオフ REST=false、GraphQL=false、MCP=false 再度有効にします。
Cosmos DB にスキーマがありません いいえ graphql-schema スキーマ パスを指定します。
認証の不一致 発行者セット、対象ユーザーが見つからない 両方を指定するか、どちらも指定しないでください。

3. アクセス許可

各エンティティのアクセス許可が有効であることを確認します。

準則

  • 各エントリには空でないロールがあります

  • アクションは有効である必要があります。

    • テーブル/ビュー: create, read, update, delete, *
    • ストアド プロシージャ: execute, *
  • 空のアクション リストなし

  • 1 つのアクション セットは、両方ではなく、 * OR 明示的アクションである必要があります

エラーと修正

問題 Example 修正する
サポートされていないアクション "drop" readなどを使用します。
CRUD を使用した SP ストアド プロシージャの使用 update execute または *を使用します。
空のリスト "actions": [] アクションを指定します。

4. データベース接続

データベース接続が機能することを確認します。

準則

  • 接続文字列の解析可能
  • 有効な資格情報
  • データベース/コンテナーが存在する

エラーと修正

問題 Example 修正する
Timeout サーバーに到達できない ネットワーク/ファイアウォールを確認します。
ログインが正しくありません 認証に失敗しました ユーザー名/パスワードを修正します。
DB が見つからない DB が見つかりません DB を作成するか、構成を更新します。

5. エンティティ メタデータ

エンティティ定義をデータベースと照合します。

準則

  • ソース オブジェクトが存在する
  • テーブル/ビュー: 有効なキー フィールド、含まれるフィールド、除外されたフィールドが存在する
  • ビューには常に必要 source.key-fields
  • ストアド プロシージャ: params match signature
  • リレーションシップ: ターゲット エンティティが存在し、リンク フィールドがキーと一致します。多対多に対して linking.object が存在する必要がある
  • ポリシーが有効なフィールドを参照する
  • TTL 非負のキャッシュ

エラーと修正

問題 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が設定されている場合、validatedab-config.<DAB_ENVIRONMENT>.jsonを読み込みます。

Example

DAB_ENVIRONMENT=Staging dab validate

検証コントロールは、解決されたファイルを 1 つだけチェックします。 環境バリアントはマージされません。

使用例

基本的な:

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. 検証済みの構成をコミットする

ヒント

小さな変更を頻繁に検証します。 バージョン 管理の相違を使用して、回帰をすばやく特定します。