openedx / openedx/openedx-platform

Make MFE base URLs site‑aware via Site Configuration

Open
#37,514 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
8.2k
Forks
4.4k
Avg merge
6d 18h
Merged PRs (30d)
42

Description

Context:

There’s a draft PR to read LEARNING_MICROFRONTEND_URL from Site Configuration (with a Django settings fallback) across learning URLs and email tasks. The goal is to enable per‑Site (multi‑tenant / multi‑stage) overrides without deploy‑time env changes. https://github.com/openedx/edx-platform/pull/37504

Problem statement

Today, many places in edx-platform read MFE base URLs directly from Django settings (e.g., settings.LEARNING_MICROFRONTEND_URL). That makes multi‑site setups brittle: changing the MFE host for one site often requires redeploying or introducing bespoke settings plumbing. The draft PR (#37504) addresses this for Learning links and emails; this RFC proposes generalizing the approach to all MFE base URLs.

Proposal

  • Replace direct reads of settings.<SOME_MFE_URL> with:
    configuration_helpers.get_value("<SOME_MFE_URL>", settings.<SOME_MFE_URL>)
    so operators may set a per‑Site override in Site Configuration; otherwise we fall back to the existing Django setting.
Candidate keys:
  • LEARNING_MICROFRONTEND_URL
  • PROFILE_MICROFRONTEND_URL
  • ORDER_HISTORY_MICROFRONTEND_URL
  • AUTHN_MICROFRONTEND_URL
  • EXAMS_DASHBOARD_MICROFRONTEND_URL
  • CATALOG_MICROFRONTEND_URL
  • COURSE_AUTHORING_MICROFRONTEND_URL
  • LEARNER_HOME_MICROFRONTEND_URL
  • ACCOUNT_MICROFRONTEND_URL
  • WRITABLE_GRADEBOOK_URL
  • ENTERPRISE_LEARNER_PORTAL_BASE_URL

Why this is viable

  • Aligns with how we already expect MFEs to be deployed (multi‑site, different hosts); the README even lists the override setting names we lean on in dev.
  • Operator ergonomics: Site admins can change a single site’s MFE host without touching global settings or rebuilt containers.
  • Low risk: Read‑only lookups.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing draft PR #37504 and tracing the listed MFE base URL settings across learning URLs and email tasks. Compare those usages with the candidate keys in this RFC; done means the proposed Site Configuration override and Django-settings fallback are generalized consistently across the identified MFE URLs.

Written by the indexing model from the issue text.

Assessment

Tech stack
django, python
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.