Step-by-step deployment guide

1. Configuring the agent

To configure your import agent, mount a JSON configuration file at /app/config/config.hjson with the properties listed below. Refer to the following attachments for a starting point:

5KB
Open

These example configurations will simply import some dummy data from different databases. Edit the following properties in your file to configure the import agent to your needs:

Property
Type
Description

cronPattern

string

Optional CRON pattern describing when the import agent should run (refer to https://crontab.guru for example patterns); omit if you just want to run the agent once

entityTypes

list[object]

Describes how to import entities of a specific type into Elimity Insights

entityTypes[].attributes

list[object]

Describes how to import attributes of this entity type's entities

entityTypes[].attributes[].description*

string

Description of the attribute type for which the agent should import assignments

entityTypes[].attributes[].id

string

Unique identifier of the attribute type for which the agent should import assignments

entityTypes[].attributes[].name*

string

Human-readable name of the attribute type

entityTypes[].attributes[].type

string

Data type of the attribute type, one of "boolean", "date", "dateTime", "number", "string" or "time"

entityTypes[].icon*

string

Icon of the entity type

entityTypes[].id

string

Unique identifier of the entity type for which the agent should import entities

entityTypes[].plural*

string

Plural form of the entity type's name

entityTypes[].query

string

Query that the import agent should send to the configured SQL instances, each resulting row corresponds to an entity of this type; refer to our documentation about the query format for additional information

entityTypes[].singular*

string

Singular form of the entity type's name

insightsSourceId

number

Elimity Insights source identifier; we'll create one in step 2

insightsSourceToken

string

Elimity Insights source token; we'll generate one in step 2

insightsUrl

string

URL of your Elimity Insights server

db2Dsns**

list[string]

List of connection strings that the import agent should use to connect with your IBM Db2 instances; we recommend connecting with a dedicated read-only user

mssqlDns**

list[string]

List of connection strings that the import agent should use to connect with your Microsoft SQL Server instances (we use Microsoft's official Go MSSQL driver behind the scenes, refer to its documentation on supported connection string formats); we recommend connecting with a dedicated read-only user (e.g. by only assigning the db_datareader role)

mySqlDsns**

list[string]

List of connection strings that the import agent should use to connect with your MySQL instances (we use the de facto standard MySQL driver for Go behind the scenes, refer to its documentation on supported connection string formats); we recommend connecting with a dedicated read-only user

oracleDsns**

list[string]

List of connection strings that the import agent should use to connect with your Oracle Database instances (we use the de facto standard Oracle Database driver for Go behind the scenes, refer to the implementation of their connection string parser); we recommend connecting with a dedicated read-only user

relationshipTypes

list[object]

Describes how to import relationships between entities of two specific types into Elimity Insights

relationshipTypes[].attributes

list[object]

Describes how to import attributes of this relationship type's relationships

relationshipTypes[].attributes[].description*

string

Description of the attribute type for which the agent should import assignments

relationshipTypes[].attributes[].id

string

Unique identifier of the attribute type for which the agent should import assignments

relationshipTypes[].attributes[].name*

string

Human-readable name of the attribute type

relationshipTypes[].attributes[].type

string

Data type of the attribute type, one of "boolean", "date", "dateTime", "number", "string" or "time"

relationshipTypes[].from

string

Unique identifier of the entity type from which the relationships start

relationshipTypes[].query

string

Query that the import agent should send to the configured SQL instances, each resulting row corresponds to a relationship between two entities of the configured types; refer to our documentation about the query format for additional information

relationshipTypes[].to

string

Unique identifier of the entity type where the relationships end

transactionIsolationLevel

number

Represents which isolation level the agent should use for the transaction in which it combines all queries; refer to our documentation about transaction isolation levels for additional information

*These properties do not affect the importing functionality, they are only necessary to generate a data model export file when running the import agent with the -print-data-model-export flag.

**The import agent processes each connection string independently and simply concatenates the results to form a single domain graph.

2. Creating a source in Elimity Insights

The import agent also includes some functionality to help you with creating a source in Elimity Insights. Assuming you correctly configured the agent as explained in the previous step, the following command will write a data model export file to data-model-export.json:

You can now upload this file to Elimity Insights when creating a new custom source. Copy the resulting source's identifier and token to the insightsSourceId and insightsSourceToken properties in the agent's configuration file.

3. Deploying the agent

Having configured the agent and having created a source in Elimity Insights, you can now deploy the agent to regularly import data from your SQL databases and upload it to Elimity Insights. Since we distribute the agent as a Docker image, our recommendation for deployment is to use a CaaS solution like Google Cloud Run or Azure Container Apps. If that's not an option, you can also manually deploy the image on e.g. Windows Server. Refer to our documentation about gateways and import agents for additional details.

4. Following up on the import

The import agent outputs logs to indicate its progress, for a manual Windows Server deployment you can check these with docker-compose logs.

Last updated