Open edX Backend: overview

The Panorama Open edX Backend (panorama-openedx-backend) is a Django app for Open edX that implements the backend functions the Panorama MFE needs to display dashboards inside the LMS. It does not extract or load any data; it is purely the delivery-side glue between the LMS, your dashboards, and the MFE.

Repository: github.com/aulasneo/panorama-openedx-backend.

What it provides

  • A small REST API, mounted under /panorama/api/ on the LMS, that the MFE calls to find out the running mode, the user’s access and role, and the dashboard embed URLs.

  • For self-hosted (CUSTOM) deployments, a Django admin interface to declare Amazon QuickSight dashboards, group them by function, and assign users to those groups.

  • For the Panorama SaaS, a thin connector that talks to Aulasneo’s Panorama service with minimal configuration.

Note

This app is not intended to be installed by itself. To install Panorama in an Open edX instance, use the Panorama Tutor plugin, which adds this backend to the LMS image, configures it, and installs the MFE.

How it fits with the MFE

The MFE (frontend-app-panorama) is a thin rendering layer. On load it calls this backend to:

  1. Get the Panorama mode (get-panorama-mode) to decide which home page to show.

  2. Get the user’s role (get-user-role).

  3. Get the dashboard embed URLs (get-embed-url).

The backend resolves those requests differently depending on the configured mode. See Open edX Backend: Panorama modes for the four modes, Open edX Backend: administration for the admin models that drive the CUSTOM mode, and Open edX Backend: API reference for the full endpoint reference.

Dashboards and QuickSight

In the standard Panorama setup, dashboards are Amazon QuickSight dashboards. For the self-hosted mode, the backend uses the configured AWS credentials to call QuickSight’s generate_embed_url_for_registered_user API and returns short-lived embed URLs to the MFE, which renders them with the QuickSight embedding SDK. For the SaaS and free modes, the backend instead asks Aulasneo’s Panorama API for the dashboards, using signed requests.

Back to Home