Домен (domain)

Описание

Элемент структуры данных, определяющий границы между данными внутри развернутой системы «Era».
Домены представляют собой иерархическое доменное дерево, где каждый дочерний домен наследует имя своего родительского домена.

Логика работы системы использует домены и принадлежащие им объекты при реализации функционала и определении доступа для отдельных пользователей. Любой объект, доступный снаружи через API, принадлежит какому-либо домену. В том числе любой пользователь системы принадлежит одному конкретному домену и может оперировать только данными внутри домена. Все данные внутри домена по умолчанию замкнуты. Та сущность, которая принадлежит одному домену, не может принадлежать другому домену. За редким исключением на вертикальной иерархии, домены, их пользователи, процессы и объекты не имеют доступа к данным друг друга.

Домены участвуют в распределении количественных лицензий по дереву. Каждый домен из переданных ему от родительского домена лицензий резервирует часть под свое использование, а остальные может передавать дочерним доменам.

Ограничения

  • Коллекция доступна в любом домене.

  • Лицензируется количественным параметром: одновременно расходуется лицензия на домены и на тип солюшена.

Поля

Структура сущности
{
  "id": uuid,
  "name": str,
  "solution": str,
  "dbdefaultconn": int,
  "dbhost": str,
  "dbport": int,
  "dblogin": str,
  "dbpwd": str,
  "lic": object,
  "opts": {
    "title": str,
    "comment": str,
    "dbuser": str,
    "isblocked": bool,
    "script_pause_between_components": int,
    "script_limit_component_count": int,
    "script_limit_site_count": int,
    "script_duration_sec": int,
    "script_allow_global_variables": bool
  },
  "ext": {
    "ct": date,
    "lwt": date
  }
}
Table 1. Поля
Спецификация Описание

Поле: id
Режим: inout
Тип: uuid
По умолчанию: generated

Идентификатор. Может быть задан при создании, иначе генерируется системой.

Поле: name
Режим: in
Тип: str
По умолчанию: required

Имя домена. Должно соответствовать имени родительского домена (при особых условиях за исключением доменов первого уровня). Подчиняется правилам FQDN, но имеет запрет на буквы в верхнем регистре. Допускаются следующие символы: [a-z0-9_-.]

Поле: solution
Режим: in
Тип: str
По умолчанию: required

Тип домена (солюшен).
Определяет состав метаданных и ограничения продуктового слоя на домен.
Количество солюшенов каждого типа ограничивается лицензией.

Поле: lic
Режим: in
Тип: object
По умолчанию: generated

Состав количественных лицензий, выдаваемых дочернему домену из числа свободных лицензий текущего домена.
Доступный объем свободных лицензий каждого типа в домене определяется как X = Total – Owned – Sub, где Total – число переданных лицензий из родительского домена, Owned – число зарезервированных лицензий под собственные нужды, Sub – число переданных лицензий дочерним доменам.
Подробнее про лицензии.

Поле: dbdefaultconn
Режим: in
Тип: int
По умолчанию: 1

Служебное поле. Не используется.

Поле: dbhost
Режим: in
Тип: str
По умолчанию: empty

Служебное поле. Не используется.

Поле: dbport
Режим: in
Тип: int
По умолчанию: empty

Служебное поле. Не используется.

Поле: dblogin
Режим: in
Тип: str
По умолчанию: empty

Служебное поле. Не используется.

Поле: dbpwd
Режим: in
Тип: str
По умолчанию: empty

Служебное поле. Не используется.

Поле: opts
Режим: in
Тип: object
Составное поле

Поле: opts.title
Режим: in
Тип: str
По умолчанию: empty

Произвольный заголовок

Поле: opts.comment
Режим: in
Тип: str
По умолчанию: empty

Произвольный комментарий

Поле: opts.dbuser
Режим: in
Тип: str
По умолчанию: "none"

Уровень прав, передаваемых домену на создание временных учетных записей для доступа к собственным БД. Возможные значения: none, read, write.

Поле: opts.isblocked
Режим: in
Тип: bool
По умолчанию: false

Включение/выключение домена

Поле: opts.script_pause_between_components
Режим: in
Тип: int
По умолчанию: 0

Ограничение на выполнение сценариев: пауза между компонентами сценария, в миллисекундах.

Поле: opts.script_limit_component_count
Режим: in
Тип: int
По умолчанию: -1

Ограничение на выполнение сценариев: максимальное количество компонентов, исполняемых в обработчике сценариев.

Поле: opts.script_duration_sec
Режим: in
Тип: int
По умолчанию: -1

Ограничение на выполнение сценариев: максимальная продолжительность выполнения сценария внутри домена, в секундах.

Поле: opts.script_limit_site_count
Режим: in
Тип: int
По умолчанию: -1

(Не используется) Ограничение на выполнение сценариев: максимальное количество одновременно исполняемых сценариев в домене на одном сайте.

Поле: opts.script_allow_global_variables
Режим: in
Тип: bool
По умолчанию: true

(Не используется) Ограничение на выполнение сценариев: допускается ли использовать внутри домена глобальные переменные.
В случае выключения их невозможно выбрать в приложении редактора сценариев.

Поле: ext
Режим: inout
Тип: object
Составное поле

Позволяет расширять состав произвольными ключами и значениями

Поле: ext.ct
Режим: out
Тип: date
По умолчанию: generated

Время создания объекта

Поле: ext.lwt
Режим: out
Тип: date
По умолчанию: generated

Время последней модификации объекта

См. также

Логические роли

  • mdc и sdc управляют доменным деревом.