Версионирование workflow: Change History, экспорт JSON, обходное решение резервного копирования в Git для Community Edition

История workflow без тарифа Enterprise показывает только 24 часа. Вот как самостоятельно постоянно сохранять workflow n8n через экспорт JSON и Git.

Тот, кто создает workflow в n8n, постоянно их изменяет: добавляется node, настраивается фильтр, задним числом добавляется обработка ошибок. Без версионирования каждое из этих изменений является тихой перезаписью, и на вопрос "Какая версия еще вчера работала стабильно?" ответить уже нельзя. Для этого в n8n есть встроенная Change History, но полная история и нативная синхронизация с Git через Source Control доступны только в тарифах Business и Enterprise, а не в бесплатной Community Edition.

Для всех остальных ручной экспорт в JSON остается обходным решением: workflow можно в любой момент скачать в виде файла JSON и добавить в собственный репозиторий Git. Эта статья показывает, что на самом деле дает встроенная Change History, где ее ограничения и как с помощью стандартных средств построить рабочую систему резервного копирования и версионирования даже без лицензии Enterprise.

Что показывает встроенная Change History workflow?

У каждого workflow в n8n есть собственный значок истории, через который открывается меню со всеми сохраненными версиями, каждая с превью canvas выбранной версии. Согласнодокументации n8n о Change History n8n автоматически создает новую версию, когда ты сохраняешь workflow, восстанавливаешь старую версию (при этом ранее активная версия сначала сохраняется) или выполняешь pull из репозитория Git через Source Control.

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

  • Восстановить версию: заменяет текущий workflow выбранной версией.
  • Клонировать в новый workflow: создает копию версии как самостоятельный workflow.
  • Открыть версию в новой вкладке: позволяет напрямую сравнить две версии рядом друг с другом.
  • Скачать: экспортирует выбранную версию в виде файла JSON.
  • Назвать версию: защищает ее от автоматической очистки, эта функция доступна только пользователям Pro и Enterprise.

На практике важен объем этой истории. Он существенно различается в зависимости от тарифа:

  • Enterprise (Cloud или Self-hosted): полная история workflow без ограничения по времени.
  • Cloud Pro: версии за последние пять дней.
  • Все остальные пользователи, включая Community Edition: только версии за последние 24 часа.

Конкретно это означает: тот, кто использует Community Edition или простой тариф Cloud, теряет доступ к старым промежуточным состояниям самое позднее через день. Для действительно постоянной истории версий встроенной функции в этих случаях недостаточно.

Почему Source Control через Git доступен не всем?

С Source Control n8n предлагает нативную интеграцию с Git, которая позволяет автоматически синхронизировать workflow с репозиторием, включая несколько окружений через отдельные ветки Git. Согласнодокументации n8n о Source Control и окружениях эта функция, однако, "Available on Business and Enterprise plans", то есть не входит ни в бесплатную Community Edition, ни в простые тарифы Cloud.

Там, где Source Control доступен, настройка выполняется через Settings > Environments. Там ты указываешь URL репозитория Git, либо по SSH с Deploy Key, либо по HTTPS с Personal Access Token, и n8n автоматически генерирует для этого SSH-ключ (по умолчанию ED25519). Владельцы инстанса и администраторы инстанса могут после этого как push, так и pull, администраторы проекта могут только push. Тому, кто продуктивно работает с несколькими окружениями и имеет лицензию Business или Enterprise, стоит использовать этот нативный путь, он избавляет от ручного обслуживания экспорта.

Обходное решение: ручное резервное копирование в Git через экспорт JSON

Без лицензии Business или Enterprise экспорт JSON остается самым надежным способом постоянно и с версионированием сохранять workflow. Согласнодокументации n8n об экспорте и импорте n8n в принципе хранит workflow в формате JSON, и именно этот формат можно экспортировать, добавить в репозиторий Git и там коммитить, тегировать и откатывать, как и любое другое изменение кода.

Экспорт через интерфейс

Для отдельных workflow интерфейса редактора вполне достаточно:

  • Открой workflow и нажми на меню из трех точек в правом верхнем углу.
  • ВыбериDownload, чтобы скачать текущий workflow в виде файла JSON на свой компьютер.
  • В качестве альтернативы можно выделить отдельные node, скопировать их с помощью Ctrl+C или Cmd+C и вставить в текстовый редактор, это тоже дает валидный JSON workflow для отдельных частей.
  • ЧерезImport from File илиImport from URL файл JSON можно позже снова загрузить обратно в n8n.

Документация прямо указывает, что экспортированные файлы JSON содержат имена credential и ID credential. Прежде чем поделиться таким файлом или поместить его в общий репозиторий, эти данные следует удалить или анонимизировать, чтобы конфиденциальные учетные данные случайно не попали в историю версий.

Экспорт через командную строку для целых инстансов

