Skip to content

Sensitive Data Discovery (SDD) API Reference Guide

Workflow

  1. Create an identifier.
  2. Create an identification framework containing one or more identifiers.
  3. Search for identifiers or identification frameworks.
  4. Apply an identification framework to one or more data sources.
  5. Run SDD on one or more data sources; tags are applied to columns where identifiers were found.
  6. Update identifiers or identification frameworks.
  7. Delete identifiers or identification frameworks.

Create an identifier

Note

To run this identifier against your data, ensure it is added to a framework.

Endpoint

Method Path Purpose
POST sdd/classifier Create an identifier.

Query Parameters

None.

Payload Parameters

Attribute Description Required
name string Unique, request-friendly identifier name. Must be uppercase letters or numbers. Yes
displayName string Unique, human-readable identifier name. Yes
description string The identifier description. Yes
type string The type of criteria: regex, dictionary, columnNameRegex, or builtIn. Yes
config object The configuration of the identifier, which includes config.values, config.caseSensitive, config.regex, config.columnNameRegex, and config.tags. The config object must include one of the following: regex, columnNameRegex, or values. Yes
config.tags array[string] The default resulting tags to apply when the identifier is matched; they must begin with Discovered .. No
config.regex string A case-insensitive regular expression to match against column values. No
config.columnNameRegex string A case-insensitive regular expression to match against column names. No
config.values array[string] The list of words included in the dictionary to match against column values. No
config.caseSensitive boolean Indicates whether or not values are case sensitive. Defaults to false. No
config.minConfidence integer Apply tags when the identifier match is at least this percentage. Not supported for native SDD. Must be between 0 and 1. Yes

Response Parameters

Attribute Description
createdBy array Includes details about the user who created the identifier, such as their profile id, name, and email.
name string Unique, request-friendly identifier name.
displayName string Unique, human-readable identifier name.
description string The identifier description.
type string The type of criteria: regex, dictionary, columnNameRegex, or builtIn.
config object The configuration of the identifier, which includes config.values, config.caseSensitive, config.regex, config.columnNameRegex, and config.tags.
config.tags array[string] The default resulting tags to apply to the data source when the identifier is matched.
config.columnNameRegex string A case-insensitive regular expression to match against column names.
config.regex string A case-insensitive regular expression to match against column values.
config.values array[string] The list of words included in the dictionary to match against column values.
config.caseSensitive boolean Indicates whether or not values are case sensitive.
config.minConfidence integer Apply tags when the identifier match is at least this percentage. Not supported for native SDD.
createdAt date When the identifier was created.
updatedAt date When the identifier was last updated.

Request example

The following request creates an identifier, saved in example-payload.json.

curl \
    --request POST \
    --header "Content-Type: application/json" \
    --header "Authorization: Bearer dea464c07bd07300095caa8" \
    --data @example-payload.json \
    https://your-immuta-url.immuta.com/sdd/classifier

Payload examples

Regex identifier payload
{
  "name": "MY_REGEX_IDENTIFIER",
  "displayName": "My Regex Identifier",
  "description": "A regex identifier example",
  "type": "regex",
  "config": {
    "regex": "^[A-Z][a-z]+",
    "tags": ["Discovered.regex-example"],
    "minConfidence": 0.9
  }
}
Dictionary identifier payload
{
  "name": "MY_DICTIONARY_IDENTIFIER",
  "displayName": "My Dictionary Identifier",
  "description": "A dictionary identifier example",
  "type": "dictionary",
  "config": {
    "values": ["Bob", "Eve"],
    "caseSensitive": true,
    "tags": ["Discovered.dictionary-example", "Discovered.dictionary-identifier-example"],
    "minConfidence": 0.9
  }
}
Column name identifier payload
{
  "name": "MY_COLUMN_NAME_IDENTIFIER",
  "displayName": "My Column Name Identifier",
  "description": "A column name identifier example",
  "type": "columnNameRegex",
  "config": {
    "columnNameRegex": "ssn|social ?security",
    "tags": ["Discovered.column-name-regex"],
    "minConfidence": 0.9
  }
}

Response example

{
  "createdBy": {
    "id": 1,
    "name": "John",
    "email": "john@example.com"
  },
  "name": "MY_REGEX_IDENTIFIER",
  "displayName": "My Regex Identifier",
  "description": "A regex identifier example",
  "type": "regex",
  "config": {
    "tags": [
      "Discovered.regex-example"
    ],
    "regex": "^[A-Z][a-z]+",
    "minConfidence": 0.9
  },
  "id": 67,
  "createdAt": "2021-10-14T18:48:56.289Z",
  "updatedAt": "2021-10-14T18:48:56.289Z"
}

