Content Launch

Clear LRS implements the Rustici Launch Mechanism when passing the authenticated user to learning content for the purpose of storing data in the LRS. This is a popular mechanism supported by most authoring tools.

When content is launched from the LRS, the launch page will be loaded with the following query parameters:

Query Parameter

Description

endpoint

The base path for all xAPI requests.

e.g. https://org.clearlrs.com/xapi/

auth

An authentication token to be sent with every xAPI request.

e.g. Basic a2V5OnNlY3JldA==

actor

The actor object representing the user launching the content.

e.g. {"mbox":"mailto:learner@example.com"}

activity_id

The root activity ID for the content being launched. This should be used as the parent or grouping for all statements.

e.g. http://example.com/learning/activity

registration

An optional registration value to be sent in the context field of any statements generated.

e.g. 231859e2-937f-4969-b069-91cf49bfea0c

Although the above examples are provided in clear text, each query parameter value will actually be URL Encoded to prevent malforming the launch URL.

For the above example, assuming the content being launched existed at the following address – https://content.example.com/index.html – then the launch URL would look like the below (new lines added for readability):

https://content.example.com/index.html
?endpoint=https%3A%2F%2Forg.clearlrs.com%2Fxapi%2F
&auth=Basic%20a2V5OnNlY3JldA%3D%3D
&actor=%7B%22mbox%22%3A%22mailto%3Alearner%40example.com%22%7D
&activity_id=http%3A%2F%2Fexample.com%2Flearning%2Factivity
&registration=231859e2-937f-4969-b069-91cf49bfea0c

Once launched, the activity provider should parse and decode these parameters and use them as appropriate when generating statements.

It is the Activity Provider's responsibility to respect every parameter passed to it, even if its internal representation differs.

Sometimes the LRS will force a new registration or override the Activity ID in response to user actions so the content is required to send statements using the received values to preserve data integrity.

Last updated