データ API ビルダーを実行するには、少なくとも 1 つの構成ファイルが必要です。 この JSON ベースのファイルは、環境設定からエンティティ定義まで、API のセットアップを定義します。 ファイルの残りの部分のスキーマ検証を有効にする $schema プロパティで始まります。
最上位のプロパティ
| Property | Description |
|---|---|
| $schema | この構成の JSON スキーマの URI。 |
| data-source | データベース接続設定を含むオブジェクト。 |
| data-source-files | その他の構成ファイル パスの配列。 |
| runtime | ランタイム動作を構成するオブジェクト。 |
| entities | REST または GraphQL を介して公開されるすべてのエンティティを定義するオブジェクト。 |
| autoentities | 一致するデータベース オブジェクトをエンティティとして自動的に公開するパターンベースのルールを定義するオブジェクト (MSSQL のみ)。 |
| azure-key-vault | シークレット管理のための Azure Key Vault の構成。 |
データ ソースのプロパティ
| Property | Description |
|---|---|
| data-source | データベース接続設定を含むオブジェクト。 |
| data-source.database-type | バックエンドで使用されるデータベースの種類 (mssql、postgresql、mysql、cosmosdb_nosql、cosmosdb_postgresql)。 |
| data-source.connection-string | 選択したデータベースの種類の接続文字列。 |
| data-source.options | データベース固有のオプションと詳細設定。 |
| data-source.health | データ ソースの正常性チェックの構成。 |
| data-source-files | その他の構成ファイル パスの配列。 |
ランタイム のプロパティ
| Property | Description |
|---|---|
| runtime | ランタイム動作を構成するオブジェクト。 |
| runtime.pagination | API 応答の改ページ設定。 |
| runtime.rest | REST API グローバル構成。 |
| runtime.graphql | GraphQL API グローバル構成。 |
| runtime.cache | グローバル応答キャッシュ構成。 |
| runtime.compression | HTTP 応答の圧縮構成。 |
| runtime.mcp | モデル コンテキスト プロトコル (MCP) グローバル構成。 |
| runtime.telemetry | テレメトリ、ログ記録、監視の構成。 |
| runtime.health | グローバル正常性チェックの構成。 |
エンティティのプロパティ
| Property | Description |
|---|---|
| entities | REST または GraphQL を介して公開されるすべてのエンティティを定義するオブジェクト。 |
| entities.entity-name.source | エンティティのデータベース ソースの詳細。 |
| entities.entity-name.rest | エンティティの REST API 構成。 |
| entities.entity-name.graphql | エンティティの GraphQL API 構成。 |
| entities.entity-name.permissions | エンティティのアクセス許可とアクセス制御。 |
| entities.entity-name.relationships | 他のエンティティとのリレーションシップ。 |
| entities.entity-name.cache | エンティティ レベルのキャッシュ構成。 |
| entities.entity-name.health | エンティティ レベルの正常性チェックの構成。 |
| entities.entity-name.mcp | エンティティ レベルの MCP 構成。 |
| entities.entity-name.fields | フィールド メタデータ、エイリアス、および主キーの指定。 |
| entities.entity-name.description | 人間が判読できるエンティティの説明。 |
Schema
| Parent | Property | タイプ | Required | Default |
|---|---|---|---|---|
$root |
$schema |
文字列 | ✔️ はい | None |
各構成ファイルは、検証用の JSON スキーマを指定する$schema プロパティで始まります。
Format
{
"$schema": <string>
}
Example
{
"$schema": "https://github.com/Azure/data-api-builder/releases/latest/download/dab.draft.schema.json"
}
Tip
最新のスキーマは常に https://github.com/Azure/data-api-builder/releases/latest/download/dab.draft.schema.jsonで使用できます。
Versioning
スキーマ ファイルは特定の URL で使用できるため、適切なバージョンまたは使用可能な最新のスキーマを使用できます。
https://github.com/Azure/data-api-builder/releases/download/<VERSION>-<suffix>/dab.draft.schema.json
VERSION-suffix を目的のバージョンに置き換えます。
https://github.com/Azure/data-api-builder/releases/download/v0.3.7-alpha/dab.draft.schema.json
データ ソース ファイル
| Parent | Property | タイプ | Required | Default |
|---|---|---|---|---|
$root |
data-source-files |
文字列配列 | ❌ いいえ | None |
データ API ビルダーは、複数の構成ファイルをサポートします。1 つは、 runtime 設定を管理する最上位ファイルとして指定されています。 すべての構成で同じ JSON スキーマが共有されるため、エラーなしで任意のファイルまたはすべてのファイルで runtime 設定が可能になります。 組織を改善するためにエンティティを分割します。
Format
{
"data-source-files": [ "<string>" ]
}
複数の構成規則
- すべての構成ファイルに、
data-sourceプロパティを含める必要があります。 - すべての構成ファイルには、
entitiesプロパティ (またはautoentities) が含まれている必要があります。 - 最上位の構成には、
runtimeを含める必要があります。 - 子構成には
runtimeを含めることができますが、Data API ビルダーでは無視されます。 - 子構成ファイルには、独自の子ファイルを含めることができます。
- 構成ファイルはサブフォルダーに編成できます。
- エンティティ名は、すべての構成ファイルで一意である必要があります。
- 異なる構成ファイル内のエンティティ間のリレーションシップはサポートされていません。
Examples
{
"data-source-files": [
"dab-config-2.json",
"my-folder/dab-config-3.json",
"my-folder/my-other-folder/dab-config-4.json"
]
}
Autoentities
| Parent | Property | タイプ | Required | Default |
|---|---|---|---|---|
$root |
autoentities |
オブジェクト | ❌ いいえ | None |
autoentitiesセクションでは、起動時に一致するデータベース オブジェクトを DAB エンティティとして自動的に公開するパターンベースのルールを定義します。 オブジェクト内の各キーは、パターン、テンプレート、およびアクセス許可を含む名前付き定義です。
Important
現在、自動エンティティは MSSQL データ ソースのみをサポートしています。
autoentitiesが存在する場合、entitiesセクションは不要になります。 構成スキーマでは、 autoentities または entities (またはその両方) を使用できます。 両方が存在する場合、明示的に定義されたエンティティは、同じ名前の自動エンティティの一致よりも優先されます。
Format
{
"autoentities": {
"<definition-name>": {
"patterns": {
"include": [ "<string>" ],
"exclude": [ "<string>" ],
"name": "<string>"
},
"template": {
"mcp": { "dml-tools": <boolean> },
"rest": { "enabled": <boolean> },
"graphql": { "enabled": <boolean> },
"health": { "enabled": <boolean> },
"cache": {
"enabled": <boolean>,
"ttl-seconds": <integer>,
"level": "<string>"
}
},
"permissions": [
{
"role": "<string>",
"actions": [ { "action": "<string>" } ]
}
]
}
}
}
プロパティ
| Property | タイプ | Required | Default | Description |
|---|---|---|---|---|
patterns |
オブジェクト | ✔️ はい | None | 定義には、次のような規則、除外規則、名前付け規則があります。 |
patterns.include |
文字列配列 | ❌ いいえ | ["%.%"] |
MSSQL LIKE 含めるオブジェクトのパターンです。 |
patterns.exclude |
文字列配列 | ❌ いいえ | null |
MSSQL LIKE 、除外するオブジェクトのパターンです。 |
patterns.name |
文字列 | ❌ いいえ | "{object}" |
{schema}と{object}を使用した補間パターン。 |
template |
オブジェクト | ❌ いいえ | None | 一致するすべてのエンティティに適用される既定の構成。 |
template.mcp |
オブジェクト | ❌ いいえ | None | 一致したエンティティの MCP 設定。 |
template.mcp.dml-tools |
ブーリアン | ❌ いいえ | true |
MCP データ操作言語 (DML) ツールを有効にします。 |
template.rest |
オブジェクト | ❌ いいえ | None | 一致したエンティティの REST 設定。 |
template.rest.enabled |
ブーリアン | ❌ いいえ | true |
REST エンドポイントを有効にします。 |
template.graphql |
オブジェクト | ❌ いいえ | None | 一致したエンティティの GraphQL 設定。 |
template.graphql.enabled |
ブーリアン | ❌ いいえ | true |
GraphQL を有効にします。 |
template.health |
オブジェクト | ❌ いいえ | None | 一致したエンティティの正常性チェックの設定。 |
template.health.enabled |
ブーリアン | ❌ いいえ | false |
ヘルスチェックを有効にします。 |
template.cache |
オブジェクト | ❌ いいえ | None | 一致したエンティティのキャッシュ設定。 |
template.cache.enabled |
ブーリアン | ❌ いいえ | false |
応答キャッシュを有効にします。 |
template.cache.ttl-seconds |
整数 | ❌ いいえ | null |
キャッシュの有効期間 (秒単位)。 |
template.cache.level |
文字列 | ❌ いいえ | "L1L2" |
キャッシュ レベル。 |
permissions |
アレイ | ❌ いいえ | None | 一致するすべてのエンティティに適用されるアクセス許可。 |
Example
{
"autoentities": {
"my-def": {
"patterns": {
"include": [ "dbo.%" ],
"exclude": [ "dbo.internal%" ],
"name": "{schema}_{object}"
},
"template": {
"rest": { "enabled": true },
"graphql": { "enabled": true },
"cache": { "enabled": true, "ttl-seconds": 30, "level": "l1l2" }
},
"permissions": [
{ "role": "anonymous", "actions": [ { "action": "read" } ] }
]
}
}
}
この構成では、 dbo スキーマ内のすべてのテーブルとビュー (一致する dbo.internal%を除く) が DAB エンティティとして自動的に公開されます。 各エンティティは、{schema}_{object} パターン (dbo_Products など) を使用して名前が付けられ、REST と GraphQL が有効になり、30 秒の有効期間 (TTL) でキャッシュが使用され、anonymous ロールへのアクセスread許可されます。
Tip
dab auto-configを使用して CLI から自動エンティティ定義を作成し、dab auto-config-simulate変更をコミットする前に一致するオブジェクトをプレビューします。 詳細については、 バージョン 2.0 の新機能を参照してください。
Azure Key Vault
| Parent | Property | タイプ | Required | Default |
|---|---|---|---|---|
$root |
azure-key-vault |
オブジェクト | ❌ いいえ | None |
シークレットを管理するための Azure Key Vault 統合を構成します。 存在する場合は、 endpoint プロパティが必要です。
入れ子になったプロパティ
| Parent | Property | タイプ | Required | Default |
|---|---|---|---|---|
azure-key-vault |
endpoint |
文字列 | ✔️ はい | None |
azure-key-vault |
retry-policy |
オブジェクト | ❌ いいえ | None |
| Parent | Property | タイプ | Required | Default |
|---|---|---|---|---|
azure-key-vault.retry-policy |
mode |
enum (fixed | exponential) |
❌ いいえ | "exponential" |
azure-key-vault.retry-policy |
max-count |
整数 | ❌ いいえ | 3 |
azure-key-vault.retry-policy |
delay-seconds |
整数 | ❌ いいえ | 1 |
azure-key-vault.retry-policy |
max-delay-seconds |
整数 | ❌ いいえ | 60 |
azure-key-vault.retry-policy |
network-timeout-seconds |
整数 | ❌ いいえ | 60 |
Azure Key Vault に格納されているシークレットを参照するには、構成値で @akv() 関数を使用します。 データ API ビルダーは、構成されたエンドポイントを使用して、起動時にこれらの参照を解決します。
Format
{
"azure-key-vault": {
"endpoint": "<string>",
"retry-policy": {
"mode": <"exponential"> (default) | <"fixed">,
"max-count": <integer; default: 3>,
"delay-seconds": <integer; default: 1>,
"max-delay-seconds": <integer; default: 60>,
"network-timeout-seconds": <integer; default: 60>
}
}
}
Example
{
"azure-key-vault": {
"endpoint": "https://my-vault.vault.azure.net/",
"retry-policy": {
"mode": "exponential",
"max-count": 5,
"delay-seconds": 2,
"max-delay-seconds": 120,
"network-timeout-seconds": 90
}
},
"data-source": {
"database-type": "mssql",
"connection-string": "@akv('sql-connection-string')"
}
}