Feature Toggles

Contents

Feature Toggles#

This is the list of all Open edX feature toggles used in edx-platform. These feature toggles can be used to enable or disable features manually on every platform.

ALLOW_HIDING_DISCUSSION_TAB#

Default: False

Source: lms/djangoapps/discussion/settings/common.py (line 6)

Desc: If True, it adds an option to show/hide the discussions tab.

Creation Date: 2015-06-15

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

ALLOW_PUBLIC_ACCOUNT_CREATION#

Default: True

Source: openedx/envs/common.py (line 884)

Desc: Allow public account creation. If this is disabled, users will no longer have access to the signup page.

Creation Date: 2017-04-12

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

ANONYMOUS_SURVEY_REPORT#

Default: False

Source: lms/envs/common.py (line 3618)

Desc: If enable, the survey report will be send a UUID as ID instead of use lms site name.

Creation Date: 2023-02-21

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

AUTOMATIC_AUTH_FOR_TESTING#

Default: False

Source: openedx/envs/common.py (line 720)

Desc: Set to True to perform acceptance and load test. Auto auth view is responsible for load testing and is controlled by this feature flag. Session verification (of CacheBackedAuthenticationMiddleware) is a security feature, but it can be turned off by enabling this feature flag.

Warning

If this has been set to True then the account activation email will be skipped.

Creation Date: 2013-07-25

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

BADGES_ENABLED#

Default: False

Source: openedx/envs/common.py (line 1022)

Desc: Set to True to enable badges functionality.

Creation Date: 2024-04-02

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

BULK_EMAIL_SEND_USING_EDX_ACE#

Default: False

Source: lms/djangoapps/bulk_email/toggles.py (line 20)

Desc: If True, use edx-ace to send bulk email messages

Creation Date: 2022-02-10

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

CERTIFICATES_HTML_VIEW#

Default: False

Source: openedx/envs/common.py (line 805)

Desc: Set to True to enable course certificates on your instance of Open edX.

Warning

You must enable this feature flag in both Studio and the LMS and complete the configuration tasks described here: https://docs.openedx.org/en/latest/site_ops/install_configure_run_guide/configuration/enable_certificates.html pylint: disable=line-too-long,useless-suppression

Creation Date: 2015-03-13

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

COURSES_INVITE_ONLY#

Default: False

Source: lms/djangoapps/courseware/toggles.py (line 141)

Desc: Setting this sets the default value of INVITE_ONLY across all courses in a given deployment

Creation Date: 2019-05-16

Implementation: [‘SettingToggle’]

Use Cases: [‘open_edx’]

CUSTOM_COURSES_EDX#

Default: False

Source: openedx/envs/common.py (line 704)

Desc: Set to True to enable Custom Courses for edX, a feature that is more commonly known as CCX. Documentation for configuring and using this feature is available at https://docs.openedx.org/en/latest/site_ops/install_configure_run_guide/configuration/enable_ccx.html

Warning

When set to true, ‘lms.djangoapps.ccx.overrides.CustomCoursesForEdxOverrideProvider’ will be added to MODULESTORE_FIELD_OVERRIDE_PROVIDERS

Creation Date: 2015-04-10

Implementation: [‘DjangoSetting’]

Use Cases: [‘opt_in’, ‘circuit_breaker’]

CourseDurationLimitConfig.enabled#

Default: False

Source: openedx/features/course_duration_limits/models.py (line 16)

Desc: When enabled, users will have a limited time to complete and audit the course. The exact duration is given by the “weeks_to_complete” course detail. When enabled, it is necessary to also define the “enabled_as_of” flag: only enrollments created after this date will be affected.

Creation Date: 2018-11-02

Implementation: [‘ConfigurationModel’]

Use Cases: [‘opt_in’]

CourseHLSPlaybackEnabledFlag.course_id#

Default: False

Source: openedx/core/djangoapps/video_config/models.py (line 67)

Desc: Add the “hls” profile to all displayed videos for a single course.

Creation Date: 2017-04-19

Implementation: [‘ConfigurationModel’]

Use Cases: [‘open_edx’]

CourseVideoUploadsEnabledByDefault.course_id#

Default: False

Source: openedx/core/djangoapps/video_pipeline/models.py (line 105)

Desc: Allow video uploads for a specific course. This enables the “Video Uploads” menu in the CMS.

Creation Date: 2017-11-10

Implementation: [‘ConfigurationModel’]

Use Cases: [‘open_edx’]

DEFAULT_MOBILE_AVAILABLE#

Default: False

Source: openedx/envs/common.py (line 1963)

Desc: This specifies if the courses are available for mobile by default. To make any individual course available for mobile one can set the value of Mobile Course Available to true in Advanced Settings from the studio when this is False.

Creation Date: 2021-01-26

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

DISABLE_DEPRECATED_SIGNIN_URL#

Default: False

Source: cms/envs/common.py (line 1602)

Desc: Toggle for removing the deprecated /signin url.

Warning

This url can be removed once it no longer has any real traffic.

Creation Date: 2019-12-02

Target Removal Date: 2020-06-01

Implementation: [‘DjangoSetting’]

Use Cases: [‘temporary’]

DISABLE_DEPRECATED_SIGNUP_URL#

Default: False

Source: cms/envs/common.py (line 1613)

Desc: Toggle for removing the deprecated /signup url.

Warning

This url can be removed once it no longer has any real traffic.

Creation Date: 2019-12-02

Target Removal Date: 2020-06-01

Implementation: [‘DjangoSetting’]

Use Cases: [‘temporary’]

DISABLE_JWT_FOR_MOBILE#

Default: False

Source: openedx/core/djangoapps/oauth_dispatch/toggles.py (line 10)

Desc: Set toggle to True to ignore mobile requests for JWTs, and instead provide the legacy opaque Bearer token. This toggle can be used as a temporary kill switch as the mobile app attempts to rollout the transition to JWT authentication for the first time.

Creation Date: 2022-10-14

Target Removal Date: 2022-12-30

Implementation: [‘WaffleSwitch’]

Use Cases: [‘temporary’]

DISABLE_START_DATES#

Default: False

Source: openedx/envs/common.py (line 631)

Desc: When True, all courses will be active, regardless of start date.

Warning

This will cause ALL courses to be immediately visible.

Creation Date: 2012-07-24

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

DISABLE_UNENROLLMENT#

Default: False

Source: openedx/envs/common.py (line 1001)

Desc: Set to True to disable self-unenrollments via REST API. This also hides the “Unenroll” button on the Learner Dashboard.

Warning

For consistency in user experience, keep the value in sync with the setting of the same name in the LMS and CMS.

Creation Date: 2021-10-11

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

EMBARGO#

Default: False

Source: openedx/envs/common.py (line 744)

Desc: Turns on embargo functionality, which blocks users from the site or courses based on their location. Embargo can restrict users by states and whitelist/blacklist (IP Addresses (ie. 10.0.0.0), Networks (ie. 10.0.0.0/24)), or the user profile country.

Warning

reverse proxy should be configured appropriately for example Client IP address headers (e.g HTTP_X_FORWARDED_FOR) should be configured.

Creation Date: 2014-02-27

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

ENABLE_AUTHN_LOGIN_BLOCK_HIBP_POLICY#

Default: False

Source: lms/envs/common.py (line 3272)

Desc: When enabled, this toggle prevents the use of known-vulnerable passwords in the login flow if their frequency exceeds a threshold. Passwords are assessed by calling the Pwned Passwords service using a k-anonymity method that does not expose the password. The service tells us whether the password has been seen in any data breaches, and if so, how often. This count is converted to a “frequency” by taking the logarithm base 10. The login flow can reject all vulnerable passwords, or only passwords with a frequency above a configured threshold. In existing deployments, the threshold should be set high and tightened gradually in order to avoid large spikes in password resets and support requests. For example, setting ``HIBP_LOGIN_BLOCK_PASSWORD_FREQUENCY_THRESHOLD`` to 5 would reject logins when the password has been seen 100,000 or more times in the Pwned Passwords dataset. The goal should be to gradually reduce this to 0, meaning even a single occurrence will cause a rejection. (The threshold can take any real-number value.)

Creation Date: 2022-03-29

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

ENABLE_AUTHN_LOGIN_NUDGE_HIBP_POLICY#

Default: False

Source: lms/envs/common.py (line 3257)

Desc: When enabled, the login flow detects vulnerable passwords and prompts users to change their password if their frequency exceeds a threshold. See ENABLE_AUTHN_LOGIN_BLOCK_HIBP_POLICY for more details.

Creation Date: 2022-03-29

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

ENABLE_AUTHN_REGISTER_HIBP_POLICY#

Default: False

Source: lms/envs/common.py (line 3242)

Desc: When enabled, this toggle prevents the use of known-vulnerable passwords in the registration flow if their frequency exceeds a threshold. See ENABLE_AUTHN_LOGIN_BLOCK_HIBP_POLICY for more details.

Creation Date: 2022-03-25

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

ENABLE_AUTHN_RESET_PASSWORD_HIBP_POLICY#

Default: False

Source: lms/envs/common.py (line 3232)

Desc: When enabled, this toggle prevents the use of known-vulnerable passwords in the password reset flow. See ENABLE_AUTHN_LOGIN_BLOCK_HIBP_POLICY for more details.

Creation Date: 2021-12-03

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

ENABLE_AUTO_GENERATED_USERNAME#

Default: False

Source: openedx/core/djangoapps/user_authn/toggles.py (line 29)

Desc: Set to True to enable auto-generation of usernames.

Warning

Changing this setting may affect user authentication, account management and discussions experience.

Creation Date: 2024-02-20

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

ENABLE_CHANGE_USER_PASSWORD_ADMIN#

Default: False

Source: openedx/envs/common.py (line 931)

Desc: Set to True to enable changing a user password through django admin. This is disabled by default because enabling allows a method to bypass password policy.

Creation Date: 2020-02-21

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

ENABLE_CODEJAIL_DARKLAUNCH#

Default: False

Source: xmodule/capa/safe_exec/remote_exec.py (line 32)

Desc: Turn on to send requests to both the codejail service and the installed codejail library for testing and evaluation purposes. The results from the installed codejail library will be the ones used.

Warning

This toggle will only behave as expected when ENABLE_CODEJAIL_REST_SERVICE is not enabled and when CODE_JAIL_REST_SERVICE_REMOTE_EXEC, CODE_JAIL_REST_SERVICE_HOST, CODE_JAIL_REST_SERVICE_READ_TIMEOUT, and CODE_JAIL_REST_SERVICE_CONNECT_TIMEOUT are configured.

Creation Date: 2025-04-03

Target Removal Date: 2025-05-01

Implementation: [‘SettingToggle’]

Use Cases: [‘temporary’]

ENABLE_CODEJAIL_REST_SERVICE#

Default: False

Source: xmodule/capa/safe_exec/remote_exec.py (line 21)

Desc: Set this to True if you want to run Codejail code using a separate VM or container and communicate with edx-platform using REST API.

Creation Date: 2021-08-19

Implementation: [‘SettingToggle’]

Use Cases: [‘open_edx’]

ENABLE_COMPREHENSIVE_THEMING#

Default: False

Source: openedx/envs/common.py (line 2011)

Desc: When enabled, this toggle activates the use of the custom theme defined by DEFAULT_SITE_THEME.

Creation Date: 2016-06-30

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

ENABLE_COPPA_COMPLIANCE#

Default: False

Source: openedx/envs/common.py (line 1041)

Desc: When True, enforces COPPA compliance and removes YOB field from registration form and account

Creation Date: 2021-10-27

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

ENABLE_CREDIT_ELIGIBILITY#

Default: True

Source: openedx/envs/common.py (line 1031)

Desc: When enabled, it is possible to define a credit eligibility criteria in the CMS. A “Credit Eligibility” section then appears for those courses in the LMS.

Creation Date: 2015-06-17

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

ENABLE_CSMH_EXTENDED#

Default: True

Source: openedx/envs/common.py (line 862)

Desc: Write Courseware Student Module History (CSMH) to the extended table: this logs all student activities to MySQL, in a separate database.

Warning

Even though most Open edX instances run with a separate CSMH database, it may not always be the case. When disabling this feature flag, remember to remove “lms.djangoapps.coursewarehistoryextended” from the INSTALLED_APPS and the “StudentModuleHistoryExtendedRouter” from the DATABASE_ROUTERS. This is needed in the LMS and CMS for migration consistency.

Creation Date: 2020-11-05

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

ENABLE_DISCUSSION_SERVICE#

Default: True

Source: openedx/envs/common.py (line 644)

Desc: When True, it will enable the Discussion tab in courseware for all courses. Setting this to False will not contain inline discussion components and discussion tab in any courses.

Warning

