Pull to refresh

Comments 28

А по-моему всё по делу и честно написано.

Форкать можно.

А переписать enterprise код через LLM как это сделали с claude-cli, когда исходники попали в сеть, в свое время?

Не понял. А в чем суть такой лицензии?

Типа "списывай, но не точь в точь"

Закручивание гаек через лицензию, запрет на продажу self-host версии и т.д. Дурацкая схема да и в эпоху LLM вычистить код будет не особо сложно.

А миграции были под комерческой лицензией или под свободной? Судя по тому, что они остались - второе. Но в таком случае в чём проблема “коммерческих” таблиц в БД? Просто добавляем одну миграцию, которая их удалит, и всё…

Как раз наоборот: миграции были коммерческими. 51 файл (по 12–13 на каждую из четырёх СУБД) лежал в той же папке enterprise под лицензией FlowiseAI. Я удалил их из репозитория вместе с историей, распространять этот код нельзя. Остались не миграции, а таблицы в базах пользователей, которые уже обновились до Flowise 3.x.

С самими таблицами проблемы нет: схема базы и данные пользователя — не код FlowiseAI. Проблема в том, что код, который их создаёт, пришлось выкинуть, а открытая часть на эти таблицы опирается. Колонку workspaceId используют девять открытых миграций и запросы по всему серверу, а открытая миграция ModifyChatflowType для SQLite пересоздаёт chat_flow с внешним ключом на workspace. Поэтому «добавить миграцию, которая всё удалит» не получится. Без workspace новая база не соберётся, открытый код упадёт на первом же запросе, а у тех, кто обновляется с Flowise 3.x, мы бы удалили данные.

Так что я сделал обратное: свои миграции под Apache-2.0 создают user, organization, workspace и колонки workspaceId, если их нет, и ничего не делают, если есть. Keelflow сам ими пользуется: владелец входит через ту же таблицу user. Таблицы, которые Keelflow больше не нужны (roles, workspace_users, workspace_shared, login_activity), в старых базах остаются нетронутыми. Удалять миграцией данные пользователя без спроса не хочу, а если кто-то попросит, это будет отдельная команда очистки, которую запускают явно.

А в чем проблема вообще не создавать миграции? Сделайте базу одним махом, зачем разбивать создание на исторические шаги, которых у проекта все равно нет?

Спасибо, очень интересно!
Насколько понимаю, такая архитектура необычна, чтобы не сказать "неправильная" - обычно есть core open source, который 100% функционален без коммерческих добавок.
Кстати, вопрос - вы не изучали что делали остальные разработчики которые форкали проект?

Спасибо! Согласен, для open core это необычно. Обычно открытое ядро полностью рабочее, а коммерческая часть его дополняет, как у GitLab с его отдельным FOSS-вариантом. У Flowise так было до версии 3.0: в 1.x и 2.x вход настраивался логином и паролем в переменных окружения, и открытая часть работала сама. В 3.0 (май 2025) появились пользователи, организации и рабочие пространства. Их положили в коммерческую папку, но бесплатный режим начал работать через тот же код, просто с одним владельцем. Скорее всего, это удобство разработки, а не злой умысел, но в итоге без коммерческой папки открытая версия не запускается.

Форки смотрел, и при разведке, и сейчас ещё раз. Из 25 тысяч почти все — копии без своих коммитов. У самых звёздных форков (десяток-полтора звёзд) последние коммиты сделаны до закрытия, и коммерческая папка в них на месте. the-answerai/theanswer — отдельный продукт на базе Flowise, последний коммит в июне. После закрытия я нашёл только один форк, который тоже вырезал коммерческий код и сделал вход для одного пользователя: DimVai/Dim-Flowise. Но это личный проект автора, без звёзд и без явной лицензии. Остальные, судя по обсуждениям, уходят на Langflow, Dify или n8n.

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

FlowiseAI, а копировать, публиковать и распространять запрещено.

Можно, потому что они согласились с EULA и загрузили код на Github. Больше курите мануалы неинтересные тексты :)

