feat: add multi-device provisioning and local remote-config UI

- add multi-device portal device management, key rotation, and sync request APIs
- add Pi settings UI for remote server URL, device name, and API key
- add local test-connection and sync-now actions
- make upload and config sync reuse dynamic shared credentials
- add Phase 25.5c migration and docs updates

Co-authored-by: Copilot <[email protected]>
This commit is contained in:
Mathieu Moran
2026-08-10 18:02:09 -04:00
co-authored by Copilot
parent fbc41a5db5
commit ba682fbf3a
23 changed files with 1357 additions and 167 deletions
+11 -1
View File
@@ -8,7 +8,17 @@ CREATE TABLE IF NOT EXISTS devices (
name TEXT NOT NULL UNIQUE, -- e.g. "yaris-2013"
api_key_hash TEXT NOT NULL, -- sha256 hex digest of the device's API key, never the raw key
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
last_seen_at TIMESTAMPTZ
last_seen_at TIMESTAMPTZ,
owner_name TEXT DEFAULT '',
car_model TEXT DEFAULT '',
device_name TEXT DEFAULT '',
avatar_path TEXT DEFAULT 'img/yaris.png',
config_version INTEGER NOT NULL DEFAULT 0,
config_updated_at TIMESTAMPTZ NOT NULL DEFAULT now(),
last_config_sync_at TIMESTAMPTZ,
last_config_sync_version INTEGER,
force_sync_requested_at TIMESTAMPTZ,
api_key_rotated_at TIMESTAMPTZ
);
CREATE TABLE IF NOT EXISTS tracking_points (