Skip to main content
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2023 API and CLI Change Log

2023 API and CLI Change Log

The Change Log Archive page displays previous API changes from 2023 noted in the API Change Log. The heading date indicates the date that the API code was made available in the production environment.

[2021-08-17 Update]
Please note upcoming changes to Canvas APIs: From the Engineering Deck: Instructure & GraphQL

2023-06-17

Announcement date: 2023-03-20

Changes

LTI Tools launched from New Quizzes can communicate with Canvas via postMessage

To utilize the frame size portions of the postMessage API when embedded in the New Quizzes Rich Content Editor, LTI tools using postMessage API must send messages to window.parent. Previously messages were sent to window.top.

 

2023-06-07

Announcement Date: 2023-06-01

Addition

Accounts API

List active courses in an account

  • Added parameter: public-If true, include only public courses. If false, exclude them. If not present, do not filter on this basis.

 

2023-05-24

[2023-05-23 Update: 416 error code is changed to 400 error code and a note is added to Context_module_progressions.]

CD2 CLI and Client Library Improvements

Affected Users: Admin

Using syncdb is possible even if the schema of the table hosted in CD2 evolves. If the client library detects a mismatch between the locally stored schema version and the schema version exposed by CD2, the table structure of the local database is updated to match the current structure of the data in CD2.

In addition, this release delivers the following minor improvements:

  • Improved error reporting (e.g. on missing environment variables for parameter-less DAPClient intializer)

  • Better alignment of client-side and server-side error definitions

  • Improved logging (use Python logger instance specific to the library)

  • Improved integration with static type checkers (e.g. mypy)

Note: users can upgrade to version 0.3.8 by executing the command: pip3 install instructure-dap-client --upgrade --upgrade-strategy=eager

 

CD2 API schema changes

Affected Users: Admin

Note: Due to the schema change, the access to the tables may be restricted while the changes take effect. Once the schema change is complete, there is no action item for the user unless a Status code 400 is received. In this case they will have to drop the table and request a new snapshot, as indicated by the error message.

We are going to add new columns to some already existing tables and make a few more necessary changes. 

The schema changes are backwards compatible.

Table

New column

Type

Description

attachments

root_attachment_id

integer <int64>

Foreign key to the source file from which this file was copied and created. Defaults to 'NULL' when this is the only copy.

groups

default_view

string

Default view for groups is the feed.

context_module_progressions

Note: Due to reload in the data lake, table must be dropped in the database and a new snapshot is triggered.

lock_version

integer <int32>

Lock version of the module progression.

quiz_questions

question_data.points_possible

number <float64>

Maximum number of points that can be awarded for answering the question correctly.

 

Table

Column

Change

learning_outcome_results

artifact_type

NULLABLE falsetrue

assignments

submission_types

enum extended with default_external_tool

 

 

2023-05-10

Announcement date: 2023-04-28

Canvas Data 2 API Specification

DAP Client Library Version 0.3.7 Update

Affected Users: Admin

CD2 CLI version 0.3.8 is published to PyPI. This release:

  • fixes a bug in the command syncdb whereby an INSERT … ON CONFLICT DO NOTHING would be executed instead of a DO UPDATE SET, causing updated records to be discarded in a synchronization process.
  • improves execution speed for column-level type and format conversions.
  • automatic schema upgrade for the replication target database

All users are strongly encouraged to update. Previous versions of the 0.3.x series will no longer be available.

Note for admin: Users of previous client library versions should issue a dropdb, followed by an initdb for all replicated tables to reconcile their local database with CD2. After this, it’s safe to issue a syncdb command in the new client library version 0.3.7. Commands snapshot and incremental are not affected.

 

Changed

Line Item/Result URLs are Unique with Multiple Subdomains

Announcement date: 2023-05-09

  • In Account Settings, the account’s primary domain found under the Canvas Cloud information header is used to generate third-party resource links. Previously, third-party tools who stored resource links on their side experienced an issue with institutions that had multiple domains. Those same resources could have had multiple IDs, one for each domain used.

Note: This does not require any action from the institution or the third-party tool, and will ensure that only one unique ID is created per resource.

The affected values are:

 

2023-04-26

Announcement Date: 2023-04-14

Addition

Configuring LTI Tools

Canvas_environment to LTI 1.3 Login request

Affected Users: Developers

For LTI 1.3 tool developers, the LTI 1.3 login initiation request now contains the new “canvas_environment” parameter, with possible values “prod”, “beta”, and “test”. Tools can use this to decide whether to redirect to a beta/test version of the tool before continuing with the LTI launch. 

