You are currently viewing custom features documentation. To see the documentation for standard functionality in the current release, click here.

Feature available in Helium 6.0.2 release


The DataSync Agent plugin architecture allows the agent to modify inbound payloads before the data is inserted into a database or saved to a file. Thus, encrypting specified values using Voltage encryption can be applied before inserting the row into your database. When you specify the list of tables and column names in the encrypt_columns parameter in the format of <table>:<column>;<table>:<column>;etc., i.e. incident:comments, the plugin will encrypt these specific columns that contain sensitive information for your infrastructure to decrypt and process themselves.

(info) NOTEThis is a custom feature for a specific use case to encrypt data saved using the Voltage API before saving it into the database. Contact Perspectium Support for more information.


Prerequisites


(warning) First, you will need to set up one of the Perspectium DataSync Agents.

(warning) You should also stop running your DataSync Agent before making any Agent configuration changes.


Procedure

To start using the Voltage API in your DataSync Agent, follow these steps:


Navigate to the directory where you saved your agent.xml file when installing your DataSync Agent.

Open your agent.xml file in a text editing application. Then, add the following attributes within the plugin directive:

ParametersDescriptionRequired?

url

REST url endpoint

Yes

trace_id

Identifier for each request made to the API

No. If empty or not included, a GUID will be generated for each request otherwise all requests will use the specified trace_id.

app_name

Name of the application, i.e. Perspectium Agent

Yes

host_name

If empty or not included, then host_name will be set to the name of the computer/machine running the agent

No

identity

Identifier for application using the API

No

shared_secret

Secret phrase shared between clients using API

Yes

encryption_type

Encryption method, i.e. AES = 3

Yes

encrypt_columns

List of tables and columns to be encrypted by the Voltage API. Lists need to be in the following format:
table1:columnA;table1:columnB;table2:columnA

Yes

In the <plugin> directive, add the following value: com.perspectium.replicator.sql.plugin.SQLSubscriberVoltageEncrypterPlugin.

<plugin url="https://example.com/api" trace_id="" app_name="agent" host_name="psp" identity="" shared_secret="secret" encryption_type="3" encrypt_columns="u_edge_testing:u_test_column1,u_edge_testing:u_notes,incident:comments">com.perspectium.replicator.sql.plugin.SQLSubscriberVoltageEncrypterPlugin</plugin>

Example of a complete agent.xml configuration with the Voltage API plugin applied: 

<?xml version="1.0" encoding="ISO-8859-1" ?>
<config>
    <agent>
        <max_reads_per_connect>1</max_reads_per_connect>
        <polling_interval>5</polling_interval>
        <subscribe>
            <task>
                <polling_interval>5</polling_interval>
                <task_name>oracle_subscriber_automated_test</task_name>
                <handler>com.perspectium.replicator.sql.SQLSubscriber</handler>
                <decryption_key>Some decryption key here</decryption_key>
                <message_connection user="demo" password="demo" queue="psp.out.replicator.agent.example">https://example.perspectium.net</message_connection>
                <use_cache/>
                <instance_connection user="demo" password="demo">https://exmaple.service-now.com</instance_connection>
                <database_type>sqlserver</database_type>
                <database_server>localhost</database_server>
                <database_port>1521</database_port>
                <database_user>example</database_user>
                <database_password>example</database_password>
                <database_parms/>
                <database>psp_db</database>
                <skip_columns_log_interval>200</skip_columns_log_interval>
                <plugins>
                    <plugin url="https://example.com/api"
                            trace_id=""
                            app_name="example"
                            host_name="psp"
                            identity=""
                            shared_secret="example"
                            encryption_type="3"
                            encrypt_columns="u_edge_testing:u_test_column1,u_edge_testing:u_notes,incident:comments">com.perspectium.replicator.sql.plugin.SQLSubscriberVoltageEncrypterPlugin</plugin>
                </plugins>
            </task>
        </subscribe>
    </agent>
</config>

After configuring your agent.xml, start running your DataSync Agent again.