openedx / platform-roadmap

Tracking the maintenance, enhancement, and advancement of the Open edX project.
11 stars 0 forks source link

Central Management of LTI Configuration #143

Open tecoholic opened 2 years ago

tecoholic commented 2 years ago

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.

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

Milestone 2: LTI 1.3 Support

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[bot] commented 2 years ago

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

gabrieldamours commented 2 years ago

LGTM @tecoholic 👍 nice work!

@Cup0fCoffee can you please take a quick look?

Cup0fCoffee commented 2 years ago

@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 commented 2 years ago

@giovannicimolin ping :)

giovannicimolin commented 2 years ago

@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 commented 1 year ago

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

giovannicimolin commented 1 year ago

@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. :open_mouth:

jmakowski1123 commented 1 year ago

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

jmakowski1123 commented 11 months ago

Update 8/16:

Backend: Reusable LTI 1.3 configuration in progress with collaboration between Pearson, OC and 2U: https://github.com/openedx/xblock-lti-consumer/pull/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