Setup: manage multiple device instances per category (add/remove)
The data model was already multi-instance (lane_devices = one row per instance; assign always inserts) -- the limitation was UI-only. Make the whole flow support more than one of every category: - Backend: add DELETE /api/setup/assign/:id (unassign by id). /state now redacts secrets (pushPassword/webPassword/relayPassword) via a shared redactSecrets() also used by /assign -- it was returning raw config rows. - Web: SetupWizard reworked from one fixed slot per category into a list of assigned instances (driver/role/host + Remove) plus an "Add another" form. select-type config fields (e.g. printer role) now render as dropdowns. - api.ts: add fetchState(), unassignDevice(), Assignment/SetupState types. Verified via Fastify inject: two printers assigned to one lane both list, no secret leak, delete -> 204, delete unknown -> 404, count drops to 1. Full repo typechecks. Wiki: first-run-setup documents multi-instance + delete + redaction.
This commit is contained in:
+11
@@ -227,3 +227,14 @@ guarantee. Recorded in [[dingtian-relay]] (new Hardening section).
|
||||
- New page: [[printer-status-monitoring]]. Updated [[rongta-printer]], [[index]].
|
||||
- Open: capture the page's actual text for an ACTIVE fault (pull paper / open cover) to confirm
|
||||
the Yes flip; wire degraded/offline into failover + entry-flow all-down policy.
|
||||
|
||||
## [2026-06-15] ingest | Multi-instance device setup (add/remove per category)
|
||||
- Confirmed the data model was already multi-instance (lane_devices = one row per instance,
|
||||
assign always inserts); the limitation was UI-only (one slot per category).
|
||||
- Backend: added DELETE /api/setup/assign/:id (unassign); /state now redacts secrets
|
||||
(pushPassword/webPassword/relayPassword) via a shared redactSecrets() also used by /assign.
|
||||
- Web: SetupWizard reworked — each category lists assigned instances (with Remove) + "Add
|
||||
another" form; select-type config fields now render as dropdowns (fixes printer role input).
|
||||
- Verified via Fastify inject: 2 printers assigned to one lane -> both listed, no secret leak,
|
||||
delete -> 204, delete unknown -> 404, count drops to 1. Full repo typechecks (8/8).
|
||||
- Updated [[first-run-setup]].
|
||||
|
||||
Reference in New Issue
Block a user