{"id":16783,"date":"2024-01-02T01:22:39","date_gmt":"2024-01-02T06:22:39","guid":{"rendered":"https:\/\/www.iri.com\/blog\/?p=16783"},"modified":"2025-09-15T08:35:57","modified_gmt":"2025-09-15T12:35:57","slug":"iri-darkshield-rdb-rpc-api","status":"publish","type":"post","link":"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rdb-rpc-api\/","title":{"rendered":"IRI DarkShield-RDB RPC API"},"content":{"rendered":"<p><a href=\"https:\/\/www.iri.com\/products\/darkshield\"><span style=\"font-weight: 400;\">IRI DarkShield<\/span><\/a><span style=\"font-weight: 400;\"> Version 5 includes a Remote Procedure Call (RPC) Application Programming Interface (API) for searching and masking data stored in relational databases. Note that DarkShield also features a fit-for-purpose job wizard in IRI Workbench for databases, which can be an alternative to RDB data discovery and masking in IRI FieldShield for <a href=\"https:\/\/www.iri.com\/company\/faqs\/190\">certain use cases<\/a>.\u00a0<\/span><\/p>\n<p><em><strong>Editors Note<\/strong>: DarkShield Version 6 also includes a single-endpoint <a href=\"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rest-api\/\">REST API<\/a> that covers RDB, NoSQL DB, files, and streaming text sources.<\/em><\/p>\n<p><span style=\"font-weight: 400;\">This API can be used within applications you write, or directly from <\/span><a href=\"https:\/\/www.iri.com\/products\/workbench\/darkshield-gui\/rdb-masking\"><span style=\"font-weight: 400;\">IRI Workbench<\/span><\/a><span style=\"font-weight: 400;\"> jobs you configure graphically. Outside Workbench, you can embed the API as middleware in a (e.g. CI\/CD) pipeline. Within Workbench, you can specify and export its search and mask contexts through the <\/span><i><span style=\"font-weight: 400;\">New Relational DB Search\/Masking Job<\/span><\/i><span style=\"font-weight: 400;\"> wizard.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The DarkShield-RDB API can support any relational database for which a JDBC driver is provided. It is built as a plugin atop the IRI Web Services Platform (codenamed Plankton), which allows you to pick which services you require while utilizing the same hosting, configuration, and logging capabilities provided through the platform.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16804 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/Darkshield-API-Architecture-300x300.png\" alt=\"\" width=\"329\" height=\"329\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Darkshield-API-Architecture-300x300.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Darkshield-API-Architecture.png 1024w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Darkshield-API-Architecture-150x150.png 150w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Darkshield-API-Architecture-768x768.png 768w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Darkshield-API-Architecture-1536x1536.png 1536w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Darkshield-API-Architecture-70x70.png 70w\" sizes=\"(max-width: 329px) 100vw, 329px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Before continuing with this article, please familiarize yourself with the operations of the DarkShield-<\/span><i><span style=\"font-weight: 400;\">Files<\/span><\/i><span style=\"font-weight: 400;\"> API in <\/span><a href=\"https:\/\/www.iri.com\/blog\/data-protection\/darkshield-files-rpc-api\/\"><span style=\"font-weight: 400;\">this article<\/span><\/a><span style=\"font-weight: 400;\"> and the <\/span><i><span style=\"font-weight: 400;\">base <\/span><\/i><span style=\"font-weight: 400;\">DarkShield API in <\/span><a href=\"http:\/\/www.iri.com\/blog\/data-protection\/darkshield-rpc-api\/\"><span style=\"font-weight: 400;\">this article<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The DarkShield-<\/span><i><span style=\"font-weight: 400;\">RDB<\/span><\/i><span style=\"font-weight: 400;\"> API utilizes the DarkShield-<\/span><i><span style=\"font-weight: 400;\">Files<\/span><\/i><span style=\"font-weight: 400;\"> API to handle binary data, and the <\/span><i><span style=\"font-weight: 400;\">base <\/span><\/i><span style=\"font-weight: 400;\">DarkShield API to handle non-binary values extracted from columns in tables.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16805 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/DarkShield-API-Plugins-300x180.png\" alt=\"\" width=\"433\" height=\"260\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/DarkShield-API-Plugins-300x180.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/DarkShield-API-Plugins-1024x614.png 1024w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/DarkShield-API-Plugins-768x461.png 768w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/DarkShield-API-Plugins-1536x922.png 1536w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/DarkShield-API-Plugins.png 1110w\" sizes=\"(max-width: 433px) 100vw, 433px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">All demos associated with this article can be downloaded from our Git repository <\/span><a href=\"https:\/\/github.com\/TeamIRI\/darkshield-api-demos\"><span style=\"font-weight: 400;\">here<\/span><\/a><span style=\"font-weight: 400;\">. To run the demos, you will need a working copy of the DarkShield-RDB API hosted locally on your computer. Contact your <\/span><a href=\"https:\/\/www.iri.com\/partners\/resellers\"><span style=\"font-weight: 400;\">IRI representative<\/span><\/a><span style=\"font-weight: 400;\"> for a trial copy of the software.<\/span><\/p>\n<h5><b>RDB Search Contexts<\/b><\/h5>\n<p><span style=\"font-weight: 400;\">The RDB API introduces an extension to the File Search Context, an RDB Search Context<\/span><i><span style=\"font-weight: 400;\">,<\/span><\/i><span style=\"font-weight: 400;\"> for defining search criteria for a relational database. The following snippet of the OpenAPI definition shows the structure of its schema:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16806 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/RDB-search-context-300x102.png\" alt=\"\" width=\"620\" height=\"211\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/RDB-search-context-300x102.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/RDB-search-context.png 669w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">The RDB Search Context uses a <\/span><i><span style=\"font-weight: 400;\">name <\/span><\/i><span style=\"font-weight: 400;\">attribute to uniquely identify a context for performing search operations. The <\/span><i><span style=\"font-weight: 400;\">fileSearchContextName<\/span><\/i><span style=\"font-weight: 400;\"> attribute indicates a File Search Context that will be associated with the RDB Search Context. There is also a <\/span><i><span style=\"font-weight: 400;\">configs <\/span><\/i><span style=\"font-weight: 400;\">attribute used to pass parameters related to connecting and interacting with a relational database.<\/span><\/p>\n<h5><b>RDB Mask Contexts<\/b><\/h5>\n<p><span style=\"font-weight: 400;\">The RDB API introduces an extension to the File Mask Context, an RDB Mask Context, for defining search criteria for a relational database. The following snippet of the OpenAPI definition shows the structure of its schema:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16807 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/RDB-mask-context-300x108.png\" alt=\"\" width=\"570\" height=\"205\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/RDB-mask-context-300x108.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/RDB-mask-context.png 668w\" sizes=\"(max-width: 570px) 100vw, 570px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">The RDB Mask Context <\/span><i><span style=\"font-weight: 400;\">name <\/span><\/i><span style=\"font-weight: 400;\">attribute uniquely identifies the context when performing masking operations. The <\/span><i><span style=\"font-weight: 400;\">fileMaskContextName<\/span><\/i><span style=\"font-weight: 400;\"> attribute indicates the File Mask Context that will be associated with the RDB Mask Context. There is also a <\/span><i><span style=\"font-weight: 400;\">configs <\/span><\/i><span style=\"font-weight: 400;\">attribute used to pass parameters for connecting and interacting with a relational database.<\/span><\/p>\n<h5><b>RDB Search Configs<\/b><\/h5>\n<table  class=\" table table-hover\" >\n<tbody>\n<tr>\n<td><\/td>\n<td><strong>Key Name<\/strong><\/td>\n<td><strong>Description<\/strong><\/td>\n<td><strong>Optional or Required<\/strong><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Schema<\/span><\/td>\n<td><span style=\"font-weight: 400;\">schemaName<\/span><\/td>\n<td><span style=\"font-weight: 400;\">The name of the schema.<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Required<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">URL<\/span><\/td>\n<td><span style=\"font-weight: 400;\">url<\/span><\/td>\n<td><span style=\"font-weight: 400;\">URL for JDBC connection.<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Required<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">User<\/span><\/td>\n<td><span style=\"font-weight: 400;\">username<\/span><\/td>\n<td><span style=\"font-weight: 400;\">The username.<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Optional<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Password<\/span><\/td>\n<td><span style=\"font-weight: 400;\">password<\/span><\/td>\n<td><span style=\"font-weight: 400;\">The password.<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Optional: if authenticating password is required.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Regex Include\u00a0<\/span><\/td>\n<td><span style=\"font-weight: 400;\">includePattern<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Only tables that match based off of a Java regex pattern inside a schema will be searched.<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Optional<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Regex Exclude\u00a0<\/span><\/td>\n<td><span style=\"font-weight: 400;\">excludePattern<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Tables that do not match based off of a Java regex pattern inside a schema will be searched.<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Optional<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Fetch Size<\/span><\/td>\n<td><span style=\"font-weight: 400;\">fetchSize<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Dictates how many rows to handle per batch. Default value is 1024. Expects an integer.<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Optional<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Driver Configurations<\/span><\/td>\n<td><span style=\"font-weight: 400;\">driverConfigs<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Additional JDBC driver options. Key Value pairs with string values expected.<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Optional<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Driver Class<\/span><\/td>\n<td><span style=\"font-weight: 400;\">driverClassName<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Class name of the JDBC driver to be loaded.<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Optional: JDBC driver will attempt to be loaded based on the URL specified.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Row Limit<\/span><\/td>\n<td><span style=\"font-weight: 400;\">rowLimit<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Max number of rows to be processed in a source table.<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Optional<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Data Types<\/span><\/td>\n<td><span style=\"font-weight: 400;\">dataTypes<\/span><\/td>\n<td><span style=\"font-weight: 400;\">List of possible data types to include in search:<\/span><span style=\"font-weight: 400;\"> [ varchar, char, blob, numeric, integer, float, date, time, timestamp, real, longvarchar, longvarbinary, longnvarchar, binary, varbinary, clob, nclob, sqlxml, nvarchar, nchar, tinyint, smallint, bigint, double, decimal, time_with_timezone, timestamp_with_timezone, struct, ref, array, bit, rowid, ref_cursor, other, , java_object, distinct, datalink, boolean ]<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Optional<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h5><b>RDB Mask Configs<\/b><\/h5>\n<table  class=\" table table-hover\" >\n<tbody>\n<tr>\n<td><\/td>\n<td><strong>Key Name<\/strong><\/td>\n<td><strong>Description<\/strong><\/td>\n<td><strong>Optional or Required<\/strong><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Schema<\/span><\/td>\n<td><span style=\"font-weight: 400;\">schemaName<\/span><\/td>\n<td><span style=\"font-weight: 400;\">The name of the schema.<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Required<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">URL<\/span><\/td>\n<td><span style=\"font-weight: 400;\">url<\/span><\/td>\n<td><span style=\"font-weight: 400;\">URL for JDBC connection.<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Required<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">User<\/span><\/td>\n<td><span style=\"font-weight: 400;\">username<\/span><\/td>\n<td><span style=\"font-weight: 400;\">The username.<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Optional<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Password<\/span><\/td>\n<td><span style=\"font-weight: 400;\">password<\/span><\/td>\n<td><span style=\"font-weight: 400;\">The password.<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Optional: if authenticating password is required.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Driver Configurations<\/span><\/td>\n<td><span style=\"font-weight: 400;\">driverConfigs<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Additional JDBC driver options<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Optional<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Driver Class<\/span><\/td>\n<td><span style=\"font-weight: 400;\">driverClassName<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Class name of the JDBC driver to be loaded.<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Optional: JDBC driver will attempt to be loaded based on the URL specified.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Disable Foreign Keys<\/span><\/td>\n<td><span style=\"font-weight: 400;\">disableForeignKeys<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Attempt to automatically disable foreign keys in target tables when masking.<\/span><span style=\"font-weight: 400;\"> <span id='easy-footnote-1-16783' class='easy-footnote-margin-adjust'><\/span><span class='easy-footnote'><a href='https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rdb-rpc-api\/#easy-footnote-bottom-1-16783' title='Any disabled foreign keys will be automatically reenabled before the completion of the request.'><sup>1<\/sup><\/a><\/span><\/span><\/td>\n<td><span style=\"font-weight: 400;\">Optional<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h5><b>DarkShield-RDB API Endpoints<\/b><\/h5>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16809 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/Slide3-300x169.jpg\" alt=\"\" width=\"523\" height=\"295\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Slide3-300x169.jpg 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Slide3-1024x576.jpg 1024w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Slide3-768x432.jpg 768w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Slide3-scaled.jpg 1110w\" sizes=\"(max-width: 523px) 100vw, 523px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">The RDB API is an extension of the Files API, which is an extension of the DarkShield base API. As such the RDB API requires not only RDB Search\/Mask Contexts, but File Search\/Mask Contexts and base API Search\/Mask Contexts to be created via their respective endpoints.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">A breakdown of API endpoint calls is as follows:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Search Job<\/span>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\/api\/darkshield\/searchContext.create<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\/api\/darkshield\/files\/fileSearchContext.create<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\/api\/darkshield\/rdb\/rdbSearchContext.create<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\/api\/darkshield\/rdb\/rdbSearchContext.search<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\/api\/darkshield\/rdb\/rdbSearchContext.destroy<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\/api\/darkshield\/files\/fileSearchContext.destroy<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\/api\/darkshield\/searchContext.destroy<\/span><\/li>\n<\/ul>\n<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Mask Job<\/span>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\/api\/darkshield\/maskContext.create<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\/api\/darkshield\/files\/fileMaskContext.create<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\/api\/darkshield\/rdb\/rdbMaskContext.create<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\/api\/darkshield\/rdb\/rdbMaskContext.mask<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\/api\/darkshield\/rdb\/rdbMaskContext.destroy<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\/api\/darkshield\/files\/filesMaskContext.destroy<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\/api\/darkshield\/maskContext.destroy<\/span><\/li>\n<\/ul>\n<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Search and Mask Job<\/span>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\/api\/darkshield\/searchContext.create<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\/api\/darkshield\/maskContext.create<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\/api\/darkshield\/files\/fileSearchContext.create<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\/api\/darkshield\/files\/fileMaskContext.create<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\/api\/darkshield\/rdb\/rdbSearchContext.create<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\/api\/darkshield\/rdb\/rdbMaskContext.create<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\/api\/darkshield\/rdb\/rdbSearchContext.mask<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\/api\/darkshield\/rdb\/rdbSearchContext.destroy<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\/api\/darkshield\/rdb\/rdbMaskContext.destroy<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\/api\/darkshield\/files\/fileSearchContext.destroy<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\/api\/darkshield\/files\/filesMaskContext.destroy<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\/api\/darkshield\/searchContext.destroy<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\/api\/darkshield\/maskContext.destroy<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5><b>Search\/Mask Contexts and File Search\/Mask Contexts Example<\/b><\/h5>\n<p><span style=\"font-weight: 400;\">Below are examples of requests made to generate Search\/Mask Contexts and File Search\/Mask Contexts, using Postman to display the body of the POST request.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-16810 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/search-context-300x244.png\" alt=\"\" width=\"592\" height=\"482\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/search-context-300x244.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/search-context.png 615w\" sizes=\"(max-width: 592px) 100vw, 592px\" \/><\/p>\n<p style=\"text-align: center;\"><i><span style=\"font-weight: 400;\">Search Context<\/span><\/i><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16811 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/file-search-context-300x155.png\" alt=\"\" width=\"626\" height=\"323\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/file-search-context-300x155.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/file-search-context.png 607w\" sizes=\"(max-width: 626px) 100vw, 626px\" \/><\/p>\n<p style=\"text-align: center;\"><i><span style=\"font-weight: 400;\">File Search Context<\/span><\/i><\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16812\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/mask-context-279x300.png\" alt=\"\" width=\"543\" height=\"584\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/mask-context-279x300.png 279w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/mask-context.png 611w\" sizes=\"(max-width: 543px) 100vw, 543px\" \/><\/p>\n<p style=\"text-align: center;\"><i><span style=\"font-weight: 400;\">Mask Context<\/span><\/i><\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16813\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/file-mask-context-300x155.png\" alt=\"\" width=\"562\" height=\"290\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/file-mask-context-300x155.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/file-mask-context.png 616w\" sizes=\"(max-width: 562px) 100vw, 562px\" \/><\/p>\n<p style=\"text-align: center;\"><i><span style=\"font-weight: 400;\">File Mask Context<\/span><\/i><\/p>\n<h5><b>RDB Search\/Mask Context Example<\/b><\/h5>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16814\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/RDB-search-context-screenshot-300x206.png\" alt=\"\" width=\"602\" height=\"414\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/RDB-search-context-screenshot-300x206.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/RDB-search-context-screenshot.png 616w\" sizes=\"(max-width: 602px) 100vw, 602px\" \/><\/p>\n<p style=\"text-align: center;\"><i><span style=\"font-weight: 400;\">RDB Search Context<\/span><\/i><i><\/i><\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16815\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/RDB-mask-context-screenshot-300x174.png\" alt=\"\" width=\"624\" height=\"362\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/RDB-mask-context-screenshot-300x174.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/RDB-mask-context-screenshot.png 614w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/><\/p>\n<p style=\"text-align: center;\"><i><span style=\"font-weight: 400;\">RDB Mask Context<\/span><\/i><\/p>\n<h5><b>RDB Search and Mask Operation<\/b><\/h5>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16816 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/Performing-search-and-mask-operation-300x60.png\" alt=\"\" width=\"680\" height=\"136\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Performing-search-and-mask-operation-300x60.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Performing-search-and-mask-operation-768x154.png 768w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Performing-search-and-mask-operation.png 800w\" sizes=\"(max-width: 680px) 100vw, 680px\" \/><\/p>\n<p style=\"text-align: center;\"><i><span style=\"font-weight: 400;\">Performing search and mask operations using Search Contexts and Mask Contexts previously created.<\/span><\/i><\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16817\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/table-darkshield-from-IRI-schema-column-300x60.png\" alt=\"\" width=\"635\" height=\"127\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/table-darkshield-from-IRI-schema-column-300x60.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/table-darkshield-from-IRI-schema-column-768x154.png 768w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/table-darkshield-from-IRI-schema-column.png 900w\" sizes=\"(max-width: 635px) 100vw, 635px\" \/><\/p>\n<p style=\"text-align: center;\"><i><span style=\"font-weight: 400;\">Table DARKSHIELD from IRI schema containing various PII and binary inside the PDF column.<\/span><\/i><\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16818\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/Binary-in-PDF-column-270x300.png\" alt=\"\" width=\"607\" height=\"674\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Binary-in-PDF-column-270x300.png 270w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Binary-in-PDF-column-768x854.png 768w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Binary-in-PDF-column.png 817w\" sizes=\"(max-width: 607px) 100vw, 607px\" \/><\/p>\n<p style=\"text-align: center;\"><i><span style=\"font-weight: 400;\">Binary in PDF column converted to PDF with unprotected PII.<\/span><\/i><\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16819\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/table-darkshield-from-masked-scheme-300x62.png\" alt=\"\" width=\"761\" height=\"157\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/table-darkshield-from-masked-scheme-300x62.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/table-darkshield-from-masked-scheme-768x159.png 768w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/table-darkshield-from-masked-scheme.png 879w\" sizes=\"(max-width: 761px) 100vw, 761px\" \/><\/p>\n<p style=\"text-align: center;\"><i><span style=\"font-weight: 400;\">Table DARKSHIELD from MASKED schema containing various PII and binary inside the PDF column.<\/span><\/i><\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16820\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/Binary-in-PDF-column-converted-to-PDF-with-PII-protected-281x300.png\" alt=\"\" width=\"587\" height=\"627\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Binary-in-PDF-column-converted-to-PDF-with-PII-protected-281x300.png 281w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Binary-in-PDF-column-converted-to-PDF-with-PII-protected-768x820.png 768w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Binary-in-PDF-column-converted-to-PDF-with-PII-protected.png 826w\" sizes=\"(max-width: 587px) 100vw, 587px\" \/><\/p>\n<p style=\"text-align: center;\"><i><span style=\"font-weight: 400;\">Binary in PDF column converted to PDF with PII protected.<\/span><\/i><\/p>\n<p><span style=\"font-weight: 400;\">DarkShield RDB Benchmarks:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-16821 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/darkshield-rdb-benchmarks-300x73.png\" alt=\"\" width=\"555\" height=\"135\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/darkshield-rdb-benchmarks-300x73.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/darkshield-rdb-benchmarks.png 565w\" sizes=\"(max-width: 555px) 100vw, 555px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">If you would like help using this API to scan and\/or mask data in your relational database \u2013 or with any other data source(s), please contact your IRI <\/span><a href=\"https:\/\/www.iri.com\/partners\/resellers\"><span style=\"font-weight: 400;\">representative<\/span><\/a><span style=\"font-weight: 400;\"> or email <\/span><a href=\"mailto:darkshield@iri.com\"><span style=\"font-weight: 400;\">darkshield@iri.com<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>IRI DarkShield Version 5 includes a Remote Procedure Call (RPC) Application Programming Interface (API) for searching and masking data stored in relational databases. Note that DarkShield also features a fit-for-purpose job wizard in IRI Workbench for databases, which can be an alternative to RDB data discovery and masking in IRI FieldShield for certain use cases.\u00a0<\/p>\n<div><a class=\"btn-filled btn\" href=\"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rdb-rpc-api\/\" title=\"IRI DarkShield-RDB RPC API\">Read More<\/a><\/div>\n","protected":false},"author":152,"featured_media":16825,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[8,29],"tags":[805,1496,1305,18,13,1778,1398,2182,1718,1719,1765,1717,1758,1495],"class_list":["post-16783","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-protection","category-test-data","tag-api","tag-darkshield-rpc-api","tag-data-masking-tools","tag-data-privacy","tag-data-protection-2","tag-database-data-masking","tag-database-masking","tag-database-pii-masking","tag-finding-pii","tag-masking-pii","tag-rdb-data-masking","tag-rdb-rpc-api","tag-rdbms-data-masking","tag-rpc-api"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v23.4 (Yoast SEO v23.4) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>IRI DarkShield-RDB RPC API - IRI<\/title>\n<meta name=\"description\" content=\"Enhance your data security with the DarkShield RPC API for RDBs. Learn to use this option to find and mask data within your own applications.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rdb-rpc-api\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"IRI DarkShield-RDB RPC API\" \/>\n<meta property=\"og:description\" content=\"Enhance your data security with the DarkShield RPC API for RDBs. Learn to use this option to find and mask data within your own applications.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rdb-rpc-api\/\" \/>\n<meta property=\"og:site_name\" content=\"IRI\" \/>\n<meta property=\"article:published_time\" content=\"2024-01-02T06:22:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-15T12:35:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/RDB-RPC-API-featured-image.png\" \/>\n\t<meta property=\"og:image:width\" content=\"768\" \/>\n\t<meta property=\"og:image:height\" content=\"368\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Adam Lewis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Adam Lewis\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rdb-rpc-api\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rdb-rpc-api\/\"},\"author\":{\"name\":\"Adam Lewis\",\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/person\/37c0e5beab094bd61cc521902df2876e\"},\"headline\":\"IRI DarkShield-RDB RPC API\",\"datePublished\":\"2024-01-02T06:22:39+00:00\",\"dateModified\":\"2025-09-15T12:35:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rdb-rpc-api\/\"},\"wordCount\":1134,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rdb-rpc-api\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/RDB-RPC-API-featured-image.png\",\"keywords\":[\"API\",\"DarkShield RPC API\",\"data masking tools\",\"data privacy\",\"data protection\",\"database data masking\",\"database masking\",\"database PII masking\",\"finding pii\",\"masking pii\",\"RDB data masking\",\"RDB RPC API\",\"RDBMS data masking\",\"RPC API\"],\"articleSection\":[\"Data Masking\/Protection\",\"Test Data\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rdb-rpc-api\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rdb-rpc-api\/\",\"url\":\"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rdb-rpc-api\/\",\"name\":\"IRI DarkShield-RDB RPC API - IRI\",\"isPartOf\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rdb-rpc-api\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rdb-rpc-api\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/RDB-RPC-API-featured-image.png\",\"datePublished\":\"2024-01-02T06:22:39+00:00\",\"dateModified\":\"2025-09-15T12:35:57+00:00\",\"description\":\"Enhance your data security with the DarkShield RPC API for RDBs. Learn to use this option to find and mask data within your own applications.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rdb-rpc-api\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rdb-rpc-api\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rdb-rpc-api\/#primaryimage\",\"url\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/RDB-RPC-API-featured-image.png\",\"contentUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/RDB-RPC-API-featured-image.png\",\"width\":768,\"height\":368},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rdb-rpc-api\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.iri.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"IRI DarkShield-RDB RPC API\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.iri.com\/blog\/#website\",\"url\":\"https:\/\/www.iri.com\/blog\/\",\"name\":\"IRI\",\"description\":\"Total Data Management Blog\",\"publisher\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.iri.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.iri.com\/blog\/#organization\",\"name\":\"IRI\",\"url\":\"https:\/\/www.iri.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png\",\"contentUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png\",\"width\":750,\"height\":206,\"caption\":\"IRI\"},\"image\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/person\/37c0e5beab094bd61cc521902df2876e\",\"name\":\"Adam Lewis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/087667d0c75d33bb6fab6e734bd89333?s=96&d=blank&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/087667d0c75d33bb6fab6e734bd89333?s=96&d=blank&r=g\",\"caption\":\"Adam Lewis\"},\"url\":\"https:\/\/www.iri.com\/blog\/author\/adaml\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"IRI DarkShield-RDB RPC API - IRI","description":"Enhance your data security with the DarkShield RPC API for RDBs. Learn to use this option to find and mask data within your own applications.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rdb-rpc-api\/","og_locale":"en_US","og_type":"article","og_title":"IRI DarkShield-RDB RPC API","og_description":"Enhance your data security with the DarkShield RPC API for RDBs. Learn to use this option to find and mask data within your own applications.","og_url":"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rdb-rpc-api\/","og_site_name":"IRI","article_published_time":"2024-01-02T06:22:39+00:00","article_modified_time":"2025-09-15T12:35:57+00:00","og_image":[{"width":768,"height":368,"url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/RDB-RPC-API-featured-image.png","type":"image\/png"}],"author":"Adam Lewis","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Adam Lewis","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rdb-rpc-api\/#article","isPartOf":{"@id":"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rdb-rpc-api\/"},"author":{"name":"Adam Lewis","@id":"https:\/\/www.iri.com\/blog\/#\/schema\/person\/37c0e5beab094bd61cc521902df2876e"},"headline":"IRI DarkShield-RDB RPC API","datePublished":"2024-01-02T06:22:39+00:00","dateModified":"2025-09-15T12:35:57+00:00","mainEntityOfPage":{"@id":"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rdb-rpc-api\/"},"wordCount":1134,"commentCount":0,"publisher":{"@id":"https:\/\/www.iri.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rdb-rpc-api\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/RDB-RPC-API-featured-image.png","keywords":["API","DarkShield RPC API","data masking tools","data privacy","data protection","database data masking","database masking","database PII masking","finding pii","masking pii","RDB data masking","RDB RPC API","RDBMS data masking","RPC API"],"articleSection":["Data Masking\/Protection","Test Data"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rdb-rpc-api\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rdb-rpc-api\/","url":"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rdb-rpc-api\/","name":"IRI DarkShield-RDB RPC API - IRI","isPartOf":{"@id":"https:\/\/www.iri.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rdb-rpc-api\/#primaryimage"},"image":{"@id":"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rdb-rpc-api\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/RDB-RPC-API-featured-image.png","datePublished":"2024-01-02T06:22:39+00:00","dateModified":"2025-09-15T12:35:57+00:00","description":"Enhance your data security with the DarkShield RPC API for RDBs. Learn to use this option to find and mask data within your own applications.","breadcrumb":{"@id":"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rdb-rpc-api\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rdb-rpc-api\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rdb-rpc-api\/#primaryimage","url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/RDB-RPC-API-featured-image.png","contentUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/RDB-RPC-API-featured-image.png","width":768,"height":368},{"@type":"BreadcrumbList","@id":"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rdb-rpc-api\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.iri.com\/blog\/"},{"@type":"ListItem","position":2,"name":"IRI DarkShield-RDB RPC API"}]},{"@type":"WebSite","@id":"https:\/\/www.iri.com\/blog\/#website","url":"https:\/\/www.iri.com\/blog\/","name":"IRI","description":"Total Data Management Blog","publisher":{"@id":"https:\/\/www.iri.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.iri.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.iri.com\/blog\/#organization","name":"IRI","url":"https:\/\/www.iri.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.iri.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png","contentUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png","width":750,"height":206,"caption":"IRI"},"image":{"@id":"https:\/\/www.iri.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.iri.com\/blog\/#\/schema\/person\/37c0e5beab094bd61cc521902df2876e","name":"Adam Lewis","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.iri.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/087667d0c75d33bb6fab6e734bd89333?s=96&d=blank&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/087667d0c75d33bb6fab6e734bd89333?s=96&d=blank&r=g","caption":"Adam Lewis"},"url":"https:\/\/www.iri.com\/blog\/author\/adaml\/"}]}},"jetpack_featured_media_url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/RDB-RPC-API-featured-image.png","_links":{"self":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts\/16783"}],"collection":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/users\/152"}],"replies":[{"embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/comments?post=16783"}],"version-history":[{"count":12,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts\/16783\/revisions"}],"predecessor-version":[{"id":18592,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts\/16783\/revisions\/18592"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/media\/16825"}],"wp:attachment":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/media?parent=16783"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/categories?post=16783"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/tags?post=16783"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}