Summary
The Software Updates dashboard (PR #60) renders the gateway's /updates list and per-update actions (prepare, execute, automated toggle), but there is no UI entry point for the generic SOVD POST /updates call. Operators that want to drive an OTA campaign from the web UI currently have to curl the gateway directly.
Proposed solution
Add a Register Update button to the Updates dashboard toolbar that opens a dialog with:
id (required, text)
update_name (optional, text - defaults to id when blank so the gateway requirement is satisfied)
automated (optional, checkbox)
additional metadata (optional, JSON text area merged into the request body)
Client-side validation: required id, parse additional metadata as JSON before submit. Dialog calls a new registerUpdate Zustand store action that POSTs to /api/v1/updates.
Generic by design: no OTA-vendor-specific fields (everything custom goes in the JSON metadata field), so the same dialog works for Uptane, Mender, or any other UpdateProvider plugin behind the gateway.
Additional context
- Pairs with gateway-side /updates implementation that has been in place for several releases.
- Blocks an end-to-end demo: integration tests need a way to drive the register -> prepare -> execute flow through the UI.
Summary
The Software Updates dashboard (PR #60) renders the gateway's /updates list and per-update actions (prepare, execute, automated toggle), but there is no UI entry point for the generic SOVD
POST /updatescall. Operators that want to drive an OTA campaign from the web UI currently have to curl the gateway directly.Proposed solution
Add a Register Update button to the Updates dashboard toolbar that opens a dialog with:
id(required, text)update_name(optional, text - defaults toidwhen blank so the gateway requirement is satisfied)automated(optional, checkbox)additional metadata(optional, JSON text area merged into the request body)Client-side validation: required
id, parseadditional metadataas JSON before submit. Dialog calls a newregisterUpdateZustand store action that POSTs to/api/v1/updates.Generic by design: no OTA-vendor-specific fields (everything custom goes in the JSON metadata field), so the same dialog works for Uptane, Mender, or any other UpdateProvider plugin behind the gateway.
Additional context