Работа с автоматизациями
Данный раздел описывает процесс работы с автоматизациями в системе. Работа осуществляется в разделе Автоматизация процессов → Автоматизации.
| Раздел доступен администраторам, пользователям, которые имеют соответствующее разрешение в составе своих ролей, а также учетным записям со статусом Суперадминистратор. |
Об автоматизациях
Автоматизация — это компонент системы, который в автоматическом или ручном режиме определяет логику и условия запуска элементов экспертизы.
Каждая автоматизация состоит из следующих компонентов:
-
Конфигурация и маппинг: правила передачи входных аргументов, системных переменных и контекстных данных в основу автоматизации.
-
Политика запуска: набор правил и настроек, определяющих, когда и при каких условиях должна запуститься автоматизация.
Действия в рамках автоматизации выполняются от имени системного бота. Бот создается и назначается для автоматизации при ее создании.
| Жизненный цикл бота совпадает с жизненным циклом автоматизации. При удалении автоматизации бот удаляется вместе с ней. |
Бот имеет набор разрешений, необходимых для выполнения скрипта или плейбука.
Пользователь может назначить ему дополнительные роли и отдельные права при настройке. Любые изменения в системе, инициированные автоматизацией, регистрируются от имени этого бота.
Права пользователей на просмотр, редактирование, удаление и запуск самой автоматизации настраиваются отдельно от прав исполнения, которыми обладает бот.
Маппинг значений
Для упрощения работы с данными в автоматизациях предусмотрен механизм динамического заполнения аргументов, который избавляет от необходимости вручную копировать данные из событий в плейбуки и скрипты.
Для каждого входного аргумента автоматизации пользователь может выбрать один из следующих режимов ввода:
-
Статический ввод (по умолчанию) — ручное заполнение поля аргумента.
-
Режим JS — использование JavaScript-кода для автоматического извлечения и вычисления значения на основе контекста запуска. Вычисляемое JS-выражение должно возвращать значение, соответствующее заданному типу данных аргумента.
Подробная информация о поддерживаемых типах приведена в разделе Типы данных входных аргументов плейбуков и скриптов.
При использовании режима JavaScript-выражений доступно использование объекта
ctx, содержащего данные текущего запуска.
Политика запуска
Политика запуска — это компонент автоматизации, который определяет правила и условия активации элементов экспертизы. Процесс принятия решения о запуске состоит из нескольких уровней настроек и фильтрации:
-
Триггер — определяет условие активации автоматизации. Доступны следующие типы триггеров:
-
Расписание — запуск автоматизации происходит по заранее заданному времени или с определенной периодичностью с помощью cron-выражений.
-
Событие — запуск инициируется при наступлении определенного события аудита в системе: создание, изменение, удаление объекта или пользовательское событие.
-
Вебхук — запуск происходит при поступлении HTTP-запроса от внешней системы на сгенерированный URL-адрес.
-
Ручной запуск — автоматизация запускается исключительно по инициативе пользователя через интерфейс системы.
Любой тип триггера по умолчанию также доступен для ручного запуска.
-
-
Фильтр входящих данных — позволяет выполнять первичную фильтрацию событий непосредственно на уровне коллектора. Задается на языке VRL для триггеров по событию.
-
Бизнес-условие — позволяет проверить актуальность запуска на основе текущего состояния системы, связанных объектов или расчетов. Это поле задается опционально, на языке JavaScript.
-
Параметры поведения — задают логику работы с очередью, то есть стратегии поведения при наличии активного запуска, и стратегию повторов при возникновении ошибок.
Обязательность выделенного воркера для событий
Автоматизации, которые запускаются по триггеру Событие, всегда работают на собственном выделенном воркере. Это гарантирует, что события не теряются и обрабатываются с минимальной задержкой, даже при высокой нагрузке. VRL-фильтрация происходит в коллекторе до того, как событие попадет на выделенный воркер. Другие типы автоматизаций (по триггерам Расписание, Ручной, Вебхук) используют общую очередь.
При создании автоматизации по событию, поле Группа воркеров становится доступным только для чтения. Система автоматически присваивает воркеру уникальный тег вида dedicated_%n%.
|
Состояния автоматизаций
Автоматизации могут находиться в следующих состояниях:
| Состояние | Статус | Описание | Индикатор |
|---|---|---|---|
Активна |
Включен |
Автоматизация работает:
|
Зеленый |
Недоступна |
Выключен |
Автоматизация выключена:
|
Серый |
Профилактика |
Включен |
Выполняется развертывание выделенного воркера. Это состояние существует только у автоматизаций с выделенными воркерами. |
Синий |
Ошибка |
Включен |
Автоматизация не работает из-за ошибки:
|
Красный |
Интерфейс раздела
Панель инструментов включает в себя следующие компоненты:
-
Кнопка Создать (
) позволяет создать новую автоматизацию.
-
Поле Поиск предназначено для быстрого поиска автоматизаций в отображаемом списке.
-
Кнопка Фильтр позволяет настроить критерии фильтрации.
В рабочей области отображается таблица имеющихся автоматизаций. При выборе конкретной автоматизации на экране открывается карточка с детальной информацией о ней.
Таблица включает следующие столбцы:
-
ID — идентификатор автоматизации.
-
Название — имя автоматизации.
-
Тип триггера — тип события, инициирующего запуск (Расписание, Событие, Вебхук, Ручной запуск).
-
Группа воркеров — теги назначенных воркеров. Для выделенных воркеров отображается специальная иконка
.
-
Статус — текущая активность с цветовым индикатором.
-
Включен — зеленый цвет.
-
Выключен — серый цвет.
-
-
Состояние — системное состояние с цветовым индикатором.
-
Активен — зеленый цвет.
-
Недоступен — желтый цвет.
-
Профилактика — синий цвет.
-
Ошибка — красный цвет.
-
-
Основа автоматизации — исполняемый плейбук или скрипт.
-
Дата создания — дата и время создания автоматизации.
-
Дата изменения — дата и время изменения автоматизации.
При работе с таблицей доступны следующие операции:
-
Сортировка по столбцам ID, Название, Тип триггера, Статус, Дата создания, Дата изменения;
-
Настройка отображения столбцов.
Работа с автоматизацией
Доступные операции:
Создание автоматизации
Чтобы создать новую автоматизацию:
-
Перейдите в раздел Автоматизация процессов → Автоматизации.
-
Нажмите на кнопку Создать
. Откроется форма Автоматизация. Создание.
-
В блоке Информация заполните:
-
Название — название автоматизации.
-
Описание (опционально) — краткое описание назначения автоматизации.
-
-
В блоке Настройки укажите:
-
Основа автоматизации — выберите из выпадающего списка исполняемый элемент (скрипт или плейбук).
-
Организации — выберите организации, в которых будет доступен запуск данной автоматизации.
-
Группа воркеров — укажите тег воркеров, на которых возможен запуск.
-
ID интеграции — уникальный идентификатор, генерируемый автоматически. При необходимости его можно скопировать или изменить. Поле должно содержать от 8 до 32 символов. Разрешено использовать только буквы латинского алфавита, цифры, тире, подчеркивание и точку. Идентификатор должен начинаться с буквы латинского алфавита.
-
Привязка данных (опционально) — выберите Переменные и Конфигурации, которые необходимо передать в контекст выполнения автоматизации.
Для выбора и привязки переменных и конфигураций к автоматизации пользователю требуются соответствующие права на чтение этих объектов в системе. -
Доменные объекты — блок предварительной загрузки контекстных или справочных объектов системы. Загруженные данные могут быть переданы в качестве аргументов в основу автоматизации либо использованы при вычислении бизнес-условия. Чтобы привязать данные:
-
Нажмите на кнопку Добавить (
).
-
Выберите домен из выпадающего списка.
-
Выберите сущность домена из выпадающего списка.
-
Задайте фильтр для поиска объектов с помощью выражений на языке RQL.
Одна и та же комбинация домена и сущности не может быть добавлена дважды.
-
-
В блоке Аргументы заполните входные аргументы выбранного плейбука или скрипта. Изменить режим ввода можно с помощью переключателя:
-
Статический ввод (по умолчанию) — введите нужное значение в отображаемом поле.
-
JS — нажмите на кнопку JS, чтобы переключиться на ввод скрипта. В появившемся поле JS-выражение введите JavaScript-код для извлечения данных из контекста. Система осуществляет синтаксическую валидацию введенного кода.
-
-
-
В блоке Политика запуска выберите Тип триггера: Ручной запуск, Расписание, Событие или Вебхук.
-
Укажите настройки в зависимости от выбранного триггера:
Для триггера Ручной запуск дополнительных полей нет. -
Расписание
-
Событие
-
Вебхук
-
Укажите Cron-выражение для задания расписания запусков.
Формат выражения cron:
<seconds> <minutes> <hours> <day_of_month> <month> <day_of_week>Здесь:
-
<seconds>— секунды от 0 до 59; -
<minutes>— минуты от 0 до 59; -
<hours>— часы от 0 до 23; -
<day_of_month>— числа месяца от 1 до 31; -
<month>— номера месяцев от 1 до 12; -
<day_of_week>— номера дней недели от 0 до 6, где0— воскресенье.
Используются следующие символы:
-
*— любое допустимое значение поля; -
?— любое допустимое значение числа месяца или дня недели; -
,— разделитель в списке значений; -
-— диапазон значений; -
/— значение шага.
Примеры настроек cron-выражения
-
Запускать каждые 20 минут с 8 до 18 часов с понедельника по пятницу:
0 */20 8-18 * * 1-5 -
Запускать 1 января, 1 апреля, 1 июля и 1 октября в 2:00:00:
0 0 2 1 1,4,7,10 * -
Запускать в 12:00:00 ежедневно:
0 0 12 * * ?
-
Выберите Часовой пояс из выпадающего списка.
-
Выберите Тип события.
-
Укажите Домен и Сущность.
-
В поле VRL-выражение задайте выражение для первичной фильтрации на уровне коллектора.
-
Настройте агрегацию в блоке Режим сбора событий. Данная функциональность позволяет группировать события для массовой обработки. Заданное ранее VRL-выражение применяется к каждому событию до его попадания в окно накопления. Выберите один из режимов:
-
Не выбран (установлен по умолчанию) — агрегация отключена, каждое событие инициирует отдельный запуск.
-
По количеству событий — система ожидает накопления заданного числа событий, после чего инициирует запуск. Необходимо указать порог в поле Количество, а также задать Временное окно — интервал после получения первого события, в течение которого подсчитываются события.
-
По временному окну — система отсчитывает заданное Временное окно с момента поступления первого события и по истечении интервала запускает автоматизацию с тем количеством событий, которое успело накопиться.
Для настройки временных окон в режимах агрегации доступны следующие единицы измерения: секунды, минуты, часы, дни. При использовании агрегации данные событий будут передаваться в аргументы автоматизации в виде массива. -
В появившемся поле Выделенный воркер выберите существующий или создайте новый выделенный воркер (обязательное требование для триггера данного типа).
-
Вебхук:
-
-
Выберите Конфигурацию токена (Токен в заголовке или Токен в запросе).
-
Укажите Тип запроса (Асинхронный или Синхронный).
-
Выберите Метод вызова (POST или GET).
-
JSON-схема — система автоматически генерирует базовую JSON-схему на основе настроенного маппинга аргументов. Вы можете отредактировать схему вручную, например, уточнить типы и добавить обязательность полей.
Сгенерированная JSON-схема применяется внешними системами для понимания формата отправляемых данных, а также используется самой платформой для строгой валидации входящих запросов на соответствие поддерживаемым типам данных и формирования форм ручного запуска. -
В появившемся поле Выделенный воркер выберите существующий или создайте новый выделенный воркер (обязательное требование для триггера данного типа).
-
-
Укажите параметры:
-
Конфигурация токена: Токен в заголовке или Токен в запросе.
-
Тип запроса: Асинхронный или Синхронный.
-
Метод вызова: POST или GET.
-
JSON-схема — система автоматически генерирует базовую JSON-схему на основе настроенного маппинга аргументов. Вы можете отредактировать схему вручную — например, уточнить типы или добавить обязательность полей.
Сгенерированная JSON-схема применяется внешними системами для понимания формата отправляемых данных, а также используется самой платформой для строгой валидации входящих запросов и формирования форм ручного запуска.
-
-
Настройте общие параметры запуска:
-
Бизнес-условие (опционально) — JavaScript-выражение, вычисляемое на воркере. Служит для дополнительной логической проверки: если условие не выполняется, то запуск не создается.
-
Поведение запуска при ошибке — выберите политику в поле Повторы запуска при ошибке (Без повторов или Постоянно). Применяется только к скриптам.
-
Поведение при наличии активного запуска — выберите стратегию управления очередью:
-
Пропустить запуск — если уже есть активный запуск данного триггера, новый запуск игнорируется.
-
Разрешить параллельный запуск — каждый новый запуск безусловно добавляется в очередь.
-
-
-
В блоке Параметры выполнения настройте права:
-
Исполнитель: автоматизация выполняется от имени автоматически создаваемого системного бота. При необходимости назначьте ему статические Роли бота и Дополнительные права для запуска.
-
Права доступа: укажите роли пользователей, которым разрешена работа с автоматизацией.
-
-
Нажмите на кнопку Запустить в левом верхнем углу.
Просмотр автоматизации
Чтобы просмотреть автоматизацию:
-
Перейдите в раздел Автоматизация процессов → Автоматизации.
-
Нажмите на строку автоматизации в списке. Система отобразит справа карточку с подробной информацией о ней.
Название автоматизации отображается в верхней части карточки. Рядом расположена кнопка , открывающая меню действий (Редактировать, Удалить, Скопировать ссылку).
В нижней части карточки на всех вкладках закреплена кнопка Запустить вручную для быстрой инициации запуска.
Карточка автоматизации содержит следующие вкладки:
-
Информация — основные сведения об автоматизации и ее конфигурации. В верхней части вкладки расположен переключатель статуса (Включен / Выключен). Данные разбиты на смысловые блоки:
-
Общие данные: Организации, Название, Описание, Триггер, Состояние с цветовым индикатором.
-
Настройки: Основа автоматизации, Группа воркеров, ID интеграции и UUID (доступно копирование значений при нажатии на кнопку).
-
Политика запуска: Повторы запуска при ошибке, Поведение при наличии активного запуска, Дата создания, Создал (имя пользователя) и Дата изменения.
-
-
Параметры автоматизации — отображает настроенный маппинг входных аргументов в режиме чтения. Для каждого аргумента выводится его имя, Тип данных, а также заданное статическое значение или Выражение.
-
Запуски — содержит таблицу Список запусков текущей автоматизации со столбцами: Время старта, Время выполнения и Статус.
|
Если при попытке запуска системный бот-исполнитель был удален или выключен, система переведет автоматизацию в состояние ошибки, а в интерфейсе отобразится предупреждение. |
Включение и выключение автоматизации
Чтобы включить автоматизацию:
-
Убедитесь, что открыта вкладка Информация.
-
Установите переключатель статуса в карточке автоматизации в активное положение. Откроется окно подтверждения.
-
Нажмите Включить. Система обновит статус и отобразит уведомление.
Чтобы выключить автоматизацию:
-
Установите переключатель в неактивное положение.
-
В окне подтверждения нажмите Выключить.
Если выключить автоматизацию, запланированные запуски по расписанию не будут выполнены, а события перестанут обрабатываться.
Изменение автоматизации
|
Редактирование могут осуществлять пользователи, обладающие общим правом на редактирование автоматизаций или правами на конкретный объект. |
Чтобы изменить автоматизацию:
-
Нажмите на кнопку действий (
) в верхней части карточки и выберите Редактировать. Отобразится страница изменения параметров.
-
На странице редактирования вы можете изменить привязку данных и политику запуска, включая VRL-фильтры и бизнес-условия, переопределить права доступа и дополнительные права системного бота, а также отредактировать JSON-схему для автоматизаций с триггером типа Вебхук или Ручной запуск.
-
Сохраните изменения.
Удаление автоматизации
|
Чтобы удалить автоматизацию:
-
Перейдите в раздел Автоматизация процессов → Автоматизации.
-
Выберите нужную автоматизацию в списке, чтобы открыть ее карточку.
-
В верхней части карточки нажмите на кнопку действий (
) и выберите Удалить. Отобразится окно подтверждения.
-
В окне подтверждения нажмите Удалить.
-
Система проверит наличие активных заданий на воркере:
-
Если активных заданий нет, автоматизация будет немедленно удалена.
-
Если автоматизация работала на выделенном воркере и на нем выполняются задания, система отобразит модальное окно Воркер. Активные задания.
-
Работа с активными заданиями при удалении
В окне Воркер. Активные задания отображается список всех процессов, которые еще не завершены воркером. Пользователю доступны следующие действия:
-
Дождаться завершения: нажмите на кнопку Завершить. Удаление произойдет автоматически сразу после того, как воркер закончит обработку последнего задания в очереди.
-
Принудительное завершение: если требуется немедленное удаление, наведите курсор на конкретное задание в списке и нажмите появившуюся кнопку Принудительно завершить.
| Принудительно завершенные задания не будут выполнены в полном объеме и завершатся со статусом Ошибка. |
После подтверждения очистки очереди или завершения всех задач в фоновом режиме, система обновит список автоматизаций и направит уведомление об успешном удалении объекта.
Синтаксис выражений
Контекст запуска (объект ctx)
Глобальный объект ctx содержит данные текущего запуска, включая следующие источники:
-
input— динамические данные, инициировавшие запуск. -
var— переменные системы, включая секреты.Для обеспечения безопасности реальные значения секретных переменных, переданные через ctx.var, никогда не записываются в логи запусков в открытом виде. -
config— конфигурации системы. -
cms_objects— объекты доменов, предзагруженные по RQL-фильтру в блоке Доменные объекты. -
system— системные данные текущего выполнения.
Чтобы переменные и конфигурации были доступны в объекте ctx, их необходимо предварительно добавить в блоке Привязка данных при настройке автоматизации.
|
Критерии фильтрации событий
В поле VRL-выражение задается выражение для первичной фильтрации на уровне коллектора на языке VRL.
Автоматизация запускается, только если выражение возвращает значение true.
К полям события аудита можно обратиться, используя синтаксис пути, начиная с точки, например:
.eventRiskLevel
| Ознакомьтесь с описанием структуры события аудита. |
Информация об объекте, над которым совершено действие, содержится в поле .data, которое передается в формате JSON-строки.
Чтобы получить доступ к данным внутри этого поля, преобразуйте его в объект с помощью функции parse_json:
parsed_data=parse_json!(.data)
# Обращение к свойствам data:
incident_type = parsed_data.objectAttributes.current.incidentType
Ознакомьтесь с описанием структуры поля data.
|
Для формирования условий фильтрации используются стандартные операторы сравнения, например, == или !=. Также используются функции VRL, например, функции для поиска и сопоставления строк и функции для извлечения данных.
Несколько условий можно объединить в одном выражении с помощью логических операторов && ("И") и || ("ИЛИ").
| При написании сложных выражений учитывайте приоритет операций и используйте переменные для промежуточных вычислений, если это повышает читаемость кода. |
Примеры VRL для фильтрации
.parse_json!(data).objectAttributes.current.incidentType == "Общий инцидент"
includes(["Готово к отправке", "Повторная отправка"], parse_json!(.data).objectAttributes.current.status)
parsed_data=parse_json!(.data)
parsed_data.name == "vch_name"
parsed_data=parse_json!(.data)
parsed_data.objectAttributes.current.category == "Operational" && .meta.operation_result == "Успешно" && .eventRiskLevel == 2 && .suser.username == "some_user" && .eventPublishId == "object.update.example_com.Incident.da6236fe-7504-4f10-a073-748570dc0415"
В данном примере запуск автоматизации происходит при одновременном выполнении следующих условий:
-
Произошло изменение объекта сущности
Incident. -
Изменение выполнено успешно.
-
Уровень угрозы события — низкий (стандартный для этого типа события).
-
Пользователь, выполнивший действие —
some_user. -
Текущее значение атрибута
categoryдля объекта равно"Operational".
Бизнес-условие
Бизнес-условие позволяет проверить актуальность запуска на основе текущего состояния объектов в системе. Автоматизация запускается, только если выражение возвращает значение true.
Бизнес-условие задается на языке JavaScript. Для использования в условии доступны данные текущего запуска в объекте ctx и специальные функции. Функции позволяют асинхронно получать следующие данные:
-
отдельный объект по идентификатору;
-
список объектов сущности;
-
результаты расчета.
Получение данных об объекте (object)
Функция используется для получения определенного объекта.
objectobject(<domain_id>, <entity_id>, <object_id>)
Параметры функции включают:
-
<domain_id>: идентификатор домена; -
<entity_id>: идентификатор сущности; -
<object_id>: идентификатор объекта.
Все параметры передаются как строки.
Метод object возвращает объект со следующими полями:
-
domainId: идентификатор домена; -
entityId: идентификатор сущности; -
id: идентификатор объекта; -
label: отображаемое название объекта; -
values: атрибуты объекта и их значения; -
tenantIid: идентификатор тенанта; -
organizationId: идентификатор организации -
createdAt: дата создания объекта; -
createdBy: идентификатор пользователя, создавшего объект; -
updatedAt: дата последнего изменения объекта; -
updatedBy: идентификатор пользователя, изменившего объект последним; -
version: версия объекта.
const obj = await object(
'example.com',
'Incident',
'5102f915-aa70-49db-a3dd-a9eba6488c45'
);
Получение данных о списке объектов (objects)
Функция используется для получения отфильтрованного и отсортированного списка объектов. Фильтры для уточнения запроса, порядок сортировки и количество выводимых результатов задаются с помощью параметров.
objectsobjects(<domain_id>, <entity_id>, <filter>)
Параметры функции включают:
-
<domain_id>: идентификатор домена (строка); -
<entity_id>: идентификатор сущности (строка); -
<filter>: настройки фильтрации списка (объект).
Настройки фильтрации включают следующие поля:
-
conditions(необязательный): условие фильтрации в виде строки, содержащей JSON в формате запросов MikroORM (строка); -
ids(необязательный): список идентификаторов требуемых объектов (массив строк); -
query(необязательный): запрос для поиска по атрибутам сущностей, на которые ссылается полеlabel, находящееся в полеentitiesсхемы домена (строка); -
links: запрос для фильтрации по связям объектов, который включает:-
<operator>: логический операторand— все перечисленные условия должны быть выполнены — илиor— достаточно выполнения хотя бы одного условия из перечня:-
domainId: идентификатор домена (строка); -
linkageId: идентификатор связи в домене (строка); -
ids(необязательный): список идентификаторов связей (массив строк); -
object: условия фильтрации по связанным объектам, включают вложенные поляconditionsиids; -
side(обязателен только при симметричной направленной связи): сторона связи (число,1или2);
-
-
-
sorting: настройки сортировки списка (необязательный блок):-
order: порядок сортировки:-
'asc'— по возрастанию; -
'desc'-- по убыванию);
-
-
orderBy: идентификатор одного из правил сортировки, определенного в полеsortingсущности в схеме домена (строка);
-
-
pagination: ограничение количества выводимых результатов (необязательный блок):-
limit(обязателен, если ограничение указано): максимальное количество записей в ответе (число); -
offset(необязательный): порядковый номер первой записи, начиная с которой выводится ответ (число);
-
-
refFields(необязательный): дополнительные поля, которые нужно включить в ответ. Это поля объектов, на которые ссылаются атрибуты типаReference(массив строк вида<refAttributeId>.<attributeId>).
Метод objects возвращает массив объектов.
const objs = await objects(
'example.com',
'Incident',
{
conditions: '{"$and":[{"label":{"$ilike":"%Стандарт 1%"}},{"id":{"$in":["5102f915-aa70-49db-a3dd-a9eba6488c45"]}}]}'
}
);
Получение данных о связях объекта (links)
Функция используется для получения связей объекта. Фильтры для уточнения запроса, порядок сортировки и количество выводимых результатов задаются с помощью параметров.
linkslinks(<domain_id>, <entity_id>, <object_id>, <linkRequests>)
Параметры функции включают:
-
<domain_id>: идентификатор домена; -
<entity_id>: идентификатор сущности; -
<object_id>: идентификатор объекта; -
<linkRequests>— массив запросов для фильтрации связей объекта.
Каждый запрос для фильтрации включает следующие поля:
-
domainId: идентификатор домена (строка); -
linkageId: идентификатор связи в домене (строка); -
filterLink: настройки фильтрации списка связанных объектов (необязательный блок):-
conditions(необязательный): условие фильтрации в виде строки, содержащей JSON в формате запросов MikroORM (строка); -
linkIds(необязательный): список идентификаторов связей (массив строк); -
objectIds(необязательный): список идентификаторов объектов (массив строк);
-
-
side(обязательно только при симметричной направленной связи): сторона связи (число,1или2); -
sorting: настройки сортировки списка по данным объектов на другой стороне связи (необязательный блок):-
order: порядок сортировки:-
'asc'— по возрастанию; -
'desc'— по убыванию.
-
-
orderBy: идентификатор одного из правил сортировки, определенного в полеsortingдля сущности на другой стороне связи (строка);
-
-
pagination: ограничение количества выводимых результатов (необязательный блок):-
limit: максимальное количество записей в ответе (число); -
offset(необязательный): порядковый номер первой записи, начиная с которой выводится ответ (число);
-
-
<refFields>(необязательный): дополнительные поля, которые нужно включить в ответ. Это поля объектов, на которые ссылаются атрибуты типаReferenceсущности на другой стороне связи (массив строк видаrefAttributeId.attributeId).
Метод возвращает массив связей. Данные о каждой связи включают следующие поля:
-
domainId: идентификатор домена; -
linkageId: идентификатор связи в схеме домена; -
id: идентификатор экземпляра связи; -
side: сторона связи; -
object: данные связанного объекта; -
values: атрибуты связи и их значения; -
version: версия связи.
const ls = await links(
'example.com',
'Incident',
'5102f915-aa70-49db-a3dd-a9eba6488c45',
[
{
domainId: 'example.com',
linkageId: 'Incident_Vulnerability'
}
]
);
Получение результатов расчета (calculation)
Функция используется для получения результатов расчета.
calculationcalculation(<calculationSchemaId>, <calculationId>, <object>)
Параметры метода включают:
-
<calculation_schema_id>: идентификатор схемы автоматизации; -
<calculation_id>: идентификатор расчета; -
<object_id>: идентификатор домена, сущности и объекта, для которого выполнен расчет.
const calc = await calculation(
'my_calc_schema',
'my_calc',
{
domainId: 'example.com',
entityId: 'Incident',
id: '5102f915-aa70-49db-a3dd-a9eba6488c45'
}
);
Пример бизнес-условия
Данный скрипт запрашивает объект инцидента, проверяет его атрибуты и возвращает true только при соблюдении условий:
// Получение объекта из входных данных запуска.
const incident = await object(ctx.input.domainId, ctx.input.entityId, ctx.input.objectId);
// Проверка атрибутов.
const highLevel = incident.values.get('level') === 'High';
const critLevel = incident.values.get('level') === 'Critical';
const securityEvent = incident.values.get('category') === 'SecurityEvent';
const suspendedIncident = incident.values.get('type') === 'SuspectedIncident';
// Финальное условие запуска.
return securityEvent && suspendedIncident && (highLevel || critLevel);
Таким образом, автоматизация запускается при одновременном выполнении следующих условий:
-
Значение атрибута
categoryтекущего объекта равно"SecurityEvent". -
Значение атрибута
typeравно"SuspectedIncident". -
Значение атрибута
levelравно"High"или"Critical".
Была ли полезна эта страница?