From 19c86ed4d10eb5ee8f67069987ed949452ceb578 Mon Sep 17 00:00:00 2001 From: Silas Santini <70163606+pancakereport@users.noreply.github.com> Date: Mon, 23 Mar 2026 17:51:48 -0700 Subject: [PATCH 1/3] draft of canvas knowledge --- canvas/dev-keys.md | 8 ++++++++ canvas/index.md | 11 +++++++++++ canvas/misc-knowledge.md | 12 ++++++++++++ canvas/sandbox.md | 12 ++++++++++++ 4 files changed, 43 insertions(+) create mode 100644 canvas/dev-keys.md create mode 100644 canvas/misc-knowledge.md create mode 100644 canvas/sandbox.md diff --git a/canvas/dev-keys.md b/canvas/dev-keys.md new file mode 100644 index 0000000..211fec4 --- /dev/null +++ b/canvas/dev-keys.md @@ -0,0 +1,8 @@ +--- +layout: page +title: Developer Keys +parent: Canvas +nav_order: 2 +--- + +# Developer Keys \ No newline at end of file diff --git a/canvas/index.md b/canvas/index.md index 6b90246..a3399bb 100644 --- a/canvas/index.md +++ b/canvas/index.md @@ -6,7 +6,18 @@ nav_order: 3 # Canvas + + ## Quick Links +### Canvas Documentation * [Community Page](https://community.instructure.com/en/categories/canvas) * [Resource Page](https://community.instructure.com/en/kb/canvas-resource) * [Developer Documentation](https://developerdocs.instructure.com/services/canvas) + +### UC Berkeley Documentation +* [How do I request an administrator role in bCourses?](https://berkeley.service-now.com/kb_view.do?sysparm_article=KB0011247) +* [bCourses Roles and Permissions Summary Matrix](https://docs.google.com/spreadsheets/u/0/d/e/2PACX-1vSz0eGkR8ZobudN62PsXyohlO1gHX8_3oE28SOngVhyxHvzWbixMMHE76wYBtYUwn024rtWi6l0OcWL/pubhtml?pli=1) Toggle between "course roles" and "account roles." +* [bCourses Admin Roles and Permissions](https://berkeley.service-now.com/kb/en/bcourses-admin-roles-and-permissions?id=kb_article_view&sysparm_article=KB0011079) + +## More Questions? +You can ask on the `#cavnas-dev-support` channel in EECS Crossroads for help from CDSS faculty, staff, and TAs. You can also open a ServiceNow ticket by emailing bcourseshelp AT berkeley DOT edu. \ No newline at end of file diff --git a/canvas/misc-knowledge.md b/canvas/misc-knowledge.md new file mode 100644 index 0000000..3a9d103 --- /dev/null +++ b/canvas/misc-knowledge.md @@ -0,0 +1,12 @@ +--- +layout: page +title: Misc Knowledge +parent: Canvas +nav_order: 3 +--- + +# Miscellaneous Canvas Knowledge + +## Student ID Numbers +* Student IDs (SIDs) are found in canvas under "SIS User ID" or "SIS ID." Sometimes, a SID is unavailable so the value will be "UID:*******" (canvas login ID). +* Not all SIDs are 10 digits, but all newly issued ones are. \ No newline at end of file diff --git a/canvas/sandbox.md b/canvas/sandbox.md new file mode 100644 index 0000000..ede232b --- /dev/null +++ b/canvas/sandbox.md @@ -0,0 +1,12 @@ +--- +layout: page +title: Sandbox +parent: Canvas +nav_order: 1 +--- + +# Canvas Sandbox +We have access to a [canvas sandbox environment](https://ucberkeleysandbox.instructure.com/login/canvas). This is a separate, development canvas instance from the production [bCourses](https://bcourses.berkeley.edu/) canvas instance. This separate environment allows for fast development work, not gated by communication with the bCourses team. + +To be added to the sandbox, message in the `#cavnas-dev-support` channel in EECS Crossroads. Be sure to include what kind of development work you're planning on so we can add you as an admin if necessary. + From e2add87776157daa78c7684fffb41fcb6a41b720 Mon Sep 17 00:00:00 2001 From: Silas Santini <70163606+pancakereport@users.noreply.github.com> Date: Tue, 24 Mar 2026 11:23:56 -0700 Subject: [PATCH 2/3] canvas docs --- canvas/canvas-users.md | 55 ++++++++++++++++++++++++++++++++++++++++ canvas/dev-keys.md | 24 +++++++++++++++++- canvas/index.md | 10 +------- canvas/misc-knowledge.md | 12 --------- canvas/sandbox.md | 4 +-- 5 files changed, 81 insertions(+), 24 deletions(-) create mode 100644 canvas/canvas-users.md delete mode 100644 canvas/misc-knowledge.md diff --git a/canvas/canvas-users.md b/canvas/canvas-users.md new file mode 100644 index 0000000..7d205ef --- /dev/null +++ b/canvas/canvas-users.md @@ -0,0 +1,55 @@ +--- +layout: page +title: Canvas Users +parent: Canvas +nav_order: 3 +--- + +# Canvas Users + +## Adding Users +* [How do I add users?](https://community.instructure.com/en/kb/articles/660963-how-do-i-add-users-to-a-course#add-new-user) +* [How do I add an admin?](https://community.instructure.com/en/kb/articles/661407-how-do-i-add-an-admin-to-an-account) +* [SIS Import Format Documentation](https://developerdocs.instructure.com/services/canvas/sis/file.sis_csv) +* SIS Sheet (Non-students): + +| user_id | login_id | email | first_name | last_name | full_name | sortable_name | canvas_password_notification | declared_user_type | status | account_id | authentication_provider_id | +| :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | +| UID:952109 | ball | ball@berkeley.edu | Michael | Ball | Michael Ball | Ball, Michael | TRUE | administrative | active | 1 | canvas | + +Likely, you won't have the permissions to add users or promote to admin as linked above on the production bCourses Canvas instance, but these articles are still useful for use in the [Sandbox]({{ 'canvas/sandbox' | relative_url }}). For production bCourses, check out: +* [How do I request an administrator role in bCourses?](https://berkeley.service-now.com/kb_view.do?sysparm_article=KB0011247) +* [bCourses Roles and Permissions Summary Matrix](https://docs.google.com/spreadsheets/u/0/d/e/2PACX-1vSz0eGkR8ZobudN62PsXyohlO1gHX8_3oE28SOngVhyxHvzWbixMMHE76wYBtYUwn024rtWi6l0OcWL/pubhtml?pli=1) Toggle between "course roles" and "account roles." +* [bCourses Admin Roles and Permissions](https://berkeley.service-now.com/kb/en/bcourses-admin-roles-and-permissions?id=kb_article_view&sysparm_article=KB0011079) + + +## Available IDs +* `User ID` / `UID` / `directory ID`: exposed as `sis_login_id` in Canvas. + * Numeric, sequential, monotonically increasing from the date of creation of CalNet. + * Immutable. + * Technically not FERPA procteded. +* `Student ID`: exposed as sis_user_id in Canvas for current students. + * Comes in many forms. Not all SIDs are 10 digits, but newly issued ones are. + * Immutable. + * FERPA protected. +* `Cnavas User ID`: created by Canvas for use internal to Canvas. + * Numeric. + * Immutable. +* `CalNet ID`: a public facing user name. + * String. + * Mutable. +* `Email`: often the same as CalNet ID. + * String. + * Mutable. + + +## Emails +* We don't recommend using emails as primary keys. + * While emails are unique, they are not a singular identifier of a person. A person may change their [CalNet ID](https://calnet.berkeley.edu/calnet-me/manage-my-calnet-account/you-change-your-calnet-id). In most cases, the updated CalNet ID is used, however the first CalNet ID is not deleted so it may still surface. + * Additionally, people may set up email aliases. It can be annoying to detect when an alias is provided in place of a login email. + + +## Student ID Numbers in Canvas +* Student IDs (SIDs) are found in Canvas under "SIS User ID" or "SIS ID." +* Sometimes, a SID is unavailable so the value will be "UID:*******" (Canvas user ID). +* Because of this, do not assume that SIS User IDs are numeric. \ No newline at end of file diff --git a/canvas/dev-keys.md b/canvas/dev-keys.md index 211fec4..acbb081 100644 --- a/canvas/dev-keys.md +++ b/canvas/dev-keys.md @@ -5,4 +5,26 @@ parent: Canvas nav_order: 2 --- -# Developer Keys \ No newline at end of file +# Developer Keys + +From the [official Canvas documentation](https://developerdocs.instructure.com/services/canvas/oauth2/file.developer_keys): + +> "Developer keys are OAuth2 client ID and secret pairs stored in Canvas that allow third-party applications to request access to Canvas API endpoints via the OAuth2 flow. Access is granted after a user authorizes an app and Canvas creates an API access token that’s returned in the final request of the OAuth2 flow. +> Developer keys created in a root account, by root account administrators or Instructure employees, are only functional for the account they are created in and its sub-accounts... By scoping the tokens, Canvas allows root account administrators to manage the specific API endpoints that tokens issued from a developer key have access to." + +Said another way, the API server (Canvas) validates third-party apps (domain+redirect URI) and API key/API secret, and makes a request. Requests can authenticate users and provide information available on Canvas. + +## Use in Development +You can complete development work and test dev keys on the [Sandbox]({{ 'canvas/sandbox' | relative_url }}). + +Individual persons do not need individual dev keys; you can (and should) re-use dev keys within development groups. For example, one dev key has been used by multiple iterations of CS61A and other course staff for development work on [sections]({{ 'course-software/seamless-learning/sections' | relative_url }}) for multiple semesters. When the domain, routes (redirect URIs) and scopes are the same, you can (and should) share the use of a single dev key. + +We recommend that scoped keys are turned on even during development. Keys must be scoped in production, so doing this step early will decrease headaches later. If you have separate development efforts on the same app happening simultaneously that require different scopes, you may want to create separate dev keys. However, please keep dev keys created to a minimum. + +## Use in Production +Once you have verified your workflow in your development environment using a dev key for the Sandbox AND you've determined a minimal set of scopes, you're ready to request use in production. A staff (non-student) or faculty member should reach out to bcourseshelp AT berkeley DOT edu. The process of granting a production key includes Docusign. + +## More on OAuth2 +[Canvas Oauth2 Overview](https://developerdocs.instructure.com/services/canvas/oauth2/file.oauth) + +If something is going wrong with authentication, make sure that what is listed in the developer key is correct. Redirect URIs must match **exactly.** diff --git a/canvas/index.md b/canvas/index.md index a3399bb..45c1cbe 100644 --- a/canvas/index.md +++ b/canvas/index.md @@ -6,18 +6,10 @@ nav_order: 3 # Canvas - - ## Quick Links -### Canvas Documentation * [Community Page](https://community.instructure.com/en/categories/canvas) * [Resource Page](https://community.instructure.com/en/kb/canvas-resource) * [Developer Documentation](https://developerdocs.instructure.com/services/canvas) -### UC Berkeley Documentation -* [How do I request an administrator role in bCourses?](https://berkeley.service-now.com/kb_view.do?sysparm_article=KB0011247) -* [bCourses Roles and Permissions Summary Matrix](https://docs.google.com/spreadsheets/u/0/d/e/2PACX-1vSz0eGkR8ZobudN62PsXyohlO1gHX8_3oE28SOngVhyxHvzWbixMMHE76wYBtYUwn024rtWi6l0OcWL/pubhtml?pli=1) Toggle between "course roles" and "account roles." -* [bCourses Admin Roles and Permissions](https://berkeley.service-now.com/kb/en/bcourses-admin-roles-and-permissions?id=kb_article_view&sysparm_article=KB0011079) - ## More Questions? -You can ask on the `#cavnas-dev-support` channel in EECS Crossroads for help from CDSS faculty, staff, and TAs. You can also open a ServiceNow ticket by emailing bcourseshelp AT berkeley DOT edu. \ No newline at end of file +You can ask on the `#canvas-dev-support` channel in EECS Crossroads for help from CDSS faculty, staff, and TAs. You can also open a ServiceNow ticket by emailing bcourseshelp AT berkeley DOT edu. \ No newline at end of file diff --git a/canvas/misc-knowledge.md b/canvas/misc-knowledge.md deleted file mode 100644 index 3a9d103..0000000 --- a/canvas/misc-knowledge.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -layout: page -title: Misc Knowledge -parent: Canvas -nav_order: 3 ---- - -# Miscellaneous Canvas Knowledge - -## Student ID Numbers -* Student IDs (SIDs) are found in canvas under "SIS User ID" or "SIS ID." Sometimes, a SID is unavailable so the value will be "UID:*******" (canvas login ID). -* Not all SIDs are 10 digits, but all newly issued ones are. \ No newline at end of file diff --git a/canvas/sandbox.md b/canvas/sandbox.md index ede232b..e309ca9 100644 --- a/canvas/sandbox.md +++ b/canvas/sandbox.md @@ -6,7 +6,7 @@ nav_order: 1 --- # Canvas Sandbox -We have access to a [canvas sandbox environment](https://ucberkeleysandbox.instructure.com/login/canvas). This is a separate, development canvas instance from the production [bCourses](https://bcourses.berkeley.edu/) canvas instance. This separate environment allows for fast development work, not gated by communication with the bCourses team. +We have access to a [Canvas sandbox environment](https://ucberkeleysandbox.instructure.com/login/canvas). This is a separate, development Canvas instance from the production [bCourses](https://bcourses.berkeley.edu/) Canvas instance. This separate environment allows for fast development work, not gated by communication with the bCourses team. -To be added to the sandbox, message in the `#cavnas-dev-support` channel in EECS Crossroads. Be sure to include what kind of development work you're planning on so we can add you as an admin if necessary. +To be added to the sandbox, message in the `#canvas-dev-support` channel in EECS Crossroads. Be sure to include what kind of development work you're planning on so we can add you as an admin if necessary. From 1dd87f71dd7ce21a60354bbf42eed96432b65dc9 Mon Sep 17 00:00:00 2001 From: Silas Santini <70163606+pancakereport@users.noreply.github.com> Date: Tue, 24 Mar 2026 11:42:20 -0700 Subject: [PATCH 3/3] fix scrollable region focusable --- canvas/canvas-users.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/canvas/canvas-users.md b/canvas/canvas-users.md index 7d205ef..041b011 100644 --- a/canvas/canvas-users.md +++ b/canvas/canvas-users.md @@ -13,10 +13,14 @@ nav_order: 3 * [SIS Import Format Documentation](https://developerdocs.instructure.com/services/canvas/sis/file.sis_csv) * SIS Sheet (Non-students): +