{"id":8970,"library":"edx-enterprise","title":"Open edX Enterprise","description":"edx-enterprise is a core Django application that provides enterprise-level features to the Open edX platform. It enables functionalities for Enterprise Customers, allowing organizations to manage and track learner engagement with courses. The library is typically installed as part of an Open edX instance and is currently at version 7.0.4, with frequent patch releases and major versions updating every few months.","status":"active","version":"7.0.4","language":"en","source_language":"en","source_url":"https://github.com/openedx/edx-enterprise","tags":["Open edX","LMS","enterprise","Django","education"],"install":[{"cmd":"pip install edx-enterprise","lang":"bash","label":"Install via pip"}],"dependencies":[{"reason":"It is a Django application integrated with edx-platform.","package":"Django","optional":false},{"reason":"Version 7.0.0 dropped Python 3.11 support, indicating newer Python versions are expected.","package":"Python 3.12+","optional":false}],"imports":[{"note":"Commonly imported for interacting with enterprise customer data within an Open edX Django context.","symbol":"EnterpriseCustomer","correct":"from enterprise.models import EnterpriseCustomer"},{"note":"Used when developing extensions or custom integrations with the Enterprise API.","symbol":"EnterpriseCatalogView","correct":"from enterprise.api.v1.views import EnterpriseCatalogView"},{"note":"For accessing various configuration constants defined by the enterprise app.","symbol":"constants","correct":"from enterprise import constants"}],"quickstart":{"code":"echo \"Ensure 'edx-enterprise' is in your Open edX Python environment (e.g., via requirements/base.txt)\"\n\n# For Open edX versions 6.8.0 and later, the app is automatically appended to INSTALLED_APPS upon installation.\n# For older versions (pre-Ficus, pre-6.8.0), you might need to manually add 'enterprise' to INSTALLED_APPS in your Django settings.\n\n# Run database migrations to apply any schema changes for edx-enterprise.\n# This command is typically run from the edx-platform's virtual environment.\npython ./manage.py lms migrate enterprise\npython ./manage.py cms migrate enterprise\n\n# Access the Enterprise Admin Interface:\n# Navigate to $LMS_SERVER_ADDRESS/admin/enterprise/ in your browser.","lang":"bash","description":"To quickly integrate edx-enterprise into an existing Open edX instance, ensure it is installed in the Python environment. For Open edX versions 6.8.0 and newer, the application should be automatically loaded. The critical step is to apply database migrations specific to the 'enterprise' app. Afterward, its administrative interface becomes accessible within the Open edX Django admin portal."},"warnings":[{"fix":"Upgrade Python environment to 3.12+ (e.g., Python 3.12.0) before deploying edx-enterprise 7.0.0 or later.","message":"Version 7.0.0 of edx-enterprise dropped support for Python 3.11. Users must upgrade their Python environment to 3.12 or later when upgrading to edx-enterprise v7.0.0+.","severity":"breaking","affected_versions":"7.0.0+"},{"fix":"Update any custom SAML integration code or configurations to use `enterprise_customer_uuid` in query parameters instead of `enterprise-id`.","message":"In v7.0.4, SAML views now require the `enterprise_customer_uuid` query parameter instead of `enterprise-id`. Existing integrations relying on `enterprise-id` will break.","severity":"breaking","affected_versions":"7.0.4+"},{"fix":"For older Open edX versions, manually add `'enterprise'` to your `INSTALLED_APPS` list in your Django settings file (e.g., `lms/envs/common.py` and `cms/envs/common.py`).","message":"Prior to edx-enterprise v6.8.0, the 'enterprise' app needed to be manually added to `INSTALLED_APPS` in Django settings. Failure to do so would prevent the app from loading.","severity":"gotcha","affected_versions":"<6.8.0"},{"fix":"Prefer using documented APIs (REST or Python, if encapsulated) and plugin hooks for extensions. Avoid direct imports or patches into core edx-platform code for enterprise-related features. Refer to Open edX's plugin framework documentation for best practices.","message":"The `edx-enterprise` app is tightly coupled with `edx-platform`. Direct modifications to core edx-platform modules that interact with enterprise functionality can lead to unintended side-effects and make future upgrades difficult.","severity":"gotcha","affected_versions":"All versions"}],"env_vars":null,"last_verified":"2026-04-16T00:00:00.000Z","next_check":"2026-07-15T00:00:00.000Z","problems":[{"fix":"Verify the learner's permissions and license assignment in the Open edX admin portal. Advise learners to clear their browser cache, ensure JavaScript and cookies are enabled, disable browser extensions, or try a different browser.","cause":"Learner account not assigned a required license or code from the admin dashboard, or browser-related issues (e.g., cache, disabled JavaScript/cookies, ad blockers).","error":"404 error when accessing the learner portal"},{"fix":"Check detailed logs in `/edx/var/log/lms/edx.log` and `/edx/var/log/cms/edx.log` for specific error messages. Validate JSON configuration files for syntax. Restart all Open edX services (`sudo /edx/bin/supervisorctl restart all`) and ensure sufficient disk space.","cause":"Often indicates underlying configuration issues within Open edX, such as JSON syntax errors in environment configuration files (`/edx/app/edxapp/*.json`), incorrect file permissions, or failed services related to the edx-enterprise integration.","error":"Uh oh, we are having some server issues.. (general Open edX server error)"},{"fix":"Ensure `edx-enterprise` is installed: `pip install edx-enterprise`. If on an older Open edX version, confirm `'enterprise'` is present in the `INSTALLED_APPS` setting in your `lms/envs/common.py` and `cms/envs/common.py` files, and then run `python ./manage.py lms migrate enterprise`.","cause":"The `edx-enterprise` Python package is not installed in the active Python environment for Open edX, or the 'enterprise' Django app is not correctly configured in `INSTALLED_APPS` (more common in older versions).","error":"ModuleNotFoundError: No module named 'enterprise'"}]}