PluginResource

API for managing plugins. User must have ADMIN permission level in order to interact with the plugin manager API. The API exposes two main flows: installing or upgrading an officially supported Digital.ai plugin which is hosted over the official Nexus repository; and installing or upgrading an official or 3rd party plugin xldp via manual upload.

DELETE /{url:plugin-manager|api/v1/plugin-manager}//delete/{repositoryId}/{groupId}/{artifactId}{version:(/.*)?} Cancels pending installation of a plugin.
POST /{url:plugin-manager|api/v1/plugin-manager}/install Installs a plugin by uploading the plugin binary.
POST /{url:plugin-manager|api/v1/plugin-manager}/install-or-update Installs a plugin by uploading the plugin binary.
GET /{url:plugin-manager|api/v1/plugin-manager}/list Lists all plugins in the system (either in INSTALLED or READY_FOR_INSTALL status) with metadata for each plugin.
GET /{url:plugin-manager|api/v1/plugin-manager}/repositories Lists all configured Nexus repositories in order to later query for available official plugins.
POST /{url:plugin-manager|api/v1/plugin-manager}/repositories/{repositoryId}/install-or-update/{groupId}/{artifactId}/{version} Downloads a plugin from repository and inserts it into the DB.
POST /{url:plugin-manager|api/v1/plugin-manager}/repositories/{repositoryId}/install/{groupId}/{artifactId}/{version} Downloads a plugin from repository and inserts it into the DB.
POST /{url:plugin-manager|api/v1/plugin-manager}/repositories/{repositoryId}/install/{groupId}/{artifactId}/{version}/{packaging} Downloads a plugin from repository and inserts it into the DB.
GET /{url:plugin-manager|api/v1/plugin-manager}/repositories/{repositoryId}/list Lists all available plugins for the provided repositoryId.
GET /{url:plugin-manager|api/v1/plugin-manager}/repositories/{repositoryId}/logo/{groupId}/{artifactId} Gets the plugin logo.
POST /{url:plugin-manager|api/v1/plugin-manager}/repositories/{repositoryId}/update Updates cached list of available official plugins in the system for a given repository by downloading the metadata from the Nexus repository.
POST /{url:plugin-manager|api/v1/plugin-manager}/repositories/{repositoryId}/update/{groupId}/{artifactId} Updates a plugin from repository and updates the DB.
POST /{url:plugin-manager|api/v1/plugin-manager}/repositories/{repositoryId}/update/{groupId}/{artifactId}/{packaging} Updates a plugin from repository and updates the DB.
GET /{url:plugin-manager|api/v1/plugin-manager}/search/{query} The search is performed amongst all available plugins regardless of their installation status.
POST /{url:plugin-manager|api/v1/plugin-manager}/update Updates a plugin by uploading the plugin binary.

DELETE /{url:plugin-manager|api/v1/plugin-manager}//delete/{repositoryId}/{groupId}/{artifactId}{version:(/.*)?}

Cancels pending installation of a plugin. Returns an empty response with a status code of 200 (OK). In case if plugin with the provided data does not exist in the system returns a status code of 404 (NOT FOUND). In case of an uninstall API call for a plugin in INSTALLED status, returns a status code of 501 (NOT IMPLEMENTED).
Permissions
Available - only to admin
Parameters
Path repositoryId String the Nexus repository ID on which plugin is accessible (in case of 3rd party plugins it should be $$__local__$$); for example, xld-official
Path groupId String the coordinates of plugin on the Nexus repository (in case of 3rd party plugins it should be $$__local__$$); for example, com.xebialabs.deployit.plugins
Path artifactId String the name of artifact on the Nexus repository; for example, xld-docker-plugin
Path version String the version of the artifact which should be installed; for example, 10.1.0
Response body
Response - empty in case of successful cancellation or error message in case of failure
Content type:

POST /{url:plugin-manager|api/v1/plugin-manager}/install

Installs a plugin by uploading the plugin binary. Returns an empty response with a status code of 200 (OK). In case of installation failure returns a status code of 400 (BAD REQUEST) with a response object containing the error message.
Permissions
Available - only to admin
Parameters
Request body multipart/form-data HttpServletRequest the plugin file data
Query pluginId String plugin filename; for example, xld-docker-plugin-9.2.0.xldp
Response body
Response - empty in case of successful installation or error message in case of failure
Content type:

