BetterFrame/server/src/shared
Mitchell R 281c0adf44
fix(bundle): synthesize stream for any camera with rtsp_url
ONVIF-imported cameras with rtsp_url but no camera_streams rows showed
"(no stream)" in the kiosk because the bundle fallback was gated to
type=rtsp only. Drop the type check + backfill existing rows so old
imports get a main stream row created.

feat(kiosk-mgmt): report hostname + all network interfaces

Behind Docker/Angie the server only saw the proxy bridge IP (172.31.0.2).
Kiosk now shells `ip -j addr show`, reports every non-loopback IPv4/v6
with CIDR, MAC, and operstate. Plus `hostname` for verifying that
managed-config applies landed. Admin UI renders interface list with
LAN IPs preferred for the copy-paste local-LAN endpoint.

feat(managed-config): auto-sync hostname from kiosk name

When admin renames a managed-image kiosk, slugify the name → DNS-safe
hostname and bump managed_config_version so the kiosk applies it on
next heartbeat. Empty form hostname now falls back to slug too, so
DHCP shows the friendly name.

feat(events): forward firmware + OS update outcomes as kiosk.log

Kiosk POSTs `/api/kiosk/event` with topic=kiosk.log on firmware-apply
attempts. Server-side firmware/os-update endpoints also insert into
event_log so admins can audit upgrades without correlating per-source.
Wire schema heartbeat gains reported_hostname + network_interfaces for
Rust import parity.
2026-05-21 09:23:50 +02:00
..
audit.ts feat(server): audit log — schema, helper, admin UI, hooks for login/pair/firmware 2026-05-14 07:38:18 +02:00
auth.ts fix: use deterministic HKDF key for cookie signing 2026-05-10 02:59:04 +02:00
backup.ts feat(server): backup + restore (AES-256-GCM, PBKDF2, admin UI) 2026-05-14 07:44:01 +02:00
bundle.ts fix(bundle): synthesize stream for any camera with rtsp_url 2026-05-21 09:23:50 +02:00
cec-relay.ts refactor: collapse 6 non-service plugins into shared modules 2026-05-10 02:29:25 +02:00
coordinator-registry.ts feat(onvif): run discovery from selected kiosk 2026-05-20 06:16:27 +02:00
env-overrides.ts feat(server): env-var overrides for sec-config keys + docker healthchecks 2026-05-14 07:33:10 +02:00
firmware.ts fix(firmware): diagnostic dump + smart-quote / BOM / multi-quote handling 2026-05-18 22:52:35 +02:00
mqtt-bridge.ts feat(server): generic MQTT telemetry bridge (off by default) 2026-05-14 07:46:56 +02:00
nodered-bridge.ts fix(nodered): kiosk-side layout.changed events + provisioning retries 2026-05-13 13:03:51 +02:00
onvif.ts feat(onvif): run discovery from selected kiosk 2026-05-20 06:16:27 +02:00
os-updates.ts feat(ota): add OS update release endpoints 2026-05-20 06:19:46 +02:00
pairing.ts feat(managed-config): server-side scaffold for Pi-image device config 2026-05-20 03:18:11 +02:00
plugin-registry.ts refactor: collapse 6 non-service plugins into shared modules 2026-05-10 02:29:25 +02:00
rate-limit.ts feat(server): rate limit (login + pair) + CSP/security headers 2026-05-14 07:40:22 +02:00
secrets.ts fix: use deterministic HKDF key for cookie signing 2026-05-10 02:59:04 +02:00
snapshot.ts feat: multi-display + snapshot + health + GPIO + nodered embed 2026-05-13 01:18:22 +02:00
strip-secrets.ts feat: restructure Node-RED nodes + server event emission 2026-05-13 02:26:08 +02:00
types.ts fix(bundle): synthesize stream for any camera with rtsp_url 2026-05-21 09:23:50 +02:00
version.ts fix(release): surface build versions 2026-05-21 08:51:41 +02:00