Шаблонизация
Для полей спецификации YaWL, которые поддерживают шаблонизацию, значения могут генерироваться динамически с использованием данных, полученных из состояния рабочего процесса. Язык шаблонизации — jq
. Подробнее см. документацию jq
По умолчанию шаблонизация не применяется для строковых значений полей — используйте интерполяцию строк
Входные данные для шаблонизатора
Входные данные для шаблонизатора различаются в зависимости от поля.
Поле | Входные данные |
---|---|
input |
Полное состояние рабочего процесса |
output |
Выходные данные шага |
Другие поля, которые поддерживают шаблонизацию | JSON-объект, отфильтрованный с помощью input |
Примеры использования шаблонизатора
Значение поля | Интерпретация шаблонизатора |
---|---|
this is just a string |
Строка без применения шаблонизации |
this is a value from workflow state \(.data[1].some_property) |
this is a value from workflow state <данные_из_состояния_рабочего_процесса> |
\({x: 1, y: .a.b.c}) |
{“x”: 1, “y”: “<данные_из_состояния_рабочего_процесса>”} |
Расширения шаблонизатора
Расширения шаблонизатора позволяют вызывать jq-функции, реализующие нестандартную логику.
Yandex Lockbox
Специальная jq-функция lockboxPayload
позволяет получать значение секрета Yandex Lockbox по его идентификатору, ключу и (опционально) версии. Чтобы расширение работало корректно, в настройках рабочего процесса должен быть указан сервисный аккаунт, у которого есть права на просмотр содержимого секретов (например, с назначенной ролью lockbox.payloadViewer
).
Описание аргументов jq-функции lockboxPayload
:
Очередность аргумента | Тип | Обязательное | Описание |
---|---|---|---|
1 | string |
Да | Идентификатор секрета. |
2 | string |
Да | Ключ секрета. |
3 | string |
Нет | Идентификатор версии секрета. |
lockboxPayload
Примеры использования jq-функции -
Получение последней версии секрета:
lockboxPayload("<идентификатор_секрета>"; "<ключ_секрета>")
-
Получение указанной версии секрета:
lockboxPayload("<идентификатор_секрета>"; "<ключ_секрета>"; "<идентификатор_версии_секрета>")