Структура схемы домена
Ознакомьтесь с правилами нотации в схеме домена. Это позволит присваивать корректные названия создаваемым элементам схемы. Эти названия будут отображаться в интерфейсе системы. |
Структура метаданных
Запись метаданных включает следующие поля:
Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарий |
---|---|---|---|---|---|
|
да |
Уникальный идентификатор схемы. |
строка |
Полное имя (FQDN) домена, который описывается схемой. |
|
|
да |
Тип элемента экспертизы. |
перечисление |
Всегда устанавливается значение |
|
|
да |
Версия схемы домена в формате Semantic Versioning. |
строка |
||
|
да |
Название схемы домена. |
строка |
Допустимы строчные и прописные буквы латинского и кириллического алфавитов ( |
|
|
нет |
Пустой массив |
Теги для классификации и поиска схемы в системе. |
массив строк |
|
|
нет |
Пустая строка |
Описание схемы домена. |
строка |
|
|
нет |
Пустая строка |
Имя и контактные данные автора. |
строка |
|
|
нет |
Теги для классификации и поиска схемы в системе. |
строка |
Структура entities
Поле entities
представляет собой массив записей сущностей, входящих в состав домена. В запись сущности необходимо включить поле attributes
, содержащее описание массива атрибутов сущности.
Запись сущности включает следующие поля:
Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарии |
---|---|---|---|---|---|
|
да |
Уникальный идентификатор сущности. |
Data ID |
Подставляется вместо поля |
|
|
нет |
Пустая строка |
Название сущности. Подставляется вместо поля |
строка |
|
|
нет |
Если не указано, используются идентификаторы объекта, домена и сущности. См. раздел о работе с полем. |
Комбинация атрибутов сущности для отображения в интерфейсе (лейбл). |
шаблон |
Поиск в домене осуществляется по атрибутам сущности, ссылки на которые добавлены в этом поле. В шаблоне нельзя ссылаться на поле См. раздел о работе с полем. |
|
нет |
Пустая строка |
Описание сущности. |
строка |
Не выводится в представлениях. Отображается на визуализации схемы домена. |
|
нет |
|
Вид сущности. |
перечисление |
В текущей реализации системой всегда обрабатываются сущности с видом |
|
нет |
Пустой массив |
Описание атрибутов сущности. |
массив |
См. описание поля |
|
нет |
Пустой массив |
Описание правил сортировки, которые определяют наборы атрибутов, по которым будет осуществлена сортировка списка объектов. |
массив |
См. описание поля |
|
нет |
Пустой массив |
Описание правил идентификации объектов, поступающих в систему. |
массив |
См. раздел о работе с полем. |
|
нет |
Пустой массив |
Описание правил реконсиляции объектов, поступающих в систему. |
массив |
См. раздел о работе с полем. |
|
нет |
Пустой массив |
Проекция, позволяющая посредством API в одном запросе получить атрибуты для отображения данных другой сущности. |
массив |
См. описание поля |
|
нет |
Пустой массив |
Описание набора атрибутов, по которым будет осуществлен поиск в списке объектов. |
массив |
См. описание поля |
|
нет |
Пустая строка |
Ссылка на сущность, которая является родителем для текущей сущности. |
Data ID Ref |
См. описание поля |
Схема
Вариант схемы записи, согласно которой формируется описание сущности в схеме:
entities:
# Уникальный идентификатор сущности.
- id:
# Название сущности.
name:
# Описание лейбла сущности для представлений.
label:
# Описание сущности.
description:
# Перечисление элементов массива атрибутов для сущности.
attributes:
Структура label
Поле label
задается в схеме домена опционально, через указание шаблона. Если поле задано, то в представлениях сущности система будет использовать в качестве отображаемых названий объектов значения атрибута или атрибутов объектов, указанных в шаблоне.
Поле label
со ссылкой на один атрибут задается в следующем формате: label: "{<attribute>}"
. Здесь <attribute>
— ссылка на атрибут сущности, позволяющий идентифицировать объект в представлении.
Если атрибут, на который вы ссылаетесь в поле label
, недостаточно информативен для однозначной идентификации объекта, в поле label
можно сослаться на несколько атрибутов. Также в это поле можно добавлять поясняющие комментарии.
Если поле label
не задано, то в представлении для отображения названия объекта используются идентификаторы объекта, домена и сущности: {id} ({domainId}/{entityId})
.
Пример
В домене assets.example.com задана сущность Оборудования с идентификатором asset. Для сущности Оборудования не задано поле label
.
В представлении объекта с UUID, равным ajdmbfdd, вместо названия объекта Оборудования будет отображаться следующая связка: ajdmbfdd (assets.example.com/asset)
Рекомендуется задавать поле label в описании сущности, чтобы облегчить пользователю работу с представлениями.
|
Структура attributes
(сущность)
Поле attributes
представляет собой массив записей атрибутов определенной сущности.
Запись атрибута в массиве описывается следующими полями:
Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарии |
---|---|---|---|---|---|
|
да |
Уникальный идентификатор атрибута |
Data ID |
||
|
нет |
Пустая строка |
Название атрибута |
строка |
|
|
нет |
Пустая строка |
Описание атрибута |
строка |
Не выводится в представлениях. Отображается в схеме домена. |
|
да |
Тип данных атрибута |
перечисление, Data ID Ref или FQID |
Можно указывать как встроенный тип данных, так и идентификатор пользовательского типа данных. Если пользовательский тип данных определен в другом домене, нужно указывать в этом поле FQID пользовательского типа данных. |
|
|
да (для |
Ссылка на сущность |
Data ID Ref или FQID |
Поле доступно только для типа данных |
|
|
Пустой массив |
Валидация атрибута |
массив |
Для каждого типа данных задается свой набор ограничителей с набором полей. См. описание поля |
|
|
нет |
|
Возможность редактирования атрибута |
булево |
Доступные значения:
|
|
да (для |
Ссылка на расчет, результат которого будет являться значением атрибута |
объект |
Поле доступно только для типа данных |
Схема описания атрибута
attributes:
# Уникальный идентификатор атрибута.
- id:
# Название атрибута.
name:
# Описание атрибута.
description:
# Тип данных атрибута.
dataType:
# Массив описаний валидации атрибута.
constraints:
# Первое описание валидации.
- kind:
# Второе описание валидации.
- kind:
Структура constraints
В поле constraints
задаются виды валидации атрибута.
Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарии |
---|---|---|---|---|---|
|
да |
Описание валидации |
массив |
||
|
нет |
Пустая строка |
Сообщение об ошибке |
строка |
Сообщение об ошибке при срабатывании ограничителя на входящих данных. |
|
нет |
|
Минимальное возможное количество символов в атрибуте |
целое число |
Поле применимо только для следующих видов ограничителей:
|
|
нет |
231-1 (для числа символов) 4 МБ (для размера файла) |
|
целое число |
Поле применимо только для следующих видов ограничителей:
|
|
нет |
Регулярное выражение |
строка |
Поле применимо только для ограничителя |
|
|
нет |
Допустимые типы файлов |
строка |
Поле применимо только для ограничителя |
Доступные значения в поле kind
Доступны следующие типы валидации:
-
required
— обязательный атрибут, то есть значение атрибута не должно быть пустым. -
range
— ограничения числового значения (используется только для числовых типов данных:Integer
,Decimal
,Float
). -
length
— ограничение количества символов в атрибуте. Необходимо указать максимальное и/или минимальное количество символов в поляхmax
иmin
. -
regexp
— задание текстового шаблона в формате регулярного выражения. Необходимо задать выражение в полеregexp
. -
size
— ограничение размера файла. Необходимо указать минимальный и/или максимальный объем файла в поляхmin
иmax
. -
mime_types
— ограничение типов для загрузки файлов в это поле. Необходимо указать допустимые типы файлов.
Структура calculation
В поле calculation
указывается ссылка на расчет, результат которого будет являться значением атрибута.
Поле | Обязательное поле | Описание | Тип данных |
---|---|---|---|
|
да |
Идентификатор схемы, в которой определен требуемый расчет |
строка |
|
да |
Идентификатор расчета |
строка |
calculation
для сущности Требование (requirement
)entities:
- id: Requirement
attributes:
- id: assessmentIndex
name: Результат расчета индекса соответствия
dataType: Calculation
calculation:
schemaId: evo.compliance.audit.calculations
id: audit_assessment_compliance_index
Правила сортировки (sorting
)
Поле sorting
представляет собой массив записей, описывающих правила сортировки атрибутов сущности.
Запись правила сортировки включает следующие поля:
Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарии |
---|---|---|---|---|---|
|
да |
Уникальный идентификатор правила сортировки из описания сущности |
Data ID |
||
|
Название правила сортировки |
строка |
|||
|
да |
Сортируемые атрибуты, перечисленные в последовательности сортировки |
массив |
См. описание поля |
|
|
нет |
Параметр, определяющий, будут ли индексироваться перечисленные атрибуты |
булево |
|
Структура by
Поле by
представляет собой запись правила сортировки.
Запись правила сортировки включает следующие поля:
Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарии |
---|---|---|---|---|---|
|
да |
Ссылка на атрибут, по которому производится сортировка. |
Data ID Ref |
Если в правиле указана ссылка на атрибут с типом данных |
|
|
да |
|
Порядок сортировки |
перечисление |
Доступные значения:
|
Структура identification
В схеме домена можно опционально задавать правила идентификации и реконсиляции. Если правило отсутствует, каждый полученный объект считается уникальным и записывается в базу данных отдельно.
Система обрабатывает входящие данные пакетами. Правила работают с уже нормализованными данными. После того как вы измените параметры правил и в систему поступят новые данные, измененные правила будут применяться как к данным, поступившим в систему после сохранения изменений, так и к данным, уже хранившимся в базе данных.
Правила идентификации содержат ссылки на атрибут или набор атрибутов сущности. По этим атрибутам данные об объекте, получаемые из источников, проверяются на уникальность.
Алгоритм работы правила:
-
Система ищет дубликаты объектов во входящих данных и отфильтровывает их.
-
После отработки фильтрации дубликатов система сравнивает объекты с объектами, хранящимися в БД.
-
Если система находит в БД дубликаты объекта, они будут удалены. Остается по одному экземпляру объекта на стороне входящих данных и на стороне БД.
-
Система записывает данные о полученных объектах в БД
По итогам идентификации система выявляет дубликаты объектов, который либо отфильтровываются, либо агрегируются — в зависимости от правил реконсиляции.
Логика формирования правил идентификации:
-
В правиле можно связывать атрибуты логическими операторами AND/OR, а также задавать вложенные условия. Допускается не более трех уровней вложенности.
-
На одном уровне вложенности можно одновременно использовать разные логические операторы.
-
Если в блоке задано несколько правил, между ними работает логика OR.
-
Правила располагаются в порядке убывания приоритета.
При обработке входящих данных можно дополнительно использовать фильтрацию данных с помощью правила на языке преобразования данных VRL (Vector Remap Language). VRL-правило фильтрации описывается в рамках правила идентификации в поле filter
.
VRL-правило позволяет выполнить следующие действия:
-
Первичная дедупликация входящих данных. Данные сначала фильтруются согласно VRL-правилу, а затем дедуплицируются по атрибутам, заданным в правиле. Все найденные дубликаты перезаписываются объектом, который был идентифицирован первым во входящих данных.
-
Фильтрация данных, полученных из БД. Данные собираются на основе атрибутов, заданных в правиле, а затем фильтруются с помощью VRL-правила.
Поле identification
представляет собой массив правил идентификации.
Запись включает следующие поля:
Поле | Описание | Тип данных | Комментарий |
---|---|---|---|
|
Уникальный идентификатор правила (обязательное поле). |
строка |
|
|
Описание правила. |
массив |
См. описание поля |
|
Фильтрация входящих данных с помощью VRL-правила. |
массив |
Поле содержит команду на языке VRL, возвращающую ответ в булевом формате. |
Структура rule
Поле содержит массив ссылок на атрибуты, по которым происходит идентификация в рамках правила. Можно использовать до трех уровней вложений.
Запись включает следующие поля:
Поле | Обязательное поле | Описание | Тип данных | Комментарий |
---|---|---|---|---|
|
да |
Ссылка на атрибут, по которому происходит идентификация. |
строка |
|
|
нет |
Логический оператор И. |
строка |
Поле содержит массив ссылок на атрибуты, которые учитываются в правиле по логике И. Может использоваться на разных уровнях в правиле. |
|
нет |
Логический оператор ИЛИ. |
строка |
Поле содержит массив ссылок на атрибуты, которые учитываются в правиле по логике ИЛИ. Может использоваться на разных уровнях в правиле. |
Структура reconciliation
Поле reconciliation
представляет собой массив правил реконсиляции. Правила реконсиляции определяют набор атрибутов объектов, подчиняющихся логике агрегации, и набор источников, данные от которых будут учитываться при перезаписи значений атрибутов.
Если правило отсутствует, по умолчанию система будет перезаписывать значения атрибутов по мере поступления от источников в порядке очередности.
Для сущности нельзя определить правило реконсиляции, если не задано правило идентификации. |
Запись включает следующие поля:
Поле | Обязательное поле | Описание | Тип данных | Комментарий |
---|---|---|---|---|
|
нет |
Ссылка на атрибут и список приоритетных источников для этого атрибута |
строка |
См. описание поля |
|
да |
Массив записей источников для всех атрибутов сущности по умолчанию |
массив |
См. описание поля |
Логика задания источников в правилах реконсиляции
Для каждого атрибута в правиле задается список источников, которые считаются наиболее приоритетными при сборе данных по атрибуту. Идентификаторов источников в списке располагаются в порядке убывания приоритета.
Значение параметра "*" позволяет учитывать в правиле все источники, не указанные в правиле. Они будут иметь одинаково низкий приоритет по сравнению с указанными источниками.
Всегда указывайте значение параметра "*" в правиле в кавычках. |
Если значение параметра "*" не задано в правиле, данные для реконсиляции берутся только из указанного списка источников.
Для всех атрибутов, не указанных в правиле, нужно создать единое правило приоритетов с помощью параметра default
. Если нужно определить единую логику приоритизации источников для всех атрибутов сущности, задайте параметр default
без указания конкретных атрибутов.
Логика перезаписи значений атрибутов
Перезапись значений происходит после срабатывания правила идентификации. При этом система учитывает заданные правила реконсиляции. Если правила реконсиляции не задавались, используется логика, заданная в поле default
.
-
Данные из разных источников перезаписываются с учетом определенной в правиле приоритизации.
-
При обработке данных, поступивших в рамках одного запроса, учитываются самые последние полученные значения.
-
Если текущее значение не равно
null
и приоритет входящих данных не ниже приоритета текущих данных, данные перезаписываются. -
Значение не перезаписывается на
null
ни при каких условиях.
Структура attribute
Поле attribute
содержит ссылку на атрибут и массив записей источников, считающихся приоритетными для этого атрибута.
Запись включает следующие поля:
Поле | Обязательное поле | Описание | Тип данных | Комментарий |
---|---|---|---|---|
|
да |
Название приоритетного источника для атрибута |
массив |
Поле содержит массив значений поля Поле может принимать значения:
|
Структура default
Поле default
содержит массив записей источников, считающихся приоритетными для всех атрибутов сущности, не указанных отдельно.
Запись включает следующие поля:
Поле | Обязательное поле | Описание | Тип данных | Комментарий |
---|---|---|---|---|
|
да |
Название источника |
строка |
Поле может принимать значения:
|
Логика обработки пользовательских данных
Пользовательские данные обрабатываются точно также, как и данные, поступающие из других источников. После создания или редактирования объекта пользователем через UI сохраненные пользовательские данные будут обработаны правилами идентификации и реконсиляции. При настройке приоритетов источников в правиле реконсиляции можно назначить пользовательским данным определенный приоритет. Для этого нужно указать в качестве ID интеграции с источником значение users.
Структура projection
Проекция используется, если при определении атрибута текущей сущности необходимо сослаться в этом атрибуте на исходную сущность
и отображать ее данные в представлении. Для автоматического подбора дополнительных данных объекта исходной сущности при запросе
значения атрибута со ссылкой, в исходной сущности указывается проекция с перечислением всех необходимых атрибутов.
Проекция содержит массив записей избранных атрибутов исходной сущности и задается в поле projection
.
Запись проекции описывается следующими полями:
Поле | Обязательное поле | Описание | Тип данных |
---|---|---|---|
|
да |
Ссылка на атрибут |
Data ID Ref |
Структура searching
Если в поле searching
задано правило поиска, система будет производить поиск не только по лейблу, но и по указанным в правиле атрибутам связанной сущности.
Чтобы система производила поиск по связи, необходимо в самой связи в поле searchable установить значение true .
|
entities:
- id:
name: Device
# Поле, в котором задается правило поиска.
searching:
# Список атрибутов сущности, по которым производится поиск.
attributes:
- objectGuid
- commonName
Структура inherits
Наследование позволяет использовать описанные свойства сущностей при работе с другими сущностями.
Оно задается при помощи поля inherits
в описании сущности. Для сущности можно указать ссылку только на одного родителя.
Каждая новая сущность-потомок будет добавлять собственную структуру к наследуемой структуре и не влиять на структуру родителей при обновлении домена. При запросе данных объектов потомка данные родителей будут включаться в вывод данных, если это определено в схеме. К наследуемым свойствам относятся лейбл (человекочитаемый отображаемый ID), атрибуты и действия.
entities:
- id: Device
name: Оборудование
description: Оборудование
- id: Server
name: Сервер
description: Сервер
# В этом поле задается наследование: сущность Сервер является потомком сущности Оборудование.
inherits: Device
Родитель и потомок могут находиться в одном или в разных доменах. Это нужно учитывать при задании ссылки на родителя.
Местонахождение сущностей | Формат ссылки на родителя |
---|---|
Сущности находятся в одном домене. |
Data ID Ref (ссылка на ID сущности в текущей схеме). |
Сущности находятся в разных доменах. |
FQID (полный доменный идентификатор). |
Поле label
(лейбл) является дополнительным неуникальным, но дружелюбным к пользователю идентификатором объекта.
Если лейбл не задан явно для потомка, в представлениях для потомка наследуется лейбл родителя.
В поле attributes
в описании потомка включаются только его собственные атрибуты. Ссылки на атрибуты родителя в описание не включаются.
При описании представлений и действий потомка ссылки на атрибуты сущностей родителя и потомка нужно формировать, учитывая следующие правила:
-
На атрибут потомка можно ссылаться кратко, указывая только ID атрибута. Формат: ID атрибута.
-
На атрибут родителя в этом же домене нужно ссылаться одним из следующих способов:
-
указывать только ID сущности и ID атрибута. Формат: ID сущности.ID атрибута;
-
указывать FQDN домена, ID сущности и ID атрибута. Формат: FQDN/ID сущности.ID атрибута.
-
На атрибут родителя в другом домене нужно ссылаться, упоминая FQDN домена, ID сущности и ID атрибута. Формат: FQDN/ID сущности.ID атрибута.
Ссылка на атрибут указывается от той сущности, в которой он изначально объявлен. Таким образом, полная ссылка на атрибут в формате FQDN/ID сущности.ID атрибута может использоваться во всех случаях.
Правила сортировки, заданные для родителя, не наследуются потомком. Для описания сортировки в потомке нужно создавать собственное правило сортировки. Вы можете указать в правиле сортировки атрибуты родителя по FQID. Правила задания ссылок на атрибуты при создании правил сортировки аналогичны правилам ссылок при описании представлений и действий.
Проекция, заданная для родителя, не наследуется потомком. Правила задания ссылок на атрибуты при создании проекций аналогичны правилам ссылок при описании представлений и действий.
Наследование действий
Если в действии объявлена сущность родителя, это действие может быть вызвано для его потомков. Для этого необходимо описать в представлении потомка виджет со ссылкой на это действие родителя. Действие создания объекта достаточно описать только для родителя. Если вы будете ссылаться в описании потомка на виджет родителя, которые использует это действие, оно станет доступно в интерфейсе потомка.
Работа с интерфейсами объекта и списка объектов
Рекомендуемый подход при создании схемы домена с использованием наследования:
-
Опишите все необходимые интерфейсы для сущности родителя, то есть определите для него все требуемые панели, модальные окна, группы и виджеты, а также настройки табличного отображения.
-
Выполните аналогичные настройки для интерфейсов сущностей потомков.
Таким образом, у каждой сущности будет собственный набор настроек для отображения ее объектов на всех уровнях.
Структура linkages
Поле linkages
представляет собой массив записей с описанием связей между сущностями.
В схеме домена поддерживаются линейные и древовидные связи.
Линейные связи
Линейные связи определяют отношения между сущностями в домене и позволяют строить направленные и ненаправленные связи различных типов.
Запись включает следующие поля:
Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарий |
---|---|---|---|---|---|
|
да |
Идентификатор связи. |
Data ID |
||
|
нет |
Пустая строка |
Название связи. |
строка |
Поле с названием связи удобно использовать в случае, если сторону связи сложно определить из имеющихся данных, а поле |
|
нет |
Пустая строка |
Описание связи. |
строка |
Не выводится в представлениях. Отображается в схеме домена. |
|
да |
Ссылка на первую связываемую сущность в паре связи. |
Data ID Ref или FQID |
Левая сторона действия в связи (направление связи идет от сущности, ссылка на которую указывается в этом поле). Хотя бы одна сущность в связи должна присутствовать в домене, в котором описывается связь. |
|
|
да |
Ссылка на вторую связываемую сущность в паре связи. |
Data ID Ref или FQID |
Правая сторона действия в связи (направление связи идет к сущности, ссылка на которую указывается в этом поле). Хотя бы одна сущность в связи должна присутствовать в домене, в котором описывается связь. |
|
|
да |
Тип связи. |
перечисление |
Определяет тип отношений с каждой стороны связи. Доступные значения:
|
|
|
нет |
false |
Индикатор использования данных связи в поисковых запросах. |
перечисление |
|
|
нет |
|
Индикатор ненаправленной связи. |
булево |
Используется только при описании связи типа Доступные значения:
|
|
да |
Глаголы связей для каждой из сторон. |
объект |
Определяет глагольное описание связи с каждой стороны, отображаемое в представлениях. Для любой направленной связи глагольные формы должны быть разными. См. описание поля |
|
|
нет |
Пустой массив |
Пользовательские поля связи. |
массив |
Атрибуты, описывающие связанные сущности. |
Структура nameFrom
(в описании линейных связей)
Поле содержит описание глаголов связи.
Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарий |
---|---|---|---|---|---|
|
да |
Глагол связи с левой стороны. |
строка |
Глагольная форма действия. Например, "блокирует". |
|
|
да |
Глагол связи с правой стороны. |
строка |
Глагольная форма воздействия. Например, "блокируется". |
Древовидные связи
Древовидная связь позволяет организовать взаимодействие между объектами, при котором соединения образуют иерархическую структуру, напоминающую дерево. В этой структуре существует один корневой узел (главный элемент), от которого ответвляются дочерние узлы. Эти узлы также могут иметь свои подчинённые элементы.
Запись включает следующие поля:
Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарий |
---|---|---|---|---|---|
|
да |
Идентификатор связи. |
Data ID |
||
|
нет |
Пустая строка |
Название связи. |
строка |
|
|
нет |
Пустая строка |
Описание связи. |
строка |
Не выводится в представлениях. Отображается в схеме домена. |
|
да |
Ссылка на сущность, со стороны которой идет связь, в паре связи. |
Data ID Ref или FQID |
||
|
да |
Ссылка на сущность, по направлению к которой идет связь, в паре связи. |
Data ID Ref или FQID |
||
|
да |
Тип связи. |
перечисление |
Для древовидной связи всегда указывается тип |
|
|
да |
Глаголы связей для каждой из сторон. |
объект |
Определяет глагольное описание связи с каждой стороны, отображаемое в представлениях. Глагольные формы должны быть разными. См. описание поля |
Структура trees
Поле trees
содержит описание древовидной связи между сущностями.
Запись включает следующие поля:
Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарий |
---|---|---|---|---|---|
|
да |
Идентификатор дерева (уникален в рамках домена). |
Data ID |
||
|
нет |
Параметр, разрешающий изменять расположения узлов в этом дереве. |
перечисление |
Если изменение расположения узлов этого дерева разрешено, в поле устанавливается значение См. раздел Изменение расположения узлов в дереве. |
|
|
нет |
Пустая строка |
Максимально допустимое количество связей дерева от корневого узла до листового узла. |
число |
Определяет максимальную вложенность дерева. |
|
нет |
Пустая строка |
Описание иерархии сущностей в дереве. |
объект |
См. описание поля |
Структура hierarchy
Поле hierarchy
содержит описание иерархии сущностей в дереве связей.
Запись включает следующие поля:
Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарий |
---|---|---|---|---|---|
|
да |
Ссылка на сущность в корневом узле. |
Data ID Ref или FQID |
Допустима ссылка на сущность в другом домене в формате FQDN/ID. |
|
|
нет |
Максимально допустимое количество объектов сущности в корневом узле. |
число |
Ограничивает создание объектов одной сущности в дереве. |
|
|
нет |
Максимально допустимое количество дочерних узлов для одного родительского узла через указанную связь. |
число |
Ограничивает создание связей между сущностями в корневом узле и дочерних узлах. |
|
|
нет |
Описание объектов, дочерних к сущности, на которую ссылается поле entity. |
массив |
См. описание поля |
Структура children
Поле children
содержит описание объектов, дочерних к сущности, на которую ссылается поле entity
в блоке hierarchy
.
Запись включает следующие поля:
Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарий |
---|---|---|---|---|---|
|
да |
Ссылка на идентификатор связи, описанной в поле |
Data ID Ref или FQID |
Необходимо сослаться на связь, описывающую отношения между сущностями в корневом узле и дочерних узлах. |
|
|
да |
Ссылка на идентификатор сущности, дочерней к сущности в корневом узле. |
Data ID Ref или FQID |
||
|
нет |
Максимально допустимое количество объектов одной сущности в разделе. |
число |
Это значение не может превышать значение параметра |
|
|
нет |
Максимально допустимое количество дочерних узлов для сущности, указанной в поле |
число |
Ограничивает количество связей между сущностями в поле |
|
|
нет |
Указывает на сторону связи, с которой находится родительская сущность. |
число |
По умолчанию принимает значение 1. |
Вы можете создать в схеме домена несколько вложенных блоков children
для описания узлов ветвления разных уровней. Предварительно убедитесь, что значение параметра maxDepth
в блоке trees
позволяет это сделать.
Структура dataTypes
В схеме домена можно определять пользовательские типы данных для атрибутов типов данных, доступных в системе. С их помощью можно описывать перечисления, рабочие процессы и таблицы.
Поля dataTypes
включают в себя:
Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарий |
---|---|---|---|---|---|
|
да |
Идентификатор типа данных. |
Data ID |
||
|
нет |
Пустая строка |
Название типа данных. |
строка |
|
|
нет |
Пустая строка |
Описание элемента домена. |
строка |
Не выводится в представлениях. Отображается в схеме домена |
|
да |
Описываемый тип данных. |
перечисление |
См. статью Типы данных в схемах доменов. |
|
|
да (для |
Ссылка на сущность. |
Data ID Ref или FQID |
Поле доступно только для типа данных |
|
|
нет |
Пустой массив |
Ограничители типа данных атрибута. |
массив ограничителей типа данных |
Для каждого типа данных свой набор ограничителей со своим набором полей. |
|
да (для перечислений) |
Массив записей, входящих в перечисление. |
массив |
Доступно для перечислений, см. описание поля |
|
|
нет |
Пустой массив |
Представление значений перечисления, статусов рабочего процесса, или табличное представление. |
массив |
Доступно для перечислений, рабочих процессов и таблиц, см. описание поля |
|
да (для рабочих процессов) |
Статусы процесса. |
массив |
Доступно для рабочих процессов. Новые статусы в существующий рабочий процесс можно добавлять в любое место списка. Удалять или менять местами существующие статусы нельзя. См. описание поля |
|
|
да (для рабочих процессов) |
Начальный статус процесса. |
строка |
Доступно для рабочих процессов. |
|
|
да (для рабочих процессов) |
Допустимые переходы между статусами. |
массив |
Доступно для рабочих процессов, см. описание поля |
|
|
да (для таблиц) |
Массив атрибутов, которые могут отображаться в столбцах таблицы. |
массив |
Доступно для таблиц, см. описание поля |
|
|
нет |
Максимальное количество записываемых строк в таблице. |
Доступно для таблиц. |
||
|
нет |
Правило сортировки. |
См. описание поля |
Структура values
Поле values
включает следующие поля:
Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарий |
---|---|---|---|---|---|
|
да |
Идентификатор значения перечисления. |
строка |
||
|
нет |
Пустая строка |
Наименование значения перечисления. |
строка |
|
|
нет |
Пустая строка |
Описание элемента домена. |
строка |
Не выводится в представлениях. Отображается в схеме домена |
|
нет |
false |
Скрытие значения. |
булево |
Если установлено значение |
Структура view
Поле view
используется для описания представления значений, а также цветов, с помощью которых отображаются статусы рабочего процесса.
Поле | Обязательное поле | Описание | Тип данных | Комментарий |
---|---|---|---|---|
|
нет |
Ссылка на значение перечисления. |
Data ID Ref |
Доступно для перечислений. |
|
да (для рабочих процессов) |
Ссылка на значение перечисления. |
Data ID Ref |
Доступно для рабочих процессов. |
|
нет |
Цвет значения. |
строка |
В этом поле можно задать цвета для требуемых значений перечисления или статусов (там, где это необходимо). Цвета задаются согласно схеме CSS. Можно использовать следующие обозначения цвета:
|
|
да (для таблиц) |
Массив описаний столбцов таблицы. |
массив |
Доступно для таблиц, см. описание поля |
|
нет |
Описание правила сортировки. |
массив |
Доступно для таблиц, см. описание поля |
|
нет |
Настройки количества записей, показываемых в таблице. |
Доступно для таблиц, см. описание поля |
Структура columns
(в таблице представлений значений)
Поле columns
используется для описания столбцов таблицы.
Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарий |
---|---|---|---|---|---|
|
да |
Идентификатор столбца таблицы. |
массив |
||
|
да |
Атрибут столбца. |
строка |
||
|
нет |
Пустая строка |
Лейбл столбца. |
строка |
В этом поле можно задать произвольное наименование столбца таблицы. Если поле не задано, система использует в качестве наименования значение поля |
|
нет |
Тип редактора, используемый в столбце, в соответствии с таблицей. |
строка |
Определяется системой автоматически на основе указанного атрибута. В этом поле можно изменить используемый по умолчанию тип редактора в столбце на другой допустимый тип или задать параметры редактора. Допустимые типы для разных контекстов представлены в таблице. |
|
|
нет |
Массив настроек размера и видимости столбца. |
массив |
См. описание поля |
Структура layout
(в описании столбцов таблицы)
Поле layout
содержит массив настроек размера столбца.
Настройка включает следующие поля:
Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарий |
---|---|---|---|---|---|
|
нет |
Ширина столбца (в пикселях). |
объект |
См. описание поля |
Настройки ширины столбца (width
)
Поле width
содержит массив настроек ширины столбца.
Настройка включает следующие поля:
Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных |
---|---|---|---|---|
|
да |
Ширина столбца по умолчанию, в пикселях. |
целое положительное число |
|
|
да |
Максимальная ширина столбца в пикселях. |
целое положительное число |
|
|
да |
Минимальная ширина столбца в пикселях. |
целое положительное число |
Структура statuses
Поле statuses
используется для создания массива записей статусов рабочего процесса.
Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарий |
---|---|---|---|---|---|
|
Идентификатор статуса. |
Data ID |
|||
|
нет |
Пустая строка |
Название статуса. |
строка |
|
|
нет |
Пустая строка |
Описание элемента домена. |
строка |
Не выводится в представлениях. Отображается в схеме домена. |
|
нет |
false |
Скрытие значения. |
булево |
Если установлено значение |
Структура transitions
Поле transitions
используется для создания массива записей допустимых переходов между статусами рабочего процесса.
Поле | Описание | Тип данных | Комментарии |
---|---|---|---|
|
Идентификатор статуса, для которого описывается переход. |
строка |
Значение |
|
Идентификатор статуса, в который может перейти исходный статус. |
строка |
Нотация и стереотипные поля в схеме домена
Таблица нотации
Идентификатор | Правила |
---|---|
Домен |
Соответствуют стандартным соглашениям об именовании для доменных имен DNS. Пример: Ознакомьтесь с описанием FQID. |
Сущности (Data ID) |
Все слова пишутся с заглавной буквы. Разделителей между составными частями нет. Допустимы строчные и прописные буквы латинского алфавита ( Примеры:
|
Атрибуты (Data ID) |
Первое слово пишется со строчной буквы, следующие — с заглавной буквы. Разделителей между составными частями нет (кроме атрибута типа Допустимы строчные и прописные буквы латинского алфавита ( Примеры:
|
Типы данных (Data ID) |
Все слова пишутся с заглавной буквы. Разделителей между составными частями нет. Допустимы строчные и прописные буквы латинского алфавита ( Примеры:
|
Представления, группы, действия, виджеты (View ID) |
Первое слово пишется со строчной буквы, следующие — с заглавной буквы. Разделителей между составными частями нет. Можно добавлять произвольный префикс для обозначения группы (например, Допустимы строчные и прописные буквы латинского алфавита ( Длина не более 63 символов. Примеры:
|
Перечисления константных значений ( |
Слова разделяются символами подчеркивания. Допустимы строчные и прописные буквы латинского алфавита ( Примеры:
|
Пути в меню и группах меню |
Стандартный путь к местоположению ресурса URL. Примеры:
|
Медиаресурсы (иконки, изображения) |
Первое слово пишется со строчной буквы, следующие — с заглавной буквы. Разделителей между составными частями нет. Можно добавлять префикс для обозначения группы ( Допустимы строчные и прописные буквы латинского алфавита ( Примеры:
|
Ограничения нотации являются формальными и применяются внутри исходных схем доменов, поставляемых системой. Они могут не соблюдаться, если пользователь создает свою собственную схему домена. Все идентификаторы являются регистрозависимыми. |
Определение доменов, сущностей и атрибутов в схеме домена
Data ID — идентификатор элемента хранения. Не может быть равен имени любого системного поля или зарезервированному имени устройства Windows.
View ID — идентификатор элемента представления. Не может быть равен зарезервированному имени устройства.
Системные поля объектов и связей в доменах
-
id
— идентификатор объекта или связи в текущем домене. -
organisationId
— идентификатор организации. -
domainId
— идентификатор домена из схемы домена. -
entityId
— идентификатор сущности из схемы домена. -
createdAt
— дата и время создания объекта или связи. -
createdBy
— пользователь, который создал объект или связь. -
updatedAt
— дата и время последнего обновления объекта или связи. -
updatedBy
— пользователь, который в последний раз обновил объект или связь. -
tenantId
— тенант, который является владельцем объекта. -
label
— человекопонятный идентификатор объекта для пользователя. -
version
— версия объекта.
Зарезервированные имена устройств
-
aux
-
com1
-
com2
-
com3
-
com4
-
com5
-
com6
-
com7
-
com8
-
com9
-
lpt1
-
lpt2
-
lpt3
-
lpt4
-
lpt5
-
lpt6
-
lpt7
-
lpt8
-
lpt9
-
con
-
nul
-
prn
Data ID Ref — ссылка на Data ID элемента хранения домена, который уже определен в другом месте. По ссылке система может получить все необходимые метаданные.
View ID Ref — ссылка на View ID элемента хранения домена, который уже определен в другом месте. По ссылке система может получить все необходимые метаданные.
Data ID Ref и View ID Ref — короткие формы полного идентификатора. Они всегда являются локальным идентификатором по отношению к текущей схеме домена. Для большинства элементов схемы домена вместо короткой формы можно указывать полный идентификатор — FQID, который может ссылаться на другой домен.
Домены, сущности и атрибуты определяются в схеме домена при помощи FQID (Fully Qualified ID — полностью определенного идентификатора) согласно следующим правилам:
-
Домен: FQID домена определяется как его FQDN (Fully Qualified Domain Name — полностью определенное доменное имя).
-
Сущность: FQID сущности определяется как FQDN/ID сущности. Если сущность определена внутри текущего домена, можно опустить FQDN и указать просто ID сущности.
-
Атрибут: FQID атрибута какой-либо сущности определяется как FQID сущности/ID атрибута:
-
Если сущность определена внутри текущего домена, можно опустить FQID сущности и указать просто ID атрибута.
-
Если сущность определена в другом домене, необходимо сослаться на домен: FQDN/ID сущности.ID атрибута.
-
Если атрибут относится к типу Reference, его FQID определяется как: FQID атрибута-ссылки.ID атрибута из проекции.
-
Редакторы и представления атрибутов
В таблице ниже указано, какие элементы управления могут использоваться в настройках виджета в поле control
для типов данных атрибутов в том или ином контексте.
Если в настройках виджета указан элемент, отсутствующий в поле таблицы для этого контекста и типа данных, по умолчанию используется элемент из этого поля. Если в поле указано несколько элементов, по умолчанию используется первый элемент.
Тип данных атрибута | Редактор в форме значения атрибута (модальное окно) | Редактор значения атрибута по месту (панель) | Нередактируемое предзаполненное представление значения атрибута (модальное окно) | Представление значения атрибута (панель) | Представление значения атрибута (ячейка таблицы) |
---|---|---|---|---|---|
|
uuid |
uuid |
text |
text |
|
|
timestamp |
timestamp |
timestamp |
text |
text |
|
date |
date |
date |
text |
text |
|
time |
time |
time |
text |
text |
|
timestamp_range |
timestamp_range |
text |
text |
|
|
text, text_area |
text, text_area |
text, text_area |
text, text_area |
text |
|
mac |
mac |
mac |
text |
text |
|
integer, integer_slider |
integer |
integer, integer_slider |
text |
text |
|
decimal, decimal_slider |
decimal |
decimal, decimal_slider |
text |
text |
|
float, float_slider |
float |
float, float_slider |
text |
text |
|
switch, checkbox |
switch, checkbox |
switch, checkbox, bool_text |
switch, checkbox, bool_text |
|
|
select, radio |
select |
select, radio |
tag, level |
tag, level |
|
ip |
ip |
ip |
text |
text |
|
cidr |
cidr |
cidr |
text |
text |
|
file |
file |
file, text |
file, text |
|
|
link, tag |
link, tag |
link, tag |
link, tag |
|
|
select |
select |
select |
select, level |
tag, level |
Название | Комментарии |
---|---|
|
флажок |
|
тег |
|
поле для ввода IP-адреса |
|
поле для выбора уровня |
|
ссылка |
|
радиокнопка |
|
ползунок Типы ползунка:
|
|
выпадающий список |
|
переключатель |
|
поле для ввода текста |
Системные атрибуты
В ходе своей работы система для каждого объекта по умолчанию создает набор системных атрибутов и автоматически заполняет их значения.
Обычные (несистемные) атрибуты задаются для объекта — в поле attributes
схемы домена. В отличие от них системные атрибуты не нужно специально задавать в схеме домена. Они уже созданы системой.
На системные атрибуты объектов можно ссылаться при описании виджетов атрибутов. Ссылка на системный атрибут в виджете атрибутов выглядит точно так же, как ссылка на обычный атрибут. Вы можете отображать системные атрибуты в интерфейсах объектов и списков объектов — там, где это нужно пользователю.
У каждого системного атрибута есть неизменяемое название на русском языке (см. в таблице). Это название системного атрибута будет отображаться в виджете атрибута в пользовательском интерфейсе.
При использовании системного атрибута в списочном представлении необходимо помнить, что можно отредактировать название столбца, где отображается такой атрибут, а название системного атрибута в виджете атрибута отредактировать нельзя. |
В таблице ниже приведен список существующих системных атрибутов объекта, на которые вы можете ссылаться при создании виджетов атрибутов:
Название системного атрибута объекта | Тип данных | Описание | Отображаемое название атрибута |
---|---|---|---|
|
UUID |
Идентификатор объекта в текущем экземпляре домена |
Идентификатор объекта |
|
Reference (Tenant) |
Отображаемое название организации, присвоенное объекту. В схеме домена определяется необходимость отображения виджета атрибута в модальном окне.
|
Организация |
|
String (FQDN) |
Идентификатор домена из схемы домена |
Идентификатор домена |
|
String (Definition ID) |
Идентификатор сущности из схемы домена |
Идентификатор сущности |
|
Timestamp |
Дата и время создания объекта с точностью до секунд |
Дата создания |
|
Reference (User) |
Отображаемое имя пользователя, который создал объект. |
Создал |
|
Timestamp |
Последняя дата и время обновления объекта с точностью до секунд |
Дата изменения |
|
Reference (User) |
Отображаемое имя пользователя, который последний раз обновил объект. |
Изменил |
|
Reference (Tenant) |
Отображаемое название тенанта, который является владельцем объекта. |
Идентификатор тенанта |
|
String |
Неуникальный человекочитаемый идентификатор объекта, предназначенный для пользователя |
Лейбл |
|
Integer |
Версия объекта |
Версия объекта |
Составление схемы домена
Для создания схемы домена:
-
Укажите в метаданных схемы информацию, необходимую для создания домена (функциональной области).
-
Опишите сущности, которые будут отображаться в домене на основе схемы.
Например, домен Активы с сущностями Оборудование и Пользователи.
-
Для сущностей опишите атрибуты, которыми характеризуется сущность.
Например, у сущности Оборудование могут быть атрибуты Имя, IP-адрес, Домен.
-
При необходимости задайте пользовательские типы данных для атрибутов с использованием типов данных, доступных в системе. С их помощью можно описать перечисления, таблицы и рабочие процессы.
-
Опишите параметры сортировки данных при работе с описанием интерфейса списка объектов.
-
Если необходимо автоматически подбирать дополнительные данные для хранимых ссылок на определенные объекты, опишите проекции для этих сущностей.
-
Задайте связи для сущностей, которые будут отображаться в домене на основе схемы.
-
Если сущность является потомком другой сущности, задайте параметры наследования.
-
Опишите интерфейс объекта:
-
Опишите структуру меню для раздела домена и его сущностей, отображаемого в главном меню системы — название пунктов меню и параметры их отображения, группировку элементов меню и ссылки на используемые иконки.
-
Опишите виджеты, которые будут отображаться в представлениях.
-
Опишите элементы меню, отображаемые во вкладках и панелях.
-
Опишите панели и модальные окна, которые будут отображаться для экземпляров сущности.
Опишите визуальные элементы, которые будут включаться в панели и модальные окна. К ним относятся вкладки, состоящие из блоков, а также формы создания и редактирования сущностей.
-
Опишите интерфейс списка объектов:
-
Укажите ссылки на идентификаторы действий, которые будут выполняться со списком объектов (например, массовые действия удаления, импорта и экспорта).
-
Укажите ссылки на виджеты действий, которые будут отображаться в панели действий интерфейса (например, кнопки удаления, импорта и экспорта).
-
Сформируйте список атрибутов сущности, которые будут отображаться в табличном отображении.
-
Укажите настройки ширины и видимости столбцов таблицы.
-
Укажите параметры табличного отображения: фильтрация, сортировка и группировка по столбцам, количество показываемых записей, настройки обновления данных, настройки возможности выбора строк.
-
Конфигурация рабочего процесса
В схеме домена можно задать рабочий процесс, доступные статусы процесса и возможность перехода между статусами. В настройках процесса должны быть указаны как минимум два статуса: начальный и конечный.
В компактном представлении домена в поле Статус отображается текущий статус рабочего процесса.
При попытке перехода в другой статус в ходе рабочего процесса система может отображать следующую информацию:
-
Уведомление об ошибке — если для перехода необходимо загрузить файл или ввести данные.
-
Информационное уведомление — если для перехода необходимо получить обновленные данные сущности. Отображается окно с кнопкой обновления данных.
В поле Статус в компактном представлении домена отображается текущий статус рабочего процесса.
Пользовательские типы данных
В схеме домена можно определять пользовательские типы данных для атрибутов с использованием типов данных, доступных в системе. С их помощью можно описывать перечисления, рабочие процессы и таблицы.
Компактное представление сущности
Настройки компактного представления сущности определяют отображение детальной информации о выбранном экземпляре сущности.
Действия
При добавлении схемы домена для каждой его сущности можно выбрать действия с экземплярами сущности, которые будут доступны в разделе сущности. Названия кнопок, инициирующих действия, задаются в схеме произвольно.
В системе доступны следующие действия:
-
добавление экземпляра сущности;
-
редактирование атрибута экземпляра сущности непосредственно в окне системы (без вызова отдельного окна редактирования);
-
удаление экземпляра сущности;
-
редактирование атрибутов экземпляра сущности в отдельном окне редактирования;
-
запуск плейбука из списка;
-
открытие в соседней вкладке списочного представления с контекстом.
Сортировка экземпляров сущностей
В списочном представлении доступна сортировка экземпляров сущностей по столбцам таблицы, определенным в правилах сортировки. В таблице можно отображать не все атрибуты, которые участвуют в сложном правиле сортировки — система все равно будет отображать экземпляры, отсортированные по таким атрибутам. Для удобочитаемости таблицы рекомендуется отображать первый атрибут, участвующий в правиле сортировки.
Правила сортировки экземпляров сущностей определяются в схеме домена. Если хотя бы одно правило сортировки не определено в схеме домена, система сортирует экземпляры в таблице по времени поступившей о них информации за секундный интервал и далее сортирует их по идентификатору экземпляра.
Группировка экземпляров сущностей
В списочном представлении доступна группировка экземпляров сущностей по столбцу таблицы, определенному в правиле группировки.
Сгруппированные данные в таблице по умолчанию отсортированы согласно правилу сортировки. Правила группировки экземпляров сущностей определяются в схеме домена.
Работа с организациями в списочном представлении
В схеме домена можно отметить системный атрибут organizationid
как обязательный для заполнения и использовать его в представлениях объектов. Если виджет этого атрибута используется в модальном окне создания объектов, то он примет вид раскрывающегося списка с лейблом виджета. Значения списка зависят от тенанта, в рамках которого работает пользователь.
Значения атрибута organizationid задаются только при создании объекта.
|
Если для работы в системе выбран Основной тенант, в раскрывающемся списке отображаются организации, соответствующие дочерним тенантам.
Если для работы в системе выбран какой-либо дочерний тенант, в раскрывающемся списке отображается организация, соответствующая этому тенанту.
Если атрибут organizationid
не заполняется пользователем, объект будет доступен для отображения во всех списках.