Create an identification framework

Endpoint

Method Path Purpose
POST sdd/template Create an identification framework.

Query Parameters

None.

Payload Parameters

Attribute Description Required
name string Unique, request-friendly framework name. Must be uppercase letters or numbers. Yes
displayName string Unique, human-readable framework name. Yes
description string The framework description. Yes
classifiers array The identifiers to include in the framework and any additional overrides for those identifiers. Yes
classifiers.name string The name of the identifier to include in the framework. Yes
classifiers.overrides array The overrides to modify the identifier for this framework. No
classifiers.overrides.tags array The resulting tags to apply when the identifier is matched. These tags will override the identifier's default tags and must begin with Discovered .. No

Response Parameters

Attribute Description
id integer The unique ID of the framework.
createdBy array Includes details about the user who created the framework, such as their profile id, name, and email.
name string Unique, request-friendly framework name.
displayName string Unique, human-readable framework name.
description string The framework description.
classifiers array The identifiers in the framework and any overrides for those identifiers.
createdAt date When the framework was created.
updatedAt date When the framework was last updated.

Request example

The following request creates an identification framework that contains 2 identifiers, saved in example-payload.json.

curl \
    --request POST \
    --header "Content-Type: application/json" \
    --header "Authorization: Bearer dea464c07bd07300095caa8" \
    --data @example-payload.json \
    https://your-immuta-url.immuta.com/sdd/template

Payload example

{
  "name": "MY_FIRST_FRAMEWORK",
  "displayName": "My First Framework",
  "description": "This is the first framework I've created.",
  "classifiers": [
    {
      "name": "MY_COLUMN_NAME_IDENTIFIER"
    },
    {
      "name": "MY_REGEX_IDENTIFIER"
    },
    {
      "name": "AGE",
      "overrides": {
        "tags": [
          "Discovered.Entity.Age"
        ]
      }
    }
  ]
}

Response example

{
  "name": "MY_FIRST_FRAMEWORK",
  "displayName": "My First Framework",
  "description": "This is the first framework I've created.",
  "createdBy": {
    "id": 1,
    "name": "John",
    "email": "john@example.com"
  },
  "id": 1,
  "createdAt": "2021-10-14T19:12:22.092Z",
  "updatedAt": "2021-10-14T19:12:22.092Z",
  "classifiers": [
    {
      "name": "MY_COLUMN_NAME_REGEX_IDENTIFIER",
      "overrides": {}
    },
    {
      "name": "MY_REGEX_IDENTIFIER",
      "overrides": {}
    }
  ]
}

Search for identifiers or identification frameworks

Method Path Purpose
GET sdd/classifier List or search identifiers.
GET sdd/template List or search identification frameworks.
GET sdd/classifier/{classifierName} View a specific identifier by name.
GET sdd/template/{templateName} View a specific identification framework by name.
GET sdd/template/global View the current global framework.

List or search for identifiers

Endpoint

Method Path Purpose
GET sdd/classifier List or search identifiers.

Query Parameters

Attribute Description Required
sortField string The field to sort the search results: id, name, displayName, type, createdAt, or updatedAt. No
sortOrder string Denotes whether to sort the results in ascending (asc) or descending (desc) order. Default is asc. No
offSet integer Use in combination with limit to fetch pages. No
limit integer Limits the number of results displayed per page. No
type array[string] Searches based on criteria type: regex, dictionary, builtIn, or columnNameRegex. No
searchText string A partial, case-insensitive search on name. No

Response Parameters

Attribute Description
count integer The number of identifiers found matching the search criteria.
createdBy array Includes details about the user who created the identifier, such as their profile id, name, and email.
name string Unique, request-friendly identifier name.
displayName string Unique, human-readable identifier name.
description string The identifier description.
type string The type of criteria: regex, dictionary, columnNameRegex, or builtIn.
config object The configuration of the identifier, which includes config.values, config.caseSensitive, config.regex, config.columnNameRegex, and config.tags.
config.tags array[string] The default resulting tags to apply when the identifier is matched.
config.columnNameRegex string A case-insensitive regular expression to optionally match against column names.
config.regex string A case-insensitive regular expression to match against column values.
config.values array[string] The list of words included in the dictionary to match against column values.
config.caseSensitive boolean Indicates whether or not values are case sensitive.
createdAt date When the identifier was created.
updatedAt date When the identifier was last updated.

Request example

The following request lists 5 identifiers.

curl \
    --request GET \
    --header "Content-Type: application/json" \
    --header "Authorization: Bearer dea464c07bd07300095caa8" \
    https://your-immuta-url.immuta.com/sdd/classifier?sortField=name&sortOrder=asc&limit=5

