Skip to content

Managing Plugins Using the API Client

The Delphix Masking Engine's web API includes a new plugin endpoint for managing plugins:

Masking API Client Plugin Endpoints

Displaying Information about Installed Plugins

The GET endpoints are useful for getting information about plugins. After following the steps in this section to install the Sample Algorithm plugin, the GET operation will return (elided for brevity):

    {
      "pluginId": 7,
      "pluginName": "Delphix Sample",
      "originalFileName": "algorithm.jar",
      "originalFileChecksum": "74df61f436aceb80107c22964c027d32a565d0100de36c7fa42f528327cf2e2a",
      "installDate": "2020-06-19T20:15:58.239+0000",
      "installUser": 5,
      "builtIn": false,
      "pluginVersion": "1.0.0",
      "pluginObjects": [
        {
          "objectIdentifier": "2",
          "objectName": "StringRedaction",
          "objectType": "ALGORITHM_FRAMEWORK"
        },
        {
          "objectIdentifier": "3",
          "objectName": "RedactionFile",
          "objectType": "ALGORITHM_FRAMEWORK"
        },
        {
          "objectIdentifier": "5",
          "objectName": "StringHashedLookup",
          "objectType": "ALGORITHM_FRAMEWORK"
        },
        {
          "objectIdentifier": "7",
          "objectName": "Randomized Masking",
          "objectType": "ALGORITHM_FRAMEWORK"
        },
        {
          "objectIdentifier": "Delphix Sample:Byte Array Redaction",
          "objectName": "Delphix Sample:Byte Array Redaction",
          "objectType": "ALGORITHM"
        },
        {
          "objectIdentifier": "Delphix Sample:Date Redaction",
          "objectName": "Delphix Sample:Date Redaction",
          "objectType": "ALGORITHM"
        },
        {
          "objectIdentifier": "Delphix Sample:Number Redaction",
          "objectName": "Delphix Sample:Number Redaction",
          "objectType": "ALGORITHM"
        },
        {
          "objectIdentifier": "Delphix Sample:Numeric Mapping",
          "objectName": "Delphix Sample:Numeric Mapping",
          "objectType": "ALGORITHM"
        },
...

For each plugin, the plugin metadata, including pluginId, pluginName and originalFileChecksum are displayed first. This is followed by a list of algorithm frameworks included in the plugin, then a list of algorithm instances included in the plugin. The list of frameworks will contain only those frameworks that support creation of additional algorithm instances as described in this section.

Other Plugin Endpoint Operations

In addition to GET, the plugin endpoint supports the other CRUD operations:

  • POST - install a new plugin
  • PUT - update an existing plugin
  • DELETE - remove a plugin from the system

The POST and PUT operations both require a fileReference value representing the plugin file to be installed or updated. These values are the result of using the fileUpload endpoint to upload the plugin JAR file to the Masking Engine.

In order to install a new version of this plugin, one could use the PUT operation, or, assuming none of the algorithms in the plugin are in use, simply DELETE the plugin and POST a new version (or install using the SDK maskScript). Both PUT and DELETE operations require the pluginId value listed for each plugin using the GET operation. Refer to this section for details to help the plugin author ensure that new versions of a plugin can successful install over an existing version using the PUT operation.

Note

The name of each installed algorithm will be prefixed with the "pluginName:" to guarantee uniqueness. This ensures that plugin defined algorithms are clearly differentiable from built-in and user-created algorithms.