ЕМНИП, там довольно ограниченные права, вроде того, что смотреть на код и копировать кнопкой Fork можно, а редактировать и запускать — уже только если лицензия разрешает.

Да, примерно так.

Условия GitHub действительно дают кое-что: выложив публичный репозиторий, автор разрешает другим пользователям смотреть код и форкать его средствами самого GitHub. Но на этом разрешение и кончается. Оно не распространяется на то, что обычно делают с форком: запускать в продакшене, собирать Docker-образ, раздавать людям вне GitHub.🫡

А коммерческая лицензия Flowise про это говорит прямо: в продакшене — только с подпиской, копировать и менять можно лишь для разработки и тестирования, а права на все изменения остаются у FlowiseAI. И последней строкой — запрет копировать, публиковать и распространять. Подписку теперь не купить, компании нет. Так что форк на GitHub сделать можно, а выпустить из него продукт, который люди поставят у себя, — нет. Поэтому я вырезал эту папку и написал замену под Apache-2.0. Я не юрист, но для проекта, который ставят компании, лучше, чтобы вопрос вообще не возникал.

И последней строкой — запрет копировать, публиковать и распространять. Подписку теперь не купить, компании нет.

Интересный момент: имеет ли запрет юридическую силу, если компании владевшей продуктом больше не существует? Если у кода нет юридического владельца, то не является ли это фактическим переходом в общественное достояние?

Справедливо. ~/.keelflow появился как зеркало ~/.flowise: главное было, чтобы переход с Flowise работал без ручного переноса данных. Если ~/.keelflow пустой, а в ~/.flowise что-то есть, Keelflow берёт старую папку. Но новым установкам засорять $HOME незачем.

Сделаю так:

  • новые установки хранят данные в $XDG_DATA_HOME/keelflow (по умолчанию ~/.local/share/keelflow), на macOS — в ~/Library/Application Support/keelflow, на Windows — в %LOCALAPPDATA%\keelflow;

  • существующие ~/.keelflow и ~/.flowise продолжают работать как есть: молча переносить чужую базу с ключом шифрования учётных данных — плохая идея;

  • KEELFLOW_HOME по-прежнему переопределяет всё, в Docker путь задаётся им явно;

  • логи, скорее всего, уедут отдельно в $XDG_STATE_HOME.

Спасибо, войдёт в ближайший релиз.

Спасибо, согласен. Баталии по этой теме в Firefox лет 20 разрешить не могли.

зачем продолжать забивать $HOME

А что еще с ним делать?

Я понял, знаю, что есть стандарт, только вопрос в том – а для чего еще $HOME предназначен, как не для хранения личных настроек программ? Что еще там хранить?

Я добавил статью к комментарию. Не засорять корневую папку, чтобы пользователю было удобно по ней навигировать и ею пользоваться.

Плюс за основательный подход. Вычищать пришлось много. Веселые, вайбовые ребята, чтобы с Github raw файлы подтягивать :)

Хотел локально по тыкать, запустил через docker.
Но, вот заюзать локальную LLM не удалось
Error in Agent node: isDeniedIP: Error: Access to this host is denied by policy.
Адрес к LLM endpoint через полный локальный ip.
Никаких настроек не нашел.

В docker помогает -e HTTP_SECURITY_CHECK=false

ладно, ок.. спишем на секьюрность по дефолту )

Видимо одна из причин ухода в прошлое таких low code конструкторов, это то что я не нашел как реализовать схему транскрибации из аудио файла, т.е. везде работа чисто с текстом ( хотя и функционал довольно разнообразный )
И нужно пилить свою обвязку и такого нет из коробки.

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

Работа чисто с текстом, что в 2026 году морально устарело ибо например распознать картинку и сделать по ней html - для этого нужно прогать кастом туллзы

Имхо без переделок, это морально застряло на заре когда ЛЛМ-ки обрабатывали только текст и мульти модальность была как нечно запредельное

Хотя в целом идея конструктора еще может выстрелить когда более остро встанет вопрос об экономии токенов по средством узкопрофильности инструментов.

Sign up to leave a comment.

Articles