Автоматизации — механизм реагирования DDP на изменения спецификации сущностей.

Каждая автоматизация может подписываться на обновления сущностей какого-либо ресурса по определённым правилам. При возникновении события обновления автоматизация запускает выполнение действия, процесса или синхронизации источника данных.

Автоматизация может запускать выполнение как для сущности, которая вызвала триггер, так и для связанных с ней сущностей в соответствии с настройками.

Интерфейс настройки автоматизации

Форма создания и редактирования автоматизации разделена на логические секции.

Триггеры

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

При настройке каждого триггера указываются:

  • «Ресурс» — ресурс, события с сущностями которого будут являться триггером для запуска автоматизации;
  • «Условие» — условие в формате Go template, описывающее, изменения какого параметра будет считаться триггером для запуска автоматизации и какое именно значение должен принять изменённый параметр.

Примеры условий триггера:

  • {{ ne .entity.properties.id 0 }} — автоматизация будет запускаться, если значение параметра id изменилось и после изменения стало не равным нулю;
  • {{ eq .entity.properties.status "Failed" }} — автоматизация будет запускаться, если значение параметра status изменилось на Failed с любого другого.

Выполнение

Секция для настройки того, что будет выполняться при срабатывании триггера автоматизации.

Настраиваются:

  • «Тип выполнения» — тип объекта, который будет выполняться: действие, процесс или синхронизация источника данных;
  • «Объект выполнения» — конкретный объект (действие, процесс или источник данных), который будет выполняться.

Для действий и процессов доступна дополнительная настройка:

  • «Запускать выполнение для связанных ресурсов» — при включении этой опции выполнение будет автоматически запускаться для всех сущностей, имеющих соответствующую связь с изменённой сущностью. При этом выполнение не будет запущено на сущность, вызвавшую событие.

Синхронизация

Секция для настройки периодической синхронизации — автоматического запуска автоматизации по расписанию.

Настраиваются:

  • «Периодическая синхронизация» — включение/выключение периодической синхронизации;
  • «Периодичность запуска» — cron-выражение для настройки частоты запуска автоматизации (например, 0 0 * * * для ежедневного запуска в полночь).

Триггеры

Механизм работы триггеров автоматизаций основан на событиях (events), которые генерируются при каждом создании, изменении либо удалении любой сущности любого ресурса.

Автоматизации:

  1. Прослушивают события указанных в конфигурации триггеров ресурсов.
  2. Проверяют, изменилось ли значение параметра, указанного в условиях триггера.
  3. При изменении сравнивают текущее значение параметра с условием.
  4. При соответствии условию запускают выполнение.

Новые автоматизации обрабатывают только события, которые произошли после их создания. События, произошедшие до создания автоматизации, не будут обработаны.