major updates to device and links management in admin
This commit is contained in:
23
README.md
23
README.md
@@ -8,12 +8,13 @@ Currently in alpha. Greenfield. Subject to change.
|
||||
|
||||
## How It Works
|
||||
|
||||
1. Admin generates a unique link and assigns it to a user (or a slot).
|
||||
1. Admin generates a unique link and assigns it to a specific Android app on a specific device.
|
||||
2. User opens that link in their browser — served by `apps/front`.
|
||||
3. User is shown a loading screen for good UX purposes
|
||||
4. User is prompted to install the PWA.
|
||||
5. User opens the PWA — they are routed into a live stream of their assigned Android instance.
|
||||
6. Admin manages the entire fleet from `apps/main` (the dashboard), which communicates with `apps/orchestrator` running on each VPS to control Docker-Android containers.
|
||||
3. During the loading flow, `apps/front` validates the link and asks `apps/orchestrator` to reset the assigned Android session and launch the leased app.
|
||||
4. If that device is already in use by another end user, the link fails instead of taking over the session.
|
||||
5. User is prompted to install the PWA.
|
||||
6. User opens the PWA — they are routed into a live stream of their assigned Android app session.
|
||||
7. Admin manages the entire fleet from `apps/main` (the dashboard), which communicates with `apps/orchestrator` running on each VPS to control Docker-Android containers.
|
||||
|
||||
---
|
||||
|
||||
@@ -34,7 +35,7 @@ Currently in alpha. Greenfield. Subject to change.
|
||||
|
||||
### Device Management (Orchestrator + Admin)
|
||||
|
||||
- [ ] Device schema — DB model for a device (host VPS, container ID, status, assigned session, etc.)
|
||||
- [ ] Device schema — DB model for a device (host VPS, container ID, status, `inUse`, assigned session, etc.)
|
||||
- [ ] Device domain in `@pkg/logic` — controller + repository + errors
|
||||
- [ ] Orchestrator command interface — secured Hono routes the admin dashboard calls:
|
||||
- [ ] `POST /devices/:id/start` — start a Docker-Android container
|
||||
@@ -42,17 +43,19 @@ Currently in alpha. Greenfield. Subject to change.
|
||||
- [ ] `POST /devices/:id/restart` — restart a container
|
||||
- [ ] `GET /devices` — list all devices and their current status
|
||||
- [ ] `GET /devices/:id` — page to view the device in more detail (info, live stream feed with ws-scrcpy)
|
||||
- [ ] Device allocation logic — mark a device as in-use for a user session
|
||||
- [ ] Device release logic — free up a device when a session ends
|
||||
- [ ] Device allocation logic — atomically mark a device as `inUse` when a validated link starts a session
|
||||
- [ ] Device release logic — clear `inUse` when a session ends or fails during setup
|
||||
- [ ] Admin dashboard: Devices page — list fleet, show status, trigger start/stop/restart
|
||||
- [ ] Internal API key auth between `apps/main` and `apps/orchestrator`
|
||||
|
||||
### Link Management (Admin + Front App)
|
||||
|
||||
- [ ] Link schema — DB model (unique token, expiry, status, linked device ID)
|
||||
- [ ] Link schema — DB model (unique token, expiry, status, linked device ID, leased app identity)
|
||||
- [ ] Link domain in `@pkg/logic` — controller + repository + errors
|
||||
- [ ] Admin dashboard: Links page — generate links, view detail, configure linked device, revoke, delete
|
||||
- [ ] Admin dashboard: Links page — generate links, view detail, configure linked device + leased app, revoke, delete
|
||||
- [ ] `apps/front`: validate incoming link token on request
|
||||
- [ ] `apps/front`: during loading, reject the link if the assigned device is already `inUse`
|
||||
- [ ] `apps/front`: call `apps/orchestrator` server-side to clean/reset the device and launch the leased app before handing off the session
|
||||
- [ ] `apps/front`: return appropriate error page for invalid/expired/revoked links
|
||||
- [ ] Front: keep on checking for link status change, if it gets revoked, we cutoff the connection
|
||||
|
||||
|
||||
Reference in New Issue
Block a user