Response example

{
  "count": 67,
  "hits": [
    {
      "createdBy": {
        "id": 21,
        "name": "Immuta System Account",
        "email": "immuta_system@immuta.com"
      },
      "name": "AGE",
      "displayName": "Age",
      "description": "Matches numeric strings between 10 and 199.",
      "type": "builtIn",
      "config": {
        "tags": [
          "Discovered.Entity.Age"
        ],
        "conditionalTags": {}
      },
      "id": 3,
      "createdAt": "2021-10-28T07:34:58.761Z",
      "updatedAt": "2021-10-28T07:34:58.761Z"
    },
    {
      "createdBy": {
        "id": 21,
        "name": "Immuta System Account",
        "email": "immuta_system@immuta.com"
      },
      "name": "ARGENTINA_DNI_NUMBER",
      "displayName": "Argentina DNI Number",
      "description": "Matches strings consistent with Argentina National Identity (DNI) Number.  Requires an eight digit number with optional periods between the second and third and fifth and sixth digit.",
      "type": "builtIn",
      "config": {
        "tags": [
          "Discovered.Country.Argentina",
          "Discovered.Entity.DNI Number"
        ],
        "conditionalTags": {}
      },
      "id": 4,
      "createdAt": "2021-10-28T07:34:58.769Z",
      "updatedAt": "2021-10-28T07:34:58.769Z"
    },
    {
      "createdBy": {
        "id": 21,
        "name": "Immuta System Account",
        "email": "immuta_system@immuta.com"
      },
      "name": "AUSTRALIA_MEDICARE_NUMBER",
      "displayName": "Australia Medicare Number",
      "description": "Matches numeric strings consistent with Australian Medicare Number.  Requires a ten or eleven digit number.  The starting digit must be between 2 and 6, inclusive.  Optional spaces can be placed between the fourth and fifth and ninth and tenth digit.  Optional 11th separated by a `/` can be present.  A checksum is required.",
      "type": "builtIn",
      "config": {
        "tags": [
          "Discovered.Country.Australia",
          "Discovered.Entity.Medicare Number"
        ],
        "conditionalTags": {}
      },
      "id": 5,
      "createdAt": "2021-10-28T07:34:58.779Z",
      "updatedAt": "2021-10-28T07:34:58.779Z"
    },
    {
      "createdBy": {
        "id": 21,
        "name": "Immuta System Account",
        "email": "immuta_system@immuta.com"
      },
      "name": "AUSTRALIA_PASSPORT",
      "displayName": "Australia Passport",
      "description": "Matches strings consistent with Australian Passport number.  A 8 or 9 character string is required, with a starting upper case character (N, E, D, F, A, C, U, X) or a two character starting character (P followed by A, B, C, D, E, F, U, W, X, or Z) followed by seven digits",
      "type": "builtIn",
      "config": {
        "tags": [
          "Discovered.Country.Australia",
          "Discovered.Entity.Passport"
        ],
        "conditionalTags": {}
      },
      "id": 26,
      "createdAt": "2021-10-28T07:34:59.010Z",
      "updatedAt": "2021-10-28T07:34:59.010Z"
    },
    {
      "createdBy": {
        "id": 21,
        "name": "Immuta System Account",
        "email": "immuta_system@immuta.com"
      },
      "name": "AUSTRALIA_TAX_FILE_NUMBER",
      "displayName": "Australia Tax File Number",
      "description": "Matches strings consistent with Australia Tax File Number.  Requires a nine digit number with optional spaces between the third and fourth and sixth and seventh digits.  A checksum is also required",
      "type": "builtIn",
      "config": {
        "tags": [
          "Discovered.Country.Australia",
          "Discovered.Entity.Tax File Number"
        ],
        "conditionalTags": {}
      },
      "id": 6,
      "createdAt": "2021-10-28T07:34:58.789Z",
      "updatedAt": "2021-10-28T07:34:58.789Z"
    }
  ]
}

List or search for identification frameworks

Endpoint

Method Path Purpose
GET sdd/template List or search identification frameworks.

Query Parameters

Attribute Description Required
sortField string The field to sort the search results: id, name, displayName, type, createdAt, or updatedAt. No
sortOrder string Denotes whether to sort the results in ascending (asc) or descending (desc) order. Default is asc. No
offSet integer Use in combination with limit to fetch pages. No
limit integer Limits the number of results displayed per page. No
classifiers array[string] Filters framework results to those containing the specified identifiers. No
searchText string A partial, case-insensitive search on the framework name. No

Response Parameters

Attribute Description
count integer The number of identification frameworks found matching the search criteria.
id integer The unique ID of the framework.
createdBy array Includes details about the user who created the framework, such as their profile id, name, and email.
name string Unique, request-friendly framework name.
displayName string Unique, human-readable framework name.
description string The framework description.
classifiers array The identifiers in the framework and any overrides for those identifiers.
createdAt date When the framework was created.
updatedAt date When the framework was last updated.

Request example

The following request lists all identification frameworks.

curl \
    --request GET \
    --header "Content-Type: application/json" \
    --header "Authorization: Bearer dea464c07bd07300095caa8" \
    https://your-immuta-url.immuta.com/sdd/template

Response example

{
  "count": 1,
  "hits": [
    {
      "name": "MY_FIRST_FRAMEWORK",
      "displayName": "My First Framework",
      "description": "This is the first framework I've created.",
      "createdBy": {
        "id": 1,
        "name": "John",
        "email": "john@example.com"
      },
      "id": 1,
      "createdAt": "2021-10-14T19:12:22.092Z",
      "updatedAt": "2021-10-14T19:12:22.092Z",
      "classifiers": [
        {
          "name": "MY_COLUMN_NAME_IDENTIFIER",
          "overrides": {}
        },
        {
          "name": "MY_REGEX_IDENTIFIER",
          "overrides": {}
        }
      ]
    }
  ]
}

View an identifier by name

Endpoint

Method Path Purpose
GET sdd/classifier/{classifierName} Get an identifier by name.

Query Parameters

Attribute Description Required
classifierName string The name of the identifier. Yes

Response Parameters

Attribute Description
id integer The unique ID of the identifier.
createdBy array Includes details about the user who created the identifier, such as their profile id, name, and email.
name string Unique, request-friendly identifier name.
displayName string Unique, human-readable identifier name.
description string The identifier description.
type string The type of criteria: regex, dictionary, columnNameRegex, or builtIn.
config object The configuration of the identifier, which includes config.values, config.caseSensitive, config.regex, config.columnNameRegex, and config.tags.
config.tags array[string] The name of the resulting tags to apply to the data source.
config.columnNameRegex string A case-insensitive regular expression to optionally match against column names.
config.regex string A case-insensitive regular expression to match against column values.
config.values array[string] The list of words included in the dictionary to match against column values.
config.caseSensitive boolean Indicates whether or not values are case sensitive.
createdAt date When the identifier was created.
updatedAt date When the identifier was last updated.

Request example

This request gets the identifier named MY_REGEX_IDENTIFIER.

curl \
    --request GET \
    --header "Content-Type: application/json" \
    --header "Authorization: Bearer dea464c07bd07300095caa8" \
    https://your-immuta-url.immuta.com/sdd/classifier/MY_REGEX_IDENTIFIER

Response example

{
  "createdBy": {
    "id": 1,
    "name": "John",
    "email": "john@example.com"
  },
  "name": "MY_REGEX_IDENTIFIER",
  "displayName": "My Regex Identifier",
  "description": "A regex identifier example",
  "type": "regex",
  "config": {
    "tags": [
      "Discovered.regex-example"
    ],
    "regex": "^[A-Z][a-z]+"
  },
  "id": 67,
  "createdAt": "2021-10-18T16:48:18.819Z",
  "updatedAt": "2021-10-18T16:48:18.819Z"
}

View an identification framework by name

Endpoint

Method Path Purpose
GET sdd/template/{templateName} Get an identification framework by name.

Query Parameters

Attribute Description Required
templateName string The name of the identification framework. Yes

Response Parameters

Attribute Description
id integer The unique ID of the framework.
createdBy array Includes details about the user who created the framework, such as their profile id, name, and email.
name string Unique, request-friendly framework name.
displayName string Unique, human-readable framework name.
description string The framework description.
classifiers array The identifiers in the framework and any overrides for those identifiers.
createdAt date When the framework was created.
updatedAt date When the framework was last updated.

Request example

This request gets the identification framework named MY_FIRST_FRAMEWORK.

curl \
    --request GET \
    --header "Content-Type: application/json" \
    --header "Authorization: Bearer dea464c07bd07300095caa8" \
    https://your-immuta-url.immuta.com/sdd/template/MY_FIRST_FRAMEWORK

Response example

{
  "name": "MY_FIRST_FRAMEWORK",
  "displayName": "My First Framework",
  "description": "This is the first framework I've created.",
  "createdBy": {
    "id": 1,
    "name": "John",
    "email": "john@immuta.com"
  },
  "id": 1,
  "createdAt": "2021-10-18T16:54:24.920Z",
  "updatedAt": "2021-10-18T16:54:24.920Z",
  "classifiers": [
    {
      "name": "MY_DICTIONARY_IDENTIFIER",
      "overrides": {}
    },
    {
      "name": "MY_REGEX_IDENTIFIER",
      "overrides": {}
    }
  ]
}

