xAPI pipeline options


Introduction

The xAPI specification defines precisely how an LRS should process incoming statements, and how querying statements should work. TRAX LRS extends the standard process by adding its own rules. We call the overall process the xAPI pipeline.

Although complying with the standard process is mandatory to pass the ADL conformance test suite, there are a number of situations where adapting the process may be valuable for your specific use case. So understanding the xAPI pipeline options is important, especially if you want to configure pull jobs and clients.

Recording options

Validate statements

Check that incoming statements are valid against the xAPI spec. Requests with invalid statements are rejected. This behavior is required to pass the xAPI conformance test. However, you can disable it in order to avoid unnecessary validations with trusted data sources. Disabling statements validation improves performances. Furthurmore, statements can be validated asynchonously with validation jobs.

Characteristics Values
Required for conformance yes
Enabled by default yes
Configuration vars PIPELINE_DEFAULT_VALIDATE_STATEMENTS and PIPELINE_FORCED_VALIDATE_STATEMENTS
Editable on clients yes
Editable on pull jobs yes
Editable on push jobs no

Check ID conflicts

Check that there is no conflict between the IDs of incoming statements (when they are defined) and existing statement IDs in the database. Requests with ID conflicts are rejected. This behavior is required to pass the xAPI conformance test. However, you can disable it in order to avoid rejections in case of conflicts. In this case, statements with the same ID will be replaced in the database. This may be very useful, for example during an import process. This may also improve performances if most of the incoming statements have defined IDs, for example with CMI5 (e.g. CMI5).

Characteristics Values
Required for conformance yes
Enabled by default yes
Configuration vars PIPELINE_DEFAULT_CHECK_CONFLICTS and PIPELINE_FORCED_CHECK_CONFLICTS
Editable on clients yes
Editable on pull jobs yes
Editable on push jobs no

Record attachments

Record attachments embedded with statements into the database. This behavior is required to pass the xAPI conformance test. However, you can disable it if, for some reasons, you don't want to store attachments in your LRS.

Characteristics Values
Required for conformance yes
Enabled by default yes
Configuration vars PIPELINE_DEFAULT_RECORD_ATTACHMENTS and PIPELINE_FORCED_RECORD_ATTACHMENTS
Editable on clients yes
Editable on pull jobs no
Editable on push jobs no

Void statements

When voiding statements are recorded, record the targeted statements as voided into the database. This behavior is required to pass the xAPI conformance test. However, you can disable it if you want to prevent statements from being voided.

Characteristics Values
Required for conformance yes
Enabled by default yes
Configuration vars PIPELINE_DEFAULT_VOID_STATEMENTS and PIPELINE_FORCED_VOID_STATEMENTS
Editable on clients yes
Editable on pull jobs yes
Editable on push jobs no

Update activity definitions

When statements are recorded, extract activity definitions and update them in the activities database. This behavior is required to pass the xAPI conformance test. However, you can disable it if you don't need to explore activity definitions and if you don't use the Activities API in your projects. Disabling activity definitions update improves performances.

Characteristics Values
Required for conformance yes
Enabled by default yes
Configuration vars PIPELINE_DEFAULT_UPDATE_ACTIVITIES and PIPELINE_FORCED_UPDATE_ACTIVITIES
Editable on clients yes
Editable on pull jobs yes
Editable on push jobs no

Update agent definitions

When statements are recorded, extract agent definitions and update them in the agents database. This behavior is not required to pass the xAPI conformance test. However, it may be useful if you want to explore agent definitions, including group members, and if you want to manage persons. Disabling agent definitions update improves performances.

Characteristics Values
Required for conformance no
Enabled by default yes
Configuration vars PIPELINE_DEFAULT_UPDATE_AGENTS and PIPELINE_FORCED_UPDATE_AGENTS
Editable on clients yes
Editable on pull jobs yes
Editable on push jobs no

Update vocabulary

When statements are recorded, extract xAPI vocabulary such as verbs, activity types, statement categories and document IDs, and update them in the vocab database. This behavior is not required to pass the xAPI conformance test. However, it may be useful if you want to explore the xAPI vocabulary used in your LRS. The vocabulary is also used for auto-completion in some filters. Disabling vocabulary update improves performances.

Characteristics Values
Required for conformance no
Enabled by default yes
Configuration vars PIPELINE_DEFAULT_UPDATE_VOCAB and PIPELINE_FORCED_UPDATE_VOCAB
Editable on clients yes
Editable on pull jobs yes
Editable on push jobs no

Update activity IDs registry

When activities are recorded, extract their IDs and record them in the vocab database. This behavior is not required to pass the xAPI conformance test. However, it is used for auto-completion in some filters. Disabling IDs update improves performances.

Characteristics Values
Required for conformance no
Enabled by default yes
Configuration vars PIPELINE_DEFAULT_UPDATE_ACTIVITY_IDS and PIPELINE_FORCED_UPDATE_ACTIVITY_IDS
Editable on clients yes
Editable on pull jobs yes
Editable on push jobs no

Update agent IDs registry

When agents are recorded, extract their IDs and record them in the vocab database. This behavior is not required to pass the xAPI conformance test. However, it is used for auto-completion in some filters. Disabling IDs update improves performances.

Characteristics Values
Required for conformance no
Enabled by default yes
Configuration vars PIPELINE_DEFAULT_UPDATE_AGENT_IDS and PIPELINE_FORCED_UPDATE_AGENT_IDS
Editable on clients yes
Editable on pull jobs yes
Editable on push jobs no

Authority

When statements are recorded, give them a specific authority. This behavior is not required to pass the xAPI conformance test. However, it may be useful in order to categorize statements depending of their sources.

Characteristics Values
Required for conformance no
Configuration vars XAPI_STATEMENTS_AUTHORITY_NAME and XAPI_STATEMENTS_AUTHORITY_HOMEPAGE
Editable on clients yes
Editable on pull jobs yes
Editable on push jobs no

Querying options

Query targeting statements

When querying statements with the standard statements API, statements which are targeted by the returned statements are also returned. This behavior is required to pass the xAPI conformance test. However, you can disable it if you don't use statement references or if you don't need to query targeting statements. Disabling this option improves performances.

Characteristics Values
Required for conformance yes
Enabled by default yes
Configuration vars PIPELINE_DEFAULT_QUERY_TARGETING and PIPELINE_FORCED_QUERY_TARGETING
Editable on clients yes
Editable on pull jobs no
Editable on push jobs no

Exporting options

Pseudonymize statements

When statements are exported, replace all the agents by their pseudonymized form in order to hide the real agents identity. This behavior is not required to pass the xAPI conformance test. However, you can enable it in order to apply some privacy rules when exporting data from your LRS.

Characteristics Values
Required for conformance no
Enabled by default no
Configuration vars PIPELINE_DEFAULT_PSEUDONYMIZE_STATEMENTS and PIPELINE_FORCED_PSEUDONYMIZE_STATEMENTS
Editable on clients no
Editable on pull jobs no
Editable on push jobs yes