feat(update): обновления с сервера лицензий по лицензии установки

- по умолчанию https://lic.zetit.ru/updates; клиент артефактории передаёт лицензионный
  токен установки (Authorization: Bearer), сервер отдаёт модули по признакам лицензии
- компоненты получили признак лицензии (ядро и криптосервис — updates, ЛК — web-cabinet,
  НПР — npr, экспорт QUIK — quik-export)
- в bj зашит открытый ключ подписи релизов (закрытый хранится вне сервера лицензий)
- проверено сквозной установкой bj-lk 0.2.0 из канала beta

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
zuevav
2026-09-15 20:43:56 +03:00
parent 2908697363
commit 8099e50ab2
4 changed files with 41 additions and 14 deletions
+7 -5
View File
@@ -21,15 +21,17 @@ type Component struct {
Unit string // служба systemd, перезапускаемая после установки ("" — без перезапуска)
Exec bool // исполняемый файл
Core bool // ядро: ставится всегда; модули — только если уже установлены на этом сервере
// Feature — признак лицензии, без которого сервер обновлений не отдаёт файл компонента.
Feature string
}
// Components — все компоненты bj. Порядок — порядок показа и установки (ядро перезапускается последним).
var Components = []Component{
{Name: "bj-server", Title: "Ядро bj: переводы M2M, DEPO, QUIK МНП, ЛК ЕСИА", Path: "/opt/bj/bj-server", Unit: "bj-server", Exec: true, Core: true},
{Name: "crypto-service.jar", Title: "Криптосервис", Path: "/opt/bj/crypto-service.jar", Unit: "bj-crypto"},
{Name: "bj-lk", Title: "Личный кабинет клиента", Path: "/opt/bj/bj-lk", Unit: "bj-lk", Exec: true},
{Name: "bj-npr", Title: "Риск-монитор НПР / УДС", Path: "/opt/bj/bj-npr", Unit: "bj-npr", Exec: true},
{Name: "bj-quikexport", Title: "Экспорт QUIK", Path: "/opt/bj/bj-quikexport", Unit: "bj-quikexport", Exec: true},
{Name: "bj-server", Title: "Ядро bj: переводы M2M, DEPO, QUIK МНП, ЛК ЕСИА", Path: "/opt/bj/bj-server", Unit: "bj-server", Exec: true, Core: true, Feature: "updates"},
{Name: "crypto-service.jar", Title: "Криптосервис", Path: "/opt/bj/crypto-service.jar", Unit: "bj-crypto", Feature: "updates"},
{Name: "bj-lk", Title: "Личный кабинет клиента", Path: "/opt/bj/bj-lk", Unit: "bj-lk", Exec: true, Feature: "web-cabinet"},
{Name: "bj-npr", Title: "Риск-монитор НПР / УДС", Path: "/opt/bj/bj-npr", Unit: "bj-npr", Exec: true, Feature: "npr"},
{Name: "bj-quikexport", Title: "Экспорт QUIK", Path: "/opt/bj/bj-quikexport", Unit: "bj-quikexport", Exec: true, Feature: "quik-export"},
}
// ComponentByName — компонент по имени артефакта.