Параметры конфигурации для автоматического создания сущностей на основе правил сопоставления шаблонов.
Autoentities — это одноранговый узел entities в разделе, когда autoentities он присутствует, entities больше не требуется. Схема разрешает либо autoentities (или и то, и entities другое). Если оба имеются, явно определенные сущности имеют приоритет над autoentities совпадениями с одинаковым именем.
Подсказка
Используется dab auto-config для создания и обновления autoentities определений из интерфейса командной строки и dab auto-config-simulate предварительного просмотра того, какие объекты соответствуют перед фиксацией изменений.
Patterns
Template
Разрешения
{
"autoentities": {
"<definition-name>": {
"patterns": {
"include": [ "<string>" ], // default: ["%.%"]
"exclude": [ "<string>" ], // default: null
"name": "<string>" // default: "{schema}_{object}"
},
"template": {
"rest": { "enabled": <boolean> }, // default: true
"graphql": { "enabled": <boolean> }, // default: true
"mcp": { "dml-tools": <boolean> }, // default: true
"health": { "enabled": <boolean> }, // default: true
"cache": {
"enabled": <boolean>, // default: false
"ttl-seconds": <integer>, // default: null
"level": "<string>" // default: "L1L2"
}
},
"permissions": [
{
"role": "<string>",
"actions": [ { "action": "<string>" } ]
}
]
}
}
}
Имя определения (autoentities)
| Родитель |
Недвижимость |
Тип |
Обязательный |
По умолчанию |
autoentities |
<definition-name> |
объект |
✔️ Да |
Нет |
Каждый ключ в объекте autoentities — это именованное определение. Имя учитывает регистр и служит логическим идентификатором. Можно определить несколько определений с различными шаблонами и разрешениями.
{
"autoentities": {
"<definition-name>": { ... }
}
}
Пример
{
"autoentities": {
"public-tables": {
"patterns": { "include": [ "dbo.%" ] },
"permissions": [ { "role": "anonymous", "actions": [ { "action": "read" } ] } ]
},
"admin-tables": {
"patterns": { "include": [ "admin.%" ] },
"permissions": [ { "role": "authenticated", "actions": [ { "action": "*" } ] } ]
}
}
}
Шаблоны (определение-имя autoentities)
| Родитель |
Недвижимость |
Тип |
Обязательный |
По умолчанию |
autoentities.<definition-name> |
patterns |
объект |
❌ Нет |
Нет |
Определяет правила включения, исключения и именования, определяющие, какие объекты базы данных предоставляются как сущности.
Вложенные свойства
| Родитель |
Недвижимость |
Тип |
Обязательный |
По умолчанию |
autoentities.<definition-name>.patterns |
include |
массив строк |
❌ Нет |
["%.%"] |
autoentities.<definition-name>.patterns |
exclude |
массив строк |
❌ Нет |
null |
autoentities.<definition-name>.patterns |
name |
струна |
❌ Нет |
"{schema}_{object}" |
include— Один или несколько шаблонов MSSQL LIKE , указывающих, какие объекты базы данных необходимо включить. Используйте % в качестве подстановочного знака. Формат шаблона ( schema.object например, dbo.% соответствует всем объектам в схеме dbo ). Если null или опущено, по умолчанию используется ["%.%"] значение (все объекты во всех схемах).
exclude— Один или несколько шаблонов MSSQL LIKE , указывающие, какие объекты базы данных следует исключить. После включения шаблонов вычисляются шаблоны исключения. Если null или опущено, объекты не исключаются.
name— шаблон интерполяции, определяющий, как соответствующие объекты базы данных называются сущностями. Поддерживает {schema} и {object} заполнители. Каждое разрешенное имя должно быть уникальным для всех сущностей в конфигурации.
{
"autoentities": {
"<definition-name>": {
"patterns": {
"include": [ "<string>" ],
"exclude": [ "<string>" ],
"name": "<string>"
}
}
}
}
Пример
{
"autoentities": {
"my-def": {
"patterns": {
"include": [ "dbo.%" ],
"exclude": [ "dbo.internal%" ],
"name": "{schema}_{object}"
}
}
}
}
С этой конфигурацией каждая таблица в схеме dbo (за исключением совпадающих dbo.internal%) предоставляется как сущность. Таблица с именем dbo.Products становится сущностью с именем dbo_Products.
Name (patterns definition-name autoentities)
| Родитель |
Недвижимость |
Тип |
Обязательный |
По умолчанию |
autoentities.<definition-name>.patterns |
name |
струна |
❌ Нет |
"{schema}_{object}" |
Определяет, как соответствующие объекты базы данных называются сущностями. Поддерживает два заполнителя:
| Заполнитель |
Разрешение на |
{schema} |
Имя схемы соответствующего объекта базы данных |
{object} |
Имя объекта сопоставленной базы данных |
Если опущено, значение по умолчанию "{schema}_{object}" объединяет схему и имя объекта с символом подчеркивания, помогая сохранять созданные имена сущностей уникальными для схем.
{
"autoentities": {
"<definition-name>": {
"patterns": {
"name": "<string>"
}
}
}
}
Примеры
| Рисунок |
Объект Database |
Имя объекта |
"{schema}_{object}" |
dbo.Products |
dbo_Products |
"{object}" |
dbo.Products |
Products |
"{schema}.{object}" |
sales.Orders |
sales.Orders |
REST (имя autoentitiesопределения шаблона)
| Родитель |
Недвижимость |
Тип |
Обязательный |
По умолчанию |
autoentities.<definition-name>.template |
rest |
объект |
❌ Нет |
Нет |
Вложенные свойства
| Родитель |
Недвижимость |
Тип |
Обязательный |
По умолчанию |
autoentities.<definition-name>.template.rest |
enabled |
булевый |
❌ Нет |
true |
{
"autoentities": {
"<definition-name>": {
"template": {
"rest": { "enabled": <boolean> }
}
}
}
}
Пример
{
"autoentities": {
"my-def": {
"template": {
"rest": { "enabled": false }
}
}
}
}
GraphQL (имя autoentitiesопределения шаблона)
| Родитель |
Недвижимость |
Тип |
Обязательный |
По умолчанию |
autoentities.<definition-name>.template |
graphql |
объект |
❌ Нет |
Нет |
Вложенные свойства
| Родитель |
Недвижимость |
Тип |
Обязательный |
По умолчанию |
autoentities.<definition-name>.template.graphql |
enabled |
булевый |
❌ Нет |
true |
{
"autoentities": {
"<definition-name>": {
"template": {
"graphql": { "enabled": <boolean> }
}
}
}
}
Пример
{
"autoentities": {
"my-def": {
"template": {
"graphql": { "enabled": true }
}
}
}
}
MCP (имя autoentitiesопределения шаблона)
| Родитель |
Недвижимость |
Тип |
Обязательный |
По умолчанию |
autoentities.<definition-name>.template |
mcp |
объект |
❌ Нет |
Нет |
Вложенные свойства
| Родитель |
Недвижимость |
Тип |
Обязательный |
По умолчанию |
autoentities.<definition-name>.template.mcp |
dml-tools |
булевый |
❌ Нет |
true |
Включает или отключает средства языка обработки данных MCP (DML) для всех соответствующих сущностей.
{
"autoentities": {
"<definition-name>": {
"template": {
"mcp": { "dml-tools": <boolean> }
}
}
}
}
Пример
{
"autoentities": {
"my-def": {
"template": {
"mcp": { "dml-tools": true }
}
}
}
}
Работоспособности (имя autoentitiesопределения шаблона)
| Родитель |
Недвижимость |
Тип |
Обязательный |
По умолчанию |
autoentities.<definition-name>.template |
health |
объект |
❌ Нет |
Нет |
Вложенные свойства
| Родитель |
Недвижимость |
Тип |
Обязательный |
По умолчанию |
autoentities.<definition-name>.template.health |
enabled |
булевый |
❌ Нет |
true |
{
"autoentities": {
"<definition-name>": {
"template": {
"health": { "enabled": <boolean> }
}
}
}
}
Пример
{
"autoentities": {
"my-def": {
"template": {
"health": { "enabled": true }
}
}
}
}
Кэш (имя autoentitiesопределения шаблона)
| Родитель |
Недвижимость |
Тип |
Обязательный |
По умолчанию |
autoentities.<definition-name>.template |
cache |
объект |
❌ Нет |
Нет |
Включает и настраивает кэширование ответов для всех сопоставленных сущностей.
Вложенные свойства
| Родитель |
Недвижимость |
Тип |
Обязательный |
По умолчанию |
autoentities.<definition-name>.template.cache |
enabled |
булевый |
❌ Нет |
false |
autoentities.<definition-name>.template.cache |
ttl-seconds |
целое число |
❌ Нет |
null |
autoentities.<definition-name>.template.cache |
level |
перечисление (L1 | L1L2) |
❌ Нет |
"L1L2" |
Свойство level определяет, какие уровни кэша используются:
| Ценность |
Описание |
L1 |
Только кэш в памяти. Самый быстрый, но не общий доступ между экземплярами. |
L1L2 |
Кэш в памяти и распределенный (Redis) кэш. Общий доступ между масштабируемыми экземплярами. По умолчанию. |
Замечание
Если ttl-seconds оно null или опущено, оно наследует глобальное значение от runtime.cache.ttl-seconds.
{
"autoentities": {
"<definition-name>": {
"template": {
"cache": {
"enabled": <boolean>,
"ttl-seconds": <integer>,
"level": "<L1 | L1L2>"
}
}
}
}
}
Пример
{
"autoentities": {
"my-def": {
"template": {
"cache": {
"enabled": true,
"ttl-seconds": 30,
"level": "L1L2"
}
}
}
}
}
Разрешения (определение-имя autoentities)
| Родитель |
Недвижимость |
Тип |
Обязательный |
По умолчанию |
autoentities.<definition-name> |
permissions |
массив |
❌ Нет |
Нет |
Разрешения, применяемые к каждой сущности, соответствующей этому autoentities определению. Каждый элемент — это объект с role массивом и объектом actions .
Вложенные свойства
| Родитель |
Недвижимость |
Тип |
Обязательный |
По умолчанию |
autoentities.<definition-name>.permissions[] |
role |
струна |
✔️ Да |
Нет |
autoentities.<definition-name>.permissions[] |
actions |
массив или строка |
✔️ Да |
Нет |
autoentities.<definition-name>.permissions[].actions[] |
action |
струна |
✔️ Да |
Нет |
Поддерживаемые значения действия: create, read, updatedeleteили * (подстановочный знак расширяется до всех четырех действий CRUD).
{
"autoentities": {
"<definition-name>": {
"permissions": [
{
"role": "<string>",
"actions": [ { "action": "<string>" } ]
}
]
}
}
}
Пример
{
"autoentities": {
"my-def": {
"patterns": {
"include": [ "dbo.%" ]
},
"permissions": [
{ "role": "anonymous", "actions": [ { "action": "read" } ] },
{ "role": "authenticated", "actions": [ { "action": "*" } ] }
]
}
}
}
Полный пример
{
"autoentities": {
"my-def": {
"patterns": {
"include": [ "dbo.%" ],
"exclude": [ "dbo.internal%" ],
"name": "{schema}_{object}"
},
"template": {
"rest": { "enabled": true },
"graphql": { "enabled": true },
"mcp": { "dml-tools": true },
"health": { "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, MCP и проверки работоспособности, использует кэширование с 30-секундным временем жизни и предоставляет read доступ к anonymous роли.
Связанный контент