Michael Hulse d5dc9ac206 accept icon enum values instead of icon_url in API
Replace the icon_url field with icon across the
discovery page API. The new field accepts an enum
key (e.g., "google", "okta") instead of a full URL.
The identity service owns the icon assets, so Canvas
only needs to store and pass the key.

Validation now rejects values not in the allowed
set instead of checking for valid HTTP/HTTPS URLs.

closes AE-3474
flag=none

[skip-crystalball]

test plan:
- PUT a discovery page entry with "icon": "google"
- expect 200 and the icon value echoed back
- PUT an entry with "icon": "not-valid"
- expect 422 with an error listing allowed values
- PUT an entry with no icon field
- expect 200, icon is optional
- GET the discovery page, confirm icon key

Change-Id: I0211ccd8fe17effde85fc2336f06a6de84226ef7
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/401068
QA-Review: Michael Hulse <michael.hulse@instructure.com>
Product-Review: Michael Hulse <michael.hulse@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Weston Dransfield <wdransfield@instructure.com>
2026-02-20 20:14:21 +00:00
2026-02-20 01:48:50 +00:00
2026-02-20 01:48:50 +00:00
2026-02-16 19:42:17 +00:00
2026-02-18 19:45:08 +00:00
2026-02-20 01:48:50 +00:00

Canvas LMS

Canvas is a modern, open-source LMS developed and maintained by Instructure Inc. It is released under the AGPLv3 license for use by anyone interested in learning more about or using learning management systems.

Please see our main wiki page for more information

Installation

Detailed instructions for installation and configuration of Canvas are provided on our wiki.

Description
The open LMS by Instructure, Inc.
Readme AGPL-3.0 2.2 GiB
Languages
Ruby 51.4%
TypeScript 24.7%
JavaScript 20.2%
HTML 1.9%
SCSS 1.1%
Other 0.6%