Learning Tool Ineroperability (LTI)
This platform supports exposing topics to LTI consumers.
Currently we support version 1.1 and 1.2 and implemented it with this provider recipe and the implementation guide
First a LTI tool configuration needs to be created to generate a consumer key and shared secret.
These credentials are used for a client credential authorization flow
Basic Launch Request
A launch request can be send to our lti launch endpoint:
topic_id is the ID of a standard approved topic to link to
Aside from the oauth parameters we require the following for a basic launch request:
resource_link_id: Opaque unique identifier that the TC guarantees will be unique within the TC for every placement of the link.
user_id: Id of the user for this tool consumer
basic-lti-launchis the only type we support
LTI-1p0required, but we don't actually do any checks
Optionally we also accept these parameters:
lis_person_name_full: Full name of the user
lis_person_name_family: Last name of the user
lis_person_name_given: First name of the user
lis_person_contact_email_primary: Email of the user, when this is missing a dummy email address is set
launch_presentation_return_url: We return the user to this url when something goes wrong.
lis_result_sourcedid: External outcome id
lis_outcome_service_url: External outcome service url
What happens next?
When a launch request is successful a user is created or updated based on the user id and lis variables. These users are created within the company the LTI configuration is registered to.
Next this user is redirected directly to the selected topic in the client where the content can be consumed. The topic close button is hidden or redirects to the launch_presentation_return_url if present.
The user can theoretically navigate through the rest of the application and see all other standard approved topics.
We store outcomes in a
ExternalUser can have multiple
Participation can have multiple
There can be only one link between an
ExternalUser and a
Participation through a
On a LTI launch an authentication token is created with
lis_outcome_service_url in the data.
When this token is used then:
- We create a started participation for the user and resource_link_id (topic)
- If a pending participation already exists it is started.
- We create a
Lti::Participationbetween the external user and the participation.
When the final of a topic is already completed we send the outcome to the
lis_outcome_service_url for the
Lti::Participation immediately (and asynchrously).
Whenever a learner completes a final we send the outcome to the
lis_outcome_service_url of each
Lti::Participation, if any, asynchronously
- Create a LTI Tool configuration
- Visit Saltire
- Go to Test Tool Consumer
- Click Services Offered
- Disable everyting
- Enable Basic Outcomes
- Click "Tool Provider" and fill in the LTI Tool configuration
- Save it
- Finish the final chapter
- Click "view" d
- Click gradebook
Alternatively there are testing tools suchs as this one from Foliotek