View the current global framework

Endpoint

Method Path Purpose
GET sdd/template/global View the current global framework.

Query Parameters

None.

Response Parameters

Attribute Description
id integer The unique ID of the framework.
name string Unique, request-friendly framework name.
displayName string Unique, human-readable framework name.
description string The framework description.
classifiers array The identifiers in the framework and any overrides for those identifiers.
createdBy array Includes details about the user who created the framework, such as their profile id, name, and email.
createdAt date When the framework was created.
updatedAt date When the framework was last updated.

Request example

This request gets the current global framework information.

curl -X 'GET' \
  'https://demo.immuta.com/sdd/template/global' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer 9ba76f3c64c345ad817fa467d7110556'

Response example

{
  "name": "MY_FIRST_FRAMEWORK",
  "displayName": "My First Framework",
  "description": "This is the first framework I've created.",
  "createdBy": {
    "id": 2,
    "name": "Jane Doe",
    "email": "jane.doe@immuta.com"
  },
  "id": 1,
  "createdAt": "2022-08-10T20:35:43.252Z",
  "updatedAt": "2022-08-10T20:35:43.252Z",
  "classifiers": [
    {
      "name": "AGE",
      "overrides": {}
    },
    {
      "name": "ETHNIC_GROUP",
      "overrides": {}
    }
  ]
}

Apply identification frameworks to data sources

Endpoint

Method Path Purpose
PUT sdd/template/apply Apply an identification framework to data sources.

Query Parameters

None.

Payload Parameters

Attribute Description Required
template string The name of the identification framework to apply to the data sources. null to clear current framework, and the data source will use the global framework. Yes
sources string The names of the data sources to apply the framework to. Yes

Response Parameters

Attribute Description
success boolean When true, the request was successful.

Request example

This request applies the MY_FIRST_FRAMEWORK framework to the Public Case data source.

curl \
    --request PUT \
    --header "Content-Type: application/json" \
    --header "Authorization: Bearer dea464c07bd07300095caa8" \
    --data @example-payload.json \
    https://your-immuta-url.immuta.com/sdd/template/apply

Payload example

{
  "template": "MY_FIRST_FRAMEWORK",
  "sources": [
    "Public Case"
  ]
}

Response example

{
  "success": true
}

Run SDD on data sources

Endpoint

Method Path Purpose
POST sdd/run Run SDD on specified data sources.

Query Parameters

None.

Payload Parameters

Attribute Description Required
sources string The names of the data sources to apply the identification framework to. Yes
all boolean If true, SDD will run on all Immuta data sources. No
wait integer The number of seconds to wait for the SDD jobs to finish. The value -1 will wait until the jobs complete. Default is -1. No
dryRun boolean When true, SDD will not update the tags on the data source(s). Instead of applying tags, SDD returns the tags that would be applied to the data source. This allows users to evaluate whether or not frameworks are applying tags correctly without updating the data source. Default is false. No
template string If passed, Immuta will run SDD with this framework instead of the applied framework on the data source(s). Passing template when dryRun is false will cause an error. No

Response Parameters

Attribute Description
id string The unique identifier of the job.
state string The job state. Statuses include created, retry, active, completed, expired, cancelled, or failed.
output array[string] Information about the tags applied on the data source, including diff (added and removed tags) and the current state of allTags on all columns in the data sources.

Request example: Run SDD on a single data source

This request runs SDD on the data source Public Case.

curl \
    --request POST \
    --header "Content-Type: application/json" \
    --header "Authorization: Bearer dea464c07bd07300095caa8" \
    --data @example-payload.json \
    https://your-immuta-url.immuta.com/sdd/run

Payload example

{
  "sources": [
    "Insurance Data"
  ]
}

Response example

{
  "Insurance Data": {
    "id": "d2edc1d0-328c-11ec-9d5a-6793988ccf95",
    "state": "completed",
    "output": {
      "diff": {
        "addedTags": {},
        "removedTags": {
          "ssn": [
            "Discovered.Country.US"
          ]
        }
      },
      "sddTagResult": {
        "ssn": [
          "Discovered.Entity.Social Security Number"
        ],
        "email": [
          "Discovered.Entity.Electronic Mail Address"
        ]
      }
    }
  }
}

Request example: Run SDD on all data sources

This request runs SDD on all your data sources.

curl \
    --request POST \
    --header "Content-Type: application/json" \
    --header "Authorization: Bearer dea464c07bd07300095caa8" \
    --data @example-payload.json \
    https://your-immuta-url.immuta.com/sdd/run

Payload example

{
  "all": true
}

Response example

{
  "Insurance Data": {
    "id": "d2edc1d0-328c-11ec-9d5a-6793988ccf95",
    "state": "completed",
    "output": {
      "diff": {
        "addedTags": {},
        "removedTags": {
          "ssn": [
            "Discovered.Country.US"
          ]
        }
      },
      "sddTagResult": {
        "ssn": [
          "Discovered.Entity.Social Security Number"
        ],
        "email": [
          "Discovered.Entity.Electronic Mail Address"
        ]
      }
    }
  }
  "Finance Data": {
    "id": "d2edc1d0-328c-11ec-9d5a-695e896d59s",
    "state": "completed",
    "output": {
      "diff": {
        "addedTags": {},
        "removedTags": {
          "ssn": [
            "Discovered.Country.US"
          ]
        }
      },
      "sddTagResult": {
        "ssn": [
          "Discovered.Entity.Social Security Number"
        ],
        "email": [
          "Discovered.Entity.Electronic Mail Address"
        ]
      }
    }
  }
}

Request example: Test run SDD on all data sources

This request runs SDD on the Medical Claims data source with the PII_REVISION framework, but will not tag any columns if matches are found.

curl \
    --request POST \
    --header "Content-Type: application/json" \
    --header "Authorization: Bearer dea464c07bd07300095caa8" \
    --data @example-payload.json \
    https://your-immuta-url.immuta.com/sdd/run

Payload example

{
  "sources": [
    "Medical Claims"
  ],
  "dryRun": true,
  "template": "PII_REVISION"
}

Response example

{
  "Medical Claims": {
    "id": "86fc4f70-380f-11ec-a432-81748c911385",
    "state": "completed",
    "output": {
      "diff": {
        "addedTags": {},
        "removedTags": {
          "ssn": [
            "Discovered.Country.US",
            "Discovered.Entity.Social Security Number"
          ],
          "state": [
            "Discovered.Country.US",
            "Discovered.Entity.Location",
            "Discovered.Entity.State"
          ],
          "gender": [
            "Discovered.Entity.Gender"
          ],
          "date_of_service": [
            "Discovered.Entity.Date"
          ]
        }
      },
      "sddTagResult": {}
    }
  }
}

Update identifiers or identification frameworks

Method Path Purpose
PUT /sdd/classifier/{classifierName} Update an identifier. Partial updates are not supported.
POST sdd/classifier/template/{templateName}/clone Clone an identification framework.
PUT /sdd/template/{templateName} Update an identification framework.

Update an identifier

Endpoint

Method Path Purpose
PUT sdd/classifier/{classifierName} Update an identifier. Partial updates are not supported.

Query Parameters

Attribute Description Required
classifierName string The name of the identifier to update. Yes

Payload Parameters

Attribute Description Required
name string Unique, request-friendly identifier name. Must be uppercase letters or numbers. Yes
displayName string Unique, human-readable identifier name. Yes
description string The identifier description. Yes
type string The type of criteria: regex, dictionary, columnNameRegex, or builtIn. Yes
config object The configuration of the identifier, which includes config.values, config.caseSensitive, config.regex, config.columnNameRegex, and config.tags. The config object must include one of the following: regex, columnNameRegex, or values. Yes
config.tags array[string] The default resulting tags to apply when the identifier is matched; they must begin with Discovered .. No
config.regex string A case-insensitive regular expression to match against column values. No
config.columnNameRegex string A case-insensitive regular expression to match against column names. No
config.values array[string] The list of words included in the dictionary to match against column values. No
config.caseSensitive boolean Indicates whether or not values are case sensitive. Defaults to false. No
config.minConfidence integer Apply tags when the identifier match is at least this percentage. Not supported for native SDD. Must be between 0 and 1. Yes

Response Parameters

Attribute Description
createdBy array Includes details about the user who created the identifier, such as their profile id, name, and email.
name string Unique, request-friendly identifier name.
displayName string Unique, human-readable identifier name.
description string The identifier description.
type string The type of criteria: regex, dictionary, columnNameRegex, or builtIn.
config object The configuration of the identifier, which includes config.values, config.caseSensitive, config.regex, config.columnNameRegex, and config.tags.
config.tags array[string] The default resulting tags to apply to the data source when the identifier is matched.
config.columnNameRegex string A case-insensitive regular expression to match against column names.
config.regex string A case-insensitive regular expression to match against column values.
config.values array[string] The list of words included in the dictionary to match against column values.
config.caseSensitive boolean Indicates whether or not values are case sensitive.
createdAt date When the identifier was created.
updatedAt date When the identifier was last updated.

Request example

The following request updates the name and description of the MY_REGEX_IDENTIFIER identifier.

