Adds new api to return block metadata which includes index_dictionary.
Reason for new api instead of adding it to course blocks API: data like
index_dictionary are too large for the cache used by course/blocks
transformers API.
This repo currently builds multiple RTD projects out of it and the yaml
config doesn't really have a way to specify which project it's for so we
keep this minimal.
The hope is that any settings it doesn't find here it will pick up from
the advanced project settings in RTD.
We need to explicitly set the python version because RTD seems to be
defaulting to Python 3.7 otherwise and that's not compatible with some
of the requirements in our docs.txt file which no longer support
python<3.8
We need to explicitly list any extra requirements files we want to
install and that can't be set per project but luckily all the doc
projects share the same requirements file.
I found this useful because then I can run some basic dev commands
locally instead of needing a full container environment just to run
pylint or other basic dev tasks.
Co-authored-by: Kyle McCormick <kdmc@pm.me>
This dependency was explicitly added but doesn't need to be because
it's only required as a sub-dependency of edx-enterprise. We can
pull it in by recompiling the requirements instead.
This commit upgrades the version of the lti-consumer-xblock library from version 6.1.0 to version 6.4.0. Version 6.3.0 includes support for the Proctoring Assessment Messages of the 1EdTech Proctoring Services Specification (i.e. the in-browser proctoring launch). Version 6.4.0 includes changes to the user_id attribute in the LTI launch message of the LTI 1.1 XBlock launch.
Please see the CHANGELOG entry for these versions for a full description of the changes: https://github.com/openedx/xblock-lti-consumer/blob/master/CHANGELOG.rst#630---2022-11-16 and https://github.com/openedx/xblock-lti-consumer/blob/master/CHANGELOG.rst#640---2022-11-18. The commit messages are included below for convenience.
6.3.0
feat: adds support for LTI 1.3 Proctoring Service specification in-browser proctoring launch.
* Adds an Lti1p3ProctoringLaunchData data class. It should be included as an attribute of the Lti1p3LaunchData
data class to provide necessary proctoring data for a proctoring launch.
* Adds an LtiProctoringConsumer class. This class is used to generate LTI proctoring launch requests and to decode
and validate the JWT send back by the Tool with the LtiStartAssessment message.
* Adds an lti_1p3_proctoring_enabled BooleanField to the LtiConfiguration model. This field controls whether
proctoring is enabled for a particular LTI integration.
* Modifies the launch_gate_endpoint to support LtiStartProctoring and LtiEndAssessment LTI launch messages.
* Adds an start_proctoring_assessment_endpoint to support LtiStartAssessment messages from the Tool.
* Adds an LTI_1P3_PROCTORING_ASSESSMENT_STARTED signal. This signal is emitted when the LtiStartAssessment message is
sent from the Tool to inform users of the library that the LtiStartAssessment message has been received.
6.4.0
feat: add course flag to send external_user_id as user_id in LTI 1.1 XBlock launches
This commit introduces a new CourseWaffleFlag lti_consumer.enable_external_user_id_1p1_launches. When this flag is enabled for a course, LTI 1.1 XBlock launches in that course will send the user's external_user_id as the user_id attribute of the launch. external_user_id is the user's external user ID as defined, created, and stored by the external_user_ids Djangoapp in the edx-platform. When this waffle is not enabled for a course - the default case - LTI 1.1 XBlock launches in that course will continue to send the user's anonymous_user_id as the user_id attribute of the launch, as before.
This provides an opt-in opportunity for courses to send a consistent, static, and opaque user identifier in an LTI 1.1 XBlock launch. This may be necessary for integration with LTI tools that require such an identifier.
Please be aware that toggling this flag in a running course carries the risk of breaking the LTI integrations in the course. This flag should also only be enabled for new courses in which no LTI attempts have been made.