New Metadata API for Standard Plugin Installation

New metadata API for standard plugin installation helps in faster, seamless implementation of the standard plugins. Automate the testing and development process by minimizing manual configurations of plugins.

A new Metadata API method is now available that can be utilized to automate the installation of standard 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 standard plugin which is to be installed

This operation installs the standard 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}"}