BetterFrame/server/src/plugins/service-admin-http
Mitchell R dae5d0ce88
feat(managed-config): server-side scaffold for Pi-image device config
Kiosks running our pre-built image (managed_image=true at pairing) can
have their hostname, timezone, network (DHCP/static + VLAN), and Wi-Fi
configured from the admin UI. Pull-model: server stores desired-state
JSON, kiosk heartbeat returns pending_config when version exceeds
applied_version, kiosk echoes applied_version back. Wi-Fi PSK encrypted
with the cluster key so ciphertext at rest is shipped to the kiosk
without per-kiosk re-encryption.

Server side only — kiosk Rust applier (betterframe-apply-config helper
+ rollback timer) and pair-initiate marker file are next.

ci(pi-gen): use action's image-path output for asset upload

pi-gen writes the .img.xz into pi-gen-action's own working dir, not our
repo deploy/. Glob never matched. Use steps.pigen.outputs.image-path
directly — no glob needed.
2026-05-20 03:18:11 +02:00
..
html-response.ts feat(server): rate limit (login + pair) + CSP/security headers 2026-05-14 07:40:22 +02:00
index.ts feat(server): backup + restore (AES-256-GCM, PBKDF2, admin UI) 2026-05-14 07:44:01 +02:00
middleware.ts feat: Node-RED custom nodes + dashboard entity type 2026-05-13 01:47:53 +02:00
routes-account.ts fix: use Response wrapper instead of h3 tagged template html() 2026-05-10 02:50:16 +02:00
routes-admin.ts feat(managed-config): server-side scaffold for Pi-image device config 2026-05-20 03:18:11 +02:00
routes-auth.ts fix(server): move rate-limit creation inside register fns (BSB schema extractor) 2026-05-14 07:49:57 +02:00
routes-firmware.ts feat(server): audit log — schema, helper, admin UI, hooks for login/pair/firmware 2026-05-14 07:38:18 +02:00
routes-setup.ts refactor: merge templates into layouts, displays from kiosks 2026-05-10 21:39:09 +02:00
routes-static.ts adding initial project 2026-05-10 01:09:13 +02:00