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.
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 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 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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |