2024 API and CLI Change Log
The Change Log Archive page displays previous API changes from 2024 noted in the API Change Log. The heading date indicates the date that the API code was made available in the production environment.
2024-12-18
Announcement Date: 2024-12-06
Addition
- Added Abort a Report endpoint.
Changed
- Restored the 404 error for the /accounts/:account_id/users/:user_id endpoint when attempting to view deleted users.
2024-11-29
Announcement date: 2024-11-29
Release Data Access Platform (DAP) CLI & Client Library v 1.3.0
New Features
- Added support for Microsoft SQL Server 2019 dialect
Improvements
- Handling cached query expiration from DAP Query API
- Adding DAP CLI & Lib version number to logs
- More straightforward database connection configuration for the Library
Known Issues
- Issue
- When running DAP CLI on Windows with native Python versions, users may encounter the following error when processing large tables: ErrorDataReceived - assert self._buffer, 'Data should not be empty'
- Status
- This issue has been observed but cannot yet be consistently reproduced. The team acknowledges the problem and is actively investigating the root cause.
- Next Steps:
- Updates will be provided as progress is made toward a resolution.
Supported Platforms
- The client library is now tested and supported on:
- Python versions:
- 3.11
- 3.12
- Operating systems:
- MacOS 14
- Ubuntu 22
- Windows 11, Windows Server 2022 (via WSL-based Python only)
- Database systems:
- PostgreSQL 16.1 or above
- MySQL 8.0 LTS and 8.4 LTS
- Microsoft SQL Server 2019
For Windows environments, the DAP client library is supported only when using Python within WSL (Windows Subsystem for Linux). Native Windows Python is not currently supported due to the known issue.
2024-12-09
Announcement Date: 2024-11-25
Addition
3 new columns for assigments table in canvas namespace in DAP Query API
- parent_assignment_id
- May contain foreign key references to other assignments.
- Existing rows created before this date will have NULL unless a snapshot is taken.
- type
- A varchar field, initially populated with “Assignment.”
- May support “SubAssignment” in the future.
- No NOT NULL constraint or default value in customer schema. Rows created before December 9, 2024, will show NULL without a snapshot.
- has_sub_assignments
- A boolean field indicating if an assignment contains sub-assignments.
- No NOT NULL constraint or default value in customer schema. Rows created before December 9, 2024, will show NULL unless updated via snapshot.
2024-11-20
Announcement Date: 2024-11-14
Addition
Index of active global notification for the user
- Added query parameter include_all which includes all global announcements, regardless of user’s role. Only available to account admins.
2024-10-24
Announcement Date: 2024-10-11
Addition
- Addition of an API that enables administrators and tool developers to create and delete new LTI 1.3 Resource Links. Access to this API is restricted to users who possess the Manage LTI and Manage Assignments and Quizzes permissions.
2024-10-23
Announcement Date: 2024-10-18
Changed
Updated access_token to be just token as utilized by the API.
2024-09-13
Announcement date: 2024-09-13
Release Data Access Platform (DAP) CLI & Client Library v 1.2.0
New Features
-
Added support for secure connections to MySQL and PostgreSQL databases, ensuring encrypted communication.
Improvements
- Error Handling for Parquet Files: The CLI now throws an exception when attempting to decompress parquet files, preventing unnecessary processing errors.
- Optimized Memory Footprint: Reduced memory usage for CLI processes, improving performance and efficiency, especially in cloud-based environments.
- Enhanced Logs for Issue Resolution: Added detailed system environment information (Python version, OS, database versions, and dependency packages) to logs, minimizing communication overhead between users and support teams when reporting and trying to solve issues.
Fixed Issues
- Fixed an issue with the client library running into a none_dealloc error when replicating data to a database, which occurred when running the client on Windows using Python 3.11.
Supported Platforms
- The client library is now tested and supported on:
- Python versions:
- 3.10
- 3.11
- 3.12
- Operating systems:
- MacOS 14
- Ubuntu 22
- Windows 11, Windows Server 2022
- Database systems:
- PostgreSQL 16.1 or above
- MySQL 8.2 or later
- Python versions:
2024-09-11
Announcement Date: 2024-08-23
Deprecation
- With the discontinuation of Faculty Journal feature, user_notes table is obsolete and removed from DAP Query API.
2024-08-28
Announcement Date: 2024-08-16
Addition
- Added course[post_manually]- Default is false. When true, all grades in the course must be posted manually, and will not be automatically posted. When false, all grades in the course will be automatically posted.
Related idea: [API] Add manually post grades setting to course API
Update an Account [Added 2024-09-05]
- Added account[settings][enable_as_k5_account][value]- Enable or disable Canvas for Elementary for this account
- Added account[settings][use_classic_font_in_k5][value]- Whether or not the classic font is used on the dashboard. Only applies if enable_as_k5_account is true.
Related Idea: [API] API access to enable Canvas for Elementary
2024-08-17
Announcement Date: 2024-07-23
Addition
- Addition of an API that enables administrators to update the Resource Link URL for content items, as well as modify any associated custom parameters. Access to this API is restricted to users who possess both the Manage LTI and Manage Assignments and Quizzes permissions.
2024-08-14
Announcement Date: 2024-08-02
Addition
- Added user[pronunciation]- Sets name pronunciation on the user profile. Profiles and name pronunciation must be enabled on the root account.
2024-07-20
Announcement Date: 2024-06-20
Addition
Modules API
Learning Object Dates API- API for accessing date-related attributes on assignments, quizzes, modules, discussions, pages, and files.
- Added Get a learning object's date information
- Added Update a learning object's date information
2024-07-17
Announcement Date: 2024-07-05
Addition
- Added include []=post_manually to the following API calls:
- Get a single course
- List your courses
Related idea: [API] Add manually post grades setting to course API
- Added include []=course_count and sub_account_count to the following API calls:
- Get the sub-accounts of an account API call
- List All Accounts
2024-06-19
Announcement Date: 2024-06-07
Addition
- Added allow_final_grade_override to the API documentation.
- Note: This update does not impact functionality.
Related idea: [API] Enable and Disable “Allow final grade override” option via API
2024-06-15
Announcement Date: 2024-05-22
Deprecation
- The top-level submittedAt claim is removed from the LTI Assignments and Grade Services (AGS) Score API.
Note: The canvas extension submitted_at and the LTI spec submission.submittedAt remain available. See the Learning Tools Interoperability (LTI) Assignment and Grade Services Specification for more information.
Changed
HTTP Response
- HTTP responses from Canvas are changed to lowercase response header names. See the HTTP Semantics standard (RFC 9110) for additional information.
Related Blog: Forthcoming Update to API Response Header Capitalization
2024-06-05
Announcement Date: 2024-05-24
Addition
Course Object
- Added the current state of the course, also known as ‘status’. The value will be one of the following values: ‘unpublished’, ‘available’, ‘completed’, or ‘deleted’. NOTE: When fetching a singular course that has a ‘deleted’ workflow state value, an error will be returned with a message of ‘The specified resource does not exist.’“workflow_state”: “available”
Related idea: [API] Include course "status" in the output of the "courses" API endpoint
Changed
SIS Import Format Documentation- Courses CSV
- In the Courses CSV table, the status description for Status is updated. Additionally, the following statement is added:
- To view the current status of a course that has already been imported into Canvas, please fetch the course data using the get a single course API endpoint and refer to the workflow_state value returned in the Course object.
- When editing personal pronouns using the Canvas API only the Enable Personal Pronouns account setting must be enabled for admin to change user pronouns. This change does not allow users to change their pronouns when the Allow users to change their pronouns in Canvas account setting is disabled.
2024-05-28
Announcement Date: 2024-05-23
Canvas Badges/Credentials
Addition
- Adding a New Member to Issuer's Staff:
- POST /v2/issuers/{entity_id}/staff
- Changing an Existing Member's Role:
- PUT /v2/issuers/{entity_id}/staff , PATCH /v2/issuers/{entity_id}/staff (works same as PUT endpoint)
- Removing an Existing Member from Issuer's Staff:
- DELETE /v2/issuers/{entity_id}/staff/{emailBase64Encoded}
- Inviting a New Member to Issuer's Staff:
- POST /v2/issuers/{entity_id}/staff/invitations
Note: The current endpoint PUT /v2/issuers/{entity_id} will continue to provide staff data as a readonly property.
Related Blog: Introducing Enhanced Staff Management APIs for Canvas Credentials
2024-04-24
Announcement date: 2024-04-12
Addition
- enrollment [sis_user_id]
- Required if the user is being enrolled from another trusted account. The unique identifier for the user (sis_user_id) must also be accompanied by the root_account parameter. The user_id will be ignored.
- enrollment[integration_id]
- Required if the user is being enrolled from another trusted account. The unique identifier for the user (integration_id) must also be accompanied by the root_account parameter. The user_id will be ignored.
- root_account
- The domain of the account to search for the user. Will be a no-op unless the sis_user_id or integration_id parameter is also included.
- Increase_calendar_context_limit is included in the /api/v1/features/environment endpoint response.
2024-03-27
Announcement date: 2024-03-11
Affected Users: Developers
Deprecate Compromised TLS 1.2 ciphers support from Canvas Load Balancers
- AES128-GCM-SHA256
- AES128-SHA
- AES128-SHA256
- AES256-GCM-SHA384
- AES256-SHA
- AES256-SHA256
- ECDHE-ECDSA-AES128-SHA
- ECDHE-ECDSA-AES256-SHA
- ECDHE-RSA-AES128-SHA
- ECDHE-RSA-AES256-SHA
Add Support for TLS 1.3 with the following cipher support
- TLS_AES_128_GCM_SHA256
- TLS_AES_256_GCM_SHA384
- TLS_CHACHA20_POLY1305_SHA256
2024-03-20
Announcement date: 2024-03-20
Release Data Access Platform (DAP) CLI & Client Library v 1.1.0
Fixed Issues
- Fixed error “You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'groups TO canvas__groups' at line 1” when automatically migrating the database schema from version 0.3.x to 1.0.x in MySQL databases. This occurred when the groups table (from the canvas namespace) was already present in the database.
- Fixed an issue with the client library not cleaning up the temporary directory used for storing downloaded files.
- Fixed error “ERROR - module 'socket' has no attribute 'TCP_KEEPIDLE'” by removing faulty/unnecessary TCP socket settings.
- Fixed an issue with the client library not decoding URL-encoded (a.k.a percent-encoded) characters in the database username and password in the database connection string.
- Database connection string no longer logged in plain text at debug log level.
- Fixed error “Fatal Python error: none_dealloc: deallocating None” occurring in some cases when replicating data to a database, running the client on Windows using Python version lower than 3.12.
New Features
-
Introduced extensible enumeration (“soft enum”) data type, and an automated database migration required for clients, in preparation for upcoming schema changes in the DAP Query API.
2024-02-28
Announcement date: 2024-02-28
Release Data Access Platform CLI & Client Library v 1.0.0
Fixed Issues
- Fixed an issue with time consuming downloads of multiple file parts resulting in an HTTP 400 error.
- Fixed an issue with calling initdb after dropdb for the same table when using PostgreSQL as the target database, caused by enum types.
- Changed how the library passes the authentication token to the DAP server after the token is obtained (Authorization header instead of X-InstAuth header).
- Python stack trace of exceptions is now logged only in case of loglevel ‘debug’.
- Removed unused filter field from the TableQuery class (inherited by SnapshotQuery and IncrementalQuery).
New Features
- Added decompress option to multiple functions when using the client library for downloading files.
2024-02-14
Announcement date: 2024-02-02
Addition
- Log users out of all mobile apps- Permanently expires any active mobile sessions for all users, forcing them to re-authorize.
2024-01-31
Announcement date: 2024-01-19
Addition
- refresh_metadata
2024-01-17
Announcement date: 2024-01-08
Addition
- bounce_count