HomeGuidesRecipesAPI
HomeGuidesAPILog In

Environment Synchronization

It is a common scenario to have more than one environment of Intelledox Infiniti for Development, UAT and Production, where is often required to "promote" projects from Developments to UAT, UAT to Production, or simple "move" a project from one deployment to another one.

Using Export-Import functions in Manage is a useful and easy way to achieve this, however, it is a manual process that in some circumstances requires being automated.

Infiniti provides a service where it can fetch data from a source environment and insert it into a destination environment. This is achieved with a web service call requiring following parameters:

  • Source URL on the destination environment.
  • Destination username and password.
  • Source username and password.

A connection string needs to be added in manage web.config titled SyncSource on the destination environment with a connection string to the source.

<add name="SyncSource" connectionString="<Connection string details of source environment>" />
  1. Create a new console Application in Visual Studio.
  2. Add a web reference to following URL: <YourManageUrl>/Services/SyncService.asmx?op=sync
  1. Add the following code to Main. Replace the usernames and passwords with their appropriate values
class Program
    {
        static void Main(string[] args)
        {
            var client = new SyncService.SyncService();
            client.Timeout = 1800000;
            var properties = new SyncService.SyncProperties();
            properties.SourceUserName = "admin";
            properties.SourcePassword = "admin";
            properties.DestinationUserName = "admin";
            properties.DestinationPassword = "admin";
            var result = client.Sync(properties);
            System.Console.WriteLine("Success: " + result.Success);
            System.Console.WriteLine("Message: " + result.Message);
        }
    }

Synchronized Data

  • Folders
  • Projects
    • Project history
      • Template history
      • Binary history
  • Data Sources
    • Data objects
    • Filter Fields
    • Display fields
    • Project dependencies
  • Categories
  • Content Items
    • Folders
    • Versions
    • Text
    • Binary
    • Placeholders
    • Project dependencies

Key features synchronize does not do

  • Deleting anything
  • Users
  • Multiple tenant sync (only logged in tenant)
  • Tenant unit info (As this is already set up in the new environment)
    • Encryption keys
    • Business User Identifier
  • Published items

🚧

Important

Users are not synchronised. Any user GUID that does not exist in the destination environment will be placed in a 'deleted user' table (i.e. modified by user for a project will be a blank name).

There is no attempt at finding a user in the source environment which essentially means workflow is not supported. When you export and import a project, Infiniti will search for the user by user GUID and username in the new environment, the synchronise function does not do this.

Currently, nothing is deleted in the destination environment. If the item already exists the data will be updated.

❗️

SyncService.asmx is removed from product from Infiniti version 10.2.0