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-12-16
Announcement date: 2023-11-10
CD2 Breaking Change
Please see Phase 1 released 2023-11-22.
Major schema changes are coming.
Table |
Column |
Changes |
Description |
web_logs |
user_agent_id |
Phase 2: Column is removed. |
HTTP methods used in the Canvas API. |
user_agents |
Full table |
Phase 2: the table is removed completely. No queries possible after 16 December, 2023. |
2023-11-22
Announcement date: 2023-11-10
Changes
LTI Advantage API calls, which encompass any API request initiated by an LTI 1.3 tool, such as those involving the Assignments and Grades Service, respond with an HTTP 404 Not Found status code in cases where the subject of the call, typically a course, has been deleted. This behavior aligns with the standard practice observed in the Canvas API, where the call is prevented from continuing under such circumstances.
CD2 API and CLI Updates
In order to improve stability and performance, some major revisions are triggered to the weblogs and user_agent tables, thus the following improvements and schema changes are introduced.
The schema version of the tables below will be increased.
Table |
Column |
Changes |
Description |
web_logs |
New: user _agent, type <string> |
Introducing a new column: user_agent, type <string> The maximum length of the string is 255. Any user agent longer than 255 characters will be replaced by the “__dap_oversized_truncated__" string literal. |
User agent, as the header received from the user's browser/client software. |
web_logs |
user_agent_id |
Phase 1: Will populate the user_agent_id field with NULL going forward and populate the user_agent column instead. |
HTTP methods used in the Canvas API. |
user_agents |
Full table |
Phase 1: stop adding new rows to this table effective 11.10.23. |
|
web_logs |
web_application_controller |
From ENUM to
|
The controller that the Canvas web application used to service this request. |
web_logs |
web_application_action |
From ENUM to |
The action in the Canvas web application used to service this request. |
Note: Customers are strongly encouraged to adjust their existing queries (if applicable) as soon as possible. The user_agents table will be deprecated on 16 December, 2023 and users should switch over to using the new column. In the meantime, in order to avoid hidden inconsistencies in reports which this change may introduce downstream, a similar query to leverage both tables can be used if needed:
SELECT web_logs.*, COALESCE(web_logs.user_agent, user_agents.http_user_agent) AS user_agent
FROM web_logs
LEFT JOIN user_agents ON web_logs.user_agent_id = user_agents.id;
CLI changes: Enhancements to support the user_agent_id related change.
For those who use the CLI tool, it will automatically populate the new user_agent column in the weblogs table with the values from the user_agents table. (Pre-condition: the user_agents table exists in the DB/DW along with the web_logs. If it is not present, the tool will not be able to pre-populate the column).
2023-11-13
Announcement date: 2023-11-10
CD2 API and CLI Update
The schema version of the tables below will be increased.
Table |
Column |
Changes |
Description |
content_tags |
context_id |
NULLABLE false → true |
2023-11-02
Announcement date: 2023-11-02
CD2 API Schema Update
Affected users: Admin
New ENUM values are added to the web_logs table schema. Additionally, the schema changes are backwards compatible.
The schema version of the table is increased.
Table |
Column |
New ENUM values |
Description |
web_logs |
web_application_controller |
smart_search |
The controller that the Canvas web application used to service this request. |
web_logs |
HTTPMethod |
MERGE, |
HTTP methods used in the Canvas API. |
2023-10-21
Announcement date: 2023-09-18
Addition
- Recurring events in a series have a series_uuid to identify the series it belongs to and an rrrule value that describes the schedule for how the events in the series release. The first event in the series has series_head value that is true.
- Calendar_event [duplicate][frequency]
- Calendar_event [rrule]
- The parameter which description is updated.
- Calendar_event [rrule]
- The parameter which description is updated.
- PUT /api/v1/media_attachments/:attachment_id/media_tracks
- GET /api/v1/media_attachments
- GET /api/v1/courses/:course_id/media_attachments
- GET /api/v1/groups/:group_id/media_attachments
- PUT /api/v1/media_objects/:media_object_id
- PUT /api/v1/media_attachments/:attachment_id
Changed
- PUT /api/v1/media_objects/:media_object_id/media_tracks
- GET /api/v1/media_objects
- GET /api/v1/courses/:course_id/media_objects
- GET /api/v1/groups/:group_id/media_objects
2023-10-15
Announcement date :2023-09-27
Beta Availability date: 2023-09-29 (Edited on 2023-09-28)
Catalog Data Available in Canvas Data 2
Affected Users: Admin
A new data source is added to Canvas Data 2: Catalog product tables.
As part of this release, a new namespace is introduced: catalog
Tables exposed: See the Data Access Platform documentation page. (Contains foreign key (FK) relations to Catalog and Canvas tables.)
Also see the CD1 to CD2 mapping sheet and the updated Entity relationship diagram (ERD).
Example query: {{BASE_URL}}/dap/query/catalog/table/orders/data
The schema of the table can be queried via: {{BASE_URL}}/dap/query/catalog/table/orders/schema
Those users will have Catalog datasets who are Catalog license owners. All other users will receive empty tables. Additionally, the CLI is prepared to handle Catalog tables. See the Client Library release notes below for more details.
Important: At this stage, the release is labeled as a BETA release, publicly available for anybody to try and provide feedback.
CLI and Python Library improvements
Affected users: Admin
A new version 0.3.14 of the client library is published to PyPI. From this version onwards, the CLI is supporting:
- Retrieving datasets (downloading snapshot/incremental query results) from the catalog namespace.
- Loading the downloaded datasets into a Postgres DB under the catalog namespace.
- Loading the downloaded datasets into a MySQL DB by adding the catalog prefix to each (i.e. catalog__order), in order not to overlap with Canvas or other tables in the future. (The namespace as a prefix is only added for the catalog tables).
Example: dap --initdb --connection-string mysql://scott:password@localhost/testd --namespace catalog --table orders
The default namespace in the CLI is canvas. In case the namespace is not defined, it is assumed that a canvas table is requested. Nevertheless, users are encouraged to consistently add the namespace in the commands as a best practice, to explicitly define to which product the queries refer to.
Important: At this stage, the release is labeled as BETA release, publicly available for anybody to try and provide feedback.
2023-10-11
Announcement date: 2023-09-29
Addition
- The API override title includes Course Pacing when applicable.
2023-09-27
Announcement date: 2023-09-27
CD2 API schema changes
Affected Users: Canvas Admins
New ENUM values are added to the web_logs table schema.
The schema changes are backwards compatible.
The schema version of the table will be increased.
Table |
Column |
Changes |
Description |
web_logs |
web_application_controller |
New ENUM values: webhooks, support_helpers/submission_lifecycle_manage, polling/poll_choices, polling/poll_submissions |
The controller that the Canvas web application used to service this request. |
web_logs |
web_application_action |
New ENUM values: activate_role, add_domain, group_alias, media_object_redirect, rubric_assessments_read_state, show_observer, check_title_availability, pages, open, requeue, course_creation_accounts |
The action in the Canvas web application used to service this request. |
2023-09-16
Announcement date: 2023-08-21
Changed
Create/link an Outcome and Update an Outcome- PFS-19845
- API accepts decaying_average as a calculating method. Similarly, when queried, api shows decaying_average as a calculation method.
- Note: Users who were using "decaying_average" when setting up new outcomes through the API are now using the updated standard decaying average.
Addition
Create/link an Outcome and Update an Outcome- PFS-19845
- API accepts weighted_average as a calculating method. Similarly, when queried, api shows weighted_average as a calculation method.
Outcomes Import Format Documentation
- When importing an outcome via CSV, the new weighted average calculation remains labeled as decaying_average and the new decaying average is added as standard_decaying_average.
2023-08-30
Announcement date: 2023-08-18
Addition
SIS Import Format Documentation
Diffing Mode documentation had the following addition:
- Likewise users removed between diffed batches can be marked as 'suspended' if the diffing_user_remove_status is set to suspended. If you prefer to leave removed objects alone in diffed imports, pass skip_deletes=true instead of either of these (this will apply to all object types, not just users and enrollments).
Related idea: [SIS] Treat missing users as "suspended" rather than "deleted" when Diffing
2023-08-23
Announcement date: 2023-08-23
CLI release version 0.3.11
Affected User: Canvas Admins
The Python Client Library and CLI will support the MySQL database protocol dialect.
Notes:
- This tool, similarly to the PostgreSQL, requests the data in JSON format, and uses the prepared statement of INSERT … ON CONFLICT … DO UPDATE SET to insert (or on conflict, update) the data in the database.
- Internally, it depends on Python libraries SQLAlchemy (which provides an object-relational mapping) and aiomysql.
- Warning: aiomysql is classified as being in alpha development status. Instructure cannot assume responsibility for any potential changes or consequences resulting from its usage.
- To update your CLI to this new version use the following command: pip3 install instructure-dap-client --upgrade --upgrade-strategy=eager
The tool will work with the following commands:
- init_db (to populate an empty (MySQL) database from a snapshot),
- sync_db (to insert new, delete, and update existing records returned by the incremental query)
- drop_db (delete the table from the database which was previously created with init_db).
Typically, the connection string looks as follows:
dialect://username:password@host:port/database
CLI examples for loading data to a MySQL DB:
- dap initdb --help
Example: dap initdb --db-connection-string mysql://username:password@host:port/database --namespace canvas --table accounts
- dap syncdb --help
Example: dap syncdb --db-connection-string mysql://username:password@host:port/database --namespace canvas --table accounts
- dap dropdb --help
Example: dap dropdb --db-connection-string mysql://username:password@host:port/database --namespace canvas --table accounts
Alternatively, one can choose to store the connection string in environmental variables. For more details please see the CLI documentation.
2023-08-16
Announcement date: 2023-08-10
Addition
The Create a login API is expanded to allow accounts with trust relationships to add logins to a existing users in another trusted account, like the SIS Import login.csv process already allows for, by adding the following fields:
- existing_user_id
- existing_integration_id
- existing_canvas_user_id
- root_account
2023-08-07
Announcement date: 2023-08-07
CD2 API schema changes
Affected User: Canvas Admins
New ENUM values are added to the web_logs as well as user_agents table schema.
The schema changes are backwards compatible.
The schema version of both tables will be increased.
Table |
Column |
Changes |
Description |
user_agents |
http_user_agent |
NULLABLE false → true |
The user agent string sent by the HTTP client. |
web_logs |
web_application_controller |
New ENUM values: api/v1/provisions, eportfolios_api, live_assessments/assessments, live_assessments/results |
The controller that the Canvas web application used to service this request. |
web_logs |
web_application_action |
New ENUM values: add_sftp_key, stuck_singletons, stuck_strands, summary_list, unconfirmed_channel_report, unstuck, health_prognosis |
The action in the Canvas web application used to service this request. |
web_logs |
http_methods |
New ENUM values: MKCOL, PROPPATCH, CHECKOUT, UNLOCK |
N/A |
2023-08-02
Announcement date: 2023-07-21
Changed
Outcomes Import Format Documentation
The following descriptions are updated:
- Calculation_method
- Calculation_int
- Mastery_points
- ratings
When the Manage a Course Content-add/edit/delete permission is disabled, users can no longer make changes to course settings via the API. This improves parity between the UI and the API.
2023-07-19
Announcement date: 2023-07-10
Addition
First_name and last_name are added to the Users API response by default.
2023-07-17
Announcement date: 2023-07-17
CD2 API schema changes
Affected User: Canvas Admins
New ENUM values are added to the web_logs table schema.
The schema changes are backwards compatible.
The schema version of the table will change from 1 to 2.
Table |
Column |
New ENUM values |
Description |
web_logs |
web_application_controller |
'jobs_v2', 'assignment_extensions', 'internal_analytics_dashboards_api', 'blackout_dates', 'internal_analytics_api', 'disable_post_to_sis_api', 'lti/token', 'moderation_set', 'alerts', 'account_grading_settings', 'outcomes_academic_benchmark_import_api', 'quizzes_respondus/security', 'support_helpers/due_date_cache', 'sftp_users', 'lti/subscriptions_api', 'jobs', 'lti/ims/tool_consumer_profile', 'quizzes/course_quiz_extensions', 'oauth_proxy', 'lti/ims/tool_proxy', 'grading_schemes_json', 'login/twitter', 'polling/polls', 'login/oauth', 'new_quizzes/quizzes_api', 'polling/poll_sessions', 'phone_home', 'demo_snapshots' |
The controller that the Canvas web application used to service this request. |
web_logs |
web_application_action |
'mark_all_as_read', 'list_google_docs', 'abort_all_pending', 'landing', 'reset', 'readiness', 'department_statistics_by_subaccount', 'invite', 'android_assetlinks', 'api_create_success', 'remove_alignment', 'restore_states', 'batch_retrieve', 'attachment_content', 'manage', 'closed', 'redirect_proxy', 'lookup', 'xml_schema', 'submissions_clear_unread', 'quota', 'advantage_access_token', 'delete_recording', 'migration_status', 'job_stats', 'delete_for_all', 'formatted_answer', 'get_courses', 'list_keys', 'mark_topic_unread', 'self_enrollment', 'test_ldap_bind', 'compress_dates', 'reset_verifier', 'deleted_index', 'outcome_result', 'preview_html', 'available', 'section_alias', 'clusters', 'start', 'internal_analytics', 'detail_list', 'update_sso_settings', 'item_details', 'multiple_gradeable_students', 'consortium_users', 'restore_user', 'disable_post_to_sis', 'batches', 'show_default_grading_scheme', 'turnitin_confirmation', 'list', 'grouped_info', 'fail', 'apple_app_site_association', 'universal_link_oauth2_dummy', 'test_ldap_connection', 'copy_course_status', 'deep', 'store', 'test_ldap_search', 'stop_debugging', 'registration_return', 'media_upload_url', 'opened', 'object_snippet', 'update_region', 'for_login', 'for_grader', 'set_csp_setting', 'test_ldap_login', 'api_file_status', 'clear_file_session', 'restore_message', 'message_redirect', 'prestart', 'add_users', 'category_index', 'resubmit_to_vericite' |
The action in the Canvas web application used to service this request. |
2023-07-05
Announcement Date: 2023-06-23
CLI and Python Library improvements
Affected User: Canvas Admins
CD2 API and CLI: new data source added, release contains the Canvas Apache weblog requests.
Due to this, a new namespace will be introduced: canvas_logs
Tables exposed: web_logs, user_agent
Example query: {{BASE_URL}}/dap/query/canvas_logs/table/web_logs/data
The schema of the table can be queried via: {{BASE_URL}}/dap/query/canvas_logs/table/web_logs/schema
Note to the user: as this table contains append only data, it can be very big, so we encourage the usage of incremental queries as opposed to snapshots whenever possible.
The CLI 0.3.9 version is prepared to handle this table and load it into a Postgres DB.
CD2 CLI release: 0.3.9
The Client Library will adopt an extensible plugin architecture. Integrations to various database engines would become plugins. This move opens up the opportunity to contribute integrations for other database engines in the future, e.g. add Oracle, MSSQL, MySQL or SQLite support in addition to PostgreSQL support that exists today. With the version 0.3.9 release, PostgreSQL support has been re-written as a plugin but remains bundled with the Client Library package. While the Python class interfaces may be subject to change, early adopters are welcome to explore the solution and leave feedback as we solidify the plugin framework.
Additional changes, and improvements:
- Added support for converting new data types, among which the UUID conversion is affecting the current schema (see known issues)
- Added keep-alive settings for the client to avoid possible timeout in some cases when transferring files over http
- Improved exception handling
2023-06-21
Announcement Date: 2023-06-09
API Addition
Save enabled account calendars
- Enabled_account_calendars[]- This addition displays only visible account calendars where the user has a user-account association and only calendars a user has added to the modal.
CLI and Python Library improvements
Affected User: Canvas Admins
A new version 0.3.8.2 of the client library is published to PyPI. It’s more lenient when it’s receiving timestamp values that don’t fully comply with RFC 3339 and ISO 8601. If the timestamp looks like a BCE date, it is replaced with 1 CE (the minimum possible date representable in the four-digit format). If the timestamp looks like a large CE date (e.g. 23000 CE), it is replaced with 9999 CE (the maximum possible date representable in the four-digit format).
Note to the user: To see which values were adjusted, enable the logging of these values into a log file with the newly introduced logfile command. Please note that it will collect all logs, not just the clamped values.
Example: dap --logfile cd2_cli.log initdb --connection-string postgresql://scott:password@localhost/testd --namespace canvas --table accounts
Details of each timestamp correction can be found in the logs by searching for “Timestamp format error encountered”.
Starting at version 0.4.0, the Client Library will adopt an extensible plugin architecture. Integrations to various database engines become plugins, the first plugin being PostgreSQL support. This move opens up the opportunity to contribute integrations for other database engines in the future, e.g. add Oracle, MSSQL, MySQL or SQLite support.
Note to user: Python programming interface changes slightly, command-line interface is not impacted.
CD2 API and CLI: new data source added, release contains the Canvas Apache weblog requests.
Due to this, a new namespace will be introduced: canvas_logs
Tables exposed: web_logs, user_agent
Example query: {{BASE_URL}}/dap/query/canvas_logs/table/web_logs/data
The schema of the table can be queried via: {{BASE_URL}}/dap/query/canvas_logs/table/web_logs/schema
Note to the user: as this table contains append only data, it can be very big, so we encourage the usage of incremental queries as opposed to snapshots whenever possible.
The CLI is prepared in an upcoming version to handle this table and load it into a Postgres DB.
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
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 false → true |
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:
- The URLs in the AGS claim in LTI 1.3 launch, as described by Learning Tools Interoperability Assignment and Grade Services Version 2.0 | IMS Global Learning Con....
- The URLs used as IDs returned in the various AGS endpoints, such as the "id" in Learning Tools Interoperability Assignment and Grade Services Version 2.0 | IMS Global Learning Con....
- The NRPS claim within the LTI 1.3 launch.
- The URL used as an ID field in the NRPS endpoints. For examples see the Learning Tools Interoperability Names and Role Provisioning Services Version 2.0 | IMS Global Learn....
2023-04-26
Announcement Date: 2023-04-14
Addition
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 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 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:
- The URLs in the AGS claim in LTI 1.3 launch, as described by Learning Tools Interoperability Assignment and Grade Services Version 2.0 | IMS Global Learning Con....
- The URLs used as IDs returned in the various AGS endpoints, such as the "id" in Learning Tools Interoperability Assignment and Grade Services Version 2.0 | IMS Global Learning Con....
- The NRPS claim within the LTI 1.3 launch.
- The URL used as an ID field in the NRPS endpoints. For examples see the Learning Tools Interoperability Names and Role Provisioning Services Version 2.0 | IMS Global Learn....
Added
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
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