A plugin for openedx-platform to store LTI configurations centrally. This allows course creators to add LTI components without having to enter the details like secrets, keys and URLs everytime the component block is created.
The development instructions are written with the Open edX Devstack as reference.
- Clone the repostiory to
<devstack_root>/src/
directorycd <devstack_root>/src/ git clone [email protected]:open-craft/openedx-ltistore.git
- Install the plugin inside the Studio container and run migrations
cd <devstack_root>/devstack/ make studio-shell pip install -e /edx/src/openedx-ltistore python manage.py cms migrate lti_store exit
- Install the plugin inside the LMS Container
make lms-shell pip install -e /edx/src/openedx-ltistore exit
- The LTI Consumer XBlock can fetch configurations to LTI Tools using
openedx-filters
mechanism. It calls the filterorg.openedx.xblock.lti_consumer.configuration.listed.v1
whenever it wants to fetch the configurations from external tools like plugins. In order for LTI Store to send available LTI Tools, add the following to any existingopenedx-filters
configurations for both LMS (edx-platform/lms/envs/devstack.py
orprivate.py
) and studio (edx-platform/cms/envs/devstack.py
):OPEN_EDX_FILTERS_CONFIG = { "org.openedx.xblock.lti_consumer.configuration.listed.v1": { "fail_silently": False, "pipeline": [ "lti_store.pipelines.GetLtiConfigurations" ] } }
- Restart the LMS & Studio for the latest config to take effect
make lms-restart make studio-restart
Now any changes made to the source code should reflect in the application
- Go to
http://localhost:18000/admin
- Look for
LTI_STORE
and add External lti configurations by clicking+ Add
button
- Go to
http://localhost:18000/admin
- Look for
LTI_STORE
and go to External lti configurations - On the list of external LTI configurations, note down the "Filter Key" value
of the configuration to use (Example:
lti_store:1
). - Copy "Filter Key" to the "External ID" field on the LTI consumer XBlock.
The project uses Black for linting. To lint the code
make lint
Unit tests can be run with
make test