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:
+11
-1
@@ -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 (
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
-- Phase 25.5c migration: multi-device sync/provisioning metadata.
|
||||
|
||||
ALTER TABLE devices ADD COLUMN IF NOT EXISTS last_config_sync_at TIMESTAMPTZ;
|
||||
ALTER TABLE devices ADD COLUMN IF NOT EXISTS last_config_sync_version INTEGER;
|
||||
ALTER TABLE devices ADD COLUMN IF NOT EXISTS force_sync_requested_at TIMESTAMPTZ;
|
||||
ALTER TABLE devices ADD COLUMN IF NOT EXISTS api_key_rotated_at TIMESTAMPTZ;
|
||||
|
||||
UPDATE devices
|
||||
SET api_key_rotated_at = COALESCE(api_key_rotated_at, created_at)
|
||||
WHERE api_key_rotated_at IS NULL;
|
||||
Reference in New Issue
Block a user