Metadata API for Plugin Installation
The metadata API for plugin installation helps in faster, seamless implementation of the plugins. Automate the testing and development process by minimizing manual configurations of plugins.
You can use the Metadata API method to automate the installation of plugins such as "Debrief" and Asset View" as part of your business process. Also, Fusion Service configuration via Configuration | Applications page now supports the automatic installation of the Debrief plugin.
A new Metadata API request is available to install standard plugins in OFS.
Request
POST rest/ofscMetadata/v1/plugins/{pluginLabel}/custom-actions/install
URL data params:
- pluginLabel [Required] - String containing the plugin which is to be installed
This operation installs the plugins as defined in the path parameter. If a plugin with the given label is already in place, then it will return "Plugin already existing" error message; otherwise the plugin will get installed successfully.
Response
204 Response - This response code 204 indicates that the operation completed successfully. This operation does not return any elements in the response body.
Use Case | Status | Response |
---|---|---|
Standard plugin installation is successful | 204 | |
No permission | 403 | { "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4", "title": "Forbidden", "status": "403", "detail": "Authentication was provided, but the authenticated user is not permitted to perform the requested operation." } |
No standard plugin exists for the provided pluginLabel | 404 | { "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5", "title": "Not Found", "status": 404, "description": "Plugin {LABEL} not found",} |
Validation Errors
Error Codes |
---|
LABEL_NOT_UNIQUE |
OLDER_PRODUCT_VERSION |
EXISTING_PROPERTY_TYPE_MISMATCH |
INVALID_PROPERTY |
Use Case | Status | Response |
---|---|---|
Plugin is already installed | 409 | { "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.10", "title": "Plugin's label is already in use", "status": 409, "description": "A plugin with label "{PLUGIN_LABEL}" already exists. Remove it to proceed", "o:errorCode": "LABEL_NOT_UNIQUE"} |
Platform version is less than the required version | 409 | { "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.10", "title": "Plugin cannot be installed", "status": 409, "description": "Field Service version must be 22.08.0 or higher in order to install the plugin", "o:errorCode": "OLDER_PRODUCT_VERSION"} |
Existing property type mismatch | 409 |
{ "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.10", "title": "Existing property type mismatch", "status": 409, "description": "A property {PROPERTY_LABEL} has type {CURRENT_TYPE} but the plugin requires it to be with type {EXPECTED_TYPE}", "o:errorCode": "EXISTING_PROPERTY_TYPE_MISMATCH"} { "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.10", "title": "Existing property gui mismatch", "status": "409", "detail": "A property {PROPERTY_LABEL} has GUI {CURRENT_GUI} but the plugin requires it to be with type {EXPECTED_GUI}", "o:errorCode": "EXISTING_PROPERTY_TYPE_MISMATCH"} { "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.10", "title": "Existing property entity mismatch", "status": "409", "detail": "A property {PROPERTY_LABEL} is created for entity {CURRENT_ENTITY} but the plugin requires it to be created for entity {EXPECTED_ENTITY}", "o:errorCode": "EXISTING_PROPERTY_TYPE_MISMATCH"} { "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.10", "title": "Existing property mime_types mismatch", "status": 409, "description": "A property {PROPERTY_LABEL} has MIME types {CURRENT_CONFIGURED_MIME_TYPE} but the plugin requires it to be with types {EXPECTED_MIME_TYPE}", "o:errorCode": "EXISTING_PROPERTY_TYPE_MISMATCH"} { "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.10", "title": "Existing property mime_types mismatch", "status": 409, "description": "MIME types value of property {PROPERTY_LABEL} must be in array format", "o:errorCode": "EXISTING_PROPERTY_TYPE_MISMATCH"} { "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.10", "title": "Existing property mime_types mismatch", "status": 409, "description": "The MIME types is required for property {PROPERTY_LABEL}. OFS is configured with the following: {EXPECTED_MIME_TYPES}", "o:errorCode": "EXISTING_PROPERTY_TYPE_MISMATCH"} |
Modify Property
For resolving the "EXISTING_PROPERTY_TYPE_MISMATCH" validation error, in the Configuration | Properties screen, the problematic property's type can be changed to the required property type shown in the error response. Or, the property could also be deleted and the plugin installation would automatically install the property with the needed values.
Other unexpected errors
Use Case | Status | Response |
---|---|---|
Unable to get plugin data from the Plugin Repository service (This occurs when the plugin repository service is unavailable) |
500 | { "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1", "title": "Internal Server Error", "status": "500", "detail": "Unable to install plugin {pluginLabel}"} |
Unable to create property {propertyLabel} of plugin {pluginName} from Plugin Repository service (This occurs when the property creating throws an exception. This should not occur in normal cases) |
500 | { "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1", "title": "Internal Server Error", "status": "500", "detail": "Unable to create property {propertyLabel} of plugin {pluginName}"} |