Add system updates page to admin section

Add a new API endpoint and UI section for checking system updates, including internationalized locale strings and necessary dependency updates.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 77cfe984-2c65-4152-bb7a-0df28274fe66
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: 1e6de894-7c78-4557-b01a-a2c1c01f4155
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/c3c252e4-c83d-40ca-9fff-99a3ea60701e/77cfe984-2c65-4152-bb7a-0df28274fe66/1WKAcHk
Replit-Helium-Checkpoint-Created: true
This commit is contained in:
riyadhafraa
2026-05-17 14:59:36 +00:00
parent 191e072353
commit b5efd9eb12
12 changed files with 568 additions and 3 deletions
+58
View File
@@ -30,6 +30,8 @@ tags:
description: Object storage upload and serving endpoints
- name: audit
description: Admin audit log
- name: system
description: System metadata (version, update availability)
paths:
/healthz:
@@ -45,6 +47,24 @@ paths:
schema:
$ref: "#/components/schemas/HealthStatus"
/system/version:
get:
operationId: getSystemVersion
tags: [system]
summary: Get current and latest system version
description: |
Returns the local build version (read from version.json embedded at
build time) and, if `LATEST_VERSION_URL` is configured on the
server, the latest published version fetched from that URL. Admin
only. Never performs an update — pure read.
responses:
"200":
description: System version info
content:
application/json:
schema:
$ref: "#/components/schemas/SystemVersionResponse"
# Auth
/auth/register:
post:
@@ -2927,6 +2947,44 @@ components:
required:
- status
SystemVersionInfo:
type: object
properties:
version:
type: string
build:
type: string
required:
- version
- build
SystemVersionResponse:
type: object
properties:
current:
$ref: "#/components/schemas/SystemVersionInfo"
latest:
oneOf:
- $ref: "#/components/schemas/SystemVersionInfo"
- type: "null"
status:
type: string
enum: [up-to-date, update-available, not-configured, error]
errorMessage:
type: ["string", "null"]
checkedAt:
type: ["string", "null"]
format: date-time
configured:
type: boolean
required:
- current
- latest
- status
- errorMessage
- checkedAt
- configured
ErrorResponse:
type: object
properties: