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

LTI Platform Notification Service

XMLWordPrintable

    • MOODLE_500_STABLE

      In short

      Implementation of the LTI Platform Notification Service into Moodle to enable external LTI tool developers to integrate user-friendly external tools into Moodle.

      Current situation

      Moodle can integrate external learning tools using LTI. When the user creates a new activity of this type, a link will be saved to Moodle pointing to the external tool. Each of those links on Moodle will send a unique "resource_link.id" during the launch, as specified in the LTI standard.

      External learning tools can use this "resource_link.id" to select a specific entity to display to the user. For example, an exercise. This works well for the most part, but creates a problem when the activity is duplicated on Moodle. For example:

      1. User has created an exercise in course A.
      2. User copies the activity from course A to course B. (On Moodle, these are just links pointing to the external tool.)
      3. Opening activity in course B sends a new "resource_link.id", different from the one in course A. (as specified in LTI)
      4. The external tool does not know which exercise to display now and which resource was copied. It maybe shows an empty entity, a selection, ...

      When copying an activity on Moodle, the user most likely expects:

      • The copy includes the same content
      • The copy can be independently modified without affecting the original

      Solution using LTI "Platform Notification Service"

      The LTI "Platform Notification Service" would solve this by notifying the external tool whenever a copy on Moodle happens. The external tool can then duplicate entities and show the copy.

      Alternatives and how they fall short

      $Context.id.history and $ResourceLink.id.history

      Two optional LTI Parameters can be sent during the launch to the external tool. They contain the "resource_link.id" of what was copied on Moodle.

      Downsides:

      • Copying happens only at the time the new copy is launched. However, the user expects the copy to happen when copying on Moodle. Example: User creates a "backup" copy of course A. Then modifies course A. Later, the user wants to restore the "backup" but since it was never opened the earlier state is lost.
      • Copying a large course would require the user to open all LTI activities to ensure everything was copied.

      Returning an ID in LTI Deep Linking & letting different links on Moodle point to the same entity

      When creating an activity & using LTI Deep Linking, an external tool can save a "custom.ID" (using LTI custom claim) into the newly created link on Moodle. This "custom.ID" will be sent when launching this link and can be used by the external tool to select an entity to show.

      When an activity on Moodle is copied, the new copy will send the same "custom.ID". So, the external tool can display the same entity.

      Downsides:

      • The user most likely expects that copying an activity on Moodle creates a copy that can be modified independently without affecting the original. Example: User creates a copy of an activity for different groups and want to personalize them for each group. But modifying one copy also unexpectedly modifies the other copies.
      • The user cannot make a copy of an activity point to a different entity later because the external tool cannot change the "custom.ID" after the Deep Linking launch. 

            Unassigned Unassigned
            Serlo Lars Rasmussen
            Votes:
            1 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:

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