xAPI Pipes
xAPI statement pipes provide the means to automatically transfer statements from one LRS to another. Applications include:
- forwarding for users who wish to have their statements stored in their own Personal Data Lockers (PDLs)
- replicating production data in a sandbox LRS
- pulling data in from a remote LRS
In order to use statement pipes, set xAPIStatementPipeEnabled
to true
in your Engine settings file, and then create a pipe using the xapi/statementPipes resource on the API.
Here is an example of the JSON object that you would send:
{
"source": {
"url": "http://example.com/RusticiEngine/lrs/tenant-name/statements",
"userName": "lrs_user",
"password": "lrs_user_password"
},
"target": {
"url": "http://example.net/RusticiEngine/lrs/other-tenant",
"userName": "cloud_username",
"password": "cloud_password"
}
}
The source
property is optional. If you only provide a target
, then Engine will assume itself to be the source. Statements will be pulled from the tenant specified by the engineTenantName
header and then forwarded to the LRS indicated by the target
.
If the source
is provided, then the source.url
must point to the /statements
resource of your source LRS. On the other hand, target.url
must point to the base resource of the target LRS with any extra endpoint information. For example, if an Engine instance is the target, then the target.url
should be the /lrs
resource. If you want to pipe statements from an external source into Engine's LRS, then the target.url
should be pointing to Engine and specify the tenant name, like it is in the example. In both cases, the tenant name is optional; if you do not specify a tenant, then all of the statements will be inserted into the default tenant's LRS.