If the discussion panel is present in the course and the value for this flag is False then, attempting to expand those components will cause errors. So, this should only be set to False with an LMS that is running courses that do not contain discussion components. For consistency in user-experience, keep the value in sync with the setting of the same name in the CMS.

Creation Date: 2012-08-14

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

ENABLE_DYNAMIC_REGISTRATION_FIELDS#

Default: False

Source: openedx/envs/common.py (line 1548)

Desc: When enabled, this toggle adds fields configured in

Creation Date: 2022-04-21

Implementation: [‘DjangoSetting’]

Use Cases: [‘temporary’]

ENABLE_GRADING_METHOD_IN_PROBLEMS#

Default: False

Source: openedx/envs/common.py (line 1013)

Desc: Enables the grading method feature in capa problems.

Creation Date: 2024-03-22

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

ENABLE_INTEGRITY_SIGNATURE#

Default: False

Source: openedx/envs/common.py (line 968)

Desc: Whether to display honor code agreement for learners before their first grade assignment.

Creation Date: 2022-02-15

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

ENABLE_LTI_PII_ACKNOWLEDGEMENT#

Default: False

Source: openedx/envs/common.py (line 979)

Desc: Enables the lti pii acknowledgement feature for a course

Creation Date: 2023-10

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

ENABLE_MFE_CONFIG_API#

Default: False

Source: lms/envs/common.py (line 3414)

Desc: Set to True to enable MFE Config API. This is disabled by default.

Creation Date: 2022-05-20

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

ENABLE_MKTG_SITE#

Default: False

Source: openedx/envs/common.py (line 758)

Desc: Toggle to enable alternate urls for marketing links.

Warning

When this is enabled, the MKTG_URLS setting should be defined. The use case of this feature toggle is uncertain.

Creation Date: 2014-03-24

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

ENABLE_OAUTH2_PROVIDER#

Default: False

Source: openedx/envs/common.py (line 668)

Desc: Enable this feature to allow this Open edX platform to be an OAuth2 authentication provider. This is necessary to enable some other features, such as the REST API for the mobile application.

Warning

This temporary feature toggle does not have a target removal date.

Creation Date: 2014-09-09

Implementation: [‘DjangoSetting’]

Use Cases: [‘temporary’]

ENABLE_ORA_ALL_FILE_URLS#

Default: False

Source: openedx/envs/common.py (line 943)

Desc: A “work-around” feature toggle meant to help in cases where some file uploads are not discoverable. If enabled, will iterate through all possible file key suffixes up to the max for displaying file metadata in staff assessments.

Warning

This temporary feature toggle does not have a target removal date.

Creation Date: 2020-03-03

Implementation: [‘DjangoSetting’]

Use Cases: [‘temporary’]

ENABLE_ORA_USER_STATE_UPLOAD_DATA#

Default: False

Source: openedx/envs/common.py (line 956)

Desc: A “work-around” feature toggle meant to help in cases where some file uploads are not discoverable. If enabled, will pull file metadata from StudentModule.state for display in staff assessments.

Warning

This temporary feature toggle does not have a target removal date.

Creation Date: 2020-03-03

Implementation: [‘DjangoSetting’]

Use Cases: [‘temporary’]

ENABLE_PASSWORD_RESET_FAILURE_EMAIL#

Default: False

Source: openedx/envs/common.py (line 906)

Desc: Whether to send an email for failed password reset attempts or not. This happens when a user asks for a password reset but they don’t have an account associated to their email. This is useful for notifying users that they don’t have an account associated with email addresses they believe they’ve registered with. This setting can be overridden by a site-specific configuration.

Creation Date: 2017-07-20

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

ENABLE_REQUIRE_THIRD_PARTY_AUTH#

Default: False

Source: lms/envs/common.py (line 712)

Desc: Set to True to prevent using username/password login and registration and only allow authentication with third party auth

Warning

Requires configuration of third party auth

Creation Date: 2020-09-16

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

ENABLE_SAML_CONFIG_SIGNAL_HANDLERS#

Default: False

Source: common/djangoapps/third_party_auth/toggles.py (line 21)

Desc: Controls whether SAML configuration signal handlers are active. When enabled (True), signal handlers will automatically update SAMLProviderConfig references when the associated SAMLConfiguration is updated. When disabled (False), SAMLProviderConfigs point to outdated SAMLConfiguration.

Warning

Disabling this toggle may result in SAMLProviderConfig instances pointing to outdated SAMLConfiguration records. Use the management command ‘saml –fix-references’ to fix outdated references.

Creation Date: 2025-07-03

Target Removal Date: 2026-01-01

Implementation: [‘SettingToggle’]

Use Cases: [‘temporary’]

ENABLE_SPECIAL_EXAMS#

Default: False

Source: openedx/envs/common.py (line 827)

Desc: Enable to use special exams, aka timed and proctored exams.

Creation Date: 2015-09-04

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

ENABLE_TEXTBOOK#

Default: True

Source: openedx/envs/common.py (line 657)

Desc: Add PDF and HTML textbook tabs to the courseware.

Warning

For consistency in user-experience, keep the value in sync with the setting of the same name in the CMS.

Creation Date: 2014-03-27

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

ENFORCE_SAFE_SESSIONS#

Default: True

Source: openedx/core/djangoapps/safe_sessions/middleware.py (line 136)

Desc: Invalidate session and response if mismatch detected. That is, when the `user` attribute of the request object gets changed or no longer matches the session, the session will be invalidated and the response cancelled (changed to an error). This is intended as a backup safety measure in case an attacker (or bug) is able to change the user on a session in an unexpected way.

Warning

Should be disabled if debugging mismatches using the LOG_REQUEST_USER_CHANGE_HEADERS toggle, otherwise series of mismatching requests from the same user cannot be investigated. Additionally, if enabling for the first time, confirm that incidences of the string “SafeCookieData user at request” in the logs are very rare; if they are not, it is likely that there is either a bug or that a login or registration endpoint needs to call ``mark_user_change_as_expected``.

Creation Date: 2021-12-01

Implementation: [‘SettingToggle’]

Use Cases: [‘opt_out’]

ENFORCE_SESSION_EMAIL_MATCH#

Default: False

Source: lms/envs/common.py (line 3298)

Desc: When enabled, this setting invalidates sessions in other browsers upon email change, while preserving the session validity in the browser where the email change occurs. This toggle is just being used for rollout.

Creation Date: 2023-12-07

Target Removal Date: 2024-04-01

Implementation: [‘DjangoSetting’]

Use Cases: [‘temporary’]

EVENT_BUS_PRODUCER_CONFIG[‘org.openedx.content_authoring.course.catalog_info.changed.v1’] [‘course-catalog-info-changed’][‘enabled’]#

Default: False

Source: cms/envs/common.py (line 1692)

Desc: if enabled, will publish COURSE_CATALOG_INFO_CHANGED events to the event bus on the course-catalog-info-changed topics

Warning

The default may be changed in a later release. See https://github.com/openedx/openedx-events/issues/265

Creation Date: 2023-10-10

Implementation: [‘DjangoSetting’]

Use Cases: [‘opt_in’]

EVENT_BUS_PRODUCER_CONFIG[‘org.openedx.learning.course.unenrollment.completed.v1’] [‘course-unenrollment-lifecycle’][‘enabled’]#

Default: False

Source: lms/envs/common.py (line 3538)

Desc: Enables sending COURSE_UNENROLLMENT_COMPLETED events over the event bus.

Warning

The default may be changed in a later release. See https://github.com/openedx/openedx-events/issues/265

Creation Date: 2023-09-18

Implementation: [‘DjangoSetting’]

Use Cases: [‘opt_in’]

EVENT_BUS_PRODUCER_CONFIG[‘org.openedx.learning.xblock.skill.verified.v1’] [‘learning-xblock-skill-verified’][‘enabled’]#

Default: False

Source: lms/envs/common.py (line 3553)

Desc: Enables sending xblock_skill_verified events over the event bus.

Warning

The default may be changed in a later release. See https://github.com/openedx/openedx-events/issues/265

Creation Date: 2023-09-18

Implementation: [‘DjangoSetting’]

Use Cases: [‘opt_in’]

FEATURES[‘ALLOW_AUTOMATED_SIGNUPS’]#

Default: False

Source: lms/djangoapps/instructor/settings/common.py (line 62)

Desc: Enable to show a section in the membership tab of the instructor dashboard to allow an upload of a CSV file that contains a list of new accounts to create and register for course.

Creation Date: 2014-10-21

Implementation: [‘DjangoSetting’]

Use Cases: [‘opt_in’]

FEATURES[‘ALLOW_COURSE_STAFF_GRADE_DOWNLOADS’]#

Default: False

Source: lms/djangoapps/instructor/settings/common.py (line 52)

Desc: Enable to give course staff unrestricted access to grade downloads; if set to False, only edX superusers can perform the downloads.

Creation Date: 2018-03-26

Implementation: [‘DjangoSetting’]

Use Cases: [‘opt_in’]

FEATURES[‘BATCH_ENROLLMENT_NOTIFY_USERS_DEFAULT’]#

Default: True

Source: lms/djangoapps/instructor/settings/common.py (line 101)

Desc: Controls if the “Notify users by email” checkbox in the batch enrollment form on the instructor dashboard is already checked on page load or not.

Creation Date: 2017-07-05

Implementation: [‘DjangoSetting’]

Use Cases: [‘opt_out’]

FEATURES[‘CERTIFICATES_INSTRUCTOR_GENERATION’] # lint-amnesty, pylint: disable=annotation-missing-token#

Default: False

Source: lms/djangoapps/instructor/settings/common.py (line 85)

Desc: Enable to allow batch generation of certificates from the instructor dashboard. In case of self-paced courses, the certificate generation button is hidden if certificate generation is not explicitly enabled globally or for the specific course.

Implementation: [‘DjangoSetting’]

Use Cases: [‘opt_in’]

FEATURES[‘CREATE_COURSE_WITH_DEFAULT_ENROLLMENT_START_DATE’]#

Default: False

Source: build/lib/xmodule/course_block.py (line 61)

Desc: The default behavior, when this is disabled, is that a newly created course has no enrollment_start date set. When the feature is enabled - the newly created courses will have the enrollment_start_date set to DEFAULT_START_DATE. This is intended to be a permanent option. This toggle affects the course listing pages (platform’s index page, /courses page) when course search is performed using the `lms.djangoapp.branding.get_visible_courses` method and the COURSE_CATALOG_VISIBILITY_PERMISSION setting is set to ‘see_exists’. Switching the toggle to True will prevent the newly created (empty) course from appearing in the course listing.

Creation Date: 2023-06-22

Implementation: [‘SettingDictToggle’]

Use Cases: [‘open_edx’]

FEATURES[‘DISPLAY_ANALYTICS_ENROLLMENTS’]#

Default: True

Source: lms/djangoapps/instructor/settings/common.py (line 12)

Desc: Enable display of enrollment counts in instructor dashboard and analytics section.

Creation Date: 2014-11-12

Implementation: [‘DjangoSetting’]

Use Cases: [‘opt_out’]

FEATURES[‘ENABLE_AUTOMATED_SIGNUPS_EXTRA_FIELDS’]#

Default: False

Source: lms/djangoapps/instructor/settings/common.py (line 73)

Desc: When True, the CSV file that contains a list of new accounts to create and register for a course in the membership tab of the instructor dashboard will accept the cohort name to assign the new user and the enrollment course mode.

Creation Date: 2021-10-26

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

FEATURES[‘ENABLE_CCX_ANALYTICS_DASHBOARD_URL’]#

Default: False

Source: lms/djangoapps/instructor/settings/common.py (line 22)

Desc: Display the ‘Analytics’ tab in the instructor dashboard for CCX courses. Note: This has no effect unless ANALYTICS_DASHBOARD_URL is already set, because without that setting, the tab does not show up for any courses.

Creation Date: 2016-10-07

Implementation: [‘DjangoSetting’]

Use Cases: [‘opt_in’]

FEATURES[‘ENABLE_CERTIFICATES_INSTRUCTOR_MANAGE] # lint-amnesty, pylint: disable=annotation-missing-token#

Default: False

Source: lms/djangoapps/instructor/settings/common.py (line 94)

Desc: Allow course instructors to manage certificates from the instructor dashboard.

Implementation: [‘DjangoSetting’]

Use Cases: [‘opt_in’]

FEATURES[‘ENABLE_CONTENT_LIBRARIES’]#

Default: True

Source: cms/djangoapps/contentstore/toggles.py (line 485)

Desc: Enables use of the legacy and v2 libraries waffle flags. Note that legacy content libraries are only supported in courses using split mongo.

Warning

This flag is deprecated in Sumac, and will be removed in favor of the disable_legacy_libraries and disable_new_libraries waffle flags.

Creation Date: 2015-03-06

Target Removal Date: 2025-04-09

Implementation: [‘SettingDictToggle’]

Use Cases: [‘open_edx’]

