🔐 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
Login
Logout
Show Auth State
🏠 Room Management
List Rooms
GET /v1/rooms - Query: ownerId (admins only), filter=noOwner (rooms with no owner)
Owner ID (optional, admins only):
Filter:
Default (own rooms / all for admin)
noOwner (rooms with no owner)
List Rooms
Get Room by ID
GET /v1/rooms/:roomId - Admins: any room; doctors: own or no-owner; patients: Bearer signaling JWT (roomId must match)
Room ID:
Get Room
Create Room
POST /v1/rooms - Query: name, startTime (ISO), ownerId (admins only; omit for room with no owner), appointmentId
Room Name (optional):
Start Time (optional):
Owner ID (optional, admins only; leave empty for no owner):
Appointment ID (optional):
Create Room
Save Patient Record
POST /v1/patients - Body: roomId, lastName, firstName, birthDate, email
Room ID:
Last Name:
First Name:
Birth Date (ISO date string):
Email:
Save Patient Record
Get Patient Record
GET /v1/patients/:roomId - Admins: any room; doctors: own rooms only
Room ID:
Get Patient Record
Create Doctor
POST /v1/doctors - Body: username, email, firstName, lastName, prefix (optional)
Username:
Email:
Prefix (optional):
First name:
Last name:
Create Doctor
Check Doctor Email Exists
GET /v1/doctors/exists?email=... - Admins only
Email:
Check Doctor Email
Get Doctor Profile
GET /v1/doctors/:doctorId - Admins: any doctor; doctors: own profile only
Doctor ID:
Get Doctor Record
Save Appointment Token Mapping
POST /v1/rooms/appointment-token-room-mappings - Body: appointmentId, roomId
Appointment ID:
Room ID:
Save Mapping
Update Room
PATCH /v1/rooms/:roomId - Body: name, ownerId, startAt (optional)
Room ID:
Owner ID (optional; leave empty to set owner to null):
Room name (optional):
Start time (optional, reschedule):
Update Room
Delete Room
DELETE /v1/rooms/:roomId
Room ID (for deletion):
Delete Room
Start Call
POST /v1/rooms/:roomId/startCall - Body: { "peerId": "string" }
Room ID (for start call):
Peer ID:
Start Call
🔑 Token Management
Create Room Token
POST /v1/rooms/:roomId/token - Body: { "type": "doctor" | "patient" }
Room ID:
Generate Doctor Token
Generate Patient Token
Redeem Token
POST /v1/rooms/redeem-token/:tokenId - Optional body: voip.ios / voip.android
Token ID:
VoIP iOS token (optional):
VoIP iOS environment (optional):
—
production
debug
testFlight
VoIP Android token (optional):
Redeem Token
Refresh Signaling Token
POST /v1/rooms/refresh-signaling-token - Bearer: current (possibly expired) signaling JWT
Signaling JWT (current token):
Refresh Token
Token to Room ID
POST /v1/rooms/token-to-room-id/:tokenId - Returns roomId for token (does not redeem)
Token ID:
Get Room ID
Appointment to Token ID
POST /v1/rooms/appointment-to-token-id/:appointmentId - Returns tokenId for appointmentId
Appointment ID:
Get Token ID
📋 Response
Ready to test endpoints...