plugin

Serve plugin icon

Changed on

Serves the icon for {RepoName}, whether or not that plugin is installed. Resolved in three tiers: 1. a local icon.png in the plugin's directory; 2. the iconURL out of the plugin's own installed pluginInfo.json; 3. the iconURL out of the listed pluginInfo.json for {RepoName}, for plugins that are listed but not installed (the Browse tab). Serving these same-origin is what lets the Plugins page show icons at all -- raw.githubusercontent.com is allow-listed in FPP's CSP connect-src, not img-src. The client passes only a repo name: tiers 2 and 3 both run their URL past PluginIconURLIsAllowed() before fetching, so the set of things this endpoint can be made to request is bounded by the plugin list and by that allow-list, not by the caller.

get/api/plugin/{RepoName}/icon

Request

  • Base URL
    / (relative, and the document was published on a file host, not at the API’s origin)
  • URL
    /api/plugin/{RepoName}/icon
  • Auth
    none declared

Response

Image data

Changes

    • breaking

      removed the media type image/png for the response with the status

    • warning

      deleted the path request parameter RepoName

    • info

      removed the non-success response with the status

    • info

      added the non-success response with the status