Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Central Management of LTI Configuration #143

Open
tecoholic opened this issue Apr 27, 2022 · 9 comments
Open

Central Management of LTI Configuration #143

tecoholic opened this issue Apr 27, 2022 · 9 comments
Assignees

Comments

@tecoholic
Copy link

tecoholic commented Apr 27, 2022

Abstract

The LTI Consumer XBlock provides a way to integrate external LTI tools as XBlocks by entering the configuration directly into the XBlock. It is however Block specific and requires configuration at every instance it is used in a course. There is not central way to store the configuration and use it in a pluggable way leading to poor user experience. This initiative solves this pain point by using the openedx-filters mechanism to get LTI configuration from other sources, like plugins which implement the necessary hooks & pipelines. This allows for one time entry of the configuration values for each tool, thus reducing the time and effort for course maintainers and system maintainers.

Context & Background

Currently in the Open edX platform, the Learning Tools Interoperability (LTI) specification outlines a standard way for Learning Management Systems (LMS) to interact with external tools. The Open edX LTI Consumer XBlock implements the consumer logic that will allow the edX LMS to act as the consumer and communicate with external tools. It supports LTI versions 1.1, 1.2 and 1.3.

  • Each LTI tool needs to be configured individually, sometimes requiring multiple variables to be set to get a working integration. This makes the course creation process cumbersome on courses that heavily rely on LTI components.
  • There's no support for instance-wide LTI tool configuration or any sort of pluggable LTI configurations.

In order for an external tools be integrated, the configuration values of the tools need to be entered into the XBlock by the course creator manually every time. The values entered in one XBlock cannot be reused in another restricting the re-usability of these configurations.

Currently the course creators and the support staff find this experience unpleasant as they have store this information somewhere externally and copy it to the XBlock every time the tool is used. So, Open edX users who use the same tool in multiple courses and in multiple places recommend a mechanism to store these configuration values centrally in a single location and be able to use in a block with minimal interaction. eg., selecting the tool from a dropdown.

Scope & Approach

The scope of the work is focused on improving the LTI Consumer XBlock user experience. We do that by utilizing the pipeline configuration mechanism introduced by openedx-filters.

A detailed note on the specifics of the implementation is available in the ADR that was created during the discovery stage of this initiative.

Value & Impact

The central management of LTI keys primarily benefits course creators and Open edX administrators. It brings the following improvements over current workflow:

  1. Eliminates the necessity for LTI configuration to be shared externally (independent of Open edX software)
  2. Reduces the time & effort needed to configure a LTI tool for course creators by eliminating manually entry of config values and possibility of typo-errors and system error caused by them.
  3. Opens up the possibility of external tools to supply their own Open edX plugins which can provide the configuration using openedx-filters mechanism, thus removing any necessity for administrators to create configurations via data entry
  4. Decouples the LTI 1.3 functionality from the XBlock allowing LTI Integration to be done anywhere in the platform (discussion, course pages..etc.,)

Milestones and/or Epics

Milestone 1: LTI 1.1 Support

  • Add openedx-filters support to LTI Consumer XBlock which can be used to fetch LTI configuration from other plugings
  • Implement a PoC Open edX plugin that can store LTI 1.1 configuration in the database and return them when the LTI Consumer filter's pipeline is executed
  • Add UI support to allow users to add a LTI tool using the configuration from the PoC plugin

Milestone 2: LTI 1.3 Support

  • Expand the plugin support to allow storing and retrieval of LTI 1.3 configuration
  • Update the LTI Consumer to use the configuration from filter pipeline to load an external LTI tool using LTI 1.3 spec
  • Removes XBlock dependencies from LTI 1.3 launches.

Named Release

Nutmeg

Timeline

Past Events

01-Oct-2021 - Initial discussion
22-Oct-2021 - Start of Discovery and creation of ADR
18-Nov-2021 - ADR Finalized
08-Mar-2022 - Start implementation for Milestone 1

Future Plan

Apr-2022 - Milestone 1 Completed
May-2022 - Making LTI 1.3 endpoints independent
May, June-2022 - Milestone 2 Implementation

