LMS connectors
LMS connectors
Connect campus learning systems through administrator-approved, documented APIs without scraping LMS pages.
Connection model
A facoolta LMS connector talks to the LMS service boundary, not to rendered course pages. The setup differs by vendor, but the operating model stays the same:
-
Approve the integration
A campus administrator reviews the requested data surface and creates the integration.
-
Issue least-privilege credentials
Use a dedicated service or user context with only the capabilities needed for the pilot.
-
Validate in a non-production course
Confirm membership filtering, dates, files, pagination, and revoked access before rollout.
-
Operate and revoke
Monitor failures, rotate credentials, and remove access when the connector is disconnected.
Data surface
Identifiers, titles, terms, and enrollment visibility.
Assignments and calendar items with source time zones preserved.
Course resources the connected identity is allowed to read.
Used to enforce course boundaries, not to create a campus directory.
Keep vendor IDs as source identifiers and store the LMS base URL with them. Do not infer a course or user from a display name. When an enrollment disappears or access is revoked, stop refreshing protected resources and invalidate derived access.
Sync lifecycle
- Initial sync
- Fetch the connected identity, active enrollments, and bounded course metadata.
- Incremental sync
- Use vendor pagination and modification markers where available; bound every polling job.
- Partial failure
- Retain the last successful result, expose its timestamp, and retry with backoff.
- Disconnect
- Revoke or delete the credential and stop scheduled work before clearing cached LMS data.
Security baseline
- Require HTTPS for the LMS base URL and reject unexpected redirects to another origin.
- Encrypt tokens and client secrets at rest; never return them to the browser after setup.
- Keep production, sandbox, and test credentials separate.
- Redact authorization headers, query-string tokens, and student content from logs.
- Apply the LMS permission check again when serving synchronized files or course data.