Sessions, Users, and Permissions

How sessions work under the hood, the three permission levels, auto-generated usernames, multi-session control, and every way to join a session.

Written By LJ Merchant

Last updated 1 day ago

Sessions, Users, and Permissions

What a Session Is

A Session is the container for one simulation. It holds the current rhythm, all vital values, visibility states, alarm thresholds, battery state, INOP states, AED Trainer state, BP history, user list, and the Session ID.

Session state is server-authoritative. That means:

  • Closing your browser does not end the session β€” it keeps running on the server.
  • Trends keep trending whether or not you're watching.
  • BP auto-cycle keeps cycling whether or not anyone is on the Display Monitor.
  • Multiple controllers and viewers stay in sync because they all read from the same server state.

Permission Levels

There are three levels:

Original Owner β€” the user who created the session. Has full Controller access. Cannot be demoted or removed by anyone. Closing their tab does not end the session β€” they can rejoin and resume Owner status. The only role that can click End Session.

Controller β€” access to both the Controller screen and the Display Monitor. Can promote, demote, or remove other users (except the Original Owner). Can be granted to co-instructors.

Viewer β€” Display Monitor access only. The Control Vital Signs tab is hidden from their header. Read-only. Cannot change anything.

Auto-Generated Usernames

Every user who joins gets an auto-assigned username:

  • Format: Adjective + Noun + 2-digit number (e.g. RunningEMT07, CalmNurse42)
  • No duplicates within a single session
  • The word list avoids inappropriate or clinically distressing pairings
  • Manual renaming is not permitted
  • Persists across reconnects (tied to a session-scoped browser token)
  • Always visible: top-right of header on desktop, bottom of menu on mobile

How to Join a Session

There are five ways to join, and each assigns a specific permission level:

  • Scan Viewer QR (from Display Monitor or Session Management) β†’ Viewer
  • Type Session ID manually β†’ Viewer
  • Scan Controller QR (from Session Management only) β†’ Controller
  • Click the Controller share link β†’ Controller
  • Get promoted via the user table β†’ Controller

Multi-Session Controller

A single Controller can run multiple simultaneous sessions from one device. The session dropdown at the top of the Controller page lets you switch between them. Each session keeps its own state running independently on the server.

This is useful for:

  • Skills lab stations running different scenarios in parallel
  • Two cohorts in two rooms with one instructor
  • Running a backup demo session while the primary session is live

What Happens When a User Reconnects

If a user closes their tab and returns, they rejoin with their previous username and permission level intact (tied to a session-scoped browser token). The Original Owner always rejoins as Owner.