Лицензионный ключ и обновления
Страница для того, кто эксплуатирует установку. Ключ прописывается в настройках при установке, и от его состояния зависит поведение админки — значит владелец установки обязан знать, как это устроено.
Что такое ключ #
Лицензионный ключ прописывается в окружении установки (LICENSE_KEY). В нём
подписаны три вещи:
- домен школы;
- срок поддержки — до какой даты установка получает обновления;
- набор модулей — сейчас один на всех, докупаемых модулей нет.
Подпись асимметричная: приватный ключ на сервере лицензий, публичный — в коробке. Ключ читается глазами, подделывается — нет.
Установка сверяется с сервером лицензий при старте и раз в сутки фоновой задачей. Тем же каналом мы получаем список установок с версиями — без него невозможно выкатывать обновления на N школ.
Смена домена #
Ключ выписан на домен. При смене домена нужен новый ключ — замена в пределах срока поддержки.
Пока ключ не заменён, действует та же отсрочка, что и при недоступности сервера: установка работает, предупреждение висит в админке.
Недоступность сервера лицензий #
Связь может пропасть у вас, сервер может лежать у нас. Поведение задано так, чтобы школа при этом работала:
| Что происходит | Поведение |
|---|---|
| Проверка не прошла | Установка продолжает работать, в админке появляется предупреждение |
| Проверки не проходят до 14 дней | То же: работа не ограничивается |
| Проверки не проходят дольше 14 дней | Админка переходит в режим чтения |
| В любом из случаев | Ученики не затрагиваются: учатся и платят |
Отсрочка — 14 дней. Ограниченный режим снимается сразу, как только проверка пройдёт.
Ученики не затрагиваются никогда, и это не оговорка на будущее, а свойство механизма: блокировка доступа к оплаченному курсу ударила бы по вашему клиенту.
Копия без ключа #
Копия установки без ключа работает. Она остаётся на той версии, на которой её скопировали: без исправлений, без новых возможностей и без изменений под законодательство — а требования к фискализации и к персональным данным меняются ежегодно.
Отдельно и честно: код на вашем сервере — это код у вас. Он читаемый, не обфусцированный, и проверку лицензии из него технически можно вырезать. Мы это знаем. Защиты от целенаправленного вмешательства здесь нет: любая такая защита разбирается тем, кто держит машину в руках, и при этом ломается у честных установок на ровном месте.
Что следует из этого практически для вас: правки в коде вы делать можете, но каждая правка — ваша забота при обновлении. Изменённый файл при обновлении либо перезапишется, либо потребует ручного слияния, и знать об этом лучше до того, как правка сделана.
Как приходят обновления #
Установка ходит за обновлениями к нам, предъявляя ключ.
Обновление — ваше событие, а не наше. Оно не приходит само и не ставится само: его надо поставить, проверить и при необходимости откатить. Порядок — на странице Установка.
Что перестаёт приходить по истечении срока поддержки: исправления, новые возможности и изменения под законодательство. Работать установка не перестаёт.
Состояние на сегодня #
Проверка лицензии выключена целиком — ни подписи, ни домена, ни срока. Сервера лицензий пока не существует, а механизм, который ещё не запущен, не должен мешать работе.
Включается одним флагом развёртывания (LICENSE_ENFORCE), когда сервер появится.
До этого момента предупреждений о лицензии в админке быть не может ни при каких
данных.
Доступ к вашей установке #
Отдельной учётной записи для нас в установке нет — ни постоянной, ни сервисной.
Установка создаёт одного владельца и выдаёт временный пароль тому, кто ставил. При первом входе владелец обязан его сменить — это шаг, который нельзя пропустить. Пока пароль не сменён, в админке висит напоминание, что доступ известен третьей стороне. Смена пароля пишется в журнал: ею передача установки и считается завершённой.
Практическое следствие для порядка работ: первый вход делает тот, кто останется владельцем школы, а не подрядчик, который ставит. См. предупреждение на странице Установка.