FEATURES[‘ENABLE_EXPORT_GIT’]#

Default: False

Source: cms/djangoapps/contentstore/toggles.py (line 9)

Desc: When enabled, a “Export to Git” menu item is added to the course studio for courses that have a valid “giturl” attribute. Exporting a course to git causes the course to be exported in the directory indicated by the GIT_REPO_EXPORT_DIR setting. Note that when this feature is disabled, courses can still be exported to git with the git_export management command.

Warning

To enable this feature, the GIT_REPO_EXPORT_DIR setting must be properly defined and point to an existing directory.

Creation Date: 2014-02-13

Implementation: [‘SettingDictToggle’]

Use Cases: [‘open_edx’]

FEATURES[‘ENABLE_FORUM_DAILY_DIGEST’]#

Default: False

Source: lms/djangoapps/discussion/config/settings.py (line 10)

Desc: Settings for forums/discussions to on/off daily digest feature. Set this to True if you want to enable users to subscribe and unsubscribe for daily digest. This setting enables deprecation of daily digest.

Creation Date: 2020-03-09

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

FEATURES[‘ENABLE_GRADE_DOWNLOADS’]#

Default: False

Source: lms/djangoapps/instructor/settings/common.py (line 41)

Desc: Enable grade CSV downloads from the instructor dashboard. Grade calculation started from the instructor dashboard will write grades CSV files to the configured storage backend and give links for downloads.

Creation Date: 2016-07-06

Implementation: [‘DjangoSetting’]

Use Cases: [‘opt_in’]

FEATURES[‘ENABLE_LEARNER_RECORDS’]#

Default: True

Source: openedx/core/djangoapps/credentials/helpers.py (line 9)

Desc: Enable learner records for the whole platform. This setting may be overridden by site- and org-specific site configurations with the same name.

Warning

Enabling this feature requires that the definition of the ``CREDENTIALS_PUBLIC_SERVICE_URL`` setting.

Creation Date: 2020-10-01

Implementation: [‘SettingDictToggle’]

Use Cases: [‘open_edx’]

FEATURES[‘ENABLE_ORA_TEAM_SUBMISSIONS’]#

Default: False

Source: lms/djangoapps/teams/toggles.py (line 12)

Desc: Set to True to enable team-based ORA submissions.

Warning

This temporary feature toggle does not have a target removal date. This can be overridden by a course waffle flags or a waffle switch with identical name.

Creation Date: 2020-03-03

Implementation: [‘SettingDictToggle’]

Use Cases: [‘temporary’]

FEATURES[‘ENTRANCE_EXAMS’]#

Default: False

Source: openedx/core/toggles.py (line 7)

Desc: Enable entrance exams feature. When enabled, students see an exam xblock as the first unit of the course.

Creation Date: 2015-12-01

Implementation: [‘SettingDictToggle’]

Use Cases: [‘open_edx’]

FEATURES[‘MILESTONES_APP’]#

Default: False

Source: common/djangoapps/util/milestones_helpers.py (line 25)

Desc: Enable the milestones application, which manages significant Course and/or Student events in the Open edX platform. (see https://github.com/openedx/edx-milestones) Note that this feature is required to enable course pre-requisites.

Creation Date: 2014-11-21

Implementation: [‘SettingDictToggle’]

Use Cases: [‘open_edx’]

FEATURES[‘SHOW_PROGRESS_BAR’]#

Default: False

Source: build/lib/xmodule/seq_block.py (line 59)

Desc: Set to True to show progress bar.

Creation Date: 2022-02-09

Implementation: [‘SettingDictToggle’]

Use Cases: [‘open_edx’]

GLOBAL_NOTICE_ENABLED#

Default: False

Source: openedx/core/djangoapps/util/user_messages.py (line 187)

Desc: When enabled, show the contents of GLOBAL_NOTICE_MESSAGE as a message on every page. This is intended to be used as a way of communicating an upcoming or currently active maintenance window or to warn of known site issues. HTML is not supported for the message content, only plaintext. Message styling can be controlled with GLOBAL_NOTICE_TYPE, set to one of INFO, SUCCESS, WARNING, or ERROR (defaulting to INFO). Also see openedx.core.djangoapps.util.maintenance_banner.add_maintenance_banner for a variation that only shows a message on specific views.

Creation Date: 2021-09-08

Implementation: [‘SettingToggle’]

Use Cases: [‘open_edx’]

HLSPlaybackEnabledFlag.enabled_for_all_courses#

Default: False

Source: openedx/core/djangoapps/video_config/models.py (line 16)

Desc: Add the “hls” profile to all displayed videos on the platform.

Creation Date: 2017-04-19

Implementation: [‘ConfigurationModel’]

Use Cases: [‘open_edx’]

IGNORED_ERRORS[N][‘LOG_ERROR’]#

Default: False

Source: openedx/core/lib/request_utils.py (line 155)

Desc: If True, the error will be logged with a message like: “Ignored error …”.

Creation Date: 2021-03-11

Implementation: [‘DjangoSetting’]

Use Cases: [‘opt_in’]

IGNORED_ERRORS[N][‘LOG_STACK_TRACE’]#

Default: False

Source: openedx/core/lib/request_utils.py (line 162)

Desc: If True, the stacktrace will be included with the logging message.

Warning

Requires ``LOG_ERROR`` to be set to True, otherwise this value will be ignored.

Creation Date: 2021-03-11

Implementation: [‘DjangoSetting’]

Use Cases: [‘opt_in’]

JWT_AUTH_ADD_KID_HEADER#

Default: False

Source: openedx/core/djangoapps/oauth_dispatch/jwt.py (line 279)

Desc: When True, add KID header to JWT using asymmetrical key.

Creation Date: 2024-03-20

Target Removal Date: 2024-04-20

Implementation: [‘SettingToggle’]

Use Cases: [‘temporary’]

JWT_AUTH_FORCE_CREATE_ASYMMETRIC#

Default: False

Source: openedx/core/djangoapps/oauth_dispatch/jwt.py (line 204)

Desc: When True, forces the LMS to only create JWTs signed with the asymmetric key. This is a temporary rollout toggle for DEPR of symmetric JWTs.

Creation Date: 2023-04-10

Target Removal Date: 2023-07-31

Implementation: [‘SettingToggle’]

Use Cases: [‘temporary’]

LICENSING#

Default: False

Source: openedx/envs/common.py (line 795)

Desc: Toggle platform-wide course licensing. The course.license attribute is then used to append license information to the courseware.

Creation Date: 2015-05-14

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

LOG_REQUEST_USER_CHANGES#

Default: False

Source: openedx/core/djangoapps/safe_sessions/middleware.py (line 101)

Desc: Turn this toggle on to provide additional debugging information in the case of a user verification error. It will track anytime the `user` attribute of a request object is changed and store this information on the request. This will also track the location where the change is coming from to quickly find issues. If user verification fails at response time, all of the information about these changes will be logged.

Warning

Adds some processing overhead to all requests to gather debug info. Will also double the logging for failed verification checks.

Creation Date: 2021-03-25

Implementation: [‘SettingToggle’]

Use Cases: [‘opt_in’]

LOG_REQUEST_USER_CHANGE_HEADERS#

Default: False

Source: openedx/core/djangoapps/safe_sessions/middleware.py (line 116)

Desc: Turn this toggle on to log all request headers, for all requests, for all user ids involved in any user id change detected by safe sessions. The headers will provide additional debugging information. The headers will be logged for all requests up until LOG_REQUEST_USER_CHANGE_HEADERS_DURATION seconds after the time of the last mismatch. The header details will be encrypted, and only available with the private key.

Warning

Logging headers of subsequent requests following a mismatch will only work if LOG_REQUEST_USER_CHANGES is enabled and ENFORCE_SAFE_SESSIONS is disabled; otherwise, only headers of the inital mismatch will be logged. Also, SAFE_SESSIONS_DEBUG_PUBLIC_KEY must be set. See https://github.com/openedx/edx-platform/blob/master/common/djangoapps/util/log_sensitive.py for instructions.

Creation Date: 2021-12-22

Implementation: [‘SettingToggle’]

Use Cases: [‘opt_in’]

MARK_LIBRARY_CONTENT_BLOCK_COMPLETE_ON_VIEW#

Default: False

Source: openedx/envs/common.py (line 989)

Desc: If enabled, the Library Content Block is marked as complete when users view it. Otherwise (by default), all children of this block must be completed.

Warning

For consistency in user-experience, keep the value in sync between the LMS and CMS

Creation Date: 2022-03-22

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

ORGANIZATIONS_AUTOCREATE#

Default: True

Source: cms/envs/common.py (line 1632)

Desc: When enabled, creating a course run or content library with an “org slug” that does not map to an Organization in the database will trigger the creation of a new Organization, with its name and short_name set to said org slug. When disabled, creation of such content with an unknown org slug will instead result in a validation error. If you want the Organization table to be an authoritative information source in Studio, then disable this; however, if you want the table to just be a reflection of the orgs referenced in Studio content, then leave it enabled.

Creation Date: 2020-11-02

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

RATELIMIT_ENABLE#

Default: True

Source: lms/envs/common.py (line 3160)

Desc: When enabled, RATELIMIT_RATE is applied. When disabled, RATELIMIT_RATE is not applied.

Creation Date: 2018-01-08

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

RESTRICT_AUTOMATIC_AUTH#

Default: True

Source: openedx/envs/common.py (line 732)

Desc: Prevent auto auth from creating superusers or modifying existing users. Auto auth is a mechanism where superusers can simply modify attributes of other users by accessing the “/auto_auth url” with the right querystring parameters.

Creation Date: 2018-05-07

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

SAML_METADATA_URL_ALLOW_PRIVATE_IPS#

Default: False

Source: openedx/envs/common.py (line 1579)

Desc: When False (the default), fetching SAML metadata from private IP address ranges (RFC 1918: 10.x, 172.16.x, 192.168.x) is blocked as a defense against SSRF attacks. Set to True only in deployments where the SAML Identity Provider is hosted on the same private network as the Open edX server. Note: loopback (127.x) and link-local (169.254.x) addresses remain blocked regardless of this toggle. Operators are also encouraged to enforce network-level egress filtering as a complementary control, particularly to cover hostname-based URLs that are not subject to IP validation.

Creation Date: 2026-04-24

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

SEARCH_SKIP_INVITATION_ONLY_FILTERING#

Default: True

Source: lms/envs/common.py (line 2765)

Desc: If enabled, invitation-only courses will appear in search results.

Creation Date: 2021-08-27

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

SEARCH_SKIP_SHOW_IN_CATALOG_FILTERING#

Default: True

Source: lms/envs/common.py (line 2772)

Desc: If enabled, courses with a catalog_visibility set to “none” will still appear in search results.

Creation Date: 2021-08-27

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

SHOW_HEADER_LANGUAGE_SELECTOR#

Default: False

Source: openedx/envs/common.py (line 836)

Desc: When set to True, language selector will be visible in the header.

Warning

You should set the languages in the DarkLangConfig table to get this working. If you have not set any languages in the DarkLangConfig table then the language selector will not be visible in the header.

Creation Date: 2017-05-25

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

SOME_FEATURE_NAME#

Default: False

Source: openedx/envs/common.py (line 1375)

Desc: Flag would be used to show account activation popup after the registration

Creation Date: 2021-06-10

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

SURVEY_REPORT_ENABLE#

Default: True

Source: lms/envs/common.py (line 3606)

Desc: Set to True to enable the feature to generate and send survey reports.

Creation Date: 2024-01-30

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

TPA_AUTOMATIC_LOGOUT_ENABLED#

Default: False

Source: lms/envs/common.py (line 802)

Desc: Redirect the user to the TPA logout URL if this flag is enabled, the TPA logout URL is configured, and the user logs in through TPA.

Warning

Enabling this toggle skips rendering logout.html, which is used to log the user out from the different IDAs. To ensure the user is logged out of all the IDAs be sure to redirect back to <LMS>/logout after logging out of the TPA.

Creation Date: 2023-05-07

Implementation: [‘DjangoSetting’]

Use Cases: [‘opt_in’]

USE_EXTRACTED_ANNOTATABLE_BLOCK#

Default: False

Source: openedx/envs/common.py (line 1698)

Desc: Enables the use of the extracted annotatable XBlock, which has been shifted to the ‘openedx/xblocks-contrib’ repo.

Warning

Not production-ready until https://github.com/openedx/edx-platform/issues/34841 is done.

Creation Date: 2024-11-10

Target Removal Date: 2025-06-01

Implementation: [‘DjangoSetting’]

Use Cases: [‘temporary’]

USE_EXTRACTED_DISCUSSION_BLOCK#

Default: False

Source: openedx/envs/common.py (line 1738)

Desc: Enables the use of the extracted Discussion XBlock, which has been shifted to the ‘openedx/xblocks-contrib’ repo.

Warning

Not production-ready until relevant subtask https://github.com/openedx/edx-platform/issues/34827 is done.

Creation Date: 2024-11-10

Target Removal Date: 2025-06-01

Implementation: [‘DjangoSetting’]

Use Cases: [‘temporary’]

USE_EXTRACTED_HTML_BLOCK#

Default: False

Source: openedx/envs/common.py (line 1728)

Desc: Enables the use of the extracted HTML XBlock, which has been shifted to the ‘openedx/xblocks-contrib’ repo.

Warning

Not production-ready until relevant subtask https://github.com/openedx/edx-platform/issues/34827 is done.

Creation Date: 2024-11-10

Target Removal Date: 2025-06-01

Implementation: [‘DjangoSetting’]

Use Cases: [‘temporary’]

USE_EXTRACTED_LTI_BLOCK#

Default: False

Source: openedx/envs/common.py (line 1718)

Desc: Enables the use of the extracted LTI XBlock, which has been shifted to the ‘openedx/xblocks-contrib’ repo.

Warning

Not production-ready until relevant subtask https://github.com/openedx/edx-platform/issues/34827 is done.

Creation Date: 2024-11-10

Target Removal Date: 2025-06-01

Implementation: [‘DjangoSetting’]

Use Cases: [‘temporary’]

USE_EXTRACTED_POLL_QUESTION_BLOCK#

Default: False

Source: openedx/envs/common.py (line 1708)

Desc: Enables the use of the extracted poll question XBlock, which has been shifted to the ‘openedx/xblocks-contrib’ repo.

Warning

Not production-ready until https://github.com/openedx/edx-platform/issues/34839 is done.

Creation Date: 2024-11-10

Target Removal Date: 2025-06-01

Implementation: [‘DjangoSetting’]

Use Cases: [‘temporary’]

USE_EXTRACTED_PROBLEM_BLOCK#

Default: False

Source: openedx/envs/common.py (line 1748)

Desc: Enables the use of the extracted Problem XBlock, which has been shifted to the ‘openedx/xblocks-contrib’ repo.

Warning

Not production-ready until relevant subtask https://github.com/openedx/edx-platform/issues/34827 is done.

Creation Date: 2024-11-10

Target Removal Date: 2025-06-01

Implementation: [‘DjangoSetting’]

Use Cases: [‘temporary’]

USE_EXTRACTED_VIDEO_BLOCK#

Default: False

Source: openedx/envs/common.py (line 1758)

Desc: Enables the use of the extracted Video XBlock, which has been shifted to the ‘openedx/xblocks-contrib’ repo.

Warning

Not production-ready until relevant subtask https://github.com/openedx/edx-platform/issues/34827 is done.

Creation Date: 2024-11-10

Target Removal Date: 2025-06-01

Implementation: [‘DjangoSetting’]

Use Cases: [‘temporary’]

USE_EXTRACTED_WORD_CLOUD_BLOCK#

Default: False

Source: openedx/envs/common.py (line 1688)

Desc: Enables the use of the extracted Word Cloud XBlock, which has been shifted to the ‘openedx/xblocks-contrib’ repo.

Warning

Not production-ready until https://github.com/openedx/edx-platform/issues/34840 is done.

Creation Date: 2024-11-10

Target Removal Date: 2025-06-01

Implementation: [‘DjangoSetting’]

Use Cases: [‘temporary’]

VEMPipelineIntegration.enabled#

Default: False

Source: openedx/core/djangoapps/video_pipeline/models.py (line 14)

Desc: Send videos to the Video Encode Manager (VEM) as part of the video pipeline.

Creation Date: 2020-06-04

Implementation: [‘ConfigurationModel’]

Use Cases: [‘open_edx’]

VideoUploadsEnabledByDefault.enabled_for_all_courses#

Default: False

Source: openedx/core/djangoapps/video_pipeline/models.py (line 55)

Desc: Allow video uploads for all courses of the platform. This enables the “Video Uploads” menu in the CMS.

Creation Date: 2017-11-10

Implementation: [‘ConfigurationModel’]

Use Cases: [‘open_edx’]

WIKI_ACCOUNT_HANDLING#

Default: False

Source: lms/envs/common.py (line 1254)

Desc: We recommend you leave this as ‘False’ for an Open edX installation to get the proper behavior for register, login and logout. For the original docs see: https://github.com/openedx/django-wiki/blob/edx_release/wiki/conf/settings.py

Creation Date: 2012-08-13

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

WIKI_ANONYMOUS#

Default: False

Source: lms/envs/common.py (line 1264)

Desc: Enabling this allows access to anonymous users. For the original docs, see: https://github.com/openedx/django-wiki/blob/edx_release/wiki/conf/settings.py

Warning

Setting allow anonymous access to `True` may have styling issues.

Creation Date: 2012-08-21

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

WIKI_ENABLED#

Default: True

Source: lms/envs/common.py (line 954)

Desc: This setting allows us to have a collaborative tool to contribute or modify content of course related materials.

Creation Date: 2012-07-13

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

WIKI_USE_BOOTSTRAP_SELECT_WIDGET#

Default: False

Source: lms/envs/common.py (line 1280)

Desc: Enabling this will use the bootstrap select widget. For the original docs, see: https://github.com/openedx/django-wiki/blob/edx_release/wiki/conf/settings.py

Creation Date: 2012-08-22

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

agreements.enable_lti_pii_acknowledgement#

Default: False

Source: openedx/core/djangoapps/agreements/toggles.py (line 8)

Desc: Enables the lti pii acknowledgement feature for a course

Creation Date: 2023-10

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘temporary’, ‘open_edx’]

