Перейти к основному содержанию

Как работают лицензии

Около 8 мин

Как работают лицензии

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-onboarding6.6.2310Откройте https://ваш-домен/admin-onboarding. Код — в блоке «Ваш активационный код» в верхней части страницы, рядом кнопка копирования. Страница открывается без входа и при действующей лицензии v1
API без браузера6.6.2229curl -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 не подтверждают доступ обычных пользователей.

  1. Войдите как владелец — учётная запись из администраторской команды — и откройте /admin-onboarding. Обычным пользователям этот режим не предназначен.
  2. Скопируйте полный код активации и получите ключ у менеджера.
  3. Задайте LICENSE_KEY_V2 и перезапустите все экземпляры приложения.
  4. Дождитесь успешных 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. Администратор входит в административную панель
  2. Отключает лишних пользователей, что освобождает лицензии

Конкурентные лицензии

Ситуация: Достигнут лимит одновременных подключений

Последствия:

  • Новые пользователи не смогут войти в течение 1 минуты
  • Администратор сохраняет доступ к административной панели
  • При завершении сессий другими пользователями места освобождаются автоматически

Решение:

  1. Ожидание - места освободятся автоматически при выходе пользователей
  2. Принудительное завершение - администратор может завершить сессии пользователей через административную панель

Мониторинг лицензий

Регулярно отслеживайте использование именных лицензий через административную панель для предотвращения блокировок


Истечение срока лицензии

При истечении срока действия лицензии:

Блокировка доступа

Проверка срока при входе блокирует пользователей, включая администраторов. Если ключ v2 уже отвергнут проверкой при запуске (например, запущен с просроченным v2), существующий владелец из администраторской команды сохраняет вход для восстановления через /admin-onboarding. Это исключение относится к заблокированному v2 и не гарантирует вход владельца при обычном истечении срока ранее принятого ключа во время работы приложения.

Для восстановления работы необходимо обновить лицензионный ключ.


Страница статуса лицензии /license-active

На Enterprise-установке публичного сайта нет: любой заход на адрес вне приложения (не /app/...) автоматически переводит посетителя на страницу /license-active. Это «входная точка» вашей установки, и её поведение зависит от того, авторизован ли посетитель:

  • Авторизованный пользователь видит приветствие с 3-секундным отсчётом и автоматически переходит к своим процессам. Переход можно отменить кнопкой — тогда останется страница со статусом лицензии.
  • Неавторизованный посетитель видит статус лицензии (тип, срок действия) и кнопки действий: вход, регистрация (если включена настройка showRegistraton), сброс пароля.

Оформление страницы входа

Название и логотип компании, фирменный цвет, приветствие, ссылки поддержки и способы входа настраиваются в Администрировании, на вкладке «Брендинг и страница входа». Подробная инструкция: «Брендинг и страница входа».

Регистрация и согласие с условиями

С версии 6.6.6668 при активной Enterprise-лицензии чекбокс согласия с условиями использования на форме регистрации скрывается автоматически — корпоративным пользователям не нужно принимать публичную оферту. Отдельная настройка для этого не требуется.

Кастомизация страницы лицензии

С версии 6.6.6668 на страницу /license-active можно добавить собственный HTML-блок — например, корпоративное приветствие, контакты внутренней поддержки или ссылки на регламенты.

Есть удобнее

Тот же текст можно ввести на вкладке «Брендинг и страница входа» (блок «Текст на странице входа») и сразу увидеть, как он выглядит. См. «Брендинг и страница входа».

Как настроить через настройки приложения:

  1. Откройте Административную панель → Настройки приложения → группа «Бизнес-логика».
  2. Найдите настройку «HTML-блок на странице статуса лицензии» (licensePageHtml) и вставьте свой HTML в текстовое поле.
  3. Убедитесь, что у настройки включён тумблер «Настройка видимости» — страницу видят неавторизованные посетители, без видимости HTML до них не доедет.

Поведение:

  • Если HTML задан — он показывается над статусом лицензии, а сам статус сворачивается в раскрываемую панель.
  • Если настройка пуста — страница выглядит как раньше: развёрнутый статус лицензии.
  • HTML проходит санитизацию (вырезаются скрипты и опасные конструкции), картинки автоматически ограничиваются по ширине. Используйте статичную разметку: заголовки, текст, ссылки, изображения.

Изменения применяются сразу, перезапуск не нужен.