The Ultra Extension Framework allows an integration to register as a proctoring service for assessments in Learn Ultra in conjunction with Learn's LTI tool framework.
Proctoring services are registered in Learn as an LTI tool. Proctoring placements are used to define a launch point to the proctoring tool. Learn follows the IMS Proctoring Specification to communicate with these tools using LTI. Ultra Extension Framework builds on that with APIs to support UI integration into Learn Ultra providing the ability to enable and configure a proctored assessment directly in Ultra courses. This document will go into detail about how to use the APIs to register as a proctoring service with UEF.
Each UEF proctoring service is linked to its corresponding LTI proctoring placement in Learn by specifying the same unique handle in both places. All proctoring placements must provide a unique handle, and any UEF proctoring service designed to work with that Learn LTI placement must have the same handle.
sendMessage({
type: 'proctoring-service:register',
proctoringPlacementHandle: '<your_unique_handle>',
});
Learn Ultra discovers available proctoring services via its own internal API to Learn, and the unique handles provided by Learn are the source of record. UEF proctoring services will only show up in Ultra UI if Learn reports that a proctoring service with the same unique handle is available for use on the system.
A UEF portal has been added to the Assessment settings panel. After proctoring is enabled on the
assessment by an instructor, the portal allows a proctoring service to render its own settings. The
portal's selector is course.content.assessment.settings.proctoring.panel.settings
, and will pass
along the courseId
and contentId
as parameters in the portal:new
message:
{
"courseId": "<course_id>",
"contentId": "<content_id>"
}
When an instructor saves the Assessment settings, a UEF message will be passed to the extension, and Ultra will wait for the response indicating that the save succeeded or failed. When a successful response is received from the integration, the selected proctoring service will be enabled on the assessment.
The message from Ultra will provide a correlationId
that will need to be provided when responding
to the message, as well as the courseId
, proctoringPlacementHandle
and contentId
of the item
being saved. It will also include the enabled state of proctoring:
{
"data": {
"eventType": "proctoring-service:settings-saved",
"correlationId": "<uuid>",
"courseId": "<course_id>",
"contentId": "<content_id>",
"proctoringPlacementHandle": "<unique_placement_handle>",
"enabled": <boolean>
}
}
After sending that message to the extension, UEF expects an extension to check its rendered DOM and save off the corresponding settings by whatever mechanism it communicates to its tool implementation (i.e. via a REST call).
The UEF extension must respond with a success or failure message within 5 seconds:
sendMessage({
type: 'proctoring-service:settings-saved:response',
correlationId: '<uuid>',
success: true,
});
sendMessage({
type: 'proctoring-service:settings-saved:response',
correlationId: '<uuid>',
success: false,
// you may supply a human readable error message to display to the user
error: 'There was an error saving the configuration',
});
Generated using TypeDoc