Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Построителю данных требуется по крайней мере один файл конфигурации. Этот файл на основе JSON определяет настройку API, от параметров среды до определений сущностей. Он начинается со $schema свойства, которое включает проверку схемы для остальной части файла.
Свойства верхнего уровня
| Property | Description |
|---|---|
| $schema | URI схемы JSON для этой конфигурации. |
| источник данных | Объект, содержащий параметры подключения к базе данных. |
| файлы источника данных | Массив других путей к файлу конфигурации. |
| runtime | Объект, настраивающий поведение среды выполнения. |
| entities | Объект, определяющий все сущности, предоставляемые с помощью REST или GraphQL. |
| autoentities | Объект, определяющий правила на основе шаблонов, которые автоматически предоставляют соответствующие объекты базы данных в качестве сущностей (только MSSQL). |
| azure-key-vault | Конфигурация Azure Key Vault для управления секретами. |
Свойства источника данных
| Property | Description |
|---|---|
| источник данных | Объект, содержащий параметры подключения к базе данных. |
| тип data-source.database | Тип базы данных, используемый в серверной части (mssql, postgresql, mysql, cosmosdb_nosql, cosmosdb_postgresql). |
| data-source.connection-string | Строка подключения для выбранного типа базы данных. |
| data-source.options | Параметры для конкретной базы данных и дополнительные параметры. |
| data-source.health | Конфигурация проверки работоспособности источника данных. |
| файлы источника данных | Массив других путей к файлу конфигурации. |
Свойства среды выполнения
| Property | Description |
|---|---|
| runtime | Объект, настраивающий поведение среды выполнения. |
| runtime.pagination | Параметры разбиения на страницы для ответов API. |
| runtime.rest | Глобальная конфигурация REST API. |
| runtime.graphql | Глобальная конфигурация API GraphQL. |
| runtime.cache | Конфигурация кэширования глобальных ответов. |
| runtime.compression | Конфигурация сжатия http-ответа. |
| runtime.mcp | Глобальная конфигурация протокола контекста модели (MCP). |
| runtime.telemetry | Конфигурация телеметрии, ведения журнала и мониторинга. |
| runtime.health | Конфигурация глобальной проверки работоспособности. |
Свойства сущностей
| Property | Description |
|---|---|
| entities | Объект, определяющий все сущности, предоставляемые с помощью REST или GraphQL. |
| entity.entity-name.source | Сведения об источнике базы данных для сущности. |
| entity.entity-name.rest | Конфигурация REST API для сущности. |
| entity.entity-name.graphql | Конфигурация API GraphQL для сущности. |
| entity.entity-name.permissions | Разрешения и управление доступом для сущности. |
| entity.entity-name.relationships | Связи с другими сущностями. |
| entity.entity-name.cache | Конфигурация кэширования на уровне сущности. |
| entity.entity-name.health | Конфигурация проверки работоспособности на уровне сущностей. |
| entity.entity-name.mcp | Конфигурация MCP на уровне сущности. |
| entity.entity-name.fields | Метаданные полей, псевдонимы и обозначения первичных ключей. |
| entity.entity-name.description | Описание сущности, доступной для чтения человеком. |
Schema
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
$root |
$schema |
string | ✔️ Да | None |
Каждый файл конфигурации начинается со $schema свойства, указывая схему JSON для проверки.
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 | Type | Required | Default |
|---|---|---|---|---|
$root |
data-source-files |
массив строк | ❌ Нет | None |
Построитель данных поддерживает несколько файлов конфигурации, а один — в качестве параметров управления файлами runtime верхнего уровня. Все конфигурации используют одну и ту же схему JSON, разрешая runtime параметры в любом или каждом файле без ошибок. Разделение сущностей для лучшей организации.
Format
{
"data-source-files": [ "<string>" ]
}
Несколько правил конфигурации
- Каждый файл конфигурации должен содержать свойство
data-source. - Каждый файл конфигурации должен содержать
entitiesсвойство (илиautoentities). - Конфигурация верхнего уровня должна включать
runtime. - Дочерние конфигурации могут включать в себя
runtime, но построитель API данных игнорирует его. - Дочерние файлы конфигурации могут включать собственные дочерние файлы.
- Файлы конфигурации можно упорядочить в вложенные папки.
- Имена сущностей должны быть уникальными во всех файлах конфигурации.
- Связи между сущностями в разных файлах конфигурации не поддерживаются.
Examples
{
"data-source-files": [
"dab-config-2.json",
"my-folder/dab-config-3.json",
"my-folder/my-other-folder/dab-config-4.json"
]
}
Автоматическое заполнение
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
$root |
autoentities |
объект | ❌ Нет | None |
В autoentities этом разделе определяются правила на основе шаблонов, которые автоматически предоставляют соответствующие объекты базы данных в виде сущностей DAB при запуске. Каждый ключ в объекте — это именованное определение, содержащее шаблоны, шаблон и разрешения.
Это важно
Автоматическое использование в настоящее время поддерживает только источники данных 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 | Type | Required | Default | Description |
|---|---|---|---|---|
patterns |
объект | ✔️ Да | None | Определяет правила включения, исключения и именования. |
patterns.include |
массив строк | ❌ Нет | ["%.%"] |
Шаблоны MSSQL LIKE для объектов, которые необходимо включить. |
patterns.exclude |
массив строк | ❌ Нет | null |
Шаблоны MSSQL LIKE для исключения объектов. |
patterns.name |
string | ❌ Нет | "{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 |
string | ❌ Нет | "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) и предоставляет read доступ к anonymous роли.
Tip
Используется dab auto-config для создания определений автоентий из интерфейса командной строки и dab auto-config-simulate предварительного просмотра того, какие объекты соответствуют перед фиксацией изменений. Дополнительные сведения см. в новых возможностях версии 2.0.
Azure Key Vault
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
$root |
azure-key-vault |
объект | ❌ Нет | None |
Настраивает интеграцию Azure Key Vault для управления секретами. При наличии endpoint свойства требуется.
Вложенные свойства
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
azure-key-vault |
endpoint |
string | ✔️ Да | None |
azure-key-vault |
retry-policy |
объект | ❌ Нет | None |
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
azure-key-vault.retry-policy |
mode |
перечисление (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')"
}
}