feat(update): независимые обновления компонентов bj
- internal/release/components.go: список компонентов (ядро bj-server, криптосервис, bj-lk, bj-npr, bj-quikexport) с путём и службой, установленные версии в components.json, расчёт обновлений по версии каждого файла и sha256 (без отката, модули — только если уже установлены на сервере) - cmd/bj-component-install: root-установщик — сам перепроверяет подпись манифеста ключом /etc/bj/update.pub и sha256, копия прежнего файла, перезапуск только затронутых служб - updater: bj-server (без прав root) скачивает в update-staging и передаёт установку root-воркеру (действие component-install); установка в фоне - настройки: таблица компонентов с версиями, «Обновить» и «Обновить всё» - bj-release: версия файла из <файл>.version; bj-keymedia-worker: component-install Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -41,10 +41,10 @@ type Artifact struct {
|
||||
// Manifest — описание релиза. Подписывается целиком (каноничный JSON).
|
||||
type Manifest struct {
|
||||
Schema int `json:"schema"`
|
||||
Version string `json:"version"` // версия релиза, напр. "1.2.0"
|
||||
Channel string `json:"channel"` // "stable" | "beta"
|
||||
ReleasedAt time.Time `json:"released_at"` // время сборки релиза
|
||||
Notes string `json:"notes,omitempty"` // что нового (для UI)
|
||||
Version string `json:"version"` // версия релиза, напр. "1.2.0"
|
||||
Channel string `json:"channel"` // "stable" | "beta"
|
||||
ReleasedAt time.Time `json:"released_at"` // время сборки релиза
|
||||
Notes string `json:"notes,omitempty"` // что нового (для UI)
|
||||
MinVersion string `json:"min_version,omitempty"` // мин. версия для прямого апгрейда
|
||||
Artifacts []Artifact `json:"artifacts"`
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user