LTI in Ulmo analyzed (new)
LTI capabilities in Ulmo & pros/cons
LTI in Ulmo has 3 configuration interfaces with different scopes and tradeoffs.
1. LTI Consumer XBlock
This is where course authors can configure and place an LTI component inside course content.
LTI 1.3 can be configured entirely in the XBlock config modal.
LTI 1.1 requires authors to first create an LTI Passport on Advanced Settings page, reference it in the XBlock, and then complete the configuration.
Pros
Configuration and placement is done in a single workflow within Studio which speeds up authoring.
Cons
Each configuration is tied to a single XBlock. Copy/pasting or duplicating the XBlock is NOT practical for LTI 1.3 because the duplicated XBlock generates its own
client_id,Keyset URLandAccess Token URLwhich requires users to register it again in the tool.Codio, H5P don’t allow multiple
client_idfor the same registration and so, authors will need to create multiple registrations of the platform within the tool.JupyterHub don’t allow multiple
Keyset URLandAccess Token URLfor the same platform. See LTI Consumer and multiple Blocks.
Related docs
2. Reusable LTI Store
The Reusable LTI Store allows:
Operators to define LTI configurations (1.1 & 1.3) in Django Admin.
Authors to use those configurations in multiple LTI Consumer XBlocks in Studio.
Authors can override launch URL in each XBlock by turning on the waffle flag
lti_consumer.enable_external_multiple_launch_urls.
Pros
This is the closest thing Open edX has to a “tool registry” and overcomes the con listed above.
Cons
It is a plugin and will need to be installed by operators.
Only users with access to django admin panel can create reusable configurations.
Configurations are available site-wide. Any course on the site can use the config if they know it’s filter key.
Related docs
Operators: https://docs.openedx.org/en/latest/site_ops/how-tos/setup_lti_store.html
Ulmo release notes: https://docs.openedx.org/en/latest/community/release_notes/ulmo/ulmo_reusable_lti.html
3. Course level integrations
Course-level integrations (configured via Pages & Resources) currently support only 6 tools and use LTI 1.1.
Discussions: Ed Discussion, Piazza, Inscribe, Yellowdig
Live: Zoom, BigBlueButton
Pros
This is the only course-level “tool selection” available today.
Cons
Limited to LTI 1.1
Limited to only 6 tools
Related docs
What makes a “good” LTI experience?
Let’s define what “good” looks like for LTI in Open edX using a few measurable parameters:
Speed
Time to first successful launch
Number of fields the author must touch
How often ops/admin help is needed
Scale
Time to add N similar items (reuse)
Effort to change a tool setting once and have it apply everywhere it’s used
Governance
Number of duplicate configs across a course/site
Exposure of credentials
Ability to enforce privacy policy
Configuration scope
Course level
Org level
Site level
Reliability
Launch success rate
Grade sync success rate
Ease of troubleshooting
Likely preferences for each user persona are:
Course author: speed + scale
Operator/admin: governance + reliability
Learners/instructors: reliability
Registration vs Placement
A potential improvement is to separate placement from registration. This will likely improve governance and scale but it may reduce authoring speed if steps are added.
A better choice would be a separation that exists under the hood, while authoring feels fast.