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:[email protected]"}
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):
1
https://content.example.com/index.html
2
?endpoint=https%3A%2F%2Forg.clearlrs.com%2Fxapi%2F
3
&auth=Basic%20a2V5OnNlY3JldA%3D%3D
4
&actor=%7B%22mbox%22%3A%22mailto%3Alearner%40example.com%22%7D
5
&activity_id=http%3A%2F%2Fexample.com%2Flearning%2Factivity
6
&registration=231859e2-937f-4969-b069-91cf49bfea0c
Copied!
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.
Copy link