🔐 Eyescan Auth BFF - Testing Interface

Authentication Status: Checking...

🔑 Authentication

GET /v1/login — Redirect to Keycloak login
GET /v1/logout — Clear cookies and redirect to Keycloak logout
GET /v1/auth-state — Current authentication status and user details

🏠 Room Management

List Rooms

GET /v1/rooms - Query: ownerId (admins only), filter=noOwner (rooms with no owner)

Get Room by ID

GET /v1/rooms/:roomId - Admins: any room; doctors: own or no-owner; patients: Bearer signaling JWT (roomId must match)

Create Room

POST /v1/rooms - Query: name, startTime (ISO), ownerId (admins only; omit for room with no owner)

Update Room

PATCH /v1/rooms/:roomId - Body: name, ownerId, startAt (optional)

Delete Room

DELETE /v1/rooms/:roomId

Start Call

POST /v1/rooms/:roomId/startCall - Body: { "peerId": "string" }

🔑 Token Management

POST /v1/rooms/:roomId/token - Body: { "type": "doctor" | "patient" }

Redeem Token

POST /v1/rooms/redeem-token/:tokenId - Optional body: voip.ios / voip.android

Refresh Signaling Token

POST /v1/rooms/refresh-signaling-token - Bearer: current (possibly expired) signaling JWT

Token to Room ID

POST /v1/rooms/token-to-room-id/:tokenId - Returns roomId for token (does not redeem)

📋 Response

Ready to test endpoints...