bulk_email.EMAIL_USE_COURSE_ID_FROM_FOR_BULK#

Default: False

Source: lms/djangoapps/bulk_email/toggles.py (line 8)

Desc: If False, use the same BULK_EMAIL_DEFAULT_FROM_EMAIL or DEFAULT_FROM_EMAIL as the from_addr for all bulk email, to avoid issues with spam filtering

Creation Date: 2020-10-01

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

certificates.auto_certificate_generation#

Default: False

Source: lms/djangoapps/certificates/config.py (line 10)

Desc: This toggle will enable certificates to be automatically generated

Creation Date: 2017-09-14

Implementation: [‘WaffleSwitch’]

Use Cases: [‘open_edx’]

content_tagging.auto#

Default: False

Source: openedx/core/djangoapps/content_tagging/toggles.py (line 10)

Desc: Setting this enables automatic tagging of content

Creation Date: 2023-08-30

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘open_edx’]

content_tagging.disabled#

Default: False

Source: openedx/core/djangoapps/content_tagging/toggles.py (line 22)

Desc: Setting this disables the tagging feature

Creation Date: 2024-04-30

Implementation: [‘WaffleFlag’]

Use Cases: [‘open_edx’]

contentstore.bypass_olx_failure#

Default: False

Source: cms/djangoapps/contentstore/toggles.py (line 41)

Desc: Enables bypassing olx validation failures during course import.

Creation Date: 2021-04-15

Target Removal Date: 2021-05-15

Implementation: [‘WaffleFlag’]

Use Cases: [‘open_edx’]

contentstore.default_enable_flexible_peer_openassessments#

Default: False

Source: cms/djangoapps/contentstore/toggles.py (line 462)

Desc: This flag turns on the force_on_flexible_peer_openassessments setting for course reruns or new courses, where enabled.

Warning

Creation Date: 2023-06-27

Target Removal Date: 2024-01-27

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘temporary’]

contentstore.enable_course_optimizer#

Default: False

Source: cms/djangoapps/contentstore/toggles.py (line 558)

Desc: This flag enables the course optimizer tool in the authoring MFE.

Creation Date: 2025-01-17

Target Removal Date: 2025-05-30

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘temporary’]

contentstore.individualize_anonymous_user_id#

Default: False

Source: cms/djangoapps/contentstore/toggles.py (line 145)

Desc: This flag enables the use of unique anonymous_user_id during studio preview

Creation Date: 2022-05-04

Target Removal Date: 2022-05-30

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘temporary’]

contentstore.mock_video_uploads#

Default: False

Source: cms/djangoapps/contentstore/toggles.py (line 443)

Desc: This flag mocks contentstore video uploads for local development, if you don’t have access to AWS

Warning

Creation Date: 2023-7-25

Implementation: [‘WaffleFlag’]

Use Cases: [‘open_edx’]

contentstore.new_studio_mfe.disable_legacy_libraries#

Default: False

Source: cms/djangoapps/contentstore/toggles.py (line 499)

Desc: Hides legacy (v1) Libraries tab in Authoring MFE. This toggle interacts with ENABLE_CONTENT_LIBRARIES toggle: if this is disabled, then legacy libraries are also disabled.

Warning

Legacy libraries are deprecated in Sumac, cf https://github.com/openedx/edx-platform/issues/32457

Creation Date: 2024-10-02

Target Removal Date: 2025-04-09

Implementation: [‘WaffleFlag’]

Use Cases: [‘open_edx’]

contentstore.new_studio_mfe.disable_new_libraries#

Default: False

Source: cms/djangoapps/contentstore/toggles.py (line 527)

Desc: Hides new Libraries v2 tab in Authoring MFE. This toggle interacts with settings.MEILISEARCH_ENABLED and ENABLE_CONTENT_LIBRARIES toggle: if these flags are False, then v2 libraries are also disabled.

Warning

Libraries v2 are in beta for Sumac, will be fully supported in Teak.

Creation Date: 2024-10-02

Target Removal Date: 2025-04-09

Implementation: [‘WaffleFlag’]

Use Cases: [‘open_edx’]

contentstore.new_studio_mfe.use_new_video_uploads_page#

Default: False

Source: cms/djangoapps/contentstore/toggles.py (line 316)

Desc: This flag enables the use of the new studio video uploads page mfe

Warning

Creation Date: 2023-5-15

Target Removal Date: 2023-8-31

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘temporary’]

contentstore.split_library_on_studio_dashboard#

Default: False

Source: cms/djangoapps/contentstore/toggles.py (line 28)

Desc: Enables data new view for library on studio dashboard.

Creation Date: 2020-07-8

Implementation: [‘WaffleFlag’]

Use Cases: [‘open_edx’]

contentstore.use_react_markdown_editor#

Default: False

Source: cms/djangoapps/contentstore/toggles.py (line 184)

Desc: This flag enables the use of the Markdown editor when creating or editing problems in the authoring MFE

Creation Date: 2025-4-11

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘opt_in’]

course_apps.exams_ida#

Default: False

Source: openedx/core/djangoapps/course_apps/toggles.py (line 9)

Desc: Uses exams IDA

Creation Date: 2022-07-27

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘temporary’]

course_assets.allow_download_code_library#

Default: False

Source: openedx/core/djangoapps/contentserver/views.py (line 274)

Desc: Whether to allow learners to download the course code library that is used for custom Python-graded problem blocks. (This is conventionally ``python_lib.zip``, but configurable with Django setting ``PYTHON_LIB_FILENAME``). This file may contain custom grading code or problem answers that should not be revealed to learners.

Warning

This flag is only intended as a temporary override for use in rollout, to be removed before Ulmo. Courses that rely on learners being able to download the code library should find an alternative workflow, or the toggle should be re-documented as permanent.

Creation Date: 2025-05-01

Target Removal Date: 2025-10-01

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘temporary’]

course_blocks_api.hide_access_denials#

Default: False

Source: lms/djangoapps/course_api/blocks/toggles.py (line 10)

Desc: Waffle flag to hide access denial messages in the course blocks.

Warning

This temporary feature toggle does not have a target removal date.

Creation Date: 2019-09-27

Implementation: [‘WaffleFlag’]

Use Cases: [‘temporary’, ‘open_edx’]

course_experience.calendar_sync#

Default: False

Source: openedx/features/course_experience/__init__.py (line 72)

Desc: This course flag enables a course tool (which is a tool that is added on a course home page) that sends course assignment calendars to course students, whenever they click on the “Subscribe to calendar updates” button. The email contains an ics attachment that students can then use to sync with their own calendar apps.

Warning

For this toggle to have an effect, the RELATIVE_DATES_FLAG toggle must be enabled, too.

Creation Date: 2021-01-26

Target Removal Date: 2021-04-26

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘temporary’]

course_experience.enable_about_sidebar_html#

Default: False

Source: openedx/features/course_experience/waffle.py (line 11)

Desc: Used to determine whether to show custom HTML in the sidebar on the internal course about page.

Creation Date: 2018-01-26

Implementation: [‘WaffleSwitch’]

Use Cases: [‘open_edx’]

course_experience.enable_course_goals#

Default: False

Source: openedx/features/course_experience/__init__.py (line 24)

Desc: Used to determine whether or not to use course goals for the particular course.

Warning

This temporary feature toggle does not have a target removal date.

