Модуль, снятый с лицензии, отключается один раз: служба остановлена (bj-keymedia unit-disable), одно оповещение, в списках не показывается; вернули в лицензию — служба включается

Также: версия файла, совпадающего с выпуском, записывается (нет ложного «новее»); признак неудачной проверки отдельно от результатов установки; окно обновления само перезагружает страницу.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
This commit is contained in:
zuevav
2026-09-24 22:43:34 +03:00
parent e450887688
commit 2edc83e614
7 changed files with 192 additions and 12 deletions
+14 -8
View File
@@ -86,14 +86,20 @@ type LicenseSettings struct {
// UpdateSettings — авто-обновления из артефактории (#18/#20).
type UpdateSettings struct {
BaseURL string `json:"base_url"` // https://updates.example.com
Channel string `json:"channel"` // "stable" | "beta"
PublicKey string `json:"public_key"` // base64 Ed25519 (если не зашит в бинарь)
AutoCheck bool `json:"auto_check"` // проверять автоматически
LastCheck time.Time `json:"last_check"` // когда последний раз проверяли
LastResult string `json:"last_result"` // текст результата проверки
Available string `json:"available_version"` // доступная версия (если новее)
Notes string `json:"notes,omitempty"` // заметки доступного релиза
BaseURL string `json:"base_url"` // https://updates.example.com
Channel string `json:"channel"` // "stable" | "beta"
PublicKey string `json:"public_key"` // base64 Ed25519 (если не зашит в бинарь)
AutoCheck bool `json:"auto_check"` // проверять автоматически
LastCheck time.Time `json:"last_check"` // когда последний раз проверяли
LastResult string `json:"last_result"` // текст результата проверки
// CheckFailed — последняя ПРОВЕРКА обновлений не удалась (сервер недоступен, нет лицензии…):
// тогда версии из прошлой проверки не предлагаются. Неудачная установка сюда не относится.
CheckFailed bool `json:"check_failed,omitempty"`
// DisabledModules — модули, отключённые как снятые с лицензии (имя → когда): служба остановлена,
// в списке компонентов не показываются; при возврате в лицензию включаются обратно.
DisabledModules map[string]string `json:"disabled_modules,omitempty"`
Available string `json:"available_version"` // доступная версия (если новее)
Notes string `json:"notes,omitempty"` // заметки доступного релиза
// Components — версии компонентов в последнем проверенном релизе (имя → версия).
Components map[string]string `json:"components,omitempty"`
// ComponentsChannel — канал, в котором эти версии были найдены. Если канал