cmi5 Content
Who this guide is for: Tenant administrators who upload and manage cmi5 (xAPI) course packages in EmbayLMS.
cmi5 is the modern xAPI-based packaging standard. Unlike SCORM (which runs entirely in the browser), a cmi5 package’s Assignable Units (AUs) report progress as xAPI statements to a Learning Record Store (LRS). EmbayLMS includes a built-in LRS, so cmi5 packages work out of the box — no external LRS to configure.
Uploading a cmi5 package
- Open Admin → Courses, pick a course, and open the Modules tab.
- Add a module and set its type to cmi5.
- Upload the package .zip. EmbayLMS detects the
cmi5.xmlcourse structure inside the zip, parses the AUs, and stores them. (A zip with animsmanifest.xmlinstead is treated as SCORM.) - Publish the course version.
The package is virus-scanned and its files are served from the same content pipeline as SCORM.
What a cmi5 package contains
| Part | Meaning |
|---|---|
cmi5.xml | The course structure: the course and its list of AUs |
| AU | An Assignable Unit — a launchable lesson with its own launch URL and completion rule (moveOn) |
moveOn | When the AU counts as satisfied: Completed, Passed, CompletedOrPassed, CompletedAndPassed, or NotApplicable |
How learners take it
- On the course player, the learner opens the cmi5 module. EmbayLMS prepares the launch (registration, launch data, a signed session token) and opens the AU in a frame.
- The AU tracks the learner and reports xAPI statements (
initialized,completed,passed, …) back to the built-in LRS. - Multi-AU packages show a unit picker; a green check marks each satisfied unit.
- The module completes when every AU meets its
moveOnrule. For a single-AU course that’s immediate on completion; for a multi-course package the learner must finish all units (including, e.g., a final quiz that requires both completed and passed).
Completion flows into course progress and certificates exactly like any other module.
Configuration reference
| Item | Where | Notes |
|---|---|---|
| Module type | Course editor → Modules | Set to cmi5 |
| Package | Upload on the module | .zip containing cmi5.xml |
CMI5_TOKEN_SECRET | Platform env (optional) | Signs AU session tokens; falls back to NEXTAUTH_SECRET |
There is no external LRS to set up — the LRS endpoints (/api/v1/cmi5/…) are built in and authenticate each AU with a per-session token.
Troubleshooting
| Symptom | Cause / fix |
|---|---|
| Upload accepted but the module won’t launch | The zip may not contain a root cmi5.xml. Re-export from your authoring tool as a cmi5 package (not SCORM/xAPI-only). |
| Learner finishes a unit but the module isn’t complete | Multi-AU packages complete only when every unit is satisfied. Check the unit picker for any without a green check — a quiz unit set to CompletedAndPassed needs both a completed and a passed. |
| Progress isn’t recording | Confirm the learner is actively enrolled and launched from the course player (the AU needs the session the player provides). |
| ”Unauthorized” in the AU | The session token expired (12h) — reopen the module to get a fresh launch. |
Standards note
EmbayLMS supports SCORM 1.1, SCORM 1.2, SCORM 2004, cmi5, and AICC (HACP). See the AICC Content guide for AICC packages.