Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Автоматическая настройка позволяет определять шаблоны, которые автоматически находят и предоставляют объекты базы данных в конфигурации. Автоматическая настройка может значительно сократить файл конфигурации, особенно если объекты и разрешения прогнозируются. Кроме того, повторно оцените и примените шаблоны при каждом запуске DAB, поэтому новые таблицы, соответствующие шаблону, autoentities автоматически добавляются в виде сущностей без изменений конфигурации вручную.
При наличии autoentities в конфигурации entities раздел не обязателен. Для схемы требуется либо autoentities, либо entities (или оба).
Подсказка
Используйте команду dab auto-config для создания определений autoentities из интерфейса командной строки и команду dab auto-config-simulate для предварительного просмотра сопоставленных объектов перед фиксацией изменений. Справочник по конфигурации JSON см. в разделеAutoentities "Конфигурация".
Определения
Каждое autoentities определение — это именованный блок конфигурации, который объединяет набор паттернов с шаблоном и разрешениями. Имя определения учитывает регистр и выступает в качестве логического идентификатора. Вы можете иметь несколько определений, каждый из которых предназначен для различных наборов объектов базы данных и разрешений.
{
"autoentities": {
"my-def-name": {
"patterns": {
"include": [ "dbo.table1", "dbo.table2" ],
"exclude": [ ],
"name": "{schema}_{object}"
},
"template": {
"rest": { "enabled": true },
"graphql": { "enabled": true },
"mcp": { "dml-tools": true },
"health": { "enabled": true },
"cache": { "enabled": false }
},
"permissions": [
{
"role": "anonymous",
"actions": [ "*" ] }
]
}
}
}
Замечание
Autoentities В настоящее время поддерживаются только источники данных MSSQL .
Patterns
Шаблоны определяют, какие объекты базы данных обнаруживаются и как они называются сущностями. DAB оценивает шаблоны с помощью синтаксиса T-SQL LIKE в соответствии с schema.object форматом каждого объекта базы данных.
Включение и исключение
Массив include указывает, какие объекты нужно сопоставить. Используйте % в качестве подстановочного знака. Например, dbo.% соответствует всем объектам схемы dbo . Значение по умолчанию — %.% (все объекты во всех схемах).
Так как include это массив строк, можно объединить несколько шаблонов для назначения различных схем, префиксов или даже списка определенных таблиц по имени. При перечислении отдельных таблиц всегда включайте имя схемы (например, dbo.Products не просто Products).
Включение примеров
| Рисунок | Совпадения | Описание |
|---|---|---|
%.% |
Все объекты во всех схемах | По умолчанию. Соответствует всему. |
dbo.% |
Все объекты в схеме dbo |
Подстановочный символ для одной схемы. |
dbo.Product% |
dbo.Products, dbo.ProductDetailsи т. д. |
Префикс имени объекта в одной схеме. |
%.Product% |
dbo.Products, sales.ProductOrdersи т. д. |
Префикс имени объекта во всех схемах. |
dbo.Products |
Только dbo.Products |
Точное совпадение, без подстановочного знака. |
dbo.%
sales.%
|
Все объекты в dbo и sales |
Комбинация нескольких шаблонов подстановочных знаков. |
dbo.Products
dbo.Orders
dbo.Customers
|
Только эти три таблицы | Явный список таблиц. Обязательное имя схемы. |
dbo.%
sales.Invoices
|
Все dbo объекты плюс sales.Invoices |
Сочетание подстановочных знаков и конкретной таблицы. |
Массив exclude удаляет объекты из соответствующего набора. Шаблоны исключения оцениваются после шаблонов включения. Шаблон исключения полезен для исключения внутренних или промежуточных таблиц из доступа к вашему API. Например include, exclude представляет собой строковый массив и поддерживает несколько шаблонов.
Исключить примеры
| Рисунок | Исключает | Описание |
|---|---|---|
dbo.internal% |
dbo.internalLogs, dbo.internalAuditи т. д. |
Удалите объекты с префиксом имени. |
%.%_staging |
dbo.Orders_staging, sales.Items_stagingи т. д. |
Удалите промежуточные таблицы во всех схемах. |
dbo.__migration% |
dbo.__migrationHistory, и т.д. |
Удалите таблицы отслеживания миграции. |
dbo.sysdiagrams |
Только dbo.sysdiagrams |
Удалите отдельный объект. |
%.vw_% |
dbo.vw_Summary, reports.vw_Dailyи т. д. |
Удаление представлений путем соглашения об именовании. |
dbo.Logs
dbo.AuditTrail
|
Только эти две таблицы | Исключите определенные таблицы по имени. |
Командная строка
dab auto-config my-def \
--patterns.include "dbo.%" \
--patterns.exclude "dbo.internal%"
Несколько шаблонов разделены пробелами в интерфейсе командной строки:
dab auto-config my-def \
--patterns.include "dbo.Products" "dbo.Orders" "dbo.Customers" \
--permissions "anonymous:read"
Итоговая конфигурация
{
"autoentities": {
"my-def": {
"patterns": {
"include": [ "dbo.%" ],
"exclude": [ "dbo.internal%" ]
}
}
}
}
В этом примере все объекты в схеме dbo включаются за исключением объектов, имена которых начинаются с internal.
Именование сущностей
Свойство name — это шаблон интерполяции, который определяет, как соответствующие объекты базы данных называются сущностями. Он поддерживает {schema} и {object} заполнители. Кроме того, можно включить строки в буквальном виде вместе с заполнителями. По умолчанию используется {schema}_{object} — схема базы данных и имя объекта объединяются с помощью символа подчеркивания.
Примеры
В следующих примерах предполагается объект dbo.Productsбазы данных:
| Рисунок | Полученное имя сущности | Описание |
|---|---|---|
{schema}_{object} |
dbo_Products |
По умолчанию. Схема и объект, разделенные подчеркиванием. |
{object} |
Products |
Только имя объекта. |
{schema}-{object} |
dbo-Products |
Схема и объект, разделенные дефисом. |
{schema}.{object} |
dbo.Products |
Схема и объект, разделенные точкой. |
api_{object} |
api_Products |
Литеральный префикс с именем объекта. |
{object}_entity |
Products_entity |
Имя объекта с литеральным суффиксом. |
tbl_{schema}_{object} |
tbl_dbo_Products |
Префикс литерала с обоими заполнителями. |
{schema}_{object}_v1 |
dbo_Products_v1 |
Оба заполнителя с суффиксом дословной версии. |
{object}Resource |
ProductsResource |
Имя объекта с литеральным суффиксом, без разделителя. |
Использование {schema} в шаблоне особенно полезно при включении нескольких схем и необходимости избегать конфликтов именования.
Командная строка
dab auto-config my-def \
--patterns.include "dbo.%" \
--patterns.name "{schema}_{object}"
Итоговая конфигурация
{
"autoentities": {
"my-def": {
"patterns": {
"include": [ "dbo.%" ],
"name": "{schema}_{object}"
}
}
}
}
Template
Шаблон определяет конфигурацию по умолчанию, применяемую к каждой сущности, соответствующей определению. Параметры шаблона охватывают включенные протоколы API и поведение кэширования. Любой параметр, который вы опустите, использует значение по умолчанию.
Протоколы API
Вы можете включить или отключить REST, GraphQL и протокол контекста модели (MCP) независимо для сопоставленных сущностей.
Командная строка
dab auto-config my-def \
--patterns.include "dbo.%" \
--template.rest.enabled true \
--template.graphql.enabled true \
--template.mcp.dml-tools true
Итоговая конфигурация
{
"autoentities": {
"my-def": {
"template": {
"rest": { "enabled": true },
"graphql": { "enabled": true },
"mcp": { "dml-tools": true }
}
}
}
}
| Недвижимость | По умолчанию | Описание |
|---|---|---|
rest.enabled |
true |
Обеспечить доступ к конечным точкам REST для сопоставленных сущностей. |
graphql.enabled |
true |
Предоставьте операции GraphQL для соответствующих сущностей. |
mcp.dml-tools |
true |
Предоставление средств языка обработки данных MCP (DML) для сопоставленных сущностей. |
Медицинские проверки
Проверки работоспособности включены по умолчанию. При включении DAB включает соответствующие сущности в конечную точку проверки работоспособности, проверяя подключение к базе данных для каждой сущности. Установите template.health.enabled в false, чтобы исключить сопоставленные сущности из проверок работоспособности.
Командная строка
dab auto-config my-def \
--patterns.include "dbo.%" \
--template.health.enabled true
Итоговая конфигурация
{
"autoentities": {
"my-def": {
"template": {
"health": { "enabled": true }
}
}
}
}
Кэширование
Кэширование ответов можно включить для всех соответствующих сущностей с настраиваемым временем жизни (TTL) и уровнем кэша.
Командная строка
dab auto-config my-def \
--patterns.include "dbo.%" \
--template.cache.enabled true \
--template.cache.ttl-seconds 30 \
--template.cache.level L1L2
Итоговая конфигурация
{
"autoentities": {
"my-def": {
"template": {
"cache": { "enabled": true, "ttl-seconds": 30, "level": "l1l2" }
}
}
}
}
| Недвижимость | По умолчанию | Описание |
|---|---|---|
cache.enabled |
false |
Включите кэширование ответов для сопоставленных сущностей. |
cache.ttl-seconds |
null |
Время жизни кэша в секундах. |
cache.level |
L1L2 |
Уровень кэша. Поддерживаемые значения: L1, L1L2. |
Разрешения
Разрешения определяют управление доступом на основе ролей, примененное к каждой сущности, соответствующей определению. Каждая запись разрешений указывает роль и действия, разрешенные для этой роли.
Командная строка
dab auto-config my-def \
--patterns.include "dbo.%" \
--permissions "anonymous:read"
Итоговая конфигурация
{
"autoentities": {
"my-def": {
"permissions": [
{ "role": "anonymous", "actions": [ { "action": "read" } ] }
]
}
}
}
Поддерживаемые действия включают create, read, updatedeleteи * (все). Можно назначить несколько ролей с различными наборами действий.
Полный пример конфигурации
Полное autoentities определение, объединяющее паттерны, шаблоны и разрешения.
Командная строка
dab auto-config my-def \
--patterns.include "dbo.%" \
--patterns.exclude "dbo.internal%" \
--patterns.name "{schema}_{object}" \
--template.rest.enabled true \
--template.graphql.enabled true \
--template.cache.enabled true \
--template.cache.ttl-seconds 30 \
--template.cache.level L1L2 \
--permissions "anonymous:read"
Итоговая конфигурация
{
"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, кроме объектов, начинающихся с internal, именует их с помощью формата schema_object, включает REST и GraphQL, кэширует ответы в течение 30 секунд и предоставляет анонимный доступ на чтение.
Симуляция
Перед фиксацией autoentities шаблонов в конфигурации можно имитировать результаты, чтобы просмотреть, какие объекты базы данных будут сопоставлены. Симуляция подключается к базе данных, обрабатывает каждый шаблон и предоставляет информацию о соответствующих объектах без записи изменений. Выходные данные моделирования показывают совпадения каждого определения с именами сущностей и соответствующими объектами базы данных.
Подсказка
Используется dab auto-config-simulate для запуска имитаций из интерфейса командной строки. См. справку по командам для всех опций.
Командная строка (консоль)
dab auto-config-simulate \
--config ./dab-config.json
Результирующий вывод консоли
AutoEntities Simulation Results
Filter: my-def
Matches: 3
dbo_Products → dbo.Products
dbo_Inventory → dbo.Inventory
dbo_Pricing → dbo.Pricing
Вы также можете экспортировать результаты моделирования в CSV-файл для дальнейшего анализа.
Командная строка (файл)
dab auto-config-simulate \
--config ./dab-config.json \
--output results.csv
Итоговый CSV-вывод
filter_name,entity_name,database_object
my-def,dbo_Products,dbo.Products
my-def,dbo_Inventory,dbo.Inventory
my-def,dbo_Pricing,dbo.Pricing