# Instructure Canvas

## Context data <a href="#instructurecanvas-contextdata" id="instructurecanvas-contextdata"></a>

The UDP uses the [Canvas Data product](https://community.canvaslms.com/docs/DOC-10838-4214449046) (whose [data schema is publicly available](https://portal.inshosteddata.com/docs)) as the basis for the context data integration. Because the data integration is fully-managed, academic institutions need not write a data integration from Canvas that conforms with the LMS loading schema. This conformance already exists in the UDP's integration. Unizin maintains a [mapping](https://docs.udp.unizin.org/ucdm/canvas-to-ucdm.html) of Canvas Data to the [LMS loading schema](https://docs.udp.unizin.org/context-data/html/lms-2.0.html).

If your institution uses Instructure Canvas, then integrating context data from Canvas to your UDP instance is a simple configuration. In particular, you will need to [create a Canvas Data API key and secret](https://community.canvaslms.com/t5/Admin-Guide/How-do-I-obtain-an-API-access-token-in-the-Canvas-Data-Portal/ta-p/157) and configure the UDP to use them.

## Behavior data <a href="#instructurecanvas-behaviordata" id="instructurecanvas-behaviordata"></a>

Instructure’s [Canvas Live Events](https://community.canvaslms.com/docs/DOC-14182-4214848302) service offers real-time behavioral data in the 1EdTech Caliper standard.

At present, the UDP supports Canvas's JWT-based method of integrating Canvas Live Events with a learning record store. Canvas may also call this the "HTTPS"-based integration method. Canvas administrators will configure a new data stream from the administration panel in Canvas. This data stream will point to the hostname for their UDP Caliper endpoint.

### Configure and activate an HTTPS data stream <a href="#instructurecanvas-configureandactivateanhttpsdatastream" id="instructurecanvas-configureandactivateanhttpsdatastream"></a>

Only Canvas admins may configure an HTTPS data stream in Instructure Canvas. Broadly speaking, you will follow [Instructure’s instructions for setting up HTTPS](https://community.canvaslms.com/t5/Admin-Guide/How-do-I-configure-and-test-Canvas-Live-Events-using-HTTPS/ta-p/151).

In the Admin tools section of Canvas, select `Data Services`:

<figure><img src="https://3709019308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKYwtHNGgdPXS3PWAlZUr%2Fuploads%2Fgit-blob-c009b1f5a01c7713f1680ea984ea0110017fd882%2F32833845.png?alt=media" alt=""><figcaption></figcaption></figure>

Now "`+Add`" a new Data Stream:

<figure><img src="https://3709019308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKYwtHNGgdPXS3PWAlZUr%2Fuploads%2Fgit-blob-7c80b1bec1349db6194ec667bc23978b36c99742%2F32833846.png?alt=media" alt=""><figcaption></figcaption></figure>

You will need to set the following variables:

| Variable        | Value                                        |
| --------------- | -------------------------------------------- |
| Name            | *Whatever you wish*.                         |
| Active          | *Turned on*.                                 |
| Delivery method | HTTPS                                        |
| URL             | *The hostname for your UDP Caliper endpoint* |
| Sign Payload    | *Checked*                                    |
| Message type    | Caliper 1.1                                  |

Unizin strongly recommends that you subscribe to all available Canvas Live Events.

So that a completed configuration might look like this:

<figure><img src="https://3709019308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKYwtHNGgdPXS3PWAlZUr%2Fuploads%2Fgit-blob-e01e38001780564ce027e26d4a905b1832fa2e17%2F32833847.png?alt=media" alt=""><figcaption></figcaption></figure>
