mirror of
https://github.com/openglow-org/forgefirm.git
synced 2026-09-27 16:51:12 -07:00
docs: Phase 4 update manager implemented
This commit is contained in:
+16
-1
@@ -161,7 +161,22 @@ demonstrably untouched.*
|
|||||||
forgectrl (minutes, no Yocto); optional `workflow_dispatch`
|
forgectrl (minutes, no Yocto); optional `workflow_dispatch`
|
||||||
cold-Yocto reproducibility build whose only product is a checksum.
|
cold-Yocto reproducibility build whose only product is a checksum.
|
||||||
|
|
||||||
## Phase 4 — forgectrl update manager (GUI)
|
## Phase 4 — forgectrl update manager (GUI) — IMPLEMENTED
|
||||||
|
|
||||||
|
Endpoints in `forgectrl/src/update.c`, driven from the panel's System
|
||||||
|
tab; trust anchors in `/etc/forgefirm/keys` (`forgefirm-keys` recipe:
|
||||||
|
the release pubkey + the Glowforge keyring). Release version resolves
|
||||||
|
from the fixed-name asset redirect (`.../releases/latest/download/forgefirm.fw`
|
||||||
|
→ `.../download/v<ver>/...`), so no GitHub API / rate limits. All slot
|
||||||
|
writes run on one background job (polled `/update/status`), take the
|
||||||
|
installer's `/data/forgefirm/update.lock`, require idle + no diagnostic,
|
||||||
|
refuse the booted root slot, verify signature before writing, and
|
||||||
|
re-verify the written filesystem. `GET /slots` inventory, `POST /boot`
|
||||||
|
(probe-gated), `POST /update/{check,download,apply,upload}`,
|
||||||
|
`POST /restore/factory` (archive md5 checked), `POST /system/reboot`.
|
||||||
|
Original design notes below.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Backend endpoints + a panel page (OpenGlow visual identity):
|
Backend endpoints + a panel page (OpenGlow visual identity):
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user