Replicate Multiple Linear Accounts via the CData Sync CLI

Jerod Johnson
Jerod Johnson
Director, Technology Evangelism
Replicate multiple Linear accounts to one or many databases.

CData Sync for Linear is a stand-alone application that provides solutions for a variety of replication scenarios such as replicating sandbox and production instances into your database. Both Sync for Windows and Sync for Java include a command-line interface (CLI) that makes it easy to manage multiple Linear connections. In this article we show how to use the CLI to replicate multiple Linear accounts.

Configure Linear Connections

You can save connection and email notification settings in an XML configuration file. To replicate multiple Linear accounts, use multiple configuration files. Below is an example configuration to replicate Linear to SQLite:

Windows


<?xml version="1.0" encoding="UTF-8" ?>
<CDataSync>
  <DatabaseType>SQLite</DatabaseType>
  <DatabaseProvider>System.Data.SQLite</DatabaseProvider>
  <ConnectionString>AuthScheme=APIKey;APIKey=myAPIKey;</ConnectionString>
  <ReplicateAll>False</ReplicateAll>
  <NotificationUserName></NotificationUserName>
  <DatabaseConnectionString>Data Source=C:\my.db</DatabaseConnectionString>
  <TaskSchedulerStartTime>09:51</TaskSchedulerStartTime>
  <TaskSchedulerInterval>Never</TaskSchedulerInterval>
</CDataSync>

Java


<?xml version="1.0" encoding="UTF-8" ?>
<CDataSync>
<DatabaseType>SQLite</DatabaseType>
  <DatabaseProvider>org.sqlite.JDBC</DatabaseProvider>
  <ConnectionString>AuthScheme=APIKey;APIKey=myAPIKey;</ConnectionString>
  <ReplicateAll>False</ReplicateAll>
  <NotificationUserName></NotificationUserName>
  <DatabaseConnectionString>Data Source=C:\my.db</DatabaseConnectionString>
</CDataSync>

You can authenticate to Linear with a personal API key or with OAuth 2.0. The API key is the simplest option for connecting with your own Linear account.

Authenticating with an API Key

Set the following connection properties:

  • AuthScheme: Set this to APIKey.
  • APIKey: A Linear personal API key.

To create a personal API key, log in to Linear, open Settings > Security & access > Personal API keys, select New API key, and create it. Copy the key immediately, because Linear shows it only once.

Authenticating with OAuth

OAuth requires a custom OAuth application registered in Linear (Settings > API > OAuth applications), which provides the OAuthClientId and OAuthClientSecret. Two flows are supported:

  • Authorization code: Set AuthScheme to OAuth, InitiateOAuth to GETANDREFRESH, and provide OAuthClientId, OAuthClientSecret, and the CallbackURL defined in your application (e.g., http://localhost:33333). The driver opens Linear in your browser so you can grant access.
  • Client credentials: Set AuthScheme to OAuthClient and provide OAuthClientId and OAuthClientSecret. This authenticates the application itself, with no browser interaction, and suits machine-to-machine integrations.

By default, the driver requests the read,write scopes. The driver refreshes the access token automatically when it expires.

Configure Queries for Each Linear Instance

Sync enables you to control replication with standard SQL. The REPLICATE statement is a high-level command that caches and maintains a table in your database. You can define any SELECT query supported by the Linear API. The statement below caches and incrementally updates a table of Linear data:


REPLICATE Team;

You can specify a file containing the replication queries you want to use to update a particular database. Separate replication statements with semicolons. The following options are useful if you are replicating multiple Linear accounts into the same database:

You can use a different table prefix in the REPLICATE SELECT statement:


REPLICATE PROD_Team SELECT * FROM Team 

Alternatively, you can use a different schema:


REPLICATE PROD.Team SELECT * FROM Team

Run Sync

After you have configured the connection strings and replication queries, you can run Sync with the following command-line options:

Windows


LinearSync.exe -g MyProductionLinearConfig.xml -f MyProductionLinearSync.sql

Java


java -Xbootclasspath/p:c:\sqlitejdbc.jar -jar LinearSync.jar -g MyProductionLinearConfig.xml -f MyProductionLinearSync.sql

Ready to get started?

Learn more or sign up for a free trial:

CData Sync