How to reveal data
This section outlines the complete File-to-File transformation process for CSV files. The example provided here demonstrates how to reveal data of a CSV file. The reveal operation returns the data based on the default reveal format defined in the access policy.
Note
Currently, the default reveal format supported by BDT is only plaintext.
Important Points
We have provided the following sample files with this example.
Input.csv: Contains the data to be processed. Download and save this file on the host machine specified during volume mapping when deploying BDT.
Output.csv: Contains the processed data. This file will get created on the host machine specified during volume mapping when deploying BDT.
Column of the
input.csv
file that will be revealed in this demo is: latitude.We will use the same protection policy for reveal that was used during protect (fpeProtectionPolicy) else, data can't be revealed.
Prerequisites
BDT application must be registered on the CipherTrust Manager. Refer to Quick Start for details.
BDT must be deployed. Refer to Quick Start for details.
A compatible CipherTrust Manager must be up and running. Refer to CipherTrust Manager Deployment for details.
Steps
The transformation steps provided in this example can be performed using the CipherTrust Manager UI or API playground.
Create source and destination data-sources. The source data-source contains the data to be processed while the destination data-source will store the processed data. The output of protect operation will act as input for the reveal operation.
API:
post /v1/data-protection/data-sources
Create source data-source
Request
{ "name": "sourcefileforreveal", "description": "source details", "type": "CSV File", "file_properties": {"file_path": "/opt/app/tmp/input/inputReveal.csv", "delimiter": ",", "column_count": 12, "has_header_row": true} }
Response
{ "id": "24fad7da-d288-47cb-b93b-815760cad19f", "uri": "kylo:kylo:adp-management:data-sources:sourcefileforreveal-24fad7da-d288-47cb-b93b-815760cad19f", "account": "kylo:kylo:admin:accounts:kylo", "createdAt": "2025-04-10T10:30:54.678120212Z", "updatedAt": "0001-01-01T00:00:00Z", "name": "sourcefileforreveal", "description": "source details", "type": "CSV File", "file_properties": { "file_path": "/opt/app/tmp/input/inputReveal.csv", "delimiter": ",", "qualifier": "\"", "column_count": 12, "has_header_row": true, "encoding": null, "record_length": null, "line_separator": null } }
In response, ID of sourcefile (
24fad7da-d288-47cb-b93b-815760cad19f
) is returned.Create destination data-source
Request
{ "name": "destinationfileforreveal", "description": "destination details", "type": "CSV File", "file_properties": {"file_path": "/opt/app/tmp/output/outputReveal-2025-03-26.11.01.55.639.csv", "delimiter": ",", "column_count": 12, "has_header_row": true} }
Response
{ "id": "c1e06436-2ae9-48a3-b3c7-79f6c909b3ef", "uri": "kylo:kylo:adp-management:data-sources:destinationfileforreveal-c1e06436-2ae9-48a3-b3c7-79f6c909b3ef", "account": "kylo:kylo:admin:accounts:kylo", "createdAt": "2025-04-10T10:33:47.6178149Z", "updatedAt": "0001-01-01T00:00:00Z", "name": "destinationfileforreveal", "description": "destination details", "type": "CSV File", "file_properties": { "file_path": "/opt/app/tmp/output/outputReveal-2025-03-26.11.01.55.639.csv", "delimiter": ",", "qualifier": "\"", "column_count": 12, "has_header_row": true, "encoding": null, "record_length": null, "line_separator": null } }
In response, ID of destinationfile (
c1e06436-2ae9-48a3-b3c7-79f6c909b3ef
) is returned.To create a data source from CipherTrust Manager's UI, follow this link.
Similarly, you can also create data sources for fixed length file and databases. For fixed length file follow the link. For databases, refer to Managing Data Sources.
Create job configuration.
API:
post /v1/data-protection/bdt/job-configurations
API Request
{ "name": "job configuration for reveal", "in_place_update": false, "source_id": "24fad7da-d288-47cb-b93b-815760cad19f", "destination_id": "c1e06436-2ae9-48a3-b3c7-79f6c909b3ef", "tables": [ { "columns": [ { "source_column_name": "latitude", "operation": "reveal", "protection_policy": "fpeProtectionPolicy"} ] } ] }
API Response
{ "id": "210cfdec-37d5-44f3-b9e0-fa4663030f74", "uri": "kylo:kylo:adp-management:bdt-job-configurations:job-configuration-for-reveal-210cfdec-37d5-44f3-b9e0-fa4663030f74", "account": "kylo:kylo:admin:accounts:kylo", "createdAt": "2025-04-10T10:40:08.615309848Z", "updatedAt": "2025-04-10T10:40:08.615309848Z", "version": 1, "name": "job configuration for reveal", "description": "", "case_sensitive": false, "source_id": "24fad7da-d288-47cb-b93b-815760cad19f", "destination_id": "c1e06436-2ae9-48a3-b3c7-79f6c909b3ef", "in_place_update": false, "unprocessed_record_file": "", "tables": [ { "id": "c2756724-9983-43dd-89d5-93bc9737552e", "uri": "kylo:kylo:adp-management:bdt-job-configurations-tables:c2756724-9983-43dd-89d5-93bc9737552e", "account": "kylo:kylo:admin:accounts:kylo", "createdAt": "2025-04-10T10:40:08.623659657Z", "updatedAt": "2025-04-10T10:40:08.622902571Z", "source_table": "", "source_schema": "", "destination_table": "", "destination_schema": "", "create_destination_table": false, "subset": { "limit": 0, "offset": 0, "recurrency": 1, "order_by": "", "order": "ASC", "filters": null }, "columns": [ { "id": "67074d83-cd41-4481-bdb7-0d798736fb52", "uri": "kylo:kylo:adp-management:bdt-job-configurations-tables-columns:67074d83-cd41-4481-bdb7-0d798736fb52", "account": "kylo:kylo:admin:accounts:kylo", "createdAt": "2025-04-10T10:40:08.630819232Z", "updatedAt": "2025-04-10T10:40:08.628260173Z", "source_column_name": "latitude", "operation": "reveal", "protection_policy": "fpeProtectionPolicy" } ] } ], "meta": { "job_running": false } }
In response, ID of the job configuration (
210cfdec-37d5-44f3-b9e0-fa4663030f74
) is returned.To create job configuration from CipherTrust Manager's UI, follow this link.
To reveal, select operation type as reveal.
Tip
Multiple columns can be configured in a single job configuration, and each column can be associated with different protection policies.
Run job.
To run a job, at least one active client must be registered with the application.
There is slight difference in the
Run Job
API call depending on the CipherTrust Manager version you are using. Choose the preferred tab to view the details.API:
post /v1/data-protection/run-job
API Request
{ "job_configuration_id": "210cfdec-37d5-44f3-b9e0-fa4663030f74", "client_profile_id": "ab2e3f89-b277-4821-9939-4e5ee6e82352" }
API Response
{ "job_status_id": "a960a20c-4852-4fee-a18b-302710f67170"}
In response, a job status ID (
a960a20c-4852-4fee-a18b-302710f67170
) is returned, use this ID to check the intermediate status of the job.API:
post /v1/data-protection/bdt/job-configurations/{id}/run
Pass the job configuration ID (generated in step 2) and client profile ID(generated in deployment steps) in the API request.
API Request
post /v1/data-protection/bdt/job-configurations/{210cfdec-37d5-44f3-b9e0-fa4663030f74}/run {"client_profile_id": "ab2e3f89-b277-4821-9939-4e5ee6e82352"}
API Response
{ "job_status_id": "bf2a71d7-8c7f-438a-8a87-35c0bb351383"}
In response, a job_status_id (
bf2a71d7-8c7f-438a-8a87-35c0bb351383
) is returned. Use this ID to check the status of the job.To run a job from CipherTrust Manager's UI, follow this link.
Check status of the job.
There is slight difference in the
Job Status
API call depending on the CipherTrust Manager version you are using. Choose the preferred tab to view the details.API:
get /v1/data-protection/job-status/{id}
API Request
{ /v1/data-protection/job-status/{bf2a71d7-8c7f-438a-8a87-35c0bb351383} }
In response, information about the job in various stages, total number of records processed, error messages are returned.
API:
get /v1/data-protection/jobs/{id}
Pass the
job_status_id
(generated in step 3) in the API request.API Request
/v1/data-protection/jobs/bf2a71d7-8c7f-438a-8a87-35c0bb351383
In response, information about the job in various stages, total number of records processed, error messages are returned.
To run a job from CipherTrust Manager's UI, follow this link.
In response, information about the jobs in various stages, total number of records processed, error messages are returned.
Verify Results
After the job status gets completed, check the Output.csv for transformed data.
Note
For transformations, where destination is file, the output file name (provided on UI) will also contain a timestamp appended to it. For example, <output-name-as-per-ui>-2025-04-01.17.57.01.521.csv
For CSV file, the output file will be formatted as:
<file-name>-<timestamp>.csv
For fixed length file, the output file will be formatted as:
<file-name>-<timestamp>.txt
In the Input.csv file, the latitude column was in ciphertext, after transformation, the data is in plaintext.
Before Transformation | After Transformation |
---|---|
![]() | ![]() |