openedx / platform-roadmap

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

LTI1.3 Provider Tool (OEX as Provider) #203

Open jmakowski1123 opened 1 year ago

jmakowski1123 commented 1 year ago

There's a need for the creation of a new, stable LTI1.3 Provider tool, where OEX serves as the LTI Provider. While this need is captured at a high level in the Modular Learning user stories currently underway, it's likely a spin-off project in and of itself, with first steps being:

github-actions[bot] commented 1 year ago

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

felipemontoya commented 1 year ago

@jmakowski1123 we are very interested in writing LTI1.3 support outside of the context of content libraries. This would be the card that represents that work, correct?

fyi @squirrel18 @kuipumu @scottrish

kuipumu commented 1 year ago

@felipemontoya Here is a link to an ADR we made on regards the current implementation for LTI 1.1 provider tool and adding the support for LTI 1.3 specification to it: https://github.com/Pearson-Advance/edx-platform/blob/c673961da2c434f16a0dd9d10977aa31062f42e8/docs/decisions/0005-lti-provider-1.3-spec-support.rst

antoviaque commented 1 year ago

FYI @giovannicimolin - if you have some time to help review / advise on this, that would be a nice contribution :)

giovannicimolin commented 1 year ago

@antoviaque Yup - will do! Let me catch up on the discussion here. I'll reply to this tomorrow.

giovannicimolin commented 1 year ago

@jmakowski1123 This is great!

Gathering perspectives from stakeholders across the community - what's the scope of the tool?

I think that the main goal of an "LTI Provider" (or if we use Ed1Tech terms: "LTI Tool") is to allow external tools to link content from our LMS on 3rd party LTI consumers (such as other LMS's). The goal of the project should be to implement a full set of LTI capabilities to Open edX: LTI 1.3 launches that can embed our LMS and the three main LTI Advantage services (Deep Linking, Grades, and the NRPS) to get all the benefits that LTI 1.3 can offer.

From the technical standpoint, this new app should probably be a pluggable app, installed by default but disabled. Not every instance will need LTI 1.3 tool capabilities, but I think it's something important enough to be easy to turn on/off.


@felipemontoya @jmakowski1123 The document linked by @kuipumu contains a lot of great references and resources to get this work rolling.

A while ago there was a contribution (https://github.com/openedx/edx-platform/pull/21435) to implement LTI 1.3 tool capability in the platform with a working prototype. So, I think that the quickest way to get this done would be to re-look at pylti1.3 and implement that PR as a pluggable app - checking if the approach used them will also fit with the new OEPs and ADRs.

The fork of that PR seems to have evolved LTI 1.3 tool capabilities a bit more since then. Also, https://github.com/dmitry-viskov/pylti1.3 seems to be well-maintained and is already being used on content libraries, so this is overall a good starting point for this work.

scottrish commented 1 year ago

There is a claim (https://purl.imsglobal.org/spec/lti-bo/claim/basicoutcome) to allow Basic Outcomes 1.1 params to be included in 1.3 messages, however as Basic Outcomes is deprecated do we have any insight into whether 1.3 platform implementations generally support Basic Outcomes or have they largely migrated to Assignment & Grade Services. For reference, the current Open edX 1.3 platform implementation does not appear to support Basic Outcomes.
I wouldn't want to invest time building in support for Basic Outcomes if most 1.3 platforms won't utilize it. Maybe for the most commonly encountered cases (Canvas, Blackboard, Moodle, D2L) we could try to check whether their 1.3 platform supports basic outcomes? @jmakowski1123 ?

scottrish commented 1 year ago

@jmakowski1123 Updated ADR - https://github.com/Pearson-Advance/openedx-lti-tool-plugin/blob/vue/PADV-303/docs/decisions/0001-launch-complete-course.rst

The team are looking for feedback on the proposed and rejected approaches to launching an entire course via LTI. We are moving forward with approach 4 but are open to adjusting that based on feedback.

jmakowski1123 commented 1 year ago

Thanks @scottrish ! Flagging @ormsbee @kdmccormick @e0d for feedback on the ADR