Open edX Backend: API reference
The backend exposes a small REST API under /panorama/api/ on the LMS. All endpoints
require an authenticated session (they use the LMS JWT / session auth), and the MFE calls them
with the authenticated HTTP client. Responses are JSON objects of the shape
{"statusCode": <n>, "body": <payload>}.
Path |
Method |
Purpose |
|---|---|---|
|
GET |
Returns the configured mode ( |
|
GET |
Returns a boolean: whether the current user may access Panorama (see the access rules in Open edX Backend: Panorama modes). |
|
GET |
Returns the user’s role ( |
|
GET |
Returns the list of dashboards for the user, each with a short-lived embed URL. The source depends on the mode. |
|
GET |
Returns a QuickSight console (authoring) embed URL. Used by the Studio tab for
|
get-embed-url behavior by mode
The dashboard endpoint resolves differently per mode:
DEMO — fetches demo dashboards from Aulasneo’s demo API (rejects local/dev hosts and non-HTTPS).
FREE — fetches free dashboards from Aulasneo’s Panorama API using SigV4-signed requests.
SAAS — fetches SaaS dashboards from Aulasneo’s Panorama API using SigV4-signed requests.
CUSTOM — generates embed URLs directly from your QuickSight account for the user’s assigned dashboards.
Each returned dashboard has name, displayName, id, and url. For student-view
dashboards the url fragment carries the userId, userFullName, and lms
parameters.
Error handling
If
HTTPSis not'on',get-embed-urlreturns HTTP 421 (“HTTP not supported. Use only HTTPS.”).Configuration problems in
CUSTOMmode surface as errors such as Unassigned user ARN, Dashboard not assigned to user, or User role not assigned.get-studio-urlreturns HTTP 400 if the user has no QuickSight ARN, and 500 on QuickSight / boto errors.