curl \
    --request PUT \
    --header "Content-Type: application/json" \
    --header "Authorization: Bearer dea464c07bd07300095caa8" \
    --data @example-payload.json \
    https://your-immuta-url.immuta.com/sdd/classifier/MY_REGEX_IDENTIFIER
Payload example
{
  "name": "REGULAR_EXPRESSIONS",
  "displayName": "Regular Expressions",
  "description": "An identifier example using regex.",
  "type": "regex",
  "config": {
    "regex": "^[A-Z][a-z]+",
    "tags": ["Discovered.regex-example"]
  }
}

Response example

{
  "createdBy": {
    "id": 1,
    "name": "John",
    "email": "john@example.com"
  },
  "name": "REGULAR_EXPRESSIONS",
  "displayName": "Regular Expressions",
  "description": "An identifier example using regex.",
  "type": "regex",
  "config": {
    "tags": [
      "Discovered.regex-example"
    ],
    "regex": "^[A-Z][a-z]+"
  },
  "id": 67,
  "createdAt": "2021-10-14T18:48:56.289Z",
  "updatedAt": "2021-10-19T12:48:56.289Z"
}

Clone an identification framework

Endpoint

Method Path Purpose
POST sdd/template/{templateName}/clone Clone an identification framework.

Query Parameters

Attribute Description Required
templateName string The name of the identification framework to clone. Yes

Payload Parameters

Attribute Description Required
name string Unique, request-friendly framework name for the cloned framework. Yes
displayName string Unique, human-readable framework name for the cloned framework. Yes
description string The cloned framework description. No

Response Parameters

Attribute Description
id integer The unique ID of the framework.
createdBy array Includes details about the user who created the framework, such as their profile id, name, and email.
name string Unique, request-friendly framework name.
displayName string Unique, human-readable framework name.
description string The framework description.
classifiers array The identifiers in the framework and any overrides for those identifiers.
createdAt date When the framework was created.
updatedAt date When the framework was last updated.

Request example

This request clones the MY_FIRST_FRAMEWORK identification framework.

curl \
    --request POST \
    --header "Content-Type: application/json" \
    --header "Authorization: Bearer dea464c07bd07300095caa8" \
    --data @example-payload.json \
    https://your-immuta-url.immuta.com/sdd/template/MY_FIRST_FRAMEWORK/clone
Payload example
{
  "name": "CLONE_OF_FIRST_FRAMEWORK",
  "displayName": "Clone of My First Framework",
  "description": "This is a clone of my first framework."
}

Response example

{
  "name": "CLONE_OF_FIRST_FRAMEWORK",
  "displayName": "Clone of My First Framework",
  "description": "This is a clone of my first framework.",
  "createdBy": {
    "id": 1,
    "name": "John",
    "email": "john@example.com"
  },
  "id": 4,
  "createdAt": "2021-10-19T16:21:17.660Z",
  "updatedAt": "2021-10-19T16:21:17.660Z",
  "classifiers": [
    {
      "name": "MY_COLUMN_NAME_REGEX_IDENTIFIER",
      "overrides": {}
    },
    {
      "name": "MY_REGEX_IDENTIFIER",
      "overrides": {}
    }
  ]
}

Update an identification framework

Endpoint

Method Path Purpose
PUT sdd/template/{templateName} Update an identification framework.

Query Parameters

Attribute Description Required
templateName string The name of the identification framework to update. Yes

Payload Parameters

Attribute Description Required
name string Unique, request-friendly framework name. Must be uppercase letters or numbers. Yes
displayName string Unique, human-readable framework name. Yes
description string The framework description. Yes
classifiers array The identifiers to include in the framework and any additional overrides for those identifiers. Yes
classifiers.name string The name of the identifier to include in the framework. Yes
classifiers.overrides array The overrides to modify the identifier for this framework. No
classifiers.overrides.tags array The resulting tags to apply when the identifier is matched. These tags will override the identifier's default tags and must begin with Discovered .. No

Response Parameters

Attribute Description
id integer The unique ID of the framework.
createdBy array Includes details about the user who created the framework, such as their profile id, name, and email.
name string Unique, request-friendly framework name.
displayName string Unique, human-readable framework name.
description string The framework description.
classifiers array The identifiers in the framework and any overrides for those identifiers.
createdAt date When the framework was created.
updatedAt date When the framework was last updated.

Request example

The following request updates the name of, description of, and identifiers in the MY_FIRST_FRAMEWORK identification framework.

curl \
    --request PUT \
    --header "Content-Type: application/json" \
    --header "Authorization: Bearer dea464c07bd07300095caa8" \
    --data @example-payload.json \
    https://your-immuta-url.immuta.com/sdd/template/MY_FIRST_FRAMEWORK
