Onyx Data Proxy Service

Build

Execute the following command on your shell:

ant jar 

Start

To start the onyx-data-proxy service, follow the Starting-A-las2peer-Network tutorial and bootstrap your service to a mobsos-data-processing service. The onyx-data-proxy service may be used in two different ways to generate statements:

  1. Using the Opal API the proxy can be connected to multiple Opal courses and will generate xAPI statements for new assessment results and daily course node access statistics.
  2. Without using the Opal API the proxy provides a REST method that allows sending assessment result data downloaded from Opal manually to the onyx proxy. From the zip file sent to the proxy it will also generate xAPI statements for the assessment results.

Sending Onyx data to MobSOS manually

To send Onyx data downloaded from Opal to MobSOS manually (without using the Opal API), a RESTful POST request is offered.

POST <service-address>/onyx/assessments

Therefore, replace service-address with your service address.

How to run using Docker

First build the image:

docker build . -t onyx-data-proxy

Then you can run the image like this:

docker run -p port:9011 onyx-data-proxy

Please make sure to add the following environment variables to the "docker run" command.

Variable Description
API_ENABLED true or false depending on whether the Opal API should be used by the service.
OPAL_USERNAME Email address / username of the Opal account used to access the API.
OPAL_PASSWORD Password of the Opal account used to access the API.
COURSE_LIST Comma separated list of the course ids that should be monitored using the Opal API.
PSEUDONYMIZATION_ENABLED true or false depending on whether personal user information (email, name) should be hashed within the xAPI statement.
DATA_STREAM_PERIOD Fetching interval (in minutes) for new assessment results. Default value is 30 minutes.
COURSE_ELEMENTS_UPDATE_PERIOD Fetching interval (in minutes) for newly added e-tests that should be monitored. Default value is 60 minutes.

Onyx template variables in xAPI statements

The proxy can be configured to add specific template variables from the Onyx assessment to the context extensions of the xAPI statements. To enable this, set the docker environment variable TEMPLATE_VARIABLES_IN_STATEMENTS to true. If this feature is enabled, you can use the environment variable TEMPLATE_VARIABLES_IN_STATEMENTS_PREFIX to set a prefix. Then every template variable starting with this prefix will be part of the xAPI statement's context extensions.

Node Launcher Variables

Set las2peer node launcher options with these variables. The las2peer port is fixed at 9011.

Variable Default Description
BOOTSTRAP unset Set the --bootstrap option to bootrap with existing nodes. The container will wait for any bootstrap node to be available before continuing.
SERVICE_PASSPHRASE someNewPass Set the second argument in startService('service@version', '<SERVICE_PASSPHRASE>').