All Configuration Options

agent

"agent": "pseudo-anonymous"

Configures the Jupyter Lab xApi Agent. This agent is used to represent the current Jupyter Lab user in xApi statements. For the statement user opened notebook, the user will be set to a pseudo-anonymous actor, resulting in anonymous-2fxg opened notebook.

There are three presets for the Jupyter Lab agent:

The pseudo-anonymous agent

"agent": "pseudo-anonymous"

This agent setting results in an psuedo-anonymous xApi actor.

{
  "objectType": "Agent",
  "account": {
    "name": "anonymous-t8ozvwzpx",
    "homePage": "http://accounts.pseudo-anonymous"
  },
  "name":"anonymous-t8ozvwzpx"
}

The pseudonym anonymous-t8ozvwzpx is randomly generated and will be stored inside the pseudonym configuration variable. This ensures that the same pseudonym will be used for the same user.

The anonymous agent

"agent": "anonymous"

This agent setting results in an anonymous xApi actor.

{
  "objectType": "Agent",
  "account": {
    "name": "Anonymous",
    "homePage": "http://accounts.anonymous"
  },
  "name":"Anonymous"
}

The actor will be the same for all users that have set the agent to anonymous. Therefore, later analysis can not distinguish between the different users.

The Jupyter Hub agent

"agent": "jupyterhub"

This setting is only available if Jupyter Lab is used with Jupyter Hub and results in an xApi actor generated from the JupyterHub actor.

{
  "objectType": "Agent",
  "account": {
    "name": "ovjan",
    "homePage": "http://jupyter.rwth-aachen.de/hub"
  },
  "name":"ovjan"
}

Where http://jupyter.rwth-aachen.de/hub is the url of the Jupyter Hub instance and ovjan is the Jupyter Hub username. Both values are extraced from the Jupyter Lab interface and need no further configuration.

Manual Agent

Can be configured as an account using display-name,:code:provider-url and user-id

"agent": {
       "display-name": "John Snow",
       "provider-url": "accounts.my_lrs.com/agents",
       "user-id": "john_snow_1",
    }

or as an mail-account display-name and email.

"agent": {
       "display-name": "John Snow",
       "email": "john.snow@snowmail.com"
    }

This setting results in a custom, manually configurated xApi Agent.

{
  "objectType": "Agent",
  "account": {
    "name": "john_snow_1",
    "homePage": "accounts.my_lrs.com/agents"
  },
  "name":"John Snow"
}

respectively

{
  "objectType": "Agent",
  "mbox": "john.snow@snowmail.com",
  "name":"John Snow"
}

lrs

Configures the Learning Record Store (LRS).

If configured, all statements are forwarded to the lrs.

A minmal configuration contains only an URL:

"lrs": {
  "url":"https://lrs.myDomain.com/data/xAPI"
}

Authentication can be configured in three different ways:

Using a Token

"lrs":{
  "url":"https://lrs.myDomain.com/data/xAPI",
  "authentication":{
    "token":"Basic ABCDEFGHIJKMYAUTHORIZATIONVALUE1234"
  }
}

The token value will be directly used as an authorization header for the comminciation to the lrs.

Using a Key-Secret pair

"lrs": {
  "url":"https://lrs.myDomain.com/data/xAPI",
  "authentication":{
    "key":"1a2b3c4d5e6d1a2b3c4d5e6d1a2b3c4d5e6d",
    "secret":"11aa22bb33cc44dd55ee66ff77gg"
  }
}

A token is generated using the key and secret and will be directly used as an authorization header for the comminciation to the lrs.

Using an Python evnrionment variable

"lrs":{
  "url":"https://lrs.myDomain.com/data/xAPI",
  "authentication":{
    "python-environment":"MY_TOKEN_VAR"
   }
}

Juxl will evaluate the environment variable MY_TOKEN_VAR and use the value as an authorization header for the comminciation to the lrs.

This is especially usefull for an approach with Juxl Hub Auth .

Juxl Hub Auth requires an JupyterHub authentication token. The JupyterHub authentication token is stored inside the JUPYTERHUB_API_TOKEN environment variable. So setting

"lrs":{
 "url":"https://lrs.myDomain.com/data/xAPI",
 "authentication":{
   "python-environment":"JUPYTERHUB_API_TOKEN",
  }
}

will automatically use the JUPYTERHUB_API_TOKEN for authentication with Juxl Hub Auth. The authentication token does not need to be set manually!

It is also possible to use another environment variable when communication to another LRS, etc.

disabledJuxlExtensions

A list of Plugin-IDs of Juxl Extension.

"disabledJuxlExtensions": [
        "@juxl/logging",
        "@juxl/performance-extension:srtt",
        "@juxl/juxl-extension:settingsUI"
    ],

All Listed Extensions are not connected to the Juxl Interface. Instead they are each connected to an independently running Juxl instance. If an LRS is configured, statements are not forwarded to the lrs.

All other functionallity apart from logging to the global Juxl Interface are still available to the plugins. To disable Plugins completley, use Jupyter Lab to disable the extension see JupyterLab enabling-disabling extensions

platform

Configure platform context information of xApi Statements.

"platform":{
  "id":"juypter.rwth-aachen.de",
  "name": "JupyterLab"
}

The configuration results in an xApi Context:

{
  "platform": "JuypterLab",
  "contextActivities": {
    "category": [
      {
        "objectType":"Activity",
        "id": "jupyter.rwth-aachen.de",
        "definition": "..."
      }
    ]
  }
}

Upon default the platform name JupyterLab is used. The default platform id is the url of the JupyterLab instance.

pseudonym

This option should not be set by the user. The pseudonym is gernerated automatically if the agent option pseudo-anonymous is set.

"pseudonym":"anonymous-a1b2d3c4"

It can be removed to create a new pseudonym at any time.