Creation Date: 2017-09-11

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘opt_out’, ‘temporary’]

course_experience.enable_ses_for_goalreminder#

Default: False

Source: openedx/features/course_experience/__init__.py (line 34)

Desc: Used to determine whether or not to use AWS SES to send goal reminder emails for the course.

Warning

This temporary feature toggle does not have a target removal date.

Creation Date: 2024-10-06

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘opt_in’, ‘temporary’]

course_experience.relative_dates#

Default: False

Source: openedx/features/course_experience/__init__.py (line 50)

Desc: Waffle flag to enable relative dates for course content. A ‘Dates’ tab will be visible in the course view showing key course dates. Was previously an ExperimentWaffleFlag with experiment_id=17.

Warning

To set a relative due date for self-paced courses, the weeks_to_complete field for a course run needs to be set. Currently it can be set through the publisher app.

Creation Date: 2020-02-10

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘opt_in’]

course_experience.relative_dates_disable_reset#

Default: False

Source: openedx/features/course_experience/__init__.py (line 62)

Desc: Waffle flag to disable resetting deadlines by learners in self-paced courses. The ‘Dates’ tab will no longer show a banner about missed deadlines. The deadlines banner will also be hidden on unit pages.

Warning

For this toggle to have an effect, the RELATIVE_DATES_FLAG toggle must be enabled, too.

Creation Date: 2023-04-27

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘open_edx’]

course_home.course_home_mfe_progress_tab#

Default: False

Source: lms/djangoapps/course_home_api/toggles.py (line 9)

Desc: This toggle controls the user interface behavior of the progress tab in the Learning Management System. When set to True, the progress tab utilizes the newly introduced Learning MFE graphs. When set to False (default), it utilizes existing grade graph from edx-platform.

Creation Date: 2021-03-12

Target Removal Date: 2024-01-01

Implementation: [‘WaffleFlag’]

Use Cases: [‘temporary’]

course_home.new_discussion_sidebar_view#

Default: False

Source: lms/djangoapps/course_home_api/toggles.py (line 24)

Desc: This toggle controls the user interface behavior of the discussion sidebar on course home page.

Creation Date: 2024-04-22

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘open_edx’, ‘temporary’]

course_home.send_course_progress_analytics_for_student#

Default: False

Source: lms/djangoapps/course_home_api/toggles.py (line 39)

Desc: This toggle controls whether the system will enqueue a Celery task responsible for emitting an analytics events describing how much course content a learner has completed in a course.

Creation Date: 2025-04-02

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘open_edx’]

course_list_api_rate_limit.rate_limit_10#

Default: False

Source: lms/djangoapps/course_api/__init__.py (line 18)

Desc: Waffle switch to enable the throttling of 10 requests/minute to the course API. For staff users, this limit is 20 requests/minute.

Creation Date: 2018-06-12

Implementation: [‘WaffleSwitch’]

Use Cases: [‘circuit_breaker’]

course_list_api_rate_limit.rate_limit_2#

Default: False

Source: lms/djangoapps/course_api/__init__.py (line 9)

Desc: Waffle switch to enable the throttling of 2 requests/minute to the course API. For staff users, this limit is 10 requests/minute.

Creation Date: 2018-06-12

Implementation: [‘WaffleSwitch’]

Use Cases: [‘circuit_breaker’]

courseware.always_open_auxiliary_sidebar#

Default: True

Source: lms/djangoapps/courseware/toggles.py (line 98)

Desc: Waffle flag that determines whether the auxiliary sidebar, such as discussion or notification, should automatically expand on each course unit page within the Learning MFE, without preserving the previous state of the sidebar.

Creation Date: 2024-04-28

Target Removal Date: 2024-07-28

Implementation: [‘WaffleFlag’]

Use Cases: [‘temporary’]

courseware.disable_navigation_sidebar_blocks_caching#

Default: False

Source: lms/djangoapps/courseware/toggles.py (line 71)

Desc: Disable caching of navigation sidebar blocks on Learning MFE. It can be used when caching the structure of large courses for a large number of users at the same time can overload the cache storage (memcache or redis).

Warning

None.

Creation Date: 2024-03-21

Implementation: [‘WaffleFlag’]

Use Cases: [‘opt_out’, ‘open_edx’]

courseware.discovery_default_language_filter#

Default: False

Source: lms/djangoapps/courseware/toggles.py (line 158)

Desc: Enable courses to be filtered by user language by default.

Warning

The ENABLE_COURSE_DISCOVERY feature flag should be enabled.

Creation Date: 2023-11-02

Implementation: [‘WaffleSwitch’]

Use Cases: [‘open_edx’]

courseware.enable_navigation_sidebar#

Default: False

Source: lms/djangoapps/courseware/toggles.py (line 86)

Desc: Enable navigation sidebar on Learning MFE

Creation Date: 2024-03-07

Implementation: [‘WaffleFlag’]

Use Cases: [‘opt_out’, ‘open_edx’]

courseware.enable_new_financial_assistance_flow#

Default: False

Source: lms/djangoapps/courseware/config.py (line 9)

Desc: enables new internal only financial assistance flow, when active.

Creation Date: 2022-03-25

Implementation: [‘WaffleSwitch’]

Use Cases: [‘opt_in’]

courseware.mfe_progress_milestones#

Default: False

Source: lms/djangoapps/courseware/toggles.py (line 28)

Desc: Waffle flag to display learner progress milestones in a course. Supports staged rollout to students for a new micro-frontend-based implementation of the courseware page.

Warning

Also set settings.LEARNING_MICROFRONTEND_URL.

Creation Date: 2020-10-07

Target Removal Date: none

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘temporary’, ‘open_edx’]

courseware.mfe_progress_milestones_streak_celebration#

Default: False

Source: lms/djangoapps/courseware/toggles.py (line 42)

Desc: Waffle flag to display a celebration modal when learner completes a configurable streak Supports staged rollout to students for a new micro-frontend-based implementation of the courseware page.

Warning

Also set settings.LEARNING_MICROFRONTEND_URL and COURSEWARE_MICROFRONTEND_PROGRESS_MILESTONES.

Creation Date: 2021-02-16

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘temporary’, ‘open_edx’]

courseware.mfe_progress_milestones_streak_discount_enabled#

Default: False

Source: lms/djangoapps/courseware/toggles.py (line 113)

Desc: This flag enables an engagement discount incentive message.

Warning

This flag depends on the streak celebration feature being enabled

Creation Date: 2021-08-26

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘opt_out’, ‘open_edx’]

courseware.microfrontend_course_exit_page#

Default: False

Source: lms/djangoapps/courseware/toggles.py (line 13)

Desc: Supports staged rollout of the new micro-frontend-based implementation of the course exit page.

Warning

Also set settings.LEARNING_MICROFRONTEND_URL.

Creation Date: 2020-10-02

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘open_edx’, ‘temporary’]

courseware.optimized_render_xblock#

Default: False

Source: lms/djangoapps/courseware/toggles.py (line 127)

Desc: Waffle flag that determines whether we speed up the render_xblock for browsers by removing unnecessary JavaScript and CSS. It is possible that this could introduce edge cases with content that relies on these assets, so being a CourseWaffleFlag will give us the flexibility to exempt courses from these optimizations.

Creation Date: 2021-02-09

Target Removal Date: 2021-05-01

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘temporary’]

discounts.enable_discounting#

Default: False

Source: openedx/features/discounts/applicability.py (line 44)

Desc: Toggle discounts always being disabled

Warning

This temporary feature toggle does not have a target removal date.

Creation Date: 2019-4-16

Implementation: [‘WaffleFlag’]

Use Cases: [‘temporary’]

discounts.enable_first_purchase_discount_override#

Default: False

Source: openedx/features/discounts/applicability.py (line 32)

Desc: Waffle flag to enable the First Purchase Discount to be overridden from EDXWELCOME/BIENVENIDOAEDX 15% discount to a new code.

Warning

This feature toggle does not have a target removal date.

Creation Date: 2024-07-18

Implementation: [‘WaffleFlag’]

Use Cases: [‘opt_in’]

discussion.enable_captcha#

Default: False

Source: lms/djangoapps/discussion/config/settings.py (line 25)

Desc: When the flag is ON, users will be able to see captcha for discussion

Warning

When the flag is ON, users will be able to see captcha for discussion.

Creation Date: 2025-07-12

Target Removal Date: 2025-07-29

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘temporary’, ‘open_edx’]

discussions.enable_discussions_mfe#

Default: False

Source: lms/djangoapps/discussion/toggles.py (line 8)

Desc: Waffle flag to use the new MFE experience for discussions in the course tab

Creation Date: 2021-11-05

Target Removal Date: 2022-12-05

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘temporary’, ‘open_edx’]

discussions.enable_new_structure_discussions#

Default: False

Source: openedx/core/djangoapps/discussions/config/waffle.py (line 36)

Desc: Waffle flag to toggle on the new structure for in context discussions

Creation Date: 2022-02-22

Target Removal Date: 2022-12-22

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘temporary’, ‘open_edx’]

discussions.enable_rate_limit#

Default: False

Source: lms/djangoapps/discussion/toggles.py (line 32)

Desc: Waffle flag to enable rate limit on discussions

Creation Date: 2025-07-29

Target Removal Date: 2026-07-29

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘temporary’, ‘open_edx’]

discussions.only_verified_users_can_post#

Default: False

Source: lms/djangoapps/discussion/toggles.py (line 20)

Desc: Waffle flag to allow only verified users to post in discussions

Creation Date: 2025-22-07

Target Removal Date: 2026-04-01

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘temporary’, ‘open_edx’]

discussions.override_discussion_legacy_settings#

Default: False

Source: openedx/core/djangoapps/discussions/config/waffle.py (line 9)

Desc: Waffle flag to override visibility of discussion settings for legacy experience.

Warning

When the flag is ON, the discussion settings will be available on legacy experience.

Creation Date: 2021-06-15

Target Removal Date: 2021-12-31

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘temporary’, ‘open_edx’]

discussions.pages_and_resources_mfe#

Default: False

Source: openedx/core/djangoapps/discussions/config/waffle.py (line 23)

Desc: Waffle flag to enable new Pages and Resources experience for course.

Warning

When the flag is ON, the new experience for Pages and Resources will be enabled.

Creation Date: 2021-05-24

Target Removal Date: 2021-12-31

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘temporary’, ‘open_edx’]

effort_estimation.disabled#

Default: False

Source: openedx/features/effort_estimation/toggles.py (line 10)

Desc: If effort estimations are confusing for a given course (e.g. the course team has added manual estimates), you can turn them off case by case here.

Creation Date: 2021-07-27

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘opt_out’]

experiments.add_dashboard_info#

Default: False

Source: lms/djangoapps/experiments/utils.py (line 44)

Desc: Toggle for adding info about each course to the dashboard metadata

Warning

This temporary feature toggle does not have a target removal date.

Creation Date: 2019-3-28

Implementation: [‘WaffleFlag’]

Use Cases: [‘temporary’]

experiments.add_programs#

Default: False

Source: lms/djangoapps/experiments/utils.py (line 29)

Desc: Toggle for adding the current course’s program information to user metadata

Warning

This temporary feature toggle does not have a target removal date.

Creation Date: 2019-2-25

Implementation: [‘WaffleFlag’]

Use Cases: [‘temporary’]

experiments.add_upsell_tracking#

Default: False

Source: lms/djangoapps/experiments/utils.py (line 56)

Desc: Make sure upsell tracking JS works as expected.

Warning

This temporary feature toggle does not have a target removal date.

Creation Date: 2020-7-7

Implementation: [‘WaffleFlag’]

Use Cases: [‘temporary’]

experiments.mobile_upsell_rev934#

Default: False

Source: lms/djangoapps/experiments/views_custom.py (line 27)

Desc: Toggle mobile upsell enabled

Warning

This temporary feature toggle does not have a target removal date.

Creation Date: 2019-09-05

Implementation: [‘WaffleFlag’]

Use Cases: [‘temporary’]

export_course_metadata#

Default: False

Source: cms/djangoapps/export_course_metadata/toggles.py (line 7)

Desc: Export of course metadata (initially to s3 for use by braze)

Creation Date: 2021-03-01

Implementation: [‘WaffleFlag’]

Use Cases: [‘temporary’]

grades.bulk_management#

Default: False

Source: lms/djangoapps/grades/config/waffle.py (line 65)

Desc: When enabled, bulk features are visible for management in masters course. As far as we understand, this feature is now unused and obsolete.

Creation Date: 2019-08-20

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘open_edx’]

grades.disable_regrade_on_policy_change#

Default: False

Source: lms/djangoapps/grades/config/waffle.py (line 17)

Desc: When enabled, a change in grading policy will not trigger re-grading.

Creation Date: 2017-08-03

Implementation: [‘WaffleSwitch’]

Use Cases: [‘open_edx’]

grades.rejected_exam_overrides_grade#

Default: False

Source: lms/djangoapps/grades/config/waffle.py (line 40)

Desc: When enabled, grades can no longer be updated 30 days after a course has ended. Note that this is only valid for courses which actually have an end date.

Creation Date: 2018-10-01

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘open_edx’]

grades.writable_gradebook#

Default: False

Source: lms/djangoapps/grades/config/waffle.py (line 53)

Desc: When enabled, add GET/POST endpoints for updating gradebook entries in bulk. Also, a link to the writable gradebook is added to the instructor dashboard.

Warning

Enabling this requires that the `WRITABLE_GRADEBOOK_URL` setting be properly defined.

Creation Date: 2018-10-03

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘open_edx’]

instructor.enable_data_download_v2#

Default: False

Source: lms/djangoapps/instructor/toggles.py (line 11)

Desc: instructor

Creation Date: 2020-07-8

Implementation: [‘WaffleFlag’]

Use Cases: [‘open_edx’]

instructor_task.use_on_disk_grade_reporting#

Default: False

Source: lms/djangoapps/instructor_task/config/waffle.py (line 20)

Desc: When generating grade reports, write chunks to disk to avoid out of memory errors.

Creation Date: 2022-12-01

Target Removal Date: 2022-01-10

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘temporary’]

learner_dashboard.enable_masters_program_tab_view#

Default: False

Source: lms/djangoapps/learner_dashboard/config/waffle.py (line 25)

Desc: Waffle flag to enable new Masters Program discussion experience for masters program. This flag is used to decide whether we need to render master program data in “tab” view or simple view. In the new tab view, we have tabs like “journey”, “live”, “discussions”

Warning

When the flag is ON, the new tabbed experience for Master Program Page will be enabled.

Creation Date: 2021-10-19

Target Removal Date: 2021-12-31

Implementation: [‘WaffleFlag’]

Use Cases: [‘temporary’, ‘open_edx’]

learner_dashboard.enable_program_tab_view#

Default: False

Source: lms/djangoapps/learner_dashboard/config/waffle.py (line 8)

Desc: Waffle flag to enable new Program discussion experience in tab view for course. This flag is used to decide whether we need to render program data in “tab” view or simple view. In the new tab view, we have tabs like “journey”, “live”, “discussions”

Warning

When the flag is ON, the new experience for Program discussions will be enabled.

Creation Date: 2021-08-25

Target Removal Date: 2021-12-31

Implementation: [‘WaffleFlag’]

Use Cases: [‘temporary’, ‘open_edx’]

learner_home_mfe.enabled#

Default: False

Source: lms/djangoapps/learner_home/waffle.py (line 11)

Desc: Waffle flag to enable to redirect user to learner home mfe

Creation Date: 2022-10-11

Implementation: [‘WaffleFlag’]

Use Cases: [‘open_edx’]

legacy_studio.advanced_settings#

Default: False

Source: cms/djangoapps/contentstore/toggles.py (line 221)

Desc: Temporarily fall back to the old Studio Advanced Settings page.

Warning

In Ulmo, this toggle will be removed. Only the new (React-based) experience will be available.

Creation Date: 2025-03-14

Target Removal Date: 2025-09-14

Implementation: [‘WaffleFlag’]

Use Cases: [‘temporary’]

legacy_studio.certificates#

Default: False

Source: cms/djangoapps/contentstore/toggles.py (line 386)

Desc: Temporarily fall back to the old Studio Course Certificates page.

Warning

In Ulmo, this toggle will be removed. Only the new (React-based) experience will be available.

Creation Date: 2025-03-14

Target Removal Date: 2025-09-14

Implementation: [‘WaffleFlag’]

Use Cases: [‘temporary’]

legacy_studio.configurations#

Default: False

Source: cms/djangoapps/contentstore/toggles.py (line 424)

Desc: Temporarily fall back to the old Studio Configurations page.

Warning

In Ulmo, this toggle will be removed. Only the new (React-based) experience will be available.

Creation Date: 2025-03-14

Target Removal Date: 2025-09-14

Implementation: [‘WaffleFlag’]

Use Cases: [‘temporary’]

legacy_studio.course_outline#

Default: False

Source: cms/djangoapps/contentstore/toggles.py (line 336)

Desc: Temporarily fall back to the old Studio Course Outline editor.

Warning

In Ulmo, this toggle will be removed. Only the new (React-based) experience will be available.

Creation Date: 2025-03-14

Target Removal Date: 2025-09-14

Implementation: [‘WaffleFlag’]

Use Cases: [‘temporary’]

legacy_studio.course_team#

Default: False

Source: cms/djangoapps/contentstore/toggles.py (line 367)

Desc: Temporarily fall back to the old Studio Course Team page.

Warning

In Ulmo, this toggle will be removed. Only the new (React-based) experience will be available.

Creation Date: 2025-03-14

Target Removal Date: 2025-09-14

Implementation: [‘WaffleFlag’]

Use Cases: [‘temporary’]

legacy_studio.custom_pages#

Default: False

Source: cms/djangoapps/contentstore/toggles.py (line 165)

Desc: Temporarily fall back to the old Studio custom pages tab.

Warning

In Ulmo, this toggle will be removed. Only the new (React-based) experience will be available.

Creation Date: 2025-03-14

Target Removal Date: 2025-09-14

Implementation: [‘WaffleFlag’]

Use Cases: [‘temporary’]

legacy_studio.exam_settings#

Default: False

Source: cms/djangoapps/contentstore/toggles.py (line 70)

Desc: Temporarily fall back to the old proctored exam settings view.

Warning

In Ulmo, this toggle will be removed. Only the new (React-based) experience will be available.

Creation Date: 2025-03-14

Target Removal Date: 2025-09-14

Implementation: [‘WaffleFlag’]

Use Cases: [‘temporary’]

legacy_studio.export#

Default: False

Source: cms/djangoapps/contentstore/toggles.py (line 297)

Desc: Temporarily fall back to the old Course Export page.

Warning

In Ulmo, this toggle will be removed. Only the new (React-based) experience will be available.

Creation Date: 2025-03-14

Target Removal Date: 2025-09-14

Implementation: [‘WaffleFlag’]

Use Cases: [‘temporary’]

legacy_studio.grading#

Default: False

Source: cms/djangoapps/contentstore/toggles.py (line 240)

Desc: Temporarily fall back to the old Studio Course Grading page.

Warning

In Ulmo, this toggle will be removed. Only the new (React-based) experience will be available.

Creation Date: 2025-03-14

Target Removal Date: 2025-09-14

Implementation: [‘WaffleFlag’]

Use Cases: [‘temporary’]

legacy_studio.import#

Default: False

Source: cms/djangoapps/contentstore/toggles.py (line 278)

Desc: Temporarily fall back to the old Course Import page.

Warning

In Ulmo, this toggle will be removed. Only the new (React-based) experience will be available.

Creation Date: 2025-03-14

Target Removal Date: 2025-09-14

Implementation: [‘WaffleFlag’]

Use Cases: [‘temporary’]

legacy_studio.logged_out_home#

Default: False

Source: cms/djangoapps/contentstore/toggles.py (line 578)

Desc: Temporarily fall back to the old Studio “How it Works” page when unauthenticated

Warning

In Ulmo, this toggle will be removed, along with the legacy page. The only available

Creation Date: 2025-03-14

Target Removal Date: 2025-09-14

Implementation: [‘WaffleFlag’]

Use Cases: [‘temporary’]

legacy_studio.problem_editor#

Default: False

Source: cms/djangoapps/contentstore/toggles.py (line 126)

Desc: Temporarily fall back to the old Problem component (a.k.a. CAPA/problem block) editor.

Warning

In Ulmo, this toggle will be removed. Only the new (React-based) experience will be available.

Creation Date: 2025-03-14

Target Removal Date: 2025-09-14

Implementation: [‘WaffleFlag’]

Use Cases: [‘temporary’]

legacy_studio.schedule_details#

Default: False

Source: cms/djangoapps/contentstore/toggles.py (line 202)

Desc: Temporarily fall back to the old Studio Schedule & Details page.

Warning

In Ulmo, this toggle will be removed. Only the new (React-based) experience will be available.

Creation Date: 2025-03-14

Target Removal Date: 2025-09-14

Implementation: [‘WaffleFlag’]

Use Cases: [‘temporary’]

legacy_studio.textbooks#

Default: False

Source: cms/djangoapps/contentstore/toggles.py (line 405)

Desc: Temporarily fall back to the old Studio Textbooks page.

Warning

In Ulmo, this toggle will be removed. Only the new (React-based) experience will be available.

Creation Date: 2025-03-14

Target Removal Date: 2025-09-14

Implementation: [‘WaffleFlag’]

Use Cases: [‘temporary’]

legacy_studio.unit_editor#

Default: False

Source: cms/djangoapps/contentstore/toggles.py (line 348)

Desc: Temporarily fall back to the old Studio unit editing page.

Warning

In Ulmo, this toggle will be removed. Only the new (React-based) experience will be available.

Creation Date: 2025-03-14

Target Removal Date: 2025-09-14

Implementation: [‘WaffleFlag’]

Use Cases: [‘temporary’]

legacy_studio.updates#

Default: False

Source: cms/djangoapps/contentstore/toggles.py (line 259)

Desc: Temporarily fall back to the old Studio Course Updates page.

Warning

In Ulmo, this toggle will be removed. Only the new (React-based) experience will be available.

Creation Date: 2025-03-14

Target Removal Date: 2025-09-14

Implementation: [‘WaffleFlag’]

Use Cases: [‘temporary’]

legacy_studio.video_editor#

Default: False

Source: cms/djangoapps/contentstore/toggles.py (line 89)

Desc: Temporarily fall back to the old Video component (a.k.a. video block) editor.

Warning

In Ulmo, this toggle will be removed. Only the new (React-based) experience will be available.

Creation Date: 2025-03-14

Target Removal Date: 2025-09-14

Implementation: [‘WaffleFlag’]

Use Cases: [‘temporary’]

notifications.enable_email_notifications#

Default: False

Source: openedx/core/djangoapps/notifications/config/waffle.py (line 21)

Desc: Waffle flag to enable the Email Notifications feature

Warning

When the flag is ON, Email Notifications feature is enabled.

Creation Date: 2024-03-25

Target Removal Date: 2025-06-01

Implementation: [‘WaffleFlag’]

Use Cases: [‘temporary’, ‘open_edx’]

notifications.enable_notifications#

Default: False

Source: openedx/core/djangoapps/notifications/config/waffle.py (line 10)

Desc: Waffle flag to enable the Notifications feature

Warning

When the flag is ON, Notifications feature is enabled.

Creation Date: 2023-05-05

Target Removal Date: 2023-11-05

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘temporary’, ‘open_edx’]

notifications.enable_push_notifications#

Default: False

Source: openedx/core/djangoapps/notifications/config/waffle.py (line 32)

Desc: Waffle flag to enable push Notifications feature on mobile devices

Warning

When the flag is ON, Notifications will go through ace push channels.

Creation Date: 2025-05-27

Target Removal Date: 2026-05-27

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘temporary’]

open_edx_util.display_maintenance_warning#

Default: False

Source: openedx/core/djangoapps/util/waffle.py (line 8)

Desc: Displays the maintenance warning, when active.

Creation Date: 2018-03-20

Implementation: [‘WaffleSwitch’]

Use Cases: [‘opt_in’]

require_course_email_auth#

Default: True

Source: lms/djangoapps/bulk_email/models.py (line 479)

Desc: If the flag is enabled, course-specific authorization is required, and the course_id is either not provided or not authorized, the feature is not available.

Creation Date: 2016-05-05

Implementation: [‘ConfigurationModel’]

Use Cases: [‘open_edx’]

schedules.enable_debugging#

Default: False

Source: openedx/core/djangoapps/schedules/config.py (line 13)

Desc: Enable debug level of logging for schedules messages.

Creation Date: 2017-09-17

Implementation: [‘WaffleFlag’]

Use Cases: [‘open_edx’]

send_to_submission_course.enable#

Default: False

Source: xmodule/capa/xqueue_interface.py (line 31)

Desc: Enables use of the submissions service instead of legacy xqueue for course problem submissions.

Creation Date: 2024-04-03

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘opt_in’]

settings.ALLOW_ADMIN_ENTERPRISE_COURSE_ENROLLMENT_DELETION#

Default: False

Source: lms/envs/common.py (line 616)

Desc: If true, allows for the deletion of EnterpriseCourseEnrollment records via Django Admin.

Creation Date: 2021-01-27

Implementation: [‘DjangoSetting’]

Use Cases: [‘opt_in’]

settings.ALLOW_COURSE_RERUNS#

Default: True

Source: cms/envs/common.py (line 152)

