This section describes the API client available on the Delphix Virtualization Engine.

Introduction

REST

API v5 is a RESTful API. REST stands for REpresentational State Transfer. A REST API will allow you to access and manipulate a textual representation of objects and resources using a predefined set of operations to accomplish various tasks.

JSON

API v5 uses JSON (JavaScript Object Notation) to ingest and return representations of the various objects used throughout various operations. JSON is a standard format and, as such, has many tools available to help with creating and parsing the request and response payloads, respectively.

Here are some UNIX tools that can be used to parse JSON - https://stackoverflow.com/questions/1955505/parsing-json-with-unix-tools. That being said, this is only the tip of the iceberg when it comes to JSON parsing and the reader is encouraged to use their method of choice.

API Client

The various operations and objects used to interact with API v5 are defined in a specification document. This allows us to utilize various tooling to ingest that specification to generate documentation and an API Client, which can be used to generate cURL commands for all operations.

To access the API client documentation without an engine, please refer to the static HTML representations here:

The following will be live links to the API files generated for each release see the Masking page 

  • Virtualization API 1.11.0 Documentation (released in 6.0.0.0)
  • Virtualization API 1.11.0 Documentation (released in 6.0.1.0)
  • Virtualization API 1.11.0 Documentation (released in 6.0.2.0)
  • Virtualization API 1.11.0 Documentation (released in 6.0.3.0)

To see how to log into the API client and for some starter recipes, please check out API Cookbook document.

Supported Features

API v5 is in active development but does not currently support all features that are accessible in the GUI. The list of supported features will expand over the course of subsequent releases.

For a full list of supported APIs, the best place to look is the API client on your Virtualization Engine.

There are some high-level operations that are not currently supported via the v5 APIs.

API Calls for Virtualization Administration

The Delphix Virtualization Engine supports the following two types of administrative APIs:

  • Analytics APIs

    • These APIs are for including Virtualization performance information in the support bundle and do not need to be used unless that information is requested.
  • Application Setting APIs

    • Application Setting APIs allow an administrator to change the Delphix Virtualization Engine settings. Presently there are five categories of settings: analytics settings, LDAP settings, general settings, mask settings, and profile settings. Over time, more settings will be added to give users direct control over the product's various settings. Below are the details of currently supported settings.

Application Settings APIs

General Group Settings

Setting GroupSetting NameTypeDescriptionDefault Value
generalEnableMonitorRowCountBooleanControls whether a job displays the total number of rows that are being masked. Setting this to false reduces the startup time of all jobs.true

PasswordTimeSpanInteger [0, ∞)The number of hours a user is locked out for before they can attempt to log in again.23

PasswordCountInteger [0, ∞)The number of incorrect password attempts before a user is locked out.3

AllowPasswordResetRequestBooleanWhen true, users can request a password reset link be sent to the email associated with their account.true

PasswordResetLinkDurationInteger [1, ∞)Controls how many minutes the password reset link is valid for.5

Algorithm Group Settings

Setting GroupSetting NameTypeDescriptionDefault Value
algorithmDefaultNonConformantDataHandlingString {DONT_MASK, FAIL}Default algorithm behavior for Handling of NonConformant Data patterns.DONT_MASK

Database Group Settings

Setting GroupSetting NameTypeDescriptionDefault Value
databaseDB2zDateFormatStringDefault Date String format to use for DB2 zOS if the database is not using one of the pre-defined IBM DB2 zOS Date String formats. Default is ISO Date String format.yyyy-MM-dd

LDAP Group Settings

Setting GroupSetting NameTypeDescriptionDefault Value
ldapEnableBooleanUsed to enable and disable LDAP authenticationfalse

LdapHostStringHost of LDAP server10.10.10.31

LdapPortInteger [0, ∞)Port of LDAP server389

LdapBasednStringBase DN of LDAP serverDC=tbspune,DC=com

LdapFilterStringFilter for LDAP authentication(&(objectClass=person)(sAMAccountName=?))

MsadDomainStringMSAD Domain for LDAP authenticationAD

LdapTlsEnableBooleanEnable and disable the use of TLS for LDAP connections.false

Warning

In the LDAP group, once the "Enable" setting is set to "true", all users logging in will be authenticated via the LDAP server. Local authentication will no longer work. Before setting this to true set all other LDAP settings correctly and create the necessary LDAP users on the masking engine.

Mask Group Settings

Setting GroupSetting NameTypeDescriptionDefault Value
maskDatabaseCommitSizeInteger [1, ∞)Controls how many rows are updated (Batch Update) to the database before the transaction is committed.10000

DefaultStreamsInteger [1, ∞)Default number of streams for a masking job.1

DefaultUpdateThreadsInteger [1, ∞)Default number of database update threads for a masking job.1

DefaultMaxMemoryInteger [1024, ∞)Default maximum memory for masking jobs (in megabytes).1024

DefaultMinMemoryInteger [1024, ∞)Default minimum memory for masking jobs (in megabytes).1024

Profile Group Settings

Setting GroupSetting NameTypeDescriptionDefault Value
profileEnableDataLevelCountBooleanWhen enabled, only profile the number of rows specified by DataLevelRows when running data level profiling jobs.

When disabled, profile all rows when running data level profiling jobs.
false

DataLevelRowsInteger [1, ∞)The number of rows a data level profiling job samples when profiling a column. This is only used when EnableDataLevelCount is true.100

DataLevelPercentageDouble (0, ∞)Percentage of rows that must match the data level regex to consider this column a match, and thus sensitive.80.0

IgnoreDatatypeStringDatatypes that a profiling job should ignore. Columns of these types will not be assigned a domain/algorithm pair.BIT,BOOLEAN,CHAR#1,VARCHAR#1,VARCHAR2#1,NCHAR#1,
NVARCHAR#1,NVARCHAR2#1,BINARY,VARBINARY,IMAGE,
LOB,LONG,BLOB,CLOB,NCLOB,BFILE,RAW,ENUM,BFILE

DefaultStreamsInteger [1, ∞)Default number of streams for a profiling job.1

DefaultMaxMemoryInteger [1024, ∞)Default maximum memory for profiling jobs (in megabytes).1024

DefaultMinMemoryInteger [1024, ∞)Default minimum memory for profiling jobs (in megabytes).1024

Job Group Settings

Setting GroupSetting NameTypeDescriptionDefault Value
jobJobLoggingLevelString {Basic, Detailed}Controls the amount of information being logged from a job's output. Warning: the Detailed setting may log sensitive information when errors occur. Although this information can be very valuable when debugging a problem, it should be used with care.