Адрес API, лимит согласования и чат для уведомлений часто повторяются в нескольких workflow. Если хранить их отдельно в каждом узле, изменения требуют ручной проверки всех схем. Переменные пространства Staqflow позволяют задать значение один раз и использовать его в процессах через $vars.
Переменная доступна workflow своего пространства. В одном окружении можно задать рабочий API, в другом — тестовый, сохранив одинаковые ключи. Это помогает переносить схемы между средами без замены адресов в каждом шаге.
Для ключа используют латинские буквы, цифры и подчёркивание; первый символ не должен быть цифрой. Максимальная длина ключа — 64 символа, значения — 16 384. В пределах пространства ключ уникален. Примеры: vat_rate, sales_chat, api_url.
Поддерживаются строка, число, логическое значение, массив, объект, дата, дата и время, время. Числа можно использовать в расчёте без разбора строки, массивы — перебирать, объекты — читать по полям. Даты и время возвращаются строками соответствующего типа.
Например, report_emails может содержать массив адресов, а crm — объект с pipeline и stage. Значение ставки vat_rate становится числом, которое можно использовать в выражении {{ $json.amount * (1 + $vars.vat_rate) }}.
В поле узла включите переключатель «Выражение». Иначе введённая запись останется обычным текстом. Основной синтаксис — {{ $vars.api_url }}/orders; доступен и короткий вариант $var.ключ. После $vars. редактор предлагает ключи, а превью показывает результат.
Переменные работают также в выражениях учётных данных, например для сборки адреса сервиса. Значения загружаются один раз в начале запуска: правка во время выполнения применяется только к следующему прогону. Это исключает смешение старых и новых параметров внутри одного процесса.
Несуществующий ключ не мешает сохранению схемы, но на месте подстановки будет пусто. Перед включением workflow нужно проверить превью и наличие переменных в выбранном пространстве.
Отметка «Секрет» скрывает значение в списке и превью. После сохранения прочитать его в интерфейсе нельзя; пустое поле при редактировании оставляет прежнее значение. При выполнении процесс получает его обычным обращением $vars.ключ.
Токены ботов, API-ключи и пароли баз данных следует хранить в учётных данных: они шифруются и выбираются на узле. Секретные переменные нужны для внутренних значений, которые не следует показывать всем участникам. Не выводите их в результат шага: данные узлов сохраняются в истории запусков.
В пространствах «Тесты» и «Прод» создайте одинаковые ключи с разными значениями. Экспорт workflow переносит выражения $vars, но не сами значения. После импорта схема обращается к переменным новой среды. До первого запуска нужно проверить, что все ключи созданы.
Данные предыдущего шага не следует заменять переменными пространства. Для них используются $json, $input.first(), $input.all() и $('Имя узла').item.json. $now и $today дают доступ к дате и времени, $execution — к запуску, $itemIndex и $runIndex — к номерам элемента и прогона.
У строк, массивов, чисел и дат предусмотрены методы преобразования и проверки, например toNumber(), isEmpty(), removeDuplicates() и format(). Выражения выполняются в песочнице. Переменные окружения сервера через $env недоступны.
Наблюдатель видит список переменных. Участник, администратор и владелец могут создавать, менять и удалять их. При организации доступа важно учитывать, что общая настройка влияет на все использующие её workflow пространства.
Текущий прогон продолжит использовать значение, загруженное в начале. Новое применяется со следующего запуска.
В учётных данных, а не в обычной или секретной переменной.
Проверьте, включён ли режим «Выражение» в поле узла, и используйте двойные фигурные скобки.
Подробнее о возможностях автоматизации — на сайте Staqflow.