Данные и безопасность
Эта страница собирает в одно место ответы, которые обычно приходится выпытывать по частям: что где лежит, кто это видит, что уходит за пределы платформы, сколько всё это хранится и — отдельным разделом — чего в платформе нет. Тарифом из перечисленного зависят три вещи: срок хранения истории запусков (на бесплатном это 7 дней), размер команды (на бесплатном — одно место для приглашённого участника сверх владельца, см. «Команду и роли») и набор каналов публикации (на бесплатном — только веб-чат, см. «Лимиты тарифа»). Роли, скоупинг данных и секреты тарифом не ограничены и работают на любом.
Что скоупится по рабочему пространству
Рабочее пространство — граница данных, и она проведена в хранилище, а не в интерфейсе. Запрос всегда несёт идентификатор пространства, поэтому объект соседнего пространства не просто «не показывается» — он не находится.
| Данные | Область | Кто может прочитать |
|---|---|---|
| Воркфлоу, версии, запуски, логи | пространство | любой участник |
| Файлы и хранилище | пространство | любой участник |
| Коллекции базы данных | пространство | любой участник |
| Базы знаний и их вектора | пространство | любой участник |
| История чатов | пространство | любой участник |
| Память агентов и переменные | пространство | воркфлоу этого пространства |
| Секреты | пространство | имена — редактор и выше; значения — никто |
| Интеграции | пространство | участники видят настройки, секретные поля скрыты |
| Баланс кредитов, тариф, профиль | аккаунт владельца | владелец аккаунта |
Отсюда практическое следствие: переносить данные между пространствами платформа не умеет. Разложить клиентов по отдельным пространствам стоит сразу, а не «когда вырастем».
Внутри одного пространства ролей три, и они решают, кто читает, а кто меняет; разбор — в «Команде и ролях». Одно важно повторить здесь: наблюдатель читает все данные — историю чатов, файлы, содержимое коллекций. Роль ограничивает изменения, а не любопытство.
Секреты
Секрет — это пара «имя → значение» рабочего пространства: Настройки →
Секреты. Ссылаются на него в любом шаблоне как
{{ secret.ИМЯ }}, поэтому имя должно быть допустимым идентификатором — как переменная
окружения: OPENAI_API_KEY, CRM_TOKEN.
Как это устроено:
- Хранится зашифрованным. Значение лежит в базе в виде шифротекста; ключ шифрования выводится из мастер-ключа установки и не совпадает с ключом подписи токенов входа.
- Значение не возвращается наружу никогда. API отдаёт только имя и признак «значение задано». Ни администратор, ни владелец, ни поддержка не могут посмотреть сохранённый секрет — его можно только перезаписать. При правке пустое поле значения означает «оставить прежнее».
- Расшифровывается один раз на запуск. Первое обращение
{{ secret.* }}внутри рана загружает и расшифровывает весь набор в память процесса на время этого запуска; на диск расшифрованное не попадает. - Меняет секреты администратор пространства, а видеть их имена (нужные для автодополнения в редакторе) может редактор. Наблюдателю не видно и имён: список имён — это карта ваших интеграций.
- Удаление секрета не ломает граф на месте. Ссылка на удалённый секрет разворачивается в пустую строку, и воркфлоу продолжает работать — с пустым ключом в заголовке. Отказ придёт от внешнего сервиса и будет выглядеть как «неверный ключ», а не как «секрета нет». Это и есть причина, по которой удалять секреты стоит осознанно.
Ключи интеграций (пароль IMAP, токен CRM, ключ провайдера моделей) устроены так же: шифруются, не возвращаются, при правке пустое поле значит «не менять».
Секреты не попадают в логи и в тексты ошибок. Снимки входов и выходов ноды заменяют
поля с учётными данными на имя интеграции, а текст ошибки прогоняется через санитайзер,
который вырезает значения секретов этого запуска, Bearer …, ключи вида sk-… и пароли
внутри URL. Смысл: словоохотливый чужой сервер часто цитирует присланный ему ключ обратно в
тексте ошибки, и без вычистки этот текст стал бы витриной для ключа.
Что уходит наружу
Любой исходящий HTTP-запрос платформы — из ноды HTTP, из интеграции, из вызова модели — идёт через один защищённый клиент с политикой адресов. Политика проверяется на каждом соединении и на каждом редиректе, а не один раз по строке URL: адрес, который после редиректа указывает в приватную сеть, отбивается там же. Диапазоны loopback, RFC1918 и link-local закрыты, у запроса есть предельный таймаут и потолок на размер ответа.
Пользовательский JavaScript (нода JavaScript-код) исполняется не в процессе платформы, а в отдельном контейнере: у него нет доступа к базе, к секретам и к файловому хранилищу, файловая система только для чтения, сеть ограничена, а параллельность и время работы — квотированы. Подробности — в «Своём коде».
Ключи каналов — это право запускать за ваш счёт
Публичная ссылка чата, токен виджета и ключ вебхука — не «доступ к API». Каждый из них даёт ровно одно: запускать один опубликованный воркфлоу, а кредиты за этот запуск списываются с баланса владельца пространства. Отсюда практика: ссылку на чат раздают клиентам, а ключ вебхука — нет, потому что первый защищён от абьюза лимитами канала, а второй пускает машину.
| Ключ | Что даёт | Как выдаётся | Как обесценить |
|---|---|---|---|
| Ссылка публичного чата и виджета | говорить с одним воркфлоу | автоматически при первой публикации | выключить канал и опубликовать заново |
| Ключ вебхука | запускать воркфлоу по HTTP | автоматически при публикации в вебхук | выключить канал и опубликовать заново |
| Секрет подписи виджета | подписывать end-user JWT | кнопкой в настройках | кнопка обновления |
| Ключ Assistant MCP | управлять платформой по MCP | кнопкой в настройках | смена или отключение |
Разбор всех дверей и того, чего среди них нет, — в «Доступе по API».
Файлы и подписанные ссылки
Вложение, которое воркфлоу вернул в чат, доступно по ссылке с подписью: она не угадывается, но работает без входа и без срока годности — иначе вложение в истории переписки перестало бы открываться через месяц. Практический вывод: такая ссылка сама по себе является доступом к файлу, и пересылать её стоит с той же осторожностью, что и сам файл. Отдаются файлы с заголовками, запрещающими браузеру исполнять содержимое: загруженный HTML не станет страницей на вашем домене.
Сколько всё это живёт
- История запусков чистится по тарифу: 7 дней на бесплатном, 90 на платном. Чистка «мягкая» — удаляются логи и по-нодовые записи, тяжёлые входы-выходы обнуляются, а сама строка запуска со статусом и временем остаётся, поэтому статистика не рвётся. Открытый старый запуск честно скажет, что подробности вычищены.
- История чатов автоматически не удаляется. Её чистит человек — кнопками очистки в чате (роль редактора). Учитывайте это, если по договору с клиентом переписку хранить нельзя.
- Записанная история Telegram-групп выключена по умолчанию, включается на конкретном воркфлоу и имеет собственные тарифные сроки и потолок числа сообщений.
- Файлы, коллекции, базы знаний и память не имеют срока — живут, пока их не удалят, и считаются в квотах хранения владельца («Лимиты тарифа»).
Архивация пространства ничего из этого не удаляет: данные остаются, освобождается только слот в квоте пространств.
Вход в аккаунт
Пароль хранится в виде хеша; вход выдаёт токен на 24 часа, после чего нужен новый вход. Попытки входа и регистрации ограничены по частоте. Вход, смена ролей и правка секретов пишутся в журнал безопасности с временем, автором и IP — журнал сегодня доступен только глобальному администратору установки.
Чего в платформе нет
Честный список — чтобы вы не искали эти кнопки и не строили на них планов.
- Двухфакторной аутентификации нет.
- Отдельного документа про юрисдикцию, обработку персональных данных и сроки хранения у платформы пока нет. Что можно сказать по факту устройства: данные лежат там, где развёрнута установка, и уходят наружу только к тем провайдерам, которых вы сами подключили — к провайдеру моделей и к сервисам ваших интеграций. Если требования к размещению данных жёсткие, единственный сегодняшний ответ — развернуть платформу у себя («Развернуть у себя»).
- Экспорта «всех моих данных одной кнопкой» нет. Выгружать приходится по частям: воркфлоу — из редактора, файлы — из хранилища, коллекции и базы знаний — через собственные разделы.
- Журнала действий для администратора пространства нет — только для глобального администратора установки.