Test events export API

This document describes use and example file for /v1/test/{testId}/events API

General information

This API is created to export all events registered on candidate during exam, both for system generated events, such as network issues or new SEB login, and invigilator registered events.

Export of test events is done as asynchronous download due to load of data per test per student.

The first call to the events export APIs will schedule generation of a JSON file and upload it to an internal S3 bucket. Future calls have to include a jobId and will return the progress of the job and the status, as well as a pre-signed, temporary download url for the export once the export is finished. This url will remain valid for the lifetime of the access token used (1 hour from generating the token).

If webhooks are used for machine - to - machine integration, subscription to event "event_by_candidates_export_finished" will indicate that export is finished and will return a pre-assigned URL where file can be downloaded from.

JSON file will only contain information relevant for the test and each candidate on the test. Example of the file is attached at the bottom of this page.


APIs for events download

Test events download:

Order test events export: https://ia.inspera.no/apidoc/#/test/getTestEvents

Check status on export and get download URL: https://ia.inspera.no/apidoc/#/test/getevents


Data model

Body

1 2 3 4 { "created": string($date-time) "candidates": array }

Candidates

1 2 3 4 5 { "userId": integer($int64), //student Inspera UserId "candidateId": string "events": array }

Events

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 { "eventId": string, "event": string, "timeStamp": string($date-time), "extraInfo": { "type": string, "value": string }, "flaggingInfo": { "flagType": string, "flagSubTypes": array(String), "comment": string, "severityLevel": string }, "attachedFiles": array, "userId": number($int64) //event creator Inspera UserID }

AttachedFiles

1 2 3 4 5 6 { "fileName": string, "contentItemId": number($float) "fileSize":integer($int64) "presignedUrl": string }

JSON example of API result: