ランタイムを開始せずに、データ 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-source、runtime、および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が設定されている場合、validateはdab-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
-
dab validateを実行する - 最初の失敗したステージを修正する
- 終了コードが 0 になるまで再実行する
- 検証済みの構成をコミットする
ヒント
小さな変更を頻繁に検証します。 バージョン 管理の相違を使用して、回帰をすばやく特定します。