Как работают лицензии
Как работают лицензии
StormBPMN поддерживает два типа лицензий для управления доступом пользователей к системе.
Типы лицензий
Именные лицензии - для конкретных пользователей
Конкурентные лицензии - для одновременной работы
Типы лицензий
Именные лицензии
Именные лицензии позволяют входить в систему конкретным пользователям в любой момент времени.
Принцип работы:
- Количество лицензий = количество активных учетных записей
- Ограничение распространяется на учетные записи во включенном состоянии
- Состояние пользователей отображается в административном интерфейсе
Пример: При наличии 30 именных лицензий ровно 30 пользователей могут иметь активные учетные записи.
Конкурентные лицензии
Конкурентные лицензии позволяют иметь в онлайне (в диапазоне 1 минуты) определенное количество одновременно подключенных пользователей.
Принцип работы:
- Количество лицензий = количество одновременных сессий
- Квант времени для проверки: 1 минута
- Ограничение на количество зарегистрированных учетных записей не действует
- Проверка включенности пользователей не выполняется с точки зрения лицензий. Все еще проверяется для возможности входа.
Пример: При наличии 30 конкурентных лицензий 30 человек смогут работать в системе одновременно.
Общие принципы лицензирования
Дополнительная лицензия
Бонусная лицензия
Система автоматически предоставляет +1 лицензию к заявленному количеству для обеспечения бесперебойной работы администраторов.
Например: при покупке 30 лицензий фактически доступно 31 место.
Кто подвергается лицензированию
Лицензированию подвергаются только пользователи с учетными записями в системе:
- Зарегистрированные пользователи - те, кто прошел процедуру регистрации
- Импортированные пользователи - добавленные через административный интерфейс
- Пользователи из внешних систем - при интеграции с LDAP/Active Directory
Словом, любая учетная запись.
Исключения
Анонимные посетители (кто не входит в систему) не учитываются при подсчете лицензий.
Активация инсталляции
Переходный период: поддерживаются ключи v1 и v2
Существующий LICENSE_KEY продолжает временно поддерживаться: немедленно менять ключ во всех инсталляциях не требуется. Лицензии v1 устарели и имеют известное ограничение безопасности, поэтому переводите инсталляции на LICENSE_KEY_V2 постепенно. Новый ключ v2 выдаётся отдельно для каждой инсталляции и не переносится между ними.
Если задан непустой LICENSE_KEY_V2, приложение использует только его, даже когда рядом сохранён LICENSE_KEY. Неверный ключ v2 не приводит к автоматическому возврату на v1: исправьте или удалите LICENSE_KEY_V2 и перезапустите все экземпляры приложения.
Сначала установите согласованную с менеджером версию приложения с поддержкой v2. Старые образы не используют LICENSE_KEY_V2; при обновлении существующей инсталляции сохраните рабочий LICENSE_KEY, а затем переходите к активации v2.
При первой установке откройте /admin-onboarding без входа, получите код и активируйте лицензию, затем создайте первого администратора в мастере настройки. Пока лицензия не активирована, не открывайте установку обычным пользователям. Пустой или отсутствующий v2 выбирает legacy-путь; отсутствие обоих ключей не гарантирует блокировку доступа.
На уже работающей инсталляции с LICENSE_KEY код берётся там же — без входа и без запуска мастера; подробности и способ без браузера — в разделе «Где взять код активации на существующей инсталляции».
Как получить и установить ключ:
| Шаг | Действие |
|---|---|
| 1 | Откройте /admin-onboarding на нужной инсталляции (например, https://ваш-домен/admin-onboarding). Страница открывается без входа и на работающей инсталляции с действующим LICENSE_KEY |
| 2 | Скопируйте весь код активации без сокращения из блока «Ваш активационный код». Больше на странице ничего нажимать не нужно |
| 3 | Передайте полный код менеджеру и получите LICENSE_KEY_V2 именно для этой инсталляции |
| 4 | Добавьте LICENSE_KEY_V2 в конфигурацию или хранилище секретов; на время проверки можно оставить LICENSE_KEY рядом для отката |
| 5 | Перезапустите все экземпляры приложения и дождитесь успешных health checks |
| 6 | Убедитесь, что в запущенных экземплярах задан полученный LICENSE_KEY_V2; на /admin-onboarding проверьте отсутствие ошибки, срок, места и AI. После настройки пользователей проверьте вход и нужные функции, включая DES, обычной учётной записью |
| 7 | После успешной проверки этой инсталляции удалите LICENSE_KEY из её рабочей конфигурации; в хранилище отката сохраняйте его только пока поддерживается откат на v1 |
Отдельный ключ нужен каждой инсталляции. Production, каждый тестовый контур, резервная площадка (DR), клон и перенесённая в новое окружение система лицензируются отдельно. Перед массовым обновлением составьте их список и заранее запросите ключ для каждой.
Код активации изменился
Если на экране /admin-onboarding показан другой код, запросите новый LICENSE_KEY_V2 у менеджера и передайте ему весь отображаемый код без сокращения.
Где взять код активации на существующей инсталляции
Код активации — строка из 64 символов, привязанная к конкретной инсталляции. Он не зависит от текущего LICENSE_KEY и версии образа, поэтому у работающей инсталляции его можно снять заранее и запросить LICENSE_KEY_V2 ещё до окна обновления. Вход в систему не нужен; чтение кода ничего в инсталляции не меняет.
| Способ | Доступен с версии | Как |
|---|---|---|
Страница /admin-onboarding | 6.6.2310 | Откройте https://ваш-домен/admin-onboarding. Код — в блоке «Ваш активационный код» в верхней части страницы, рядом кнопка копирования. Страница открывается без входа и при действующей лицензии v1 |
| API без браузера | 6.6.2229 | curl -s https://ваш-домен/api/v1/license-signature — ответ и есть код. Если порт API опубликован, с хоста приложения можно обратиться к нему напрямую: curl -s http://localhost:8082/api/v1/license-signature. Удобно для инвентаризации нескольких инсталляций |
| Версия старше 6.6.2229 | — | Сначала обновите образ, сохранив рабочий LICENSE_KEY, затем снимите код любым способом выше |
На `/admin-onboarding` ничего не запускайте
Кнопка «Начать настройку» открывает мастер первичной настройки. На уже настроенной инсталляции он не нужен: повторное создание первого администратора бэкенд отклонит. Для получения кода достаточно скопировать его из блока в верхней части страницы.
Что передать менеджеру вместе с полным кодом (все 64 символа, без сокращения):
- какая это инсталляция — production, тестовый контур, DR-площадка или клон: на каждую нужен свой ключ;
- тип лицензии, число мест и срок — как в действующем
LICENSE_KEY, если ничего не меняется; - нужны ли AI (
enableAiFeatures) и DES (enableDes) — в v2 оба по умолчанию выключены, даже если на v1 симуляции работали.
В ответ вы получите LICENSE_KEY_V2, выпущенный именно под этот код. Дальше — шаги 4–7 из таблицы выше.
Когда код меняется:
- обновление образа, замена
LICENSE_KEY, новые пользователи и данные код не меняют; - восстановление дампа в новую базу, перенос в другое окружение, клонирование инсталляции или изменение конфигурации приложения могут дать новый код — ключ под старый код будет отвергнут с причиной
OTHER_INSTALLATION; - у всех экземпляров одной инсталляции код должен совпадать. Если он различается, конфигурация экземпляров расходится — выровняйте её до запроса ключа.
Снимайте код, когда база и конфигурация окончательные. Если код всё же изменился, запросите перевыпуск ключа — см. «Диагностика и восстановление».
Формат v2 и доступ к модулям
V2 — подписанный ключ PS256 JWS, привязанный к коду активации. Бэкенд проверяет подпись открытым ключом; закрытый ключ подписи остаётся у сервиса выдачи и не устанавливается в приложение. Legacy v1 устарел, поскольку исторический механизм содержит закрытый ключ в распространяемом приложении.
При запросе ключа согласуйте срок, тип и количество мест, а также AI (enableAiFeatures) и DES (enableDes). В v2 оба разрешения по умолчанию выключены. Доступ к симуляциям проверяет бэкенд: работающий контейнер DES сам по себе не даёт доступа. На v1 сохраняется прежнее поведение DES, поэтому при миграции отдельно проверьте запуск симуляции под обычным пользователем. Если DES нужен, запросите v2 с enableDes=true до переключения production.
Менеджер, использующий Telegram-бота, выбирает /license 2 для v2 и передаёт полный код активации. Для legacy v1 укажите /license 1 явно: в обновлённом боте обычная /license по умолчанию выдаёт v2. Поля enableBaseRegister, enableHelpDesk и enableCloudMetrics относятся к legacy v1 и не входят в подписанные claims v2. На /admin-onboarding нет отдельного индикатора версии ключа: проверяйте выбранный режим по конфигурации запущенных экземпляров, а права — по фактическому доступу.
Если задан неподходящий LICENSE_KEY_V2:
Бэкенд может запуститься в заблокированном лицензионном режиме, чтобы сохранить владельцу путь восстановления. Сам факт запуска и успешный health check не подтверждают доступ обычных пользователей.
- Войдите как владелец — учётная запись из администраторской команды — и откройте
/admin-onboarding. Обычным пользователям этот режим не предназначен. - Скопируйте полный код активации и получите ключ у менеджера.
- Задайте
LICENSE_KEY_V2и перезапустите все экземпляры приложения. - Дождитесь успешных health checks, проверьте статус лицензии и вход лицензированного обычного пользователя. Данные при этом сохраняются.
Переключение и откат версии
Мигрируйте инсталляции по одной: добавьте LICENSE_KEY_V2, перезапустите все экземпляры, проверьте лицензию обычным пользователем и только затем удалите LICENSE_KEY из рабочей конфигурации этой инсталляции. Остальные инсталляции могут продолжать работать с LICENSE_KEY до своего окна миграции.
Пока нужен быстрый откат конфигурации, допустимо сохранить обе переменные: непустой LICENSE_KEY_V2 имеет исключительный приоритет, а LICENSE_KEY остаётся резервом только после удаления или очистки LICENSE_KEY_V2 и перезапуска. Для отката на версию, использующую v1, сохраните LICENSE_KEY, совместимые базу данных и образ по процедуре отката. После закрытия окна отката и успешной миграции удалите устаревший секрет по принятой процедуре управления секретами.
Диагностика и восстановление
- Если при наличии рабочего
LICENSE_KEYдобавлен неверныйLICENSE_KEY_V2, приложение не возвращается к v1 автоматически. Исправьте v2 либо удалите или очистите его, перезапустите все экземпляры и снова проверьте лицензию. - Если полный код активации на
/admin-onboardingотличается от кода, для которого выдан текущий ключ, передайте новый код менеджеру и запросите перевыпускLICENSE_KEY_V2. - Если отображается состояние
SIGNATURE_UNAVAILABLE, не запрашивайте перевыпуск только из-за этого состояния: сохраните ключ без изменений, соберите логи и обратитесь в поддержку для восстановления доступа к идентификатору базы данных. Бэкенд повторяет проверку при последующих запросах (по умолчанию не чаще раза в 30 секунд) и после успеха снимает эту блокировку без перезапуска. Замена ключа сама по себе эту причину не устраняет. - После любого восстановления дождитесь health checks, убедитесь, что лицензия активна, и проверьте вход и лицензированную функцию под обычной учётной записью, а не только под владельцем.
Ошибки привязки ключа к инсталляции:
На странице /admin-onboarding могут отображаться следующие сообщения:
| Сообщение | Причина | Действие |
|---|---|---|
| «Лицензионный ключ не задан или не читается» | LICENSE_KEY_V2 отсутствует, пуст или повреждён | Задайте валидный LICENSE_KEY_V2 и перезапустите все экземпляры |
| «Лицензионный ключ выдан без привязки к инсталляции» | Ключ выпущен до появления механизма привязки | Получите новый ключ у менеджера |
| «Лицензионный ключ не подходит этой инсталляции» | Ключ выпущен для другой инсталляции | Передайте менеджеру код текущей инсталляции и получите новый ключ |
| «Не удалось проверить привязку лицензии» | Временная ошибка проверки | Нажмите кнопку «Повторить»; если ошибка сохраняется, обратитесь в поддержку |
Резервное копирование и DR
Храните используемый LICENSE_KEY_V2 и, пока конкретная инсталляция ещё не мигрирована или допускает откат на v1, её LICENSE_KEY в защищённом хранилище секретов, которое входит в DR-процедуру или восстанавливается отдельно от базы данных. Не рассчитывайте, что дамп PostgreSQL содержит эти секреты. Если восстановлена конфигурация v1, проверьте работу с LICENSE_KEY и запланируйте миграцию отдельно. Если используется v2, откройте /admin-onboarding и сравните полный код активации с кодом, для которого выдан сохранённый ключ. Если код изменился, передайте новый код менеджеру и получите отдельный LICENSE_KEY_V2; если не изменился, используйте сохранённый ключ. В обоих случаях завершите проверку входом лицензированного обычного пользователя и выполнением доступной ему лицензированной функции.
Код активации привязан к конкретной инсталляции. Восстанавливайте конфигурацию приложения из защищённого хранилища вместе с базой и сохраняйте её одинаковой на всех экземплярах одной инсталляции. Восстановление дампа в новую базу, перенос или изменение конфигурации могут изменить код: перед переключением проверьте его на /admin-onboarding и при необходимости перевыпустите v2. Менеджеру передаётся только код активации.
Управление лицензиями
Выдача лицензий
По умолчанию автоматическая выдача лицензий отключена.
Стандартный алгоритм для всех типов лицензий:
| Шаг | Действие | Описание |
|---|---|---|
| 1 | Регистрация пользователя | Пользователь впервые входит или регистрируется |
| 2 | Активация администратором | Администратор включает пользователя в административном интерфейсе |
| 3 | Доступ к системе | Пользователь получает возможность входить в систему |
Автоматическая выдача лицензий
Для упрощения процесса в административной панели можно включить опцию "Автоматическая выдача лицензии любому, кто залогинился в систему".
В этом случае пользователь после регистрации сразу получает доступ к системе.
Учётные записи «Ожидает активации»
Чтобы шаг 1 работал при выключенной авто-выдаче, включите настройку createPendingEnterpriseUsers («Создавать неактивную учётную запись, если авто-выдача лицензий отключена», группа «Бизнес-логика»). Тогда любая попытка входа или регистрации (SSO, LDAP, форма регистрации) создаёт неактивную учётную запись:
- учётная запись не потребляет лицензию, пока не активирована — деактивированные пользователи в подсчёте лицензий не участвуют;
- пользователь при каждой попытке входа видит сообщение «обратитесь к администратору»;
- в разделе «Управление пользователями» такие учётные записи подсвечены статусом «Ожидает активации» (отдельно от вручную деактивированных);
- администратор активирует учётную запись одним кликом — с этого момента она потребляет лицензию. Если свободных лицензий нет, активация завершится ошибкой «Нет свободных лицензий»;
- восстановление пароля и письмо активации не активируют такую учётную запись — только администратор.
Если настройка выключена (по умолчанию), вход неизвестному пользователю при выключенной авто-выдаче запрещён, учётная запись не создаётся.
Исчерпание лицензий
Именные лицензии
Ситуация: Все места заняты пользователями
Последствия:
- Пользователи не смогут войти в систему
- Администратор сохраняет доступ к административной панели
Решение:
- Администратор входит в административную панель
- Отключает лишних пользователей, что освобождает лицензии
Конкурентные лицензии
Ситуация: Достигнут лимит одновременных подключений
Последствия:
- Новые пользователи не смогут войти в течение 1 минуты
- Администратор сохраняет доступ к административной панели
- При завершении сессий другими пользователями места освобождаются автоматически
Решение:
- Ожидание - места освободятся автоматически при выходе пользователей
- Принудительное завершение - администратор может завершить сессии пользователей через административную панель
Мониторинг лицензий
Регулярно отслеживайте использование именных лицензий через административную панель для предотвращения блокировок
Истечение срока лицензии
При истечении срока действия лицензии:
Блокировка доступа
Проверка срока при входе блокирует пользователей, включая администраторов. Если ключ v2 уже отвергнут проверкой при запуске (например, запущен с просроченным v2), существующий владелец из администраторской команды сохраняет вход для восстановления через /admin-onboarding. Это исключение относится к заблокированному v2 и не гарантирует вход владельца при обычном истечении срока ранее принятого ключа во время работы приложения.
Для восстановления работы необходимо обновить лицензионный ключ.
Страница статуса лицензии /license-active
На Enterprise-установке публичного сайта нет: любой заход на адрес вне приложения (не /app/...) автоматически переводит посетителя на страницу /license-active. Это «входная точка» вашей установки, и её поведение зависит от того, авторизован ли посетитель:
- Авторизованный пользователь видит приветствие с 3-секундным отсчётом и автоматически переходит к своим процессам. Переход можно отменить кнопкой — тогда останется страница со статусом лицензии.
- Неавторизованный посетитель видит статус лицензии (тип, срок действия) и кнопки действий: вход, регистрация (если включена настройка
showRegistraton), сброс пароля.
Оформление страницы входа
Название и логотип компании, фирменный цвет, приветствие, ссылки поддержки и способы входа настраиваются в Администрировании, на вкладке «Брендинг и страница входа». Подробная инструкция: «Брендинг и страница входа».
Регистрация и согласие с условиями
С версии 6.6.6668 при активной Enterprise-лицензии чекбокс согласия с условиями использования на форме регистрации скрывается автоматически — корпоративным пользователям не нужно принимать публичную оферту. Отдельная настройка для этого не требуется.
Кастомизация страницы лицензии
С версии 6.6.6668 на страницу /license-active можно добавить собственный HTML-блок — например, корпоративное приветствие, контакты внутренней поддержки или ссылки на регламенты.
Есть удобнее
Тот же текст можно ввести на вкладке «Брендинг и страница входа» (блок «Текст на странице входа») и сразу увидеть, как он выглядит. См. «Брендинг и страница входа».
Как настроить через настройки приложения:
- Откройте Административную панель → Настройки приложения → группа «Бизнес-логика».
- Найдите настройку «HTML-блок на странице статуса лицензии» (
licensePageHtml) и вставьте свой HTML в текстовое поле. - Убедитесь, что у настройки включён тумблер «Настройка видимости» — страницу видят неавторизованные посетители, без видимости HTML до них не доедет.
Поведение:
- Если HTML задан — он показывается над статусом лицензии, а сам статус сворачивается в раскрываемую панель.
- Если настройка пуста — страница выглядит как раньше: развёрнутый статус лицензии.
- HTML проходит санитизацию (вырезаются скрипты и опасные конструкции), картинки автоматически ограничиваются по ширине. Используйте статичную разметку: заголовки, текст, ссылки, изображения.
Изменения применяются сразу, перезапуск не нужен.