次の方法で共有


データ API ビルダー構成スキーマ リファレンス

データ 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 設定が可能になります。 組織を改善するためにエンティティを分割します。

1 つの構成ファイル内で配列として参照される複数の構成ファイルの図。

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')"
  }
}