LMS API overview
API overview (LMS)
Section titled “API overview (LMS)”Audience: backend, frontend, qa
Status: specced
Owns: backend
Depends on: LMS overview, Lifecycle, Data model, Architecture handover
Contract rule
Section titled “Contract rule”OpenAPI is the HTTP source of truth for LMS client APIs. Design SoT is ecosystem-root lms-openapi.yaml; this docs site publishes openapi/lms.yaml. Frontend must not reverse-engineer screens for endpoints.
Envelope matches Orchestrator / CAP (§19): list endpoints return { success, data: [ ... ], meta? } — data is the array itself, not { items: [...] }. Pagination (when present) is only in meta.pagination.
Artifact location
Section titled “Artifact location”| Item | Convention |
|---|---|
| Design SoT | lms-openapi.yaml (ecosystem root) |
| Prisma outline | lms-schema.prisma (ecosystem root) |
| Published copy | openapi/lms.yaml in elimi-documentation |
| Interactive | Scalar — LMS REST |
| Orchestrator auth / address / storage | openapi/orchestrator.yaml |
| gRPC recs | lms.v1.RecommendationsService in @yourorg/proto |
| Gateway prefix | /v1/lms |
| Local | http://localhost:4200/v1 |
Not on this REST surface
Section titled “Not on this REST surface”- Login / JWT / Address lists / Storage upload / Notifications → Orchestrator
- Payment processing → OL
InitiatePayment(LMS only exposes checkout) - CAP recommendations → gRPC, not public OpenAPI
Resource groups
Section titled “Resource groups”| Group | Use | Notes |
|---|---|---|
| Me | GET /me |
Personas, onboarding gates, capabilities |
| Onboarding | start / mine / get / save / submit per persona | Multi-persona allowed |
| Catalogue | published courses + outline | Authenticated browse |
| Authoring | courses, modules, items, sequencing, publish | SCORM via OL packageAssetId |
| Instructors | invites, co-instructors | Platform invite only |
| Enrollments | enroll, checkout, admin grants | Entitlement sources v1 |
| Player | progress, launch, SCORM CMI | lms.sequencing.locked |
| Assessments | native quiz attempts | SCORM quizzes stay inside the package |
| Certificates | LMS-owned | Independent of CAP |
| Staff | invites, roles, enrollment lookup | Staff ⊇ instructor |
Suggested implementation order
Section titled “Suggested implementation order”lms_users+user.created+GET /me+ onboarding- Staff/instructor invites
- Authoring + publish + catalogue
- Entitlements + checkout (
payment.completed) - Player + sequencing + native assessments + SCORM runtime
- Completion policy + LMS certificate +
lms.course.completed - gRPC
RecommendCourses(replace CAP mock)