Desc: This will allow staff member to re-run the course from the studio home page and will always use the split modulestore. When this is set to False, the Re-run Course link will not be available on the studio home page.

Creation Date: 2015-02-13

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.ALLOW_EMAIL_ADDRESS_CHANGE#

Default: True

Source: lms/envs/common.py (line 522)

Desc: Allow users to change their email address on the Account Settings page. If this is disabled, users will not be able to change their email address.

Creation Date: 2017-06-26

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.ALWAYS_REDIRECT_HOMEPAGE_TO_DASHBOARD_FOR_AUTHENTICATED_USER#

Default: True

Source: lms/envs/common.py (line 330)

Desc: When a logged in user goes to the homepage (‘/’) the user will be redirected to the dashboard page when this flag is set to True - this is default Open edX behavior. Set to False to not redirect the user.

Creation Date: 2014-09-16

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.AUTOMATIC_VERIFY_STUDENT_IDENTITY_FOR_TESTING#

Default: False

Source: lms/envs/common.py (line 269)

Desc: If set to True, then we want to skip posting anything to Software Secure. Bypass posting anything to Software Secure if the auto verify feature for testing is enabled. We actually don’t even create the message because that would require encryption and message signing that rely on settings.VERIFY_STUDENT values that aren’t set in dev. So we just pretend like we successfully posted and automatically approve student identity verification attempts.

Creation Date: 2013-10-03

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.BADGES_ENABLED#

Default: False

Source: lms/envs/common.py (line 690)

Desc: Set to True to enable badges functionality.

Creation Date: 2024-04-02

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.COURSES_ARE_BROWSABLE#

Default: True

Source: lms/envs/common.py (line 178)

Desc: When this is set to True, all the courses will be listed on the /courses page and Explore Courses link will be visible. Set to False if courses list and Explore Courses link need to be hidden.

Warning

This Effects views and templates.

Creation Date: 2013-09-28

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.CUSTOM_CERTIFICATE_TEMPLATES_ENABLED#

Default: False

Source: lms/envs/common.py (line 436)

Desc: Set to True to enable custom certificate templates which are configured via Django admin.

Creation Date: 2015-08-13

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.DEPRECATE_OLD_COURSE_KEYS_IN_STUDIO#

Default: True

Source: cms/envs/common.py (line 176)

Desc: Warn about removing support for deprecated course keys. To enable, set to True. To disable, set to False. To enable with a custom support deadline, set to an ISO-8601 date string: eg: ‘2020-09-01’

Warning

This can be removed once support is removed for deprecated course keys.

Creation Date: 2020-06-12

Target Removal Date: 2021-04-01

Implementation: [‘DjangoSetting’]

Use Cases: [‘temporary’]

settings.DISABLE_ADVANCED_SETTINGS#

Default: False

Source: cms/envs/common.py (line 214)

Desc: Set to `True` to disable the advanced settings page in Studio for all users except those having `is_superuser` or `is_staff` set to `True`.

Creation Date: 2023-03-31

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.DISABLE_ALLOWED_ENROLLMENT_IF_ENROLLMENT_CLOSED#

Default: False

Source: lms/envs/common.py (line 659)

Desc: Set to True to disable enrollment for user invited to a course

Creation Date: 2022-06-06

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.DISABLE_COURSE_CREATION#

Default: False

Source: cms/envs/common.py (line 192)

Desc: If set to True, it disables the course creation functionality and hides the “New Course” button in studio. It is important to note that the value of this flag only affects if the user doesn’t have a staff role, otherwise the course creation functionality will work as it should.

Warning

Another toggle DISABLE_LIBRARY_CREATION overrides DISABLE_COURSE_CREATION, if present.

Creation Date: 2013-12-02

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.DISABLE_HONOR_CERTIFICATES#

Default: False

Source: lms/envs/common.py (line 227)

Desc: Set to True to disable honor certificates. Typically used when your installation only allows verified certificates, like courses.edx.org.

Creation Date: 2019-05-14

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.DISABLE_LOGIN_BUTTON#

Default: False

Source: lms/envs/common.py (line 158)

Desc: Removes the display of the login button in the navigation bar. Change is only at the UI level. Used in systems where login is automatic, eg MIT SSL

Creation Date: 2013-12-03

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.DISABLE_MOBILE_COURSE_AVAILABLE#

Default: False

Source: openedx/envs/common.py (line 921)

Desc: Set to True to remove Mobile Course Available UI Flag from Studio’s Advanced Settings page else Mobile Course Available UI Flag will be available on Studio side.

Creation Date: 2020-02-14

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.DISPLAY_DEBUG_INFO_TO_STAFF#

Default: True

Source: lms/envs/common.py (line 78)

Desc: Add a “Staff Debug” button to course blocks for debugging by course staff.

Creation Date: 2015-09-04

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.DISPLAY_HISTOGRAMS_TO_STAFF#

Default: False

Source: lms/envs/common.py (line 88)

Desc: This displays histograms in the Staff Debug Info panel to course staff.

Warning

Generating histograms requires scanning the courseware_studentmodule table on each view. This can make staff access to courseware very slow on large courses.

Creation Date: 2014-02-13

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.EDITABLE_SHORT_DESCRIPTION#

Default: True

Source: cms/envs/common.py (line 103)

Desc: This feature flag allows editing of short descriptions on the Schedule & Details page in Open edX Studio. Set to False if you want to disable the editing of the course short description.

Creation Date: 2014-02-13

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.ENABLE_ACCOUNT_DELETION#

Default: True

Source: lms/envs/common.py (line 560)

Desc: Whether to display the account deletion section on Account Settings page. Set to False to hide this section.

Creation Date: 2018-06-01

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.ENABLE_AUTHN_MICROFRONTEND#

Default: False

Source: lms/envs/common.py (line 570)

Desc: Supports staged rollout of a new micro-frontend-based implementation of the logistration.

Warning

Also set settings.AUTHN_MICROFRONTEND_URL for rollout. This temporary feature toggle does not have a target removal date.

Creation Date: 2020-09-08

Implementation: [‘DjangoSetting’]

Use Cases: [‘temporary’, ‘open_edx’]

settings.ENABLE_BULK_ENROLLMENT_VIEW#

Default: False

Source: lms/envs/common.py (line 532)

Desc: When set to True the bulk enrollment view is enabled and one can use it to enroll multiple users in a course using bulk enrollment API endpoint (/api/bulk_enroll/v1/bulk_enroll).

Creation Date: 2017-07-15

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.ENABLE_BULK_USER_RETIREMENT#

Default: False

Source: lms/envs/common.py (line 625)

Desc: Set to True to enable bulk user retirement through REST API. This is disabled by default.

Creation Date: 2021-03-11

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.ENABLE_CATALOG_MICROFRONTEND#

Default: False

Source: lms/envs/common.py (line 582)

Desc: Supports staged rollout of a new micro-frontend-based implementation of the catalog.

Creation Date: 2025-05-15

Target Removal Date: 2025-11-01

Implementation: [‘DjangoSetting’]

Use Cases: [‘temporary’]

settings.ENABLE_CERTIFICATES_IDV_REQUIREMENT#

Default: False

Source: lms/envs/common.py (line 649)

Desc: Whether to enforce ID Verification requirements for course certificates generation

Creation Date: 2022-04-26

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.ENABLE_CONTENT_LIBRARIES_LTI_TOOL#

Default: False

Source: cms/envs/common.py (line 133)

Desc: When set to True, Content Libraries in Studio can be used as an LTI 1.3 tool by external LTI platforms.

Creation Date: 2021-08-17

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.ENABLE_COSMETIC_DISPLAY_PRICE#

Default: False

Source: lms/envs/common.py (line 258)

Desc: Enable the display of “cosmetic_display_price”, set in a course advanced settings. This cosmetic price is used when there is no registration price associated to the course.

Warning

The use case of this feature toggle is uncertain.

Creation Date: 2014-10-10

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.ENABLE_COURSEWARE_SEARCH_FOR_COURSE_STAFF#

Default: False

Source: lms/envs/common.py (line 408)

Desc: When enabled, this adds a Search the course widget on the course outline and courseware pages for searching courseware data but for course staff users only.

Warning

In order to get this working, your courses data should be indexed in Elasticsearch. If ENABLE_COURSEWARE_SEARCH is enabled then the search widget will be visible to all learners and this flag’s value does not matter in that case. This flag is enabled in devstack by default.

Creation Date: 2019-12-06

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.ENABLE_COURSEWARE_SEARCH_VERIFIED_REQUIRED#

Default: False

Source: lms/envs/common.py (line 681)

Desc: When enabled, the courseware search feature will only be enabled for users in a verified enrollment track.

Creation Date: 2024-04-24

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.ENABLE_COURSE_ASSESSMENT_GRADE_CHANGE_SIGNAL#

Default: False

Source: lms/envs/common.py (line 605)

Desc: Set to True to start sending signals for assessment level grade updates. Notably, the only handler of this signal at the time of this writing sends assessment updates to enterprise integrated channels.

Creation Date: 2020-12-09

Target Removal Date: 2021-02-01

Implementation: [‘DjangoSetting’]

Use Cases: [‘temporary’]

settings.ENABLE_COURSE_DISCOVERY#

Default: False

Source: lms/envs/common.py (line 447)

Desc: Add a course search widget to the LMS for searching courses. When this is enabled, the latest courses are no longer displayed on the LMS landing page. Also, an “Explore Courses” item is added to the navbar.

Warning

The COURSE_DISCOVERY_MEANINGS setting should be properly defined.

Creation Date: 2015-04-23

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.ENABLE_COURSE_FILENAME_CCX_SUFFIX#

Default: False

Source: lms/envs/common.py (line 460)

Desc: If set to True, CCX ID will be included in the generated filename for CCX courses.

Warning

Turning this feature ON will affect all generated filenames which are related to CCX courses.

Creation Date: 2021-03-16

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.ENABLE_COURSE_HOME_REDIRECT#

Default: True

Source: lms/envs/common.py (line 352)

Desc: When enabled, along with the ENABLE_MKTG_SITE feature toggle, users who attempt to access a course “about” page will be redirected to the course home url.

Creation Date: 2019-01-15

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.ENABLE_COURSE_SORTING_BY_START_DATE#

Default: True

Source: lms/envs/common.py (line 341)

Desc: When a user goes to the homepage (‘/’) the user sees the courses listed in the announcement dates order - this is default Open edX behavior. Set to True to change the course sorting behavior by their start dates, latest first.

Creation Date: 2015-03-27

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.ENABLE_CREDIT_ELIGIBILITY#

Default: True

Source: lms/envs/common.py (line 699)

Desc: When enabled, it is possible to define a credit eligibility criteria in the CMS. A “Credit Eligibility” section then appears for those courses in the LMS.

Creation Date: 2015-06-17

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.ENABLE_DISCUSSION_EMAIL_DIGEST#

Default: False

Source: lms/envs/common.py (line 112)

Desc: Set this to True if you want the discussion digest emails enabled automatically for new users. This will be set on all new account registrations.

Warning

It is not recommended to enable this feature if ENABLE_DISCUSSION_HOME_PANEL is not enabled, since subscribers who receive digests in that case will only be able to unsubscribe via links embedded in their emails, and they will have no way to resubscribe.

Creation Date: 2014-08-19

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.ENABLE_DISCUSSION_HOME_PANEL#

Default: True

Source: lms/envs/common.py (line 101)

Desc: Hides or displays a welcome panel under the Discussion tab, which includes a subscription on/off setting for discussion digest emails.

Warning

This should remain off in production until digest notifications are online.

Creation Date: 2013-07-30

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.ENABLE_DJANGO_ADMIN_SITE#

Default: True

Source: lms/envs/common.py (line 138)

Desc: Set to False if you want to disable Django’s admin site.

Warning

It is not recommended to disable this feature as there are many settings available on

Creation Date: 2013-09-26

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.ENABLE_EDXNOTES#

Default: False

Source: openedx/envs/common.py (line 772)

Desc: This toggle enables the students to save and manage their annotations in the course using the notes service. The bulk of the actual work in storing the notes is done by a separate service (see the edx-notes-api repo).

Warning

Requires the edx-notes-api service properly running and to have configured the django settings EDXNOTES_INTERNAL_API and EDXNOTES_PUBLIC_API. If you update this setting, also update it in Studio.

Creation Date: 2015-01-04

Implementation: [‘SettingToggle’]

Use Cases: [‘open_edx’]

settings.ENABLE_HIDE_FROM_TOC_UI#

Default: False

Source: cms/envs/common.py (line 237)

Desc: When enabled, exposes hide_from_toc xblock attribute so course authors can configure it as

Creation Date: 2024-02-29

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.ENABLE_HTML_XBLOCK_STUDENT_VIEW_DATA#

Default: False

Source: lms/envs/common.py (line 545)

Desc: Whether HTML Block returns HTML content with the Course Blocks API when the API is called with student_view_data=html query parameter.

Warning

Because the Course Blocks API caches its data, the cache must be cleared (e.g. by re-publishing the course) for changes to this flag to take effect.

Creation Date: 2017-08-28

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.ENABLE_LOGIN_MICROFRONTEND#

Default: False

Source: lms/envs/common.py (line 239)

Desc: Enable the login micro frontend.

Warning

The login MFE domain name should be listed in LOGIN_REDIRECT_WHITELIST.

Creation Date: 2018-05-07

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.ENABLE_LTI_PII_ACKNOWLEDGEMENT#

Default: False

Source: cms/envs/common.py (line 204)

Desc: Enables the lti pii acknowledgement feature for a course

Creation Date: 2023-10

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.ENABLE_LTI_PROVIDER#

Default: False

Source: lms/envs/common.py (line 495)

Desc: When set to True, Open edX site can be used as an LTI Provider to other systems and applications.

Warning

After enabling this feature flag there are multiple steps involved to configure edX as LTI provider. Full guide is available here: https://docs.openedx.org/en/latest/site_ops/install_configure_run_guide/configuration/lti/index.html

Creation Date: 2015-04-24

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.ENABLE_MASQUERADE#

Default: True

Source: lms/envs/common.py (line 150)

Desc: None

Creation Date: 2013-04-13

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.ENABLE_MAX_FAILED_LOGIN_ATTEMPTS#

Default: True

Source: lms/envs/common.py (line 293)

Desc: This feature will keep track of the number of failed login attempts on a given user’s email. If the number of consecutive failed login attempts - without a successful login at some point - reaches a configurable threshold (default 6), then the account will be locked for a configurable amount of seconds (30 minutes) which will prevent additional login attempts until this time period has passed. If a user successfully logs in, all the counter which tracks the number of failed attempts will be reset back to 0. If set to False then account locking will be disabled for failed login attempts.

Creation Date: 2014-01-30

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.ENABLE_NEW_BULK_EMAIL_EXPERIENCE#

Default: False

Source: lms/envs/common.py (line 637)

Desc: When true, replaces the bulk email tool found on the instructor dashboard with a link to the new communications MFE version instead. Setting the tool to false will leave the old bulk email tool experience in place.

Creation Date: 2022-03-21

Implementation: [‘DjangoSetting’]

Use Cases: [‘opt_in’]

settings.ENABLE_ORA_USERNAMES_ON_DATA_EXPORT#

Default: False

Source: lms/envs/common.py (line 593)

Desc: Set to True to add deanonymized usernames to ORA data report.

Warning

This temporary feature toggle does not have a target removal date.

Creation Date: 2020-06-11

Implementation: [‘DjangoSetting’]

Use Cases: [‘temporary’]

settings.ENABLE_SEND_XBLOCK_LIFECYCLE_EVENTS_OVER_BUS#

Default: False

Source: cms/envs/common.py (line 224)

Desc: Enables sending xblock lifecycle events over the event bus. Used to create the EVENT_BUS_PRODUCER_CONFIG setting

Warning

The default may be changed in a later release. See https://github.com/openedx/openedx-events/issues/265

Creation Date: 2023-10-10

Target Removal Date: 2023-10-12

Implementation: [‘DjangoSetting’]

Use Cases: [‘opt_in’]

settings.ENABLE_SPECIAL_EXAMS#

Default: False

Source: lms/envs/common.py (line 486)

Desc: Enable to use special exams, aka timed and proctored exams.

Creation Date: 2015-09-04

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.ENABLE_STUDENT_HISTORY_VIEW#

Default: True

Source: lms/envs/common.py (line 200)

Desc: This provides a UI to show a student’s submission history in a problem by the Staff Debug tool. Set to False if you want to hide Submission History from the courseware page.

Creation Date: 2013-02-15

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.ENABLE_THIRD_PARTY_AUTH#

Default: False

Source: lms/envs/common.py (line 316)

Desc: Turn on third-party auth. Disabled for now because full implementations are not yet available. Remember to run migrations if you enable this; we don’t create tables by default. This feature can be enabled on a per-site basis. When enabling this feature, remember to define the allowed authentication backends with the AUTHENTICATION_BACKENDS setting.

Creation Date: 2014-09-15

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.ENABLE_UNICODE_USERNAME#

Default: False

Source: lms/envs/common.py (line 127)

Desc: Set this to True to allow unicode characters in username. Enabling this will also automatically enable SOCIAL_AUTH_CLEAN_USERNAMES. When this is enabled, usernames will have to match the regular expression defined by USERNAME_REGEX_PARTIAL.

Creation Date: 2017-06-27

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.ENABLE_XBLOCK_VIEW_ENDPOINT#

Default: False

Source: lms/envs/common.py (line 167)

Desc: Enable an API endpoint, named “xblock_view”, to serve rendered XBlock views. This might be used by external applications. See for instance jquery-xblock (now unmaintained): https://github.com/openedx/jquery-xblock

Creation Date: 2014-03-14

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.HIDE_DASHBOARD_COURSES_UNTIL_ACTIVATED#

Default: False

Source: lms/envs/common.py (line 190)

Desc: When set, it hides the Courses list on the Learner Dashboard page if the learner has not yet activated the account and not enrolled in any courses.

Creation Date: 2018-05-18

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.IN_CONTEXT_DISCUSSION_ENABLED_DEFAULT#

Default: True

Source: cms/envs/common.py (line 247)

Desc: Set to False to disable in-context discussion for units by default.

Creation Date: 2024-09-02

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

settings.SEND_LEARNING_CERTIFICATE_LIFECYCLE_EVENTS_TO_BUS#

Default: False

Source: lms/envs/common.py (line 669)

Desc: When True, the system will publish certificate lifecycle signals to the event bus. This toggle is used to create the EVENT_BUS_PRODUCER_CONFIG setting.

Warning

The default may be changed in a later release. See https://github.com/openedx/openedx-events/issues/265

Creation Date: 2023-10-10

Implementation: [‘SettingToggle’]

Use Cases: [‘opt_in’]

settings.SKIP_EMAIL_VALIDATION#

Default: False

Source: lms/envs/common.py (line 248)

Desc: Turn this on to skip sending emails for user validation. Beware, as this leaves the door open to potential spam abuse.

Warning

The login MFE domain name should be listed in LOGIN_REDIRECT_WHITELIST.

Creation Date: 2018-05-07

Implementation: [‘DjangoSetting’]

Use Cases: [‘open_edx’]

student.courseenrollment_admin#

Default: False

Source: common/djangoapps/student/admin.py (line 60)

Desc: This toggle will enable the rendering of the admin view of the CourseEnrollment model.

Warning

Enabling this toggle may cause performance problems. The CourseEnrollment admin view makes DB queries that could cause site outages for a large enough Open edX installation.

Creation Date: 2018-08-01

Implementation: [‘WaffleSwitch’]

Use Cases: [‘opt_in’, ‘open_edx’]

student.enable_enrollment_confirmation_email#

Default: False

Source: common/djangoapps/student/toggles.py (line 10)

Desc: Enable course enrollment email template

Creation Date: 2022-08-05

Implementation: [‘WaffleFlag’]

Use Cases: [‘opt_in’]

student.redirect_to_courseware_after_enrollment#

Default: False

Source: common/djangoapps/student/toggles.py (line 29)

Desc: Redirect to courseware after enrollment instead of dashboard.

Creation Date: 2023-02-06

Implementation: [‘WaffleSwitch’]

Use Cases: [‘open_edx’]

studio.custom_relative_dates#

Default: False

Source: cms/djangoapps/contentstore/config/waffle.py (line 30)

Desc: Waffle flag to enable custom pacing input for Personalized Learner Schedule (PLS).

Warning

Flag course_experience.relative_dates should also be active for relative dates functionalities to work.

Creation Date: 2021-07-12

Target Removal Date: 2021-12-31

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘temporary’]

teams.content_groups_for_teams#

Default: False

Source: openedx/core/lib/teams_config.py (line 22)

Desc: This flag enables content groups for teams. Content groups are virtual groupings of learners who will see a particular set of course content. When this flag is enabled, course authors can create teams and assign content to each of them. Then, when a learner joins a team, they will see the content that is assigned to that team’s content group. This flag is only relevant for courses that have teams enabled.

Creation Date: 2024-04-01

Target Removal Date: Teak

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘temporary’, ‘opt_in’]

teams.enable_teams_app#

Default: False

Source: lms/djangoapps/teams/waffle.py (line 8)

Desc: Waffle flag to enable teams app for a course

Warning

When the flag is ON, the teams app will be visible in the new course authoring mfe.

Creation Date: 2021-10-07

Target Removal Date: 2021-11-01

Implementation: [‘WaffleFlag’]

Use Cases: [‘temporary’, ‘open_edx’]

third_party_auth.apple_user_migration#

Default: False

Source: common/djangoapps/third_party_auth/toggles.py (line 9)

Desc: Enable User ID matching while apple migration is in process

Warning

None.

Creation Date: 2023-02-27

Target Removal Date: 2023-05-01

Implementation: [‘WaffleFlag’]

Use Cases: [‘temporary’]

user_authn.enable_login_using_thirdparty_auth_only#

Default: False

Source: openedx/core/djangoapps/user_authn/config/waffle.py (line 9)

Desc: When enabled, users must be sign in using their allowed domain SSO account. This includes sign- ins to the Django admin dashboard at “/admin”.

Warning

Requires THIRD_PARTY_AUTH_ONLY_DOMAIN to also be set.

Creation Date: 2019-11-20

Target Removal Date: 2020-01-31

Implementation: [‘WaffleSwitch’]

Use Cases: [‘temporary’]

user_authn.enable_pwned_password_api#

Default: False

Source: openedx/core/djangoapps/user_authn/config/waffle.py (line 23)

Desc: When enabled, user password’s vulnerability would be checked via pwned password database

Creation Date: 2021-09-22

Target Removal Date: 2021-12-31

Implementation: [‘WaffleSwitch’]

Use Cases: [‘temporary’]

user_tours.tours_disabled#

Default: False

Source: lms/djangoapps/user_tours/toggles.py (line 7)

Desc: This flag disables user tours in LMS.

Creation Date: 2024-02-06

Implementation: [‘WaffleFlag’]

Use Cases: [‘opt_out’]

verify_student.optimised_is_small_course#

Default: False

Source: lms/djangoapps/instructor/toggles.py (line 21)

Desc: Supports staged rollout to improved is_small_course method.

Warning

Description mentions staged rollout, but the use case is not set as temporary. This may actually be a temporary toggle.

Creation Date: 2020-07-02

Implementation: [‘WaffleFlag’]

Use Cases: [‘open_edx’]

verify_student.use_new_email_templates#

Default: False

Source: lms/djangoapps/verify_student/toggles.py (line 10)

Desc: Supports staged rollout to students for a new email templates implementation for ID verification.

Warning

This temporary feature toggle does not have a target removal date.

Creation Date: 2020-06-25

Implementation: [‘WaffleFlag’]

Use Cases: [‘temporary’, ‘open_edx’]

video_config.public_video_share#

Default: False

Source: openedx/core/djangoapps/video_config/toggles.py (line 8)

Desc: Gates access to the public social sharing video feature.

Creation Date: 2023-02-02

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘temporary’, ‘opt_in’]

video_config.transcript_feedback#

Default: False

Source: openedx/core/djangoapps/video_config/toggles.py (line 19)

Desc: Gates access to the transcript feedback widget feature.

Creation Date: 2023-05-10

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘temporary’, ‘opt_in’]

video_config.xpert_translations_ui#

Default: False

Source: openedx/core/djangoapps/video_config/toggles.py (line 30)

Desc: Gates access to the Xpert Translations UI feature.

Creation Date: 2023-10-11

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘temporary’, ‘opt_in’]

videos.deprecate_youtube#

Default: False

Source: openedx/core/djangoapps/video_pipeline/config/waffle.py (line 14)

Desc: Waffle flag telling whether youtube is deprecated. When enabled, videos are no longer uploaded to YouTube as part of the video pipeline.

Creation Date: 2018-08-03

Implementation: [‘CourseWaffleFlag’]

Use Cases: [‘open_edx’]

videos.enable_devstack_video_uploads#

Default: False

Source: openedx/core/djangoapps/video_pipeline/config/waffle.py (line 24)

Desc: When enabled, use Multi-Factor Authentication (MFA) for authenticating to AWS. These short- lived access tokens are well suited for development (probably?). [At the time of annotation, the exact consequences of enabling this feature toggle are uncertain.]

Warning

Enabling this feature requires that the ROLE_ARN, MFA_SERIAL_NUMBER, MFA_TOKEN settings are properly defined.

Creation Date: 2020-03-12

Implementation: [‘WaffleFlag’]

Use Cases: [‘open_edx’]