Payload example
{
  "name": "HEALTH_DATA",
  "displayName": "Health Data",
  "description": "This framework uses the column regex and regex identifiers.",
  "classifiers": [
    {
      "name": "MY_COLUMN_NAME_REGEX_IDENTIFIER"
    },
    {
      "name": "REGULAR_EXPRESSION"
    }
  ]
}

Response example

{
  "name": "HEALTH_DATA",
  "displayName": "Health Data",
  "description": "This framework uses the column regex and regex identifiers.",
  "createdBy": {
    "id": 1,
    "name": "John",
    "email": "john@example.com"
  },
  "id": 1,
  "createdAt": "2021-10-14T19:12:22.092Z",
  "updatedAt": "2021-10-20T19:12:22.092Z",
  "classifiers": [
    {
      "name": "MY_COLUMN_NAME_REGEX_IDENTIFIER",
      "overrides": {}
    },
    {
      "name": "REGULAR_EXPRESSION",
      "overrides": {}
    }
  ]
}

Delete identifiers or identification frameworks

Method Path Purpose
DELETE /sdd/classifier/{classifierName} Delete an identifier.
DELETE /sdd/template/{templateName} Delete an identification framework.

Delete an identifier

Endpoint

Method Path Purpose
DELETE sdd/classifier/{classifierName} Delete an identifier.

Query Parameters

Attribute Description Required
classifierName string The name of the identifier to delete. Yes

Response Parameters

Attribute Description
createdBy array Includes details about the user who created the identifier, such as their profile id, name, and email.
name string Unique, request-friendly identifier name.
displayName string Unique, human-readable identifier name.
description string The identifier description.
type string The type of criteria: regex, dictionary, columnNameRegex, or builtIn.
config object The configuration of the identifier, which includes config.values, config.caseSensitive, config.regex, config.columnNameRegex, and config.tags.
config.tags array[string] The default resulting tags to apply to the data source when the identifier is matched.
config.columnNameRegex string A case-insensitive regular expression to match against column names.
config.regex string A case-insensitive regular expression to match against column values.
config.values array[string] The list of words included in the dictionary to match against column values.
config.caseSensitive boolean Indicates whether or not values are case sensitive.
createdAt date When the identifier was created.
updatedAt date When the identifier was last updated.

Request example

The following request deletes the REGULAR_EXPRESSION identifier.

curl \
    --request DELETE \
    --header "Content-Type: application/json" \
    --header "Authorization: Bearer dea464c07bd07300095caa8" \
    https://your-immuta-url.immuta.com/sdd/classifier/REGULAR_EXPRESSION

Response example

{
  "createdBy": {
    "id": 1,
    "name": "John",
    "email": "john@example.com"
  },
  "name": "REGULAR_EXPRESSION",
  "displayName": "Regular Expression",
  "description": "This identifier uses regular expression",
  "type": "regex",
  "config": {
    "tags": [
      "Discovered.regex-example"
    ],
    "regex": "^[A-Z][a-z]+"
  },
  "id": 67,
  "createdAt": "2021-10-19T15:54:28.695Z",
  "updatedAt": "2021-10-19T16:00:02.329Z"
}

Delete an identification framework

Endpoint

Method Path Purpose
DELETE sdd/template/{templateName} Delete an identification framework.

Query Parameters

Attribute Description Required
templateName string The name of the identification framework to delete. Yes

Response Parameters

Attribute Description
id integer The unique ID of the framework.
createdBy array Includes details about the user who created the framework, such as their profile id, name, and email.
name string Unique, request-friendly framework name.
displayName string Unique, human-readable framework name.
description string The framework description.
classifiers array The identifiers in the framework and any overrides for those identifiers.
createdAt date When the framework was created.
updatedAt date When the framework was last updated.

Request example

The following request deletes the HEALTH_DATA identification framework.

curl \
    --request DELETE \
    --header "Content-Type: application/json" \
    --header "Authorization: Bearer dea464c07bd07300095caa8" \
    https://your-immuta-url.immuta.com/sdd/template/HEALTH_DATA

Response example

{
  "name": "HEALTH_DATA",
  "displayName": "Health Data",
  "description": "This is a framework for health data.",
  "createdBy": {
    "id": 1,
    "name": "John",
    "email": "john@immuta.com"
  },
  "id": 1,
  "createdAt": "2021-10-19T16:07:39.356Z",
  "updatedAt": "2021-10-19T16:07:39.356Z",
  "classifiers": [
    {
      "name": "MY_COLUMN_NAME_REGEX_IDENTIFIER",
      "overrides": {}
    }
  ]
}