Replicate Multiple Short.io Accounts via the CData Sync CLI

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

CData Sync for Short.io 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 Short.io connections. In this article we show how to use the CLI to replicate multiple Short.io accounts.

Configure Short.io Connections

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

Windows

<?xml version="1.0" encoding="UTF-8" ?>
<CDataSync>
  <DatabaseType>SQLite</DatabaseType>
  <DatabaseProvider>System.Data.SQLite</DatabaseProvider>
  <ConnectionString>Profile=C:\profiles\ShortIo.apip;AuthScheme=APIKey;ProfileSettings='APIKey=your_api_key';</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>Profile=C:\profiles\ShortIo.apip;AuthScheme=APIKey;ProfileSettings='APIKey=your_api_key';</ConnectionString>
  <ReplicateAll>False</ReplicateAll>
  <NotificationUserName></NotificationUserName>
  <DatabaseConnectionString>Data Source=C:\my.db</DatabaseConnectionString>
</CDataSync>

Using API Key Authentication

Short.io uses API Key authentication. To obtain your API key:

  1. Log in to your Short.io account
  2. Navigate to Settings > Integrations & API > API
  3. Click Create API Key and copy your API key

After obtaining the API key, you are ready to connect:

  • AuthScheme: Set this to APIKey.
  • APIKey: Set this to your Short.io API key obtained from Settings > Integrations & API > API.

Example connection string:

Profile=C:\profiles\ShortIo.apip;AuthScheme=APIKey;ProfileSettings='APIKey=your_api_key';

Available Tables

The Short.io profile provides access to the following tables:

  • Domains - Short.io domains associated with the authenticated account
  • Links - Short links for a domain
  • LinkExpand - Expand a short link by domain and path
  • LinksByOriginalUrl - Retrieve multiple short links matching a given original destination URL
  • Folders - Link folders within a specific domain
  • LinkPermissions - Permission records for a specific link within a domain
  • CountryTargeting - Country-based redirect targeting rules for a specific short link
  • RegionTargeting - Region-based redirect targeting rules for a specific short link
  • Regions - List of available regions/states for a given country code
  • DomainStatistics - Aggregated click and traffic statistics for a Short.io domain
  • LinkStatistics - Aggregated click and traffic statistics for a specific Short.io link

Configure Queries for Each Short.io 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 Short.io API. The statement below caches and incrementally updates a table of Short.io data:

REPLICATE Domains;

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 Short.io accounts into the same database:

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

REPLICATE PROD_Domains SELECT * FROM Domains 

Alternatively, you can use a different schema:

REPLICATE PROD.Domains SELECT * FROM Domains

Run Sync

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

Windows

APISync.exe -g MyProductionAPIConfig.xml -f MyProductionAPISync.sql

Java

java -Xbootclasspath/p:c:\sqlitejdbc.jar -jar APISync.jar -g MyProductionAPIConfig.xml -f MyProductionAPISync.sql

Ready to get started?

Learn more or sign up for a free trial:

CData Sync