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.

results matching ""

    No results matching ""