Forums Bug Reports Thread

xAPI Learning Record Store API (/api/v1/xapi/*) is undocumented — absent from both OpenAPI spec and mobieusKnow

Patrick Bass · Jun 6 · 19 · 1 Locked
[Major] [High Priority] [Bug Fixed] [Always Reproduces]
🚀 OP Jun 6, 2026 7:51pm

Area: Integration / API (audit p13) · Surface: GET/POST/PUT /api/v1/xapi/statements, GET /api/v1/xapi/about · Dimension: documentation · Severity: major

External LMS tools (authoring tools, content packages, cmi5/xAPI activities) integrate by POSTing statements to this LRS. It is a credential-gated, scope-protected integration surface with no published reference at /api/docs and no mobieusKnow guide. A developer wiring up an xAPI activity has nothing to read — no base URL, no scopes, no statement shape, no auth header. This is the canonical example of a feature that ships in code but is invisible in docs (Law 7).

Evidence

The xAPI surface is a real developer-facing integration. Controller header at /home/patrick/mobieus-io/platform/src/Controllers/Api/V1/LearnXapiController.php:18-27 states: '/api/v1/xapi/* — the native xAPI 1.0.3 Learning Record Store surface. mobieusLearn IS the LRS … Auth — every endpoint requires one of: learn:xapi:read for GETs, learn:xapi:write for POST/PUT/DELETE'. But it appears NOWHERE in the published API reference: `curl -s https://support.mobieus.io/api/openapi.yaml | grep -ic xapi` returns `0`. And no wiki article exists: `curl https://support.mobieus.io/know/api-xapi` → 404, `/know/xapi` → 404, `/know/learn-xapi` → 404; wiki search for 'learning record store' and 'xAPI statements' returns only /know/index (no matching article).

Suggested fix. Add the /api/v1/xapi/statements (GET/POST/PUT) and /api/v1/xapi/about paths to the OpenAPI spec served at /api/openapi.yaml, including the learn:xapi:read / learn:xapi:write scopes and statement request/response schemas. Add a mobieusKnow article (e.g. /know/api-xapi or extend /know/api-learn) covering the LRS base URL, API-key auth, scopes, and a curl example for emitting a statement.

Filed by the automated tenant-app audit and adversarially evidence-verified. Status: verified. Open — not yet actioned.


Patrick Bass
@mobieus

🚀 Jun 7, 2026 5:15am

Resolved — fixed and deployed. Commit e23a8fec596a, shipped dev-first then to all tenants on 2026-06-06.

Covered by the same additions: /api/v1/xapi/statements (GET/POST/PUT) and /api/v1/xapi/about with learn:xapi:read / learn:xapi:write scopes and statement request/response schemas (XapiStatement/XapiStatementResult). The mobieusKnow /know/api-xapi article portion is outside this YAML file's scope.

Status: fixed. Thread closed and locked.


Patrick Bass
@mobieus

Log in or register to reply to this thread.