Autoentities

Параметры конфигурации для автоматического создания сущностей на основе правил сопоставления шаблонов. Autoentities — это одноранговый узел entities в разделе, когда autoentities он присутствует, entities больше не требуется. Схема разрешает либо autoentities (или и то, и entities другое). Если оба имеются, явно определенные сущности имеют приоритет над autoentities совпадениями с одинаковым именем.

Подсказка

Используется dab auto-config для создания и обновления autoentities определений из интерфейса командной строки и dab auto-config-simulate предварительного просмотра того, какие объекты соответствуют перед фиксацией изменений.

Patterns

Недвижимость Описание
patterns.include Шаблоны MSSQL LIKE для объектов для включения
patterns.exclude Шаблоны MSSQL LIKE для исключения объектов
patterns.name Шаблон интерполяции для именования сущностей

Template

Недвижимость Описание
template.rest.enabled Включение REST для сопоставленных сущностей
template.graphql.enabled Включение GraphQL для сопоставленных сущностей
template.mcp.dml-tools Включение средств языка обработки данных (DML) для сопоставленных сущностей (MCP)
template.health.enabled Включение проверок работоспособности для сопоставленных сущностей
template.cache.enabled Включение кэширования ответов для сопоставленных сущностей
template.cache.ttl-seconds Время в кэше в секундах
template.cache.level Уровень кэша: L1 или L1L2

Разрешения

Недвижимость Описание
permissions[].role Строка имени роли
permissions[].actions Одно или несколько: create, , readupdatedeleteили*

Обзор формата

{
  "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 роли.