POST /{url:plugin-manager|api/v1/plugin-manager}/install-or-update

Installs a plugin by uploading the plugin binary. Returns an empty response with a status code of 200 (OK). In case of installation failure returns a status code of 400 (BAD REQUEST) with a response object containing the error message.
Permissions
Available - only to admin
Parameters
Request body multipart/form-data HttpServletRequest the plugin file data
Query pluginId String plugin filename; for example, xld-docker-plugin-9.2.0.xldp
Response body
Response - empty in case of successful installation or error message in case of failure
Content type:

GET /{url:plugin-manager|api/v1/plugin-manager}/list

Lists all plugins in the system (either in INSTALLED or READY_FOR_INSTALL status) with metadata for each plugin. Returns a response with a status code of 200 (OK) and a list of plugins with all details.
Permissions
Available - only to admin
Response body
Response - a list of plugins in the system
Content type:

GET /{url:plugin-manager|api/v1/plugin-manager}/repositories

Lists all configured Nexus repositories in order to later query for available official plugins. Returns a response with a status code of 200 (OK) and a list of repositories with all details.
Permissions
Available - only to admin
Response body
Response - a list of nexus repository objects from server configuration
Content type:

POST /{url:plugin-manager|api/v1/plugin-manager}/repositories/{repositoryId}/install-or-update/{groupId}/{artifactId}/{version}

Downloads a plugin from repository and inserts it into the DB. Returns a response with a status code of 200 (OK) and installed plugin information. If provided repositoryId is wrong then returns 404 (NOT FOUND). If there is an issue with plugin installation then returns 500 (INTERNAL SERVER ERROR).
Permissions
Available - only to admin
Parameters
Path repositoryId String the Nexus repository ID on which plugin is accessible (in case of 3rd party plugins it should be $$__local__$$); for example, xld-official
Path groupId String the coordinates of plugin on the Nexus repository (in case of 3rd party plugins it should be $$__local__$$); for example, com.xebialabs.deployit.plugins
Path artifactId String the name of artifact on the Nexus repository; for example, xld-docker-plugin
Path version String the version of the artifact which should be installed; for example, 10.1.0
Response body
Response - information on the installed plugin
Content type:

POST /{url:plugin-manager|api/v1/plugin-manager}/repositories/{repositoryId}/install/{groupId}/{artifactId}/{version}

Downloads a plugin from repository and inserts it into the DB. Returns a response with a status code of 200 (OK) and installed plugin information. If provided repositoryId is wrong then returns 404 (NOT FOUND). If there is an issue with plugin installation then returns 500 (INTERNAL SERVER ERROR).
Permissions
Available - only to admin
Parameters
Path repositoryId String the Nexus repository ID on which plugin is accessible (in case of 3rd party plugins it should be $$__local__$$); for example, xld-official
Path groupId String the coordinates of plugin on the Nexus repository (in case of 3rd party plugins it should be $$__local__$$); for example, com.xebialabs.deployit.plugins
Path artifactId String the name of artifact on the Nexus repository; for example, xld-docker-plugin
Path version String the version of the artifact which should be installed; for example, 10.1.0
Response body
Response - information on the installed plugin
Content type:

POST /{url:plugin-manager|api/v1/plugin-manager}/repositories/{repositoryId}/install/{groupId}/{artifactId}/{version}/{packaging}

Downloads a plugin from repository and inserts it into the DB. Returns a response with a status code of 200 (OK) and installed plugin information. If provided repositoryId is wrong then returns 404 (NOT FOUND). If there is an issue with plugin installation then returns 500 (INTERNAL SERVER ERROR).
Permissions
Available - only to admin
Parameters
Path repositoryId String the Nexus repository ID on which plugin is accessible (in case of 3rd party plugins it should be $$__local__$$); for example, xld-official
Path groupId String the coordinates of plugin on the Nexus repository (in case of 3rd party plugins it should be $$__local__$$); for example, com.xebialabs.deployit.plugins
Path artifactId String the name of artifact on the Nexus repository; for example, xld-docker-plugin
Path version String the version of the artifact which should be installed; for example, 10.1.0
Path packaging String the packaging of the artifact which should be installed; for example, jar, zip, xldp
Response body
Response - information on the installed plugin
Content type:

GET /{url:plugin-manager|api/v1/plugin-manager}/repositories/{repositoryId}/list

