Skip to content

[DEPR]: ENABLE_MFE_CONFIG_API toggle (make MFE config APIs on by default) #38959

Description

@feanil

RFC Start Date

N/A -- Already Accepted

Target Plan Accepted Date

N/A -- Already Accepted

Target Transition Unblocked Date

Immediately -- Transition Already Unblocked

Earliest Breaking Changes Unblocked Date

2026-08-19

Rationale

The LMS setting ENABLE_MFE_CONFIG_API (default False) gates two read-only APIs used by frontends: GET /api/mfe_config/v1 and GET /api/frontend_site_config/v1/. There's no reason to keep them off — they return only non-sensitive frontend config and are empty unless an operator populates them. Remove the toggle and make both endpoints unconditional.

This is an additive change rather than a breaking one: removing the toggle simply makes two existing endpoints available by default, so no operator loses functionality. There is maintainer consensus to do this, hence the fast-track.

Description

Removing: the ENABLE_MFE_CONFIG_API toggle. Both endpoints become always-on. No replacement — the data settings MFE_CONFIG, MFE_CONFIG_OVERRIDES, and FRONTEND_SITE_CONFIG are unchanged and remain how operators control the responses.

Transition:

  • If you set the toggle True, drop the line (this is now the default).
  • If you populated the config settings but kept the toggle False, that content will now be served — review/clear it within the transition window if you don't want it public.

The toggle is LMS-only (defined in lms/envs/common.py); there is no CMS equivalent. tutor-mfe (external) sets this toggle via a patch; once upstream ignores it the patch is harmless, so no lockstep change is required.

Task List

  • Delete the ENABLE_MFE_CONFIG_API toggle definition + annotation in lms/envs/common.py.
  • Remove the two if not settings.ENABLE_MFE_CONFIG_API guards in lms/djangoapps/mfe_config_api/views.py so both endpoints respond unconditionally.
  • Remove ENABLE_MFE_CONFIG_API overrides in lms/envs/test.py and lms/envs/mock.yml, and update the "returns 404 when disabled" tests.
  • Review the ADR at lms/djangoapps/mfe_config_api/docs/decisions/0001-mfe-config-api.rst and update as needed.
  • Add a release-note / CHANGELOG entry.

Metadata

Metadata

Assignees

Labels

deprProposal for deprecation & removal per OEP-21

Type

No type

Projects

Status
Breaking Changes Unblocked

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions