Версии систем: общий список в «Обзоре» и строка в разделе каждого модуля

bj собирает версии своих компонентов и внешних систем (в фоне, кэш 10 минут, прогрев при старте):
ядро и модули bj (components.json или «-version»), экспортёр ARQA (служба bj-quikexport, /version),
криптосервис (Health), «Валидата CSP» (zpki1utl), Java, ИШ НРД (deps.json + сайт НРД),
МНП QUIK (VersionInfo), DEPO (OD_DATA_VERSION), PostgreSQL, ОС. «Настройка → Обзор» — таблица
«Версии систем» с кнопкой «Обновить сведения»; в разделах БД, Fancy, QUIK МНП, Экспорт QUIK,
Криптография, НРД, ЛК, НПР и Обновления — строка с версией. В таблице обновлений у компонентов,
выложенных вручную, вместо «неизвестна» — версия самого компонента. bj-component-install: -version.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
zuevav
2026-09-16 12:00:00 +03:00
parent 6fee3c5ff7
commit 7c653a2490
15 changed files with 523 additions and 3 deletions
+4
View File
@@ -286,7 +286,11 @@ func updateComponentRows(rc *RuntimeConfig) ([]release.ComponentState, bool) {
avail := rc.Snapshot().Update.Components
var out []release.ComponentState
any := false
vers := systemVersions(rc)
for _, r := range rows {
if r.Present && r.Installed == "" {
r.Installed = vers.Get(r.Name).Version // выложен вручную — версия со слов самого компонента
}
r.Available = avail[r.Name]
r.Update = r.Available != "" && (r.Present || r.Core) && (r.Installed == "" || release.IsNewer(r.Available, r.Installed))
if r.Present || r.Core || r.Available != "" {