Lists all available plugins for the provided repositoryId. Returns a response with a status code of 200 (OK) and a list of all available official plugins for the provided repositoryId. If provided repositoryId is wrong then returns 404 (NOT FOUND).
Permissions
Available - only to admin
Parameters
Path repositoryId String the Nexus repository ID on which plugin is accessible (in case of 3rd party plugins it should be $$__local__$$); for example, xld-official
Response body
Response - a list of officially supported plugin objects for the given repository
Content type:

GET /{url:plugin-manager|api/v1/plugin-manager}/repositories/{repositoryId}/logo/{groupId}/{artifactId}

Gets the plugin logo. Returns a response with a status code of 200 (OK) and the image file.
Permissions
Available - only to admin
Parameters
Path repositoryId String the Nexus repository ID on which plugin is accessible (in case of 3rd party plugins it should be $$__local__$$); for example, xld-official
Path groupId String the coordinates of plugin on the Nexus repository (in case of 3rd party plugins it should be $$__local__$$); for example, com.xebialabs.deployit.plugins
Path artifactId String the name of artifact on the Nexus repository; for example, xld-docker-plugin
Response body
Response - image file
Content type: image/*

POST /{url:plugin-manager|api/v1/plugin-manager}/repositories/{repositoryId}/update

Updates cached list of available official plugins in the system for a given repository by downloading the metadata from the Nexus repository. Returns a response with a status code of 200 (OK) and a timestamp of the update.
Permissions
Available - only to admin
Parameters
Path repositoryId String identifier of the Nexus repository; for example, xld-official
Response body
Response - timestamp of the update
Content type:

POST /{url:plugin-manager|api/v1/plugin-manager}/repositories/{repositoryId}/update/{groupId}/{artifactId}

Updates a plugin from repository and updates the DB. Returns a response with a status code of 200 (OK) and updated plugin information. If provided repositoryId is wrong then returns 404 (NOT FOUND). If there is an issue with plugin installation then returns 500 (INTERNAL SERVER ERROR).
Permissions
Available - only to admin
Parameters
Path repositoryId String the Nexus repository ID on which plugin is accessible (in case of 3rd party plugins it should be $$__local__$$); for example, xld-official
Path groupId String the coordinates of plugin on the Nexus repository (in case of 3rd party plugins it should be $$__local__$$); for example, com.xebialabs.deployit.plugins
Path artifactId String the name of artifact on the Nexus repository; for example, xld-docker-plugin
Response body
Response - information on the updated plugin
Content type:

POST /{url:plugin-manager|api/v1/plugin-manager}/repositories/{repositoryId}/update/{groupId}/{artifactId}/{packaging}

Updates a plugin from repository and updates the DB. Returns a response with a status code of 200 (OK) and updated plugin information. If provided repositoryId is wrong then returns 404 (NOT FOUND). If there is an issue with plugin installation then returns 500 (INTERNAL SERVER ERROR).
Permissions
Available - only to admin
Parameters
Path repositoryId String the Nexus repository ID on which plugin is accessible (in case of 3rd party plugins it should be $$__local__$$); for example, xld-official
Path groupId String the coordinates of plugin on the Nexus repository (in case of 3rd party plugins it should be $$__local__$$); for example, com.xebialabs.deployit.plugins
Path artifactId String the name of artifact on the Nexus repository; for example, xld-docker-plugin
Path packaging String the packaging of the artifact which should be installed; for example, jar, zip, xldp
Response body
Response - information on the updated plugin
Content type:

GET /{url:plugin-manager|api/v1/plugin-manager}/search/{query}

The search is performed amongst all available plugins regardless of their installation status. Returns a response with a status code of 200 (OK) and a list of found plugins with all details.
Permissions
Available - only to admin
Parameters
Path query String the search query to be used for plugin lookup
Response body
Response - a list of found plugins
Content type:

POST /{url:plugin-manager|api/v1/plugin-manager}/update

Updates a plugin by uploading the plugin binary. Returns an empty response with a status code of 200 (OK). In case of update failure returns a status code of 400 (BAD REQUEST) with a response object containing the error message.
Permissions
Available - only to admin
Parameters
Request body multipart/form-data HttpServletRequest the plugin file data
Query existingPluginName String plugin filename; for example, xld-docker-plugin-9.2.0.xldp
Query newPluginId String new version of the plugin
Response body
Response - empty in case of successful update or error message in case of failure
Content type: