Managing the plugin catalog

2 minute readAutomation

The publicly-accessible plugin catalog definition file is located here: https://downloads.cloudbees.com/cloudbees-cd/plugins/catalog.xml. It contains a series of <plugin> elements, one for each plugin available for installation, and always holds information for the latest plugin versions. Entries in this file drive the contents of the public-facing catalog https://docs.cloudbees.com/plugins/cd, and the contents of the default, in-product catalog located using the CloudBees CD/RO main menu, DevOps Essentials Plugin managementPlugins catalog.

Creating a custom plugin catalog

Create a custom plugin catalog by creating a local version of the public catalog definition file and directing CloudBees CD/RO to use it to drive the contents of the plugin management Plugins catalog tab. You cannot override the public-facing catalog.

  1. Download the public facing definition file from https://downloads.cloudbees.com/cloudbees-cd/plugins/catalog.xml. Save it locally.

  2. Edit the local version: add entries for custom-built plugins and delete entries that are not of interest to your enterprise.

  3. Using the ecconfigure command line tool, define the location of your definition file with the --serverPluginCatalogURL CloudBees CD/RO server property:

    ecconfigure \
        --serverPluginCatalogUrl=https://example.com/my-catalog.xml
  4. Restart the CloudBees CD/RO server.

Your custom catalog is now available by selecting DevOps Essentials Plugin managementPlugins catalog.

Catalog definition file format

Each plugin is defined by a <plugin> root element with the following format.

Sub-elementDescription

pluginKey

(Required) Unique plugin identifier, for example, EC-Git, AWSCLi. Type: String

pluginName

category

(Required) Plugin category, for example, Source control. Type: String

author

(Required) Plugin author’s name. Type: String

authorUrl

(Required) Plugin author’s URL or email address. Type: String

pluginVersion

(Required) The version of the plugin, major.minor.patch.build. Type: String

publishDate

(Required) The last publication date of the plugin. Type: Date

secureDownloadUrl

(Required) The URL to use for downloads. The plugin JAR file must be accessible by this URL without any authorization. This must be an HTTPS URL. Type: String

helpURL

(Required) Link to the plugin documentation.

ecSupportLevel

(Optional) Support level in integer format. 10 means that the plugin is supported by CloudBees. Type: Numeric

releaseNoteURL

(Optional) Link to the plugin release notes. Type: String

docsiteID

(Optional) Used by public-facing catalog. Not available for custom catalogs.

detailedDescription

(Optional) Used by public-facing catalog. Not available for custom catalogs.

supportLevelName

(Optional) Support level. Type: String

logoURL

(Optional) URL for the plugin logo image. It must be accessible under the same conditions as the plugin jar. If not accessible, the default logo is used. Type: String

docsiteName

(Optional) Human-readable name of the plugin in the documentation site. Not used by plugin management.

checksum

(Optional) An md5 checksum of the plugin jar. Not used by plugin management.

label

(Optional) Human-readable plugin label. If not provided, the value of pluginKey is used instead. Type: String

Sample plugin catalog entry

<plugin>
   <pluginKey>EC-Git</pluginKey>
   <pluginName>EC-Git</pluginName>
   <description>This plugin integrates with Git SCM</description>
   <label>EC-Git</label>
   <category>Source Code Management</category>
   <author>CloudBees</author>
   <authorUrl>https://support.cloudbees.com</authorUrl>
   <downloadUrl>https://downloads.cloudbees.com/cloudbees-cd/plugins/EC-Git/latest/EC-Git.jar</downloadUrl>
   <pluginVersion>1.6.1.2021072989</pluginVersion>
   <secureDownloadUrl>https://downloads.cloudbees.com/cloudbees-cd/plugins/EC-Git/latest/EC-Git.jar</secureDownloadUrl>
   <helpURL>https://docs.cloudbees.com/docs/cloudbees-cd/latest/plugins/ec-git</helpURL>
   <publishDate>29-07-2021</publishDate>
   <ecSupportLevel>10</ecSupportLevel>
   <releaseNoteURL>https://docs.cloudbees.com/docs/cloudbees-cd/latest/plugins/ec-git#rns</releaseNoteURL>
   <docsiteID>ec-git</docsiteID>
   <detailedDescription>Git is a distributed revision control system with an emphasis on speed. Every Git working directory is a full-fledged repository with complete history and full revision tracking capabilities, not dependent on network access or a central server. The EC-Git plugin allows you to connect the Git source control server to {CD}. It enables you to perform: - Code checkouts. - Preflight build. - Continuous integration.</detailedDescription>
   <supportLevelName>CloudBees</supportLevelName>
   <logoURL>https://downloads.cloudbees.com/cloudbees-cd/plugins/EC-Git/icon-plugin.svg</logoURL>
   <docsiteName>Git</docsiteName>
   <checksum>e9566a68d94466ed2f0de0de43dd64ae</checksum>
</plugin>