Our Goals
ADL started the investigation into a launch mechanism after finding some issues in configuring xAPI content examples. The investigation led to the creation of the xAPI Launch algorithm based on the following goals:
No Hard Coded Configuration
xAPI Launch enables ISD/developers to track learning experiences from any resource without some out-of-band method to add LRS credentials to the content, and without asking the user to input these credentials into some untrused third-party system.
Launch returns configuration details to the content after a token exchange.
Avoid PII in URL query strings
The launch mechanism cannot provide data that could potentially reveal personal information about the user.
This is accomplished by only providing a token and temporary enpoint. Content exhanges that token for the configuration details.
Support Launching Many Different Types of Content
Not all xAPI content is hosted on a server. The launch solution needs to support various content types, including static HTML, server rendered content, and non-HTML sources.
xAPI Launch allows for different methods of providing the content with the launch token, allowing for solutions like HTTP URL query strings, URL Protocol Handlers, and manual entry of the token.
Security
xAPI Launch needs to provide means to securely communicate with the content.
xAPI Launch supports encrypting the launch token with the content's registered public key and through the use of HTTP cookies.
How xAPI Launch Works
Getting Started
The ADL xAPI Launch project is an algorithm to provide xAPI configuration details to xAPI content, whether it as a hosted Learning Record Provider, a mobile app or a simulator. The project isn't software, but a process developers can implement. However there are tools to helpyou get started with xAPI Launch.
The Algorithm
The algorithm is comprised of the steps a system would use to initialize and configure the xAPI content. Following these steps, and the launch API, a developer could integrate xAPI launch into their existing systems.
The Launch API
The launch API defines the endpoints a xAPI launch server needs to implement. It is comprised of 3 POST endpoints for exchanging the launch token, sending statements, and terminating the launched session. One final section defines the URL query string format.
The Launch Server Example
The launch server example is an open source implementation of the launch algorith and API. It can either be downloaded and installed locally from the GitHub project page or it can be accessed from the hosted URL.
The xAPIWrapper
The xAPIWrapper is a client javascript library that simplifies communication with an LRS. The current version of the xAPIWrapper supports xAPI Launch. View the GitHub project page for instructions on how to use the wrapper with launch.