Appendix A: Enforcing Scopes
If your school enables scoping on your developer keys, below are the scopes that need to be enabled in order to use the TestOut EduApp:
Assignment Group: | url:GET|/api/v1/courses/:course_id/assignment_groups |
Assignment: | url:GET|/api/v1/courses/:course_id/assignments |
Assignment: | url\:POST|/api/v1/courses/:course_id/assignments |
Submission: | url:GET|/api/v1/courses/:course_id/assignments/:assignment_id/submissions/:user_id |
Submission: | url:GET|/api/v1/courses/:course_id/assignments/:assignment_id/submissions |
Submission: | url\:PUT|/api/v1/courses/:course_id/assignments/:assignment_id/submissions/:user_id |
Submission: | url:GET|/api/v1/courses/:course_id/students/submissions |
Module: | url:GET|/api/v1/courses/:course_id/modules/:module_id/items |
Module: | url\:POST|/api/v1/courses/:course_id/modules/:module_id/items |
Module: | url\:PUT|/api/v1/courses/:course_id/modules/:module_id/items/:id |
Module: | url:GET|/api/v1/courses/:course_id/modules/:module_id/items/:id |
Module: | url:GET|/api/v1/courses/:course_id/modules |
Module: | url\:POST|/api/v1/courses/:course_id/modules |
Courses: | url:GET|/api/v1/courses/:course_id/users |
Courses: | url:GET|/api/v1/users/:user_id/courses |
Or enable the entire scope (or operations) for:
- Assignment Groups (GET)
- Assignments (GET,POST)
- Submissions (GET,PUT)
- Modules (GET,PUT,POST)
- Courses (GET)
When finished, press Save Key.
Appendix B: Canvas Scopes for Developer Keys
TestOut’s Canvas EduApp requires a more robust level of security than some other content providers. In the table below you will see a list of scopes for which TestOut’s Canvas EduApp needs Canvas permissions; scopes and associated permissions being directly related to the creation of a Developer Key. Also included within the table is the reason why we need the permission.
Two examples of how TestOut uses the Canvas Developer ID and Key:
- For deep linking content and putting them into the correct assignment group and module. A school could certainly manually create LTI links within a respective assignment or module group without using the EduApp.
- For posting grades back to Canvas for assignments that were not clicked on, e.g. student clicks 1.1.1 and then completes 1.1.1 through 1.1.9. With an LTI integration we would only pass back grade for 1.1.1 but not for any of the other completed assignments. The student would have to click on each link and complete the assignment so that the grade is passed back to Canvas for it. For us to send grades back for assignments that were not clicked on, we need to access the Canvas API and set the grades for those assignments. To access the Canvas API we need a Developer ID and Key.
The table:
Scope |
Permissions given |
Reason needed |
Get assignment groups for a course |
To populate the list of groups where a newly created assignment may be added |
|
Get assignments in a course |
To check for assignments in order to synchronize grades for them |
|
Create as assignment in a course |
For creating new assignments through the EduApp |
|
url:GET|/api/v1/courses/:course_id/assignments/:assignment_id/submissions/:user_id |
Get submissions for an assignment by a student |
To check for grades received by a student for a given assignment |
url:GET|/api/v1/courses/:course_id/assignments/:assignment_id/submissions |
Get submissions for all students for an assignment |
To check grades in order to sync them with LabSim for a given assignment. |
url:PUT|/api/v1/courses/:course_id/assignments/:assignment_id/submissions/:user_id |
Update the score for an assignment for a student |
To synchronize and update the grade in Canvas for a given student and assignment. |
Get the list of links in a module for a course |
To check for existing links in a module |
|
url:POST|/api/v1/courses/:course_id/modules/:module_id/items |
Create a link in a module |
For creating links in modules for assignments created by the EduApp |
url:PUT|/api/v1/courses/:course_id/modules/:module_id/items/:id |
Update the link in a module |
For updating existing links in modules for an assignment created by the EduApp |
url:GET|/api/v1/courses/:course_id/modules/:module_id/items/:id |
Get a specific link is a module |
Get details on a link in a module so that they can be updated |
Get a list of modules in the course |
Get the list of modules to populate the drop down for creating assignments and their associated links in the module |
|
Create a module in the course |
For creating a new module to create links in when using the EduApp to create links. |
|
Get all submissions for all students in a course. |
To check grades in order to sync them with LabSim for the course being checked. |
|
Get the list of users in a course |
To check for grades for students in a course in order to synchronize their grades with LabSim |
|
Get the list of courses for a user |
To get the list of courses that the current logged in user has access rights to so that the grades in those courses can be synchronized with LabSim |
· For additional information from Canvas, at your discretion please reference https://community.canvaslms.com/