This commit updates the version of the lti-consumer-xblock from 4.3.3 to 4.5.0. This installs the newest version of the lti-consumer-xblock library. This version includes the following changes, from versions 4.4.0 and 4.5.0 of the library.
* Move LTI XBlock Handlers to Django Plugin (4.4.0)
1. The functionality of LTI 1.3 Launch Handler is moved from the XBlock to the Django plugin.
2. The functionality of the Access Token endpoint is moved from XBlock to the Django plugin.
3. A new URL format using the LtiConfiguration ID is introduced for the Access Token endpoint and is used when a LTI Consumer is configured without a location allowing LTI integrations to be created without the XBlock context.
4. A new URL format using the LtiConfiguration ID is introduced for the Keyset Endpoint and is used with the location of the XBlock is not available in the configuration.
* Handle LtiError Error During LTI 1.1 Launch for Unauthenticated User (4.5.0)
1. Improve error handling for LTI errors raised during LTI 1.1 launch when user is unauthenticated by returning a 400 response instead of falling through to the 500 error.
2. Change the error template to be generic to both LTI 1.1 and LTI 1.3 launches.
3. Revert logging amendments that were made to investigate the nature of the LTI errors.
* This changes the API's path. The reasoning is that this is Version 1 of
the mfe_config API, not Version 1 of the LMS's entire API, so the v1
should come after mfe_config.
* Why does this matter? Firstly, consistency. Secondly, it affects our
generated API documentation. If you visited
https://courses.edx.org/api-docs, you could see that the API was
listed under "v1" instead of "mfe_config".
No functional changes here. This just uses the edx_api_doc_tools package
to add some additional documentation to the new API. The documentation
can be read from the code, or viewed by visiting
http://<LMS_ROOT>/api-docs and searching for "mfe_config".
Formerly, the settings were:
* `MFE_CONFIG` for common config.
* `MFE_CONFIG_<APP_ID>` for app-specific overrides,
with each app getting its own Django setting.
This commit changes it to:
* `MFE_CONFIG` for common config (unchanged)
* `MFE_CONFIG_OVERRIDES` for app-specific overrides,
where each app gets a top-level key in the dictionary.
Why the change?
* We want common.py to have a complete list of overridable settings, as
it helps operators reason about configuration and allows us to generate
config documentation using toggle annotations. Dynamically generating
setting names based on arbitrary APP_IDs makes this impossible.
* getattr(...) generally makes code more complicated bug prone. Tools
like pylint and mypy cannot effectively analyze any code that uses
dynamic attribute access.
YT: https://youtrack.raccoongang.com/issue/EDX_BLND_CLI-87
- V2 libraries are available for selection in the Random Block edit modal;
- selected V2 library blocks are copied to the modulestore and saved as children of the Random Block;
- V2 library version validation works the same as for the V1 libraries (with possibility to update block with the latest version);
- filtering by problem type can't be done for V2 the same as for V1 because the v2 library problems are not divided by types;
- the problem type field is hidden for v2 libraries in the edit mode;
- unit tests added/updated.
In the `cms/envs/common.py` file the `CREDENTIALS_INTERNAL_SERVICE_URL` and `CREDENTIALS_PUBLIC_SERVICE_URL` settings are set to
`http://localhost:8005` which is incorrect for devstack. In devstack the Credentials IDA runs on port `18150`. This causes
issues with Studio being able to communicate with the Credentials IDA.
I've overriden the service URL settings in devstack.py to point to the correct port.
* fix: Temporary fix for learners' stats API performance issue
* fix: resolved linter errors
* fix: learners stats API response is now null
* fix: changed waffle dates
* fix: resolved unit test issue
* feat: fill out enrollment serializer
* test: add basic integration tests for enrollments
* feat: get info for user account activation
* test: test integrating user account activation
* feat: get course enrollments
* feat: get course email settings
* feat: add ecommerce info
* feat: add resume urls
* refactor: move learner home to separate app
* refactor: remove course limit
Co-authored-by: nsprenkle <nsprenkle@2u.com>