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:
+13
-3
@@ -68,7 +68,9 @@ so a permissive origin can't be used to steal a logged-in session.
|
||||
5. Sign in to the remote portal and open `/settings/device` to edit the synced
|
||||
owner/car/device/avatar values for the configured `DEVICE_NAME`. If the Pi
|
||||
has local **Sync with server** enabled, those values hot-reload into the
|
||||
running Pi UI after the next successful sync.
|
||||
running Pi UI after the next successful sync. Phase 25.5c also adds a
|
||||
multi-device list, one-time API-key reveal, key rotation, and a request-sync
|
||||
action on that page.
|
||||
|
||||
### Upgrading an existing unraid deployment
|
||||
|
||||
@@ -79,6 +81,7 @@ again automatically. After pulling new code, apply the new migrations manually:
|
||||
cd /mnt/user/app/git/yaris-obd/server
|
||||
docker compose exec db psql -U yarisobd -d yarisobd -f /docker-entrypoint-initdb.d/migrate_phase24.sql
|
||||
docker compose exec db psql -U yarisobd -d yarisobd -f /docker-entrypoint-initdb.d/migrate_phase25_5a.sql
|
||||
docker compose exec db psql -U yarisobd -d yarisobd -f /docker-entrypoint-initdb.d/migrate_phase25_5c.sql
|
||||
docker compose up -d --build
|
||||
```
|
||||
|
||||
@@ -99,8 +102,15 @@ docker compose exec api python3 scripts/create_device.py yaris-2013
|
||||
|
||||
This prints a one-time API key — copy the `YARIS_DEVICE_NAME` /
|
||||
`YARIS_API_KEY` values into the Pi's upload-client config. Only the
|
||||
key's sha256 hash is stored server-side; the raw key is never shown again
|
||||
(re-run the script with the same device name to rotate/replace the key).
|
||||
key's sha256 hash is stored server-side; the raw key is never shown again.
|
||||
|
||||
The browser portal at `/settings/device` can now do the same workflow without
|
||||
shell access:
|
||||
|
||||
- create a new device
|
||||
- reveal a one-time API key
|
||||
- rotate the API key later
|
||||
- request a sync for the selected device
|
||||
|
||||
## Exposing it outside the LAN
|
||||
|
||||
|
||||
Reference in New Issue
Block a user