Администрирование
У развёртывания workflow-движка есть одна поверхность для оператора помимо самого редактора — админ-приложение. В нём оператор управляет тем, кто ещё может администрировать развёртывание, и включает OAuth2-интеграции из каталога ActivePieces.
По умолчанию каждая учётная запись — обычный пользователь (user). Учётная запись с ролью
админ (admin) дополнительно может открыть админ-приложение и всё описанное ниже — тот же логин, та
же сессия, отдельных учётных данных не требуется.
Админ может повысить любого другого пользователя до админа или понизить админа обратно до пользователя — на странице «Пользователи».
- Админ не может изменить собственную роль — это защищает развёртывание от случайной потери админ-доступа.
Изменение роли вступает в силу немедленно — повторный вход не нужен, достаточно обновить страницу у затронутой учётной записи.
Первый админ
Заголовок раздела «Первый админ»На локальном или self-hosted стенде с сидом по умолчанию встроенная учётная запись admin/
admin
уже является админом — настраивать ничего не нужно.
На развёртывании с самостоятельной регистрацией (хостинговый продукт) сначала зарегистрируйтесь обычным образом, а затем сделайте эту учётную запись админом одним из двух способов:
Укажите имя пользователя в настройке бэкенда
ADMIN_USERNAMES(через запятую, если пользователей несколько) и один раз перезапустите бэкенд — все перечисленные пользователи будут повышены при старте.Либо задайте роль напрямую в базе данных:
UPDATE users SET role = ‘admin’ WHERE username = ‘…’;
Для всех последующих админов ни один из этих шагов не нужен — просто повысьте их со страницы «Пользователи».
Управление пользователями
Заголовок раздела «Управление пользователями»Self-hosted развёртывание по умолчанию не позволяет посторонним регистрироваться самим. Учётные записи создаёт админ:
Создать пользователя — на странице «Пользователи» нажмите «Создать пользователя», введите имя и подтвердите. Будет сгенерирован случайный пароль, который показывается один раз в окне (с кнопкой «Копировать») — передайте его человеку. В читаемом виде он нигде не хранится и повторно показан быть не может.
Сбросить пароль — нажмите «Сбросить пароль» в строке пользователя и подтвердите. Старый пароль сразу перестаёт работать, а новый сгенерированный показывается один раз так же, как выше. Почты нет: забытые пароли всегда сбрасывает админ.
Сменить свой пароль — любой вошедший пользователь может нажать «Сменить пароль» (в шапке списка проектов и в шапке админ-приложения) и ввести текущий пароль и новый, не короче 8 символов.
Предупреждение о пароле по умолчанию. Свежая установка создаёт учётную запись admin/
admin. Пока у неё остаётся пароль admin, на списке проектов и на каждой странице
админ-приложения показывается предупреждающая плашка с кнопкой «Сменить пароль»; после смены пароля она пропадает.
Смените пароль до того, как открывать инстанс в интернет.
Почта. Бэкенд умеет отправлять письма по обычному SMTP — от этого зависят подтверждение e-mail, сброс
пароля, заявки на бету (ниже) и письма об активации. Без почты всё это просто не делает ничего (без ошибок),
пароли сбрасывает админ, как описано выше, и осмысленны только режимы регистрации off/open.
SMTP_URL—smtp://user:password@host:587илиsmtps://user:password@host:465. Не задан = почта не настроена.MAIL_FROM— адрес отправителя (по умолчаниюnoreply@localhost).CLIENT_PUBLIC_URL— публичный URL клиентского приложения; все ссылки в письмах (подтверждение e-mail, сброс пароля) ведут на него. Если не задан, берётся origin изBACKEND_PUBLIC_URL.
Публичной регистрацией управляют настройки бэкенда:
SIGNUP_MODE—off(по умолчанию: эндпоинт регистрации отвечает403, на странице входа нет ссылки «Создать аккаунт»),open(регистрируется любой, логин и пароль; e-mail можно указать, он подтверждается по ссылке, но ничего не блокирует — только небольшая плашка «e-mail не подтверждён» с кнопкой «отправить ещё раз») илиapplication(закрытая бета: форма спрашивает e-mail, название компании и какая автоматизация интересует — без пароля; см. «Заявки и активация» ниже). СтарыйSELF_SERVICE_SIGNUP=trueпо-прежнему работает и означаетopen. Локальный Docker Compose-стенд работает в режимеopen.TERMS_URL— необязательно. Если задан, при регистрации появляется обязательный чекбокс «Принимаю условия» со ссылкой на этот URL, бэкенд отклоняет регистрацию без согласия, а время согласия сохраняется у учётной записи.CAPTCHA_PROVIDER—none(по умолчанию)recaptcha(Google reCAPTCHA v2 «я не робот») илиsmartcaptcha(Яндекс SmartCaptcha), сCAPTCHA_SITE_KEY(клиентский ключ) иCAPTCHA_SECRET(серверный ключ), зарегистрированными для вашего домена у провайдера. Капча защищает регистрацию и «Забыли пароль?»; если провайдер недоступен, запрос завершается503, а не пропускается.
При настроенной почте на странице входа есть «Забыли пароль?»: пользователь вводит e-mail и, если существует активированная учётная запись с этим подтверждённым адресом, получает ссылку на сброс, действующую час. Ответ одинаков в любом случае, так что по форме нельзя узнать, зарегистрирован ли адрес.
Заявки и активация
Заголовок раздела «Заявки и активация»В режиме SIGNUP_MODE=application никто не заводит себе аккаунт сам. Посетитель отправляет
заявку (e-mail, компания, интересующая автоматизация, капча и чекбокс условий), получает просьбу перейти по
ссылке из письма и обязан подтвердить адрес — неподтверждённая заявка никогда не показывается как готовая. После
подтверждения каждый админ с e-mail получает письмо «новая заявка», а заявитель при попытке входа видит «ожидает
активации».
На странице «Пользователи» у заявки видны e-mail, компания и колонка «Активирован» («нет» или метка «e-mail не подтверждён», пока ссылка не открыта). Переключатель «только ожидающие активации» оставляет в таблице только заявки, ждущие вас; «Подробнее» открывает карточку целиком (e-mail, статус, компания, интерес, источник регистрации, даты регистрации/подтверждения/активации).
Активировать генерирует пароль (тот же генератор, что у «Создать пользователя»), помечает аккаунт активным и отправляет письмо «ваш бета-аккаунт активирован» с логином (e-mail) и этим паролем, а также советом его сменить. Если письмо отправить не удалось (почта не настроена или SMTP-сервер отказал), пароль один раз показывается вам в диалоге — передайте его сами.
До активации попытка входа отвечает «учётная запись ожидает активации», а не «неверный пароль». Аккаунт, созданный админом через «Создать пользователя», активен сразу, как и раньше; там можно указать необязательный e-mail, он считается подтверждённым.
Поддержка пользователей
Заголовок раздела «Поддержка пользователей»У каждого вошедшего пользователя есть кнопка «Поддержка» (список проектов, страницы «Запуски» и «Задачи», панель инструментов редактора), открывающая текстовый чат с администраторами; бейдж на ней считает непрочитанные ответы. Одна нить на пользователя, только текст, без вложений.
В админ-приложении страница «Поддержка» показывает слева список нитей (сначала самые свежие, с числом непрочитанных у каждой и общим бейджем на пункте меню), справа — выбранную переписку; ответ отправляется по Enter (Shift+Enter — перенос строки). Открытие нити помечает сообщения пользователя прочитанными. Списки обновляются опросом раз в несколько секунд — push-канала нет.
Если настроен SMTP (см. «Почта» выше), администраторы также получают письмо, когда пользователь пишет (все
админы с e-mail либо адреса из SUPPORT_NOTIFY_EMAILS, если переменная задана), а пользователь с
подтверждённым e-mail — когда отвечает администратор; не чаще одного письма на диалог в каждую сторону раз в 10
минут, со ссылкой обратно в приложение.
Две настройки ограничивают, куда проект пользователя может заставить сервер подключаться (все исходящие соединения по адресам из данных пользователя — «Синхронизация структуры», списки моделей и т.п.):
EGRESS_ALLOW_PRIVATE/EGRESS_ALLOWED_CIDRS— по умолчанию бэкенд отказывается подключаться к loopback, приватным (RFC 1918, CGNAT), link-local (включая адрес metadata облака) и другим зарезервированным адресам и не следует редиректам. Если ваши базы данных или серверы моделей находятся во внутренней сети, задайтеEGRESS_ALLOWED_CIDRS(например10.0.0.0/8,172.18.0.0/16) либоEGRESS_ALLOW_PRIVATE=true, чтобы снять ограничение целиком (только для single-tenant установки; локальные Docker Compose-стенды так и делают).ENABLE_SQLITE_INTEGRATION— по умолчаниюfalse. Интеграция SQLite открывает путь к файлу, выбранный пользователем, поэтому она недоступна, пока вы не поставитеtrue(установка для одного клиента или разработка).
Админ-приложение
Заголовок раздела «Админ-приложение»Откройте /admin на том же хосте, что и редактор workflow (у вошедшего админа также появляется ссылка
«Admin» на странице списка проектов). В нём три страницы:
Пользователи — список всех учётных записей с переключателем роли в каждой строке.
OAuth-учётные данные — OAuth2-клиенты платформы для amoCRM и интеграций ActivePieces, см. ниже.
ИИ-агент — настройка ИИ-агента редактирования на уровне всего развёртывания, см. ниже.
Лимиты пользователя
Заголовок раздела «Лимиты пользователя»Кнопка Лимиты в строке пользователя открывает квоты этого аккаунта: максимальный размер одного файла,
максимальный суммарный размер файлов проекта, сроки хранения файлов и максимальное число
одновременно запущенных опубликованных версий на проект (по умолчанию 3 или значение настройки развёртывания
MAX_CONCURRENT_PROD_VERSIONS). Пустое поле означает «использовать значение по умолчанию»; заполненное
переопределяет его только для проектов этого аккаунта.
Просмотр проектов пользователя
Заголовок раздела «Просмотр проектов пользователя»Админ может заглянуть в любой проект пользователя — например, чтобы разобраться с вопросом в поддержке — без возможности что-либо изменить. На странице Users нажмите на число проектов пользователя (или откройте «Подробнее»): в карточке будет список его проектов, а Открыть покажет проект в редакторе в новой вкладке.
Проект открывается только для просмотра: в тулбаре метка «Только просмотр · владелец: …», в дереве проекта нет «+ Добавить», контекстных меню и перетаскивания, схемы не редактируются. Ничего не сохраняется автоматически.
Доступно: все документы и папки, список интеграций (секреты замаскированы, как и для владельца), история версий и сравнения (без «назвать текущую версию», переименования и восстановления), сгенерированный код, запуски проекта с журналом (без «Завершить»), экспорт в JSON и PDF.
Недоступно: меню Dev/Prod (сборка, запуск, отладка, публикация), ИИ-агент и магическая вставка, файлы и задачи проекта, настройки журнала запусков.
Ограничение действует на бэкенде, а не только скрыто в интерфейсе: админу открыты лишь маршруты чтения проекта, любая запись отвечает
404, как и для любого другого не-владельца.
OAuth-учётные данные — включение OAuth2-интеграций
Заголовок раздела «OAuth-учётные данные — включение OAuth2-интеграций»amoCRM и интеграции из каталога ActivePieces, которые авторизуются через OAuth2 — Google Sheets, Gmail, Google Drive, Slack и другие, — используют один OAuth2-клиент на интеграцию, принадлежащий развёртыванию , который настраивается здесь один раз. Пользователи никогда сами не вводят client ID/secret — им достаточно нажать «Connect».
Интеграция без настроенного клиента отключена: она вообще не появляется ни в «добавить интеграцию», ни в пикере действий редактора.
Чтобы включить интеграцию:
Откройте «OAuth-учётные данные» в админ-приложении и найдите нужную интеграцию — у неё будет статус «Disabled».
Нажмите «Configure». В таблице и в окне настройки показана ссылка для перенаправления, которую нужно указать в приложении у вендора, —
https://<хост вашего бэкенда>/oauth2/callback/<id интеграции>.- Вставьте Client ID и Client secret, выданные вендором.
- Сохраните. Статус сменится на «Enabled», и интеграция станет доступна во всех проектах.
Удаление настроенных учётных данных снова отключает интеграцию — существующие подключения этого вендора перестают подключаться и обновлять токен.
Пример для Google:
В
Google Cloud Console
создайте OAuth 2.0 Client ID типа «Web application».
Добавьте авторизованный redirect URI вида
https://<хост вашего бэкенда>/oauth2/callback/<id интеграции>. Id интеграции показан в колонке «Vendor» таблицы OAuth-учётных данных — для Google Sheets этоactivepieces-google-sheets. Для хостингового продукта хост бэкенда —api.workflow.falang.ru, поэтому redirect URI будетhttps://api.workflow.falang.ru/oauth2/callback/activepieces-google-sheets.Один OAuth-клиент Google Cloud может нести несколько redirect URI — добавляйте по одному на каждую включаемую Google-интеграцию (Gmail, Google Drive, Google Calendar, Google Forms, …), а не создавайте отдельный клиент для каждой.
- Вставьте Client ID и Client secret этого клиента в админ-приложение, как описано выше.
Что видит пользователь
Заголовок раздела «Что видит пользователь»После включения интеграция появляется в списке вендоров редактора интеграций проекта наравне с остальными. Её форма учётных данных запрашивает только имя (плюс любые несекретные поля, специфичные для вендора) и кнопку «Connect», которая открывает всплывающее окно согласия самого вендора — никаких полей client ID/secret.
Пример для amoCRM: в техническом аккаунте amoCRM создайте внешнюю интеграцию, укажите «Ссылку для
перенаправления» https://<хост вашего бэкенда>/oauth2/callback/amocrm (для хостингового продукта —
https://api.workflow.falang.ru/oauth2/callback/amocrm) и доступ «Доступ к данным аккаунта». Затем
вставьте «ID интеграции» как Client ID и «Секретный ключ» как Client secret в строку amoCRM.
Диадок пока использует собственные поля client ID/secret, вводимые в каждой учётной записи отдельно.
ИИ-агент
Заголовок раздела «ИИ-агент»О работе с агентом, включая его уточняющие вопросы, рассказано на странице «ИИ-агент».
ИИ-агенту редактора (редактирование функции естественным языком — кнопка Агент на панели инструментов открывает его панель в правой боковой панели, рядом с кнопкой История; одновременно показывается только одна из двух панелей) для работы нужен один OpenAI-совместимый эндпоинт на уровне всего развёртывания. Настраивать его для каждого проекта не нужно — админ задаёт его один раз для всего развёртывания на странице «ИИ-агент»:
Агент не ограничен тем документом, который сейчас открыт, — он может читать и редактировать другие документы проекта, а также создавать новые документы типа «функция» или «триггер» и структуры объектов (интерфейсы, описывающие форму данных, — только типы, а не хранилище). Он работает даже в совсем новом проекте без единого документа: достаточно описать, что нужно построить, и агент сам создаст нужные документы по ходу работы.
Base URL — корневой адрес OpenAI-совместимого API вендора, например
https://api.openai.com/v1или любой совместимый провайдер.Модель — название модели простым текстом, например
gpt-4o-mini.API-ключ — API-ключ вендора; хранится в зашифрованном виде с помощью
CREDENTIALS_ENCRYPTION_KEYразвёртывания.Интерфейс агента — как агент правит документы: JSON-файлы (по умолчанию и рекомендуется — читает и записывает документы целиком и проверяет проект перед завершением) или Инструменты узлов (по узлу за шаг; оставлены как запасной вариант).
Пока это не настроено, панель чата агента у каждого пользователя показывает уведомление «не настроено, обратитесь к администратору» вместо кнопки отправки — агентом просто нельзя пользоваться. При последующем редактировании настроек поле API-ключа специально оставляют пустым: сохранение с пустым полем оставляет текущий сохранённый ключ, меняются только Base URL/модель. «Reset» удаляет все четыре значения и снова отключает агента для всех. Пользователи эти настройки не видят — даже то, на какой модели работает агент: редактор узнаёт только, настроен ли агент и какой у него интерфейс.
Это отдельная сущность от учётных данных интеграции «OpenAI» на уровне проекта, которые используют узлы
call-ai-text/call-ai-choice внутри workflow — эти учётные данные не затрагиваются и
по-прежнему настраиваются для каждого проекта отдельно, как и любая другая интеграция.
Шаблоны проектов
Заголовок раздела «Шаблоны проектов»В диалоге «Новый проект» есть выбор шаблона: шаблон — это снимок целого проекта (папки, документы, документ интеграций с очищенными секретными полями учётных данных), из которого создаётся новый проект, — тот же формат, что у экспорта/импорта проекта. Шаблоны хранятся в базе данных и управляются со страницы Шаблоны проектов админ-приложения; свежая установка создаёт ровно один шаблон, «Пустой проект», чтобы список никогда не был пустым. Если шаблон не выбран, создаётся пустой проект, как и раньше.
Создать — имя, описание и один из ваших собственных проектов в качестве источника. Снимок делается в этот момент; последующие правки проекта-источника не меняют шаблон, пока вы не нажмёте Обновить из проекта. «Редактирование» шаблона — это правка проекта-источника в обычном редакторе и последующее обновление.
Включить / выключить — выключенный шаблон остаётся в таблице админки, но скрыт из списка выбора. Порядок в списке — по полю «порядок», затем по имени.
Загрузить JSON / Скачать — заменить содержимое шаблона файлом экспорта проекта (проверяется так же, как при импорте) или скачать текущее содержимое таким файлом. Загрузка отвязывает шаблон от проекта-источника.
Удалить — удаляет шаблон; уже созданные из него проекты не затрагиваются.
