This project provides a collection of utilies used to administer Harvard Academic Technology's instance of Canvas at the course level. The project is an LTI tool, i.e. installed via LTI.
Uses the standard Django ECS Fargate deployment process.
pip install -r canvas_manage_course/requirements/local.txt
Particular difficulties are sometimes found when installing the following directly on Mac OS X in a python environment:
- psycopg2 (at install time)
- cx_Oracle (at run time, if oracle instant client is not available or configured properly)
Run, and ensure the ENV environment var will be able to point the django-ssm-parameter-store library to appropriate SSM params (either locally, via a file, or on SSM, in which case ensure your local default AWS profile is authenticated to the correct environment and that you're on VPN so you can connect to non-local databases and caches).
Note that the runserver_plus default server and port is 127.0.0.1:8000. If your LTI configuration was set up with a different port, e.g. 8443, you'll need to specify it as in the snippet below.
export ENV=dev
export DJANGO_SETTINGS_MODULE=canvas_manage_course.settings.local
# ensure you're connected to VPN
python manage.py runserver_plus --cert-file cert.crt
# to use a different port:
python manage.py runserver_plus 127.0.0.1:8443 --cert-file cert.crt
Access at https://local.tlt.harvard.edu:(port)/.
This tool uses the django-canvas-lti-school-permissions library, which authorizes LTI launches against a database of permissions. The permissions are based on the subaccount that a course belongs to. So when launching from a test course in the AcTS (Academic Technology) subaccount in Canvas, an authorization row should be present for school acts
or *
and the main tool, canvas_manage_course
, along with any specific utilities present in the dashboard, e.g. The tool uses the database name canvas_course_admin_tools
and the appropriate permissions table is lti_school_permissions_schoolpermission
.
For example:
id | permission | canvas_role | school_id |
---|---|---|---|
1 | canvas_manage_course | Account Admin | acts |
22 | class_roster | Account Admin | acts |
64 | manage_people | Account Admin | acts |
1050 | manage_school_permissions | Account Admin | acts |
85 | manage_sections | Account Admin | acts |