Для полного резервного копирования всех workflow самостоятельно размещенного инстанса n8n CLI подходит лучше, чем ручное скачивание по одному. Согласнодокументации n8n о командной строке для этого доступны собственные команды экспорта и импорта:

  • `n8n export:workflow --all --output=backups/latest/` экспортирует все workflow в каталог.
  • `n8n export:workflow --backup --output=backups/latest/` использует специальный режим резервного копирования, который внутри устанавливает `--all --pretty --separate`: все workflow, отформатированные для читаемости, каждый в виде отдельного файла.
  • `n8n export:workflow --id=<ID> --output=file.json` экспортирует целенаправленно один отдельный workflow.
  • `n8n import:workflow --separate --input=backups/latest/` импортирует обратно целый каталог с отдельными файлами JSON.
  • `n8n import:workflow --separate --input=backups/latest/ --activeState=fromJson` также применяет при импорте исходный статус активации каждого workflow.

Как построить из этого резервное копирование в Git

Скомбинируй режим резервного копирования CLI с регулярным cron job и репозиторием Git, тогда в результате получится самодельное, но надежное версионирование:

1. Создай приватный репозиторий Git, отдельный от остального кода твоего приложения.

2. Настрой на сервере n8n ежедневный cron job, который выполняет `n8n export:workflow --backup --output=backups/latest/`.

3. Коммить экспортированные файлы в репозиторий, автоматически или вручную, с содержательным commit-сообщением.

4. Перед каждым commit проверяй, что не содержится неочищенных ссылок на credential, в идеале с помощью простого скрипта, который фильтрует или помечает известные шаблоны, такие как `credentialId`.

5. При необходимости используй `git tag`, чтобы четко отмечать стабильные production-состояния, так ты найдешь их снова и спустя месяцы.

Тем самым ты по сути достигаешь того же, что Source Control предлагает нативно, только без автоматического механизма push-pull и с чуть большей ручной работой при откате. Для небольших команд и отдельных фрилансеров это часто приемлемый компромисс, прежде чем лицензия Business окупится экономически.

Как долго n8n автоматически хранит версии?

Тот, кто использует встроенную историю workflow и хочет самостоятельно контролировать срок хранения, найдет нужную настройку в конфигурации сервера. Согласнодокументации n8n о переменных окружения workflow history переменная `N8N_WORKFLOW_HISTORY_PRUNE_TIME` определяет, сколько часов хранятся старые версии, прежде чем n8n автоматически их удалит. Значение по умолчанию `-1`, что означает, что технически все версии хранятся неограниченно долго, однако для видимости по-прежнему действуют зависящие от тарифа ограничения из предыдущего раздела.

На самостоятельно размещенных инстансах без лицензии Enterprise все же стоит осознанно установить эту переменную и дополнительно внедрить обходное решение с экспортом JSON. Так ты сохраняешь контроль над своей историей версий независимо от того, что интерфейс сейчас показывает или скрывает.

Часто задаваемые вопросы

Обязательно ли мне нужна лицензия Enterprise для версионирования workflow?

Нет. Встроенная Change History с полной историей и нативная синхронизация с Git через Source Control действительно зарезервированы для тарифов Business и Enterprise, но ручной экспорт JSON работает в любой версии n8n, в том числе в бесплатной Community Edition. В сочетании с собственным репозиторием Git и регулярным экспортом через CLI ты получаешь полноценное, хотя и ручное, версионирование.

Как долго n8n хранит версии workflow без тарифа Business или Enterprise?

В Community Edition и в простых тарифах через интерфейс доступны для просмотра только версии за последние 24 часа, даже если переменная окружения `N8N_WORKFLOW_HISTORY_PRUNE_TIME` установлена на неограниченное хранение. Для всего, что должно охватывать больший период, нужен либо более высокий тариф, либо собственная система резервного копирования через экспорт JSON.

Содержат ли экспортированные файлы JSON мои учетные данные?

Согласно документации n8n, экспортированные файлы JSON workflow содержат имена credential и ID credential, но не пароли и не токены в открытом виде. Тем не менее эти ссылки следует удалить или анонимизировать перед тем, как делиться файлом или добавлять его в общий репозиторий, чтобы никто не мог по ID сделать выводы о структуре твоих учетных данных.

Могу ли я сохранять отдельные node вместо всего workflow?

Да. Если ты выделишь отдельные node на canvas и скопируешь их с помощью Ctrl+C или Cmd+C, ты также получишь валидный JSON workflow, который можно сохранить в текстовом редакторе и позже снова вставить. Это хорошо подходит для отдельного версионирования переиспользуемых блоков, таких как обработка ошибок или стандартная конфигурация HTTP.

В чем разница между опцией резервного копирования CLI и простым экспортом всех workflow?

Команда `n8n export:workflow --backup` автоматически устанавливает флаги `--all --pretty --separate`, тем самым экспортируя все workflow инстанса, форматируя JSON для читаемости и создавая для каждого workflow отдельный файл. Простой же экспорт с `--all` без этих флагов может записать все workflow в единый файл или без форматирования, что делает последующее сравнение diff в Git значительно менее наглядным. Поэтому для чистого резервного копирования в Git режим резервного копирования является лучшим выбором.

О NordFlux

NordFlux UG (haftungsbeschränkt)

NordFlux создаёт цифровых сотрудников для организаций: автоматизации и КИ-агентов, которые берут на себя повторяющуюся работу. Вы сохраняете контроль.

Больше о нас
Бесплатный первичный анализ

Конкретные вопросы по автоматизации или КИ?

В рамках бесплатного первичного анализа мы напрямую обсудим Ваш случай. Без обязательств.

Версионирование workflow n8n: Change History и резервное копирование в Git