Proposed By

OpenCraft

Additional Info

@github-actions
Copy link

Thanks for your submission, @openedx/open-edx-project-managers will review shortly.

@tecoholic tecoholic changed the title Central Management of LTI Configuration [Draft] Central Management of LTI Configuration Apr 27, 2022
@tecoholic tecoholic changed the title [Draft] Central Management of LTI Configuration Central Management of LTI Configuration Apr 29, 2022
@gabrieldamours
Copy link

LGTM @tecoholic 👍 nice work!

@Cup0fCoffee can you please take a quick look?

@Cup0fCoffee
Copy link

@tecoholic @gabrieldamours I had a quick look and it looks good to me.

May-2022 - Making LTI 1.3 endpoints independent

There are additional benefits from this change that are not mentioned here or in the ADR, but @giovannicimolin talked about them in his LTI talk yesterday. Perhaps, we should add them here as well? @giovannicimolin I'm not exactly sure what the impact is, I think it is related to making it easier to exporting and importing a course as a new course. When you have time, can you help add details about it here?

@gabrieldamours
Copy link

@giovannicimolin ping :)

@giovannicimolin
Copy link

giovannicimolin commented May 17, 2022

@Cup0fCoffee @tecoholic

There are additional benefits from this change that are not mentioned here or in the ADR, but @giovannicimolin talked about them in his LTI talk yesterday.

This change brings the following main benefits:

  1. Allows re-using LTI configurations - both for LTI 1.3 and 1.1
  2. Takes the burden out of instructors hands by simplifying the configuration needed to get LTI 1.3 integrations working - and re-using them across different courses.
  3. Removes XBlock dependencies from LTI 1.3 launches.

The 3rd point specifically allows LTI 1.3 integrations anywhere in the platform (discussions, course pages, etc).

The import and export functionality will not be implemented as a part of this work, but it'll be definitely easier to implement thanks to these changes.

@e0d
Copy link

e0d commented Aug 16, 2022

@giovannicimolin should this be assigned to you? I was also wondering if there's any progress to report on this project.

@giovannicimolin
Copy link

giovannicimolin commented Aug 22, 2022

@e0d Sorry for the delay here. I lost this ping in my inbox.

should this be assigned to you?

I'm not sure I understand, I'm already the reviewer on this issue and we're in the process of implementing it into the xblock-lti-consumer repo.

I was also wondering if there's any progress to report on this project.

I didn't know we had to post updates here, sorry! I haven't been following the processes around this repository, just reacting to pings as I'm getting them.

Is there an OEP/ADR with the processes for using this repo and posting updates?


Edit: I just discovered that there's a Kanban view of these issues here. 😮

@e0d e0d added maintenance Routine upkeep necessary for the health of the platform campus Of Interest to the Campus Working Group and removed maintenance Routine upkeep necessary for the health of the platform labels Mar 31, 2023
@e0d e0d added the epic Large unit of work, consisting of multiple tasks label Apr 14, 2023
@jmakowski1123 jmakowski1123 self-assigned this Apr 20, 2023
@jmakowski1123
Copy link

Current gaps in project implementation that remain: https://docs.google.com/document/d/1OKkpNIck23gejniIYQHpRZ2ClEO6O7Cds5Wg1HVgRYU/edit#

@jmakowski1123
Copy link

Update 8/16:

Backend: Reusable LTI 1.3 configuration in progress with collaboration between Pearson, OC and 2U: openedx/xblock-lti-consumer#390

Frontend/UX: MVP Product Spec for reusable configuration dashboards and workflows nearly complete: https://openedx.atlassian.net/wiki/spaces/COMM/pages/3779362817/Product+Spec+LTI+MVP+and+future+phases

Next steps: UX/UI targeted to begin in mid-Sept

@jmakowski1123 jmakowski1123 removed campus Of Interest to the Campus Working Group epic Large unit of work, consisting of multiple tasks labels Sep 22, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Backlog
Development

No branches or pull requests

6 participants