Semestra

Connect Canvas

Link Semestra to your Canvas account, a program and its courses.

Semestra connects to learning platforms through providers. Canvas is the only provider today. A connection reads from Canvas with your own credentials. Semestra changes nothing on Canvas unless you turn on Allow changes on the platform under global settings → Integrations → Sync; for now that only marks an announcement read on Canvas when you open it in Semestra.

There are three levels, each set up once:

LevelWhereWhat it holds
ConnectionGlobal settings → Integrations → LMS connectionsCanvas address and credentials. You can have several
ProgramProgram settings → Integrations → LMSWhich connection this program's courses use
CourseCourse settings → Integrations → LMSWhich Canvas course this course is linked to

1. Add a connection

In Canvas, open Account → Settings and choose New access token under Approved integrations. Copy the token; Canvas shows it only once.

In Semestra, add an LMS connection, pick Canvas, and enter your Canvas address (for example https://school.instructure.com; https:// is added if you leave it out) and the token.

Semestra checks the token against Canvas before saving. The token is stored encrypted and only a masked hint is shown afterwards. Changing the address requires entering the token again, so a saved token is never sent to a different server.

Connections are re-checked every six hours. A connection whose token was revoked or expired is marked with an error until you update it.

Sign in with a school account

Self-hosted instances that set SEMESTRA_LMS_CANVAS_SIGN_IN can connect without making a token: when you add a connection, choose School account instead of API token. Read the notice about the risks and continue if you accept them, then follow the three steps. Whether to use this is your decision, and Semestra accepts no responsibility for any consequences.

Enter your Canvas address, which must use https://.

Choose Open Canvas login, sign in on your school's page and finish any verification. Semestra never sees your password.

Canvas stops on a “Page Not Found” page at sso.canvaslms.com. That is expected: the address carries the sign-in code. Copy its full address into Address after sign-in and choose Check and save. The code in it lasts a few minutes, so sign in again if it has expired.

Semestra stores the resulting tokens encrypted and renews the access token on its own, so the connection lasts until the sign-in is ended. Deleting the connection or replacing its sign-in also tries to end the old sign-in on Canvas. If that fails, for example because Canvas can't be reached, remove Semestra yourself under Approved integrations in Canvas. Removing it there makes the connection show an error until you sign in again.

This method uses the Canvas Android app's OAuth client and identifies itself as that app. Instructure does not offer it for third-party apps: it may be against your school's policies or the Canvas terms, and it can stop working at any time. Signing in here might also sign you out of the Canvas app on your phone, or the other way round. Canvas sites that the mobile apps don't know, such as many on-premises ones, can't use it. If you are unsure, use a personal access token.

2. Bind a program

In the program's settings, choose the connection its courses use. While any course of the program is linked, the binding cannot be changed or removed.

Either import courses from Canvas, which links them as they are created, or pick the Canvas course in an existing course's settings → Integrations → LMS. A Canvas course can be linked to only one course per program, and a year-long course has a single link. The same place refreshes the course's details from Canvas, links a different course or unlinks it.

Each link has a Calendar and assignment changes switch. When it is off, the course's Canvas calendar events leave the calendar and assignment changes are no longer detected; the Canvas tab and Sem can still read the course.

  • Canvas tab (a plugin, installed per account): announcements, assignments and grades (quizzes and grades in one list), modules, pages, files and the syllabus of the linked course, read live from Canvas. Tabs the app can't show itself, such as People or Piazza, open in Canvas. Pages, announcements, assignment descriptions and the syllabus use Semestra's typography by default; Canvas style keeps their colors and layout from Canvas (except styles from the school's theme files). The menu next to the title switches for the moment; the default is under Settings → Plugins → Canvas tab.
  • Calendar: Canvas calendar events of courses with Calendar and assignment changes on appear in the term calendar with a Canvas mark, and their details offer Open in Canvas. Assignments appear once you import them, as to-dos.
  • To-dos that follow submissions: when an imported assignment shows as submitted in Canvas, its to-do is checked off (whether it was imported as a to-do or as an assessment). Each assignment is checked off once, so a to-do you uncheck stays open. Semestra checks about every hour, for assignments due in the past two weeks or later. Turn it off under global settings → Integrations → Sync.
  • Announcements card for course and term boards.
  • Sem and MCP can read the same data (see MCP tools).

Reads are cached for five minutes; refreshing in the Canvas tab reads the course again right away.

Self-hosted Canvas

A Canvas server on a private network, or one served over plain http://, needs SEMESTRA_ALLOW_PRIVATE_EGRESS=true (the default of the self-hosting compose file). On the hosted version only public https:// addresses work.

Not supported yet

New Quizzes and discussion checkpoints are not read.