Note: This replaces the “environments” config option for LTI 1.1 tools, since setting that option on 1.3 tools was not officially supported and resulted in failed 1.3 launches in non-prod Canvas environments.

For more technical information about using this feature, please see our Configuring LTI Advantage Tools API resource document.

Note for Admin: No action is needed, and there is no change to current behavior. Tools can choose to support this for their own development purposes.

Related Idea: [External Tools] Support environment variables for LTI 1.3

Updated 2023-04-20

 

Changes

Canvas Data 2 API Specification

DAP Client Library Version 0.3.6 Update

Affected Users: Admin

  • Enumeration types. Commands initdb and syncdb would create PostgreSQL enumeration types omitting the placeholder member “__dap_unspecified__”. Initialization and synchronization for tables that have columns of an enumeration type would fail when this value is received, now or in the future. Users should drop and re-create any tables that have enumeration types created by older versions.
  • Improved error reporting. Occasionally, Instructure API Gateway responds with an unexpected HTML payload instead of a JSON message that can de-serialize into a well-known type. This response is not understood by the client library, which throws an error. Error handling has been improved to give a more meaningful message to the user.
  • Stability improvements. Occasionally, the client library would fail on a timeout, printing a cryptic message to the user. The likelihood of these timeouts has been reduced.
  • Improved documentation. Code and documentation have drifted, they have been reconciled. New Python code examples have been added on how to initialize a local database, and keep it synchronized with data in CD2. (Previously, this functionality was undocumented.)
  • Improved execution speed. Removed extra layers of function calls and object instantiations in tight loops that are executed for each record as they are copied from CD2 to a relational database.
  • Improved error reporting. Some noisy warning messages that corresponded to no real error have been removed.

All users are encouraged to update (type in pip3 install instructure-dap-client --upgrade --upgrade-strategy=eager to receive the latest version of both the client library and all dependencies). Previous versions in the 0.3.x series are no longer available.

2023-04-15

Announcement date: 2023-03-20

Additions

New Quizzes

New Quiz CRUD Operations Endpoints

  • New API quiz related endpoints (create, get, list, update, and delete a quiz) have been added.
    • Note: Quiz Item related endpoints will be released at a later date. Additionally, at the time of this announcement there is a known issue when creating a course and trying to create a New Quiz with the API without launching any New Quizzes on the UI, users will receive an error. The workaround is to create and build one New Quiz in the course. This should be resolved before the production release. 

For more information, see the New Quizzes quiz operations API in beta blog.

 

Announcement Date: 2023-03-28

New Quizzes

New Quiz Item CRUD Operations Endpoints 

  • New API quiz item related endpoints (get, list, create, update, delete a quiz item) have been added.

Note: Beta Availability date is 2023-03-30

2023-04-12

CLI Update

Announcement Date: 2023-04-05

Version 0.3.1 to DAP Client Library and CLI includes:

  • fixes a regression with incremental queries where interchanged use of naive and timezone-aware datetime instances in library code can cause updates to be missed with non-UTC timezones
  • fixes documentation of public-facing member functions where the functions had wrong or misleading doc-string summary and/or parameter descriptions
  • fixes a race condition in synchronizing a local database in which the same objects were manipulated both in a synchronous and an asynchronous context with the risk of data loss
  • introduces new package dependencies aiohttp and aiofiles for asynchronous data processing
  • removes direct package dependency on requests

2023-02-15

Announcement date: 2023-02-03

Changed

Line Item/Result URLs are Unique with Multiple Subdomains

  • In Account Settings, the account’s primary domain found under the Canvas Cloud information header is used to generate third-party resource links. Previously, third-party tools who stored resource links on their side experienced an issue with institutions that had multiple domains. Those same resources could have had multiple IDs, one for each domain used.

Note: This does not require any action from the institution or the third-party tool, and will ensure that only one unique ID is created per resource.

The affected values are:

Added

Course Pacing API 

Course Pacing Endpoints

  • Course Pacing API documentation for the course pace endpoints has been added. 

Note: Section pace endpoints are not documented at the time of this change log release.

 

2023-01-04

Changed

SIS Imports API

Shorten Duration of SIS Error Attachment

  • The errors_attachment URL generated in the response of the /api/v1/accounts/:id/sis_imports API has been reduced to one hour. If the download URL is expired, an authenticated user can regenerate a new URL by using sis_imports API endpoint again.

 

View 2022 Canvas API Change Log Archive

Subscribe to this document for content updates. To learn how, see Canvas Change Log FAQ 

Was this article helpful? Yes No
Embed this guide in your Canvas course:

Note: You can only embed guides in Canvas courses. Embedding on other sites is not supported.