Каталог — это раздел платформы, который содержит список всех ресурсов, их параметров и связей, а также предоставляет пользователям возможность запускать сценарии для сущностей ресурсов.
Наполнение каталога возможно в ручном режиме, либо автоматизированно с использованием источников данных или вебхуков.
Ресурсы
Ресурс — это шаблон или тип сущности в каталоге платформы. Ресурс определяет структуру данных, параметры и свойства, которые будут наследовать все сущности данного типа. Например, ресурс «Репозитории GitLab» описывает структуру данных для репозиториев GitLab, а каждая конкретная сущность этого ресурса представляет отдельный репозиторий.
Основной принцип, заложенный в платформу, заключается в том, что модель данных настраивается администратором платформы. Администратор может самостоятельно создавать те ресурсы, которые ему необходимы.
Именование ресурсов
При именовании ресурсов следуйте правилам:
- Название ресурса может быть любым и не требует специальных префиксов или разделителей.
- Идентификатор ресурса должен быть уникальным в пределах всей платформы.
Группировка ресурсов
Ресурсы в каталоге могут быть организованы в иерархическую структуру, это позволяет логически группировать связанные ресурсы и улучшает навигацию в каталоге.
Для создания группы ресурсов необходимо:
Создать ресурсы — создать все необходимые ресурсы, которые будут входить в группу. Например, ресурс «Gitlab» может быть родительским для ресурсов «Репозитории», «Группы» и т.д.
Связать дочерние ресурсы с родительскими — в сайдбаре каталога перетащить дочерний ресурс на родительский ресурс. Дочерние ресурсы будут автоматически привязаны к родительскому и отобразятся в интерфейсе как вложенные элементы.
Настроить отображение — в сайдбаре каталога родительские ресурсы отображаются с иконкой раскрытия/сворачивания, позволяющей показывать или скрывать дочерние элементы.
Для изменения группировки ресурсов (перетаскивания ресурсов в сайдбаре каталога) требуется глобальное разрешение update:resources-order. Подробнее о правах доступа — в разделе «Ролевая модель».
Для просмотра дочернего ресурса у пользователя должны быть права на просмотр (read:resources) всей иерархии родительских ресурсов. Подробнее о правах доступа — в разделе «Ролевая модель».
Отображение полного пути
В интерфейсе платформы (селекторы ресурсов, теги, графы связей) отображается полный путь ресурса с цепочкой родительских ресурсов, разделенных символом /. Например, если ресурс «Репозитории» является дочерним для ресурса «Gitlab», то в интерфейсе будет отображаться «Gitlab / Репозитории».
Карточка ресурса
По умолчанию после создания ресурса в его карточке будет отображаться таблица с сущностями данного ресурса. При клике на сущность в таблице можно перейти на ее карточку.
Если в поле «Использовать дашборд» выбран дашборд, то он будет выводиться в карточке ресурса вместо таблицы сущностей.
Связи между ресурсами
Каждый ресурс может быть связан с другим ресурсом или сам с собой двусторонней связью. Связи настраиваются администратором платформы. После настройки связей для ресурса каждая сущность данного ресурса может быть связана с одной либо несколькими сущностями другого ресурса.
Допускается создание как вертикальных связей (сущность из одного ресурса связывается с сущностью из другого ресурса), так и горизонтальных (связываются сущности в рамках одного ресурса).
Сущности
Сущность — это конкретная единица каждого ресурса. Например, если ресурс называется «Группы» и является дочерним для ресурса «Gitlab», то каждая группа в Gitlab, зарегистрированная в платформе, является сущностью этого ресурса.
Сущности наследуют параметры ресурсов, при этом возможно задание параметров отдельно для каждой сущности.
Именование сущностей
При именовании сущностей следуйте правилам:
- Название сущности может быть любым и не требует специальных префиксов или разделителей.
- Идентификатор сущности должен быть уникальным в пределах ресурса.
Карточка сущности
Карточка сущности состоит из встроенных панелей и пользовательских панелей. Встроенные панели:
- Обзор — содержит блоки с указанием владельца сущности, ее описанием, параметрами и связями.
- Запуски действий — содержит список действий, которые запускались для данной сущности.
- Запуски процессов — содержит список процессов, которые запускались для данной сущности.
- События — содержит список событий, сгенерированных для данной сущности.
В карточке каждой сущности поддерживается добавление новых панелей (дашбордов).
Добавление дашбордов для одной из сущностей ресурса применяется ко всем сущностям данного ресурса.
Связи между сущностями
Связи для каждой сущности отображаются в карточке сущности в виде таблицы и в виде графа. Каждая сущность может быть связана с одной или несколькими сущностями того же или другого ресурса, в зависимости от настроенных связей между ресурсами.
Связи между сущностями могут создаваться в ручном режиме либо автоматически при помощи источников данных или вебхуков.
События
При создании, удалении, либо изменении спецификации любой сущности генерируется событие соответствующего типа: ENTITY_CREATED, ENTITY_DELETED, ENTITY_UPDATED. Эти события нужны для следующих целей:
- Аудит — фиксация изменений, происходящих с сущностью в течение ее жизненного цикла.
- Настройка автоматизированных реакций — настройка реакций на изменения спецификации сущности.
Время хранения событий ограничено и может быть настроено через файл конфигурации платформы.
Выгрузка сущностей в CSV
Платформа предоставляет возможность выгрузки сущностей в CSV-файл для последующего анализа и обработки данных.
Выгрузка сущностей одного ресурса
Для выгрузки сущностей конкретного ресурса:
Откройте карточку ресурса в каталоге.
В таблице сущностей нажмите кнопку Скачать .csv.
В выгруженный файл будут включены все сущности ресурса с учетом примененных фильтров, сортировки и пагинации.
Выгрузка сущностей нескольких ресурсов
Для выгрузки сущностей из нескольких ресурсов одновременно:
В сайдбаре каталога нажмите кнопку Выгрузить сущности.
В открывшемся диалоге выберите один или несколько ресурсов.
Нажмите кнопку Скачать .csv.
Все сущности выбранных ресурсов будут объединены в один CSV-файл.
Для выгрузки сущностей требуется глобальное разрешение read:entities. Подробнее о правах доступа — в разделе «Ролевая модель».