Overview
This page is meant to give a current and accurate description of the architectural direction of a subset of the LTI Provider functionality of edX. Unless explicitly stated otherwise, the terms OpenEdx, edX, and edX platform may be used interchangeably throughout this document.
There are many useful documents reachable from the LTI Space Home Page, but they require curating to bring them up to date. While that will be an ongoing process, some topics have bubbled up in the community and will be addressed here.
LTI Resources and Courses
LTI resources served from the edX platform are meant to be consumed as small components hosted by an external LMS (the LTI Consumer). The relationship between these individual resources and a course should be fully managed by the external LMS. In the future, there is no guarantee that these resources will have any relationship to a course inside the edX platform.
Based on the current implementation of edX as an LTI Provider, it is still recommended to use a separate edX course for these LTI resources. This course should never be used by non-LTI users. However, any community request that ties LTI resources more permanently to an edX course is in conflict with the future direction of the platform, where we would rather like to decouple these. This includes, but is not limited to, any changes that would require the LTI users to actually enroll in the edX course being used to provide the LTI resources.
It is understood that the single float outcome that is returned by LTI 1.1 may not be sufficient, and a consumer may require more data from the edX platform in the future. If other administrative data is required, we will need to discuss APIs that can extend the current implementation through some standard specification, whether that be something from LTI 2.0, or an XBlock-like extension, or some similar standard. This has not been designed in detail, but is acknowledged here to give an indication of the ways in which the LTI Provider implementation might be extended if necessary.