Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-79109

Migrate the bulk of the mod_lti plugin to Moodle core.



      The goal of migrating the majority of the mod_lti plugin to the Moodle core is to address the current limitations in supporting LTI (Learning Tools Interoperability) across various areas of Moodle. The existing structure, where all LTI-related code resides within mod_lti, presents challenges in extending LTI functionality to new placements within Moodle. To overcome these issues and facilitate broader LTI integration, the following high-level steps are proposed, alongside the use of testing tools:

      • Migrating mod_lti to a new core subsystem called core_lti.
        • Maintaining the git history of these files promoted to core lti wherever possible. (Use git mv)
      • Placement Injection Mechanism: Design a mechanism that allows different Moodle components, such as module forms, editors, and others, to request LTI placement information from the Core LTI API. This mechanism should facilitate dynamic injection of LTI functionality into these components without violating the established component communication principles.
      • Documentation and Communication: Provide clear documentation for developers and administrators on how to use the Core LTI API and integrate LTI functionality into different Moodle placements. Communicate the migration changes and benefits to the Moodle community.
      • Gradual Transition: Plan for a gradual transition from the mod_lti module to the new Core LTI subsystem. Provide mechanisms for backward compatibility, where possible ensure that existing mod_lti functionalities continue to work while allowing developers to migrate to the new approach over time.


      • Integration Testing Tools: Utilize testing tools to ensure the seamless integration of the Core LTI API with various Moodle components. Tools such as Saltire LTI Test Harness and RoboTest can be employed to simulate LTI launches, configurations, and interactions across different Moodle areas.

      User Stories

      The following are high level user stories for this epic:

      • As a student enrolled in a course, I want to use the external tool functionality in different activity types like Assignments, Quizzes, Forums, etc.
        • Example of External Tool Functionality: Launching an External Tool resource from within Moodle.
      • As an instructor..
      • As an admin


        Issue Links



              jaked Jake Dallimore
              ismael-texidor Ish Texidor-Rodriguez
              1 Vote for this issue
              21 Start watching this issue



                Time Tracking

                  Original Estimate - Not Specified
                  Not Specified
                  Remaining Estimate - 0 minutes
                  Time Spent - 1 hour, 20 minutes
                  1h 20m


                    Error rendering 'clockify-timesheets-time-tracking-reports:timer-sidebar'. Please contact your Jira administrators.