Версии систем: общий список в «Обзоре» и строка в разделе каждого модуля
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:
@@ -7,7 +7,8 @@ package quikexport
|
||||
// в заголовке X-BJ-Indicator — цвет индикатора меню (ok | warn | err | пусто);
|
||||
// - POST /admin/setup/quikexport[/keys|apply|import|service|dbinit] — действие; итог — 204
|
||||
// с сообщением в X-BJ-Flash, bj-server показывает его как обычное сообщение страницы настроек;
|
||||
// - GET /admin/setup/quikexport/sql и /preview — файлы как есть.
|
||||
// - GET /admin/setup/quikexport/sql и /preview — файлы как есть;
|
||||
// - GET /version — версии модуля и экспортёра ARQA (JSON) для общего списка версий bj.
|
||||
//
|
||||
// Лицензию проверяет bj-server и передаёт в X-BJ-Licensed: 1.
|
||||
|
||||
@@ -38,6 +39,7 @@ type Config struct {
|
||||
StorePath string // собственные настройки модуля
|
||||
SetupPath string // setup.json bj: отсюда настройки переносятся при первом запуске (раздел quik_export)
|
||||
KeyPath string // служебный ключ модулей
|
||||
Version string // версия модуля bj-quikexport
|
||||
}
|
||||
|
||||
// Server — служба модуля.
|
||||
@@ -77,6 +79,7 @@ func (srv *Server) Handler() http.Handler {
|
||||
mux.HandleFunc("/healthz", func(w http.ResponseWriter, _ *http.Request) { _, _ = w.Write([]byte("ok")) })
|
||||
mux.HandleFunc("/section", func(w http.ResponseWriter, r *http.Request) {
|
||||
v := quikExportView(srv.store, licensed(r), r.URL.Query().Get("reveal_ro") == "1")
|
||||
v.ModuleVersion, v.ExporterVersion = srv.cfg.Version, exporterVersion(v.S.Dir)
|
||||
var buf bytes.Buffer
|
||||
if err := srv.section.ExecuteTemplate(&buf, "section", v); err != nil {
|
||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||
@@ -87,6 +90,10 @@ func (srv *Server) Handler() http.Handler {
|
||||
w.Header().Set("X-BJ-Indicator", indicator(v))
|
||||
_, _ = w.Write(buf.Bytes())
|
||||
})
|
||||
mux.HandleFunc("/version", func(w http.ResponseWriter, _ *http.Request) {
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
_ = json.NewEncoder(w).Encode(map[string]string{"module": srv.cfg.Version, "exporter": exporterVersion(srv.store.Get().Dir)})
|
||||
})
|
||||
mux.HandleFunc("/admin/setup/quikexport", srv.saveQuikExport)
|
||||
mux.HandleFunc("/admin/setup/quikexport/keys", srv.uploadQuikExportKeys)
|
||||
mux.HandleFunc("/admin/setup/quikexport/apply", srv.applyQuikExport)
|
||||
|
||||
Reference in New Issue
Block a user