How to...

Overview

The io.Connect Desktop platform is the result of merging and rebranding the previous Glue42 Enterprise and Finsemble desktop integration platforms. If you want to migrate your existing platform to the new, improved and much more powerful io.Connect Desktop platform, you should take into consideration the guide lines in the following sections.

From Glue42 Enterprise

Migrating from Glue42 Enterprise to io.Connect Desktop requires very little development effort. The migration process in each case may differ depending on which io.Connect libraries and features you are using. Overall, this may include:

  • updating the names of the imported io.Connect libraries in your apps;
  • renaming some of the types if using TypeScript;
  • changing some of the paths in your configuration files;
  • setting up permissions for the new io.Connect Desktop executable and updating custom shortcuts to it;
  • moving manually local Layouts, app definitions or saved preferences;

Installer

If you are downloading the io.Connect Desktop installer from AWS, the new domain is https://install.interop.io/. You may need to set up permissions for the https://interop.io/ domain if your organization requires it.

The new io.Connect Desktop executable file is called io-connect-desktop.exe. You may need to set up permissions for it if your organization requires it.

If you are using custom shortcuts for running io.Connect Desktop in different environments and regions or for fetching remote configurations, you must update them with the name of the new executable file:

io-connect-desktop.exe -- config=config/system.json configOverrides config0=config/system-PROD-EMEA.json

The new default installation location is %LocalAppData%/interop.io/io.Connect Desktop (for all renamed directories, see the Directory Names section).

Desktop Client

The new io.Connect global protocol handler is ioconnect://. The previous glue42:// protocol handler is also registered, so it will still work if you are using it.

Locally saved Layouts, app definitions and app preferences won't be automatically moved to the new location once io.Connect Desktop is installed. The same is valid for all locally saved data in the UserData folder.

The User Agent in web requests may be different, as by default it uses the name of the executable file.

The default environment and region for io.Connect Desktop are now DEMO-INTEROP.IO.

Directory Names

The new default installation location for io.Connect Desktop is %LocalAppData%/interop.io/io.Connect Desktop.

The following directories within the installation location have been renamed:

Previous Name New Name
GlueBloombergBridge BloombergBridge
GlueDesktop Desktop
GlueInstaller Installer
GlueOutlook Outlook
GlueSDK SDK
GlueWord Word
GlueXL ioXL

The following directories within the SDK folder have been renamed:

Previous Name New Name
Glue4OfficeJS ioOfficeJS
Glue42Java Java
Glue42NET .NET
GlueCOM COM
GlueCOMv2 COMv2
GlueJS ioDesktopJS

The default path to the UserData folder, where all logs, preferences, Layouts and user app definitions are stored locally, is now %LocalAppData%/interop.io/io.Connect Desktop/UserData.

The GlueConnectors directory within the UserData folder has been renamed to ApplicationAdapters.

The default environment and region directory within the UserData folder has been renamed to DEMO-INTEROP.IO.

Libraries

Web

All web libraries are now published in the @interopio scope in NPM.

The following table lists the renamed JavaScript, React and Angular libraries in the new scope:

Previous Name New Name Description
@glue42/core @interopio/core JavaScript library for io.Connect Desktop client apps. Subset of the @interopio/desktop library which offers basic functionalities for sharing data between apps.
@glue42/desktop @interopio/desktop JavaScript library for io.Connect Desktop client apps.
@glue42/fdc3 @interopio/fdc3 JavaScript library providing an io.Connect implementation of the FDC3 standards.
@glue42/feedback-ui-react @interopio/components-react React library containing components for building and customizing the default apps of io.Connect Desktop (Notification apps, Feedback app, dialogs and more).
@glue42/groups-ui-react @interopio/groups-ui-react React library for building a custom Web Group App in io.Connect Desktop.
⚠️ Note that you should upgrade to the latest version of the @interopio/groups-ui-react library to avoid a loader text misalignment issue for web groups that was accidentally introduced when rebranding the library.
@glue42/intents-resolver-api @interopio/intents-resolver-api JavaScript library for implementing the functionality of a custom Intents Resolver App.
@glue42/ng @interopio/ng Angular library for io.Connect Desktop client apps.
@glue42/notifications-ui-react @interopio/components-react React library containing components for building and customizing the default apps of io.Connect Desktop (Notification apps, Feedback app, dialogs and more).
@glue42/react-hooks @interopio/react-hooks React library for io.Connect Desktop client apps.
@glue42/workspaces-api @interopio/workspaces-api JavaScript library for manipulating Workspaces in io.Connect Desktop.
@glue42/workspaces-ui-react @interopio/workspaces-ui-react React library for building a custom Workspaces App.

For new apps or apps in development, it's strongly recommended to start using the new packages.

The old libraries in the @glue42 scope are still available and compatible with io.Connect Desktop, so it isn't necessary to upgrade your older apps. If you want to migrate your older apps to the new libraries, you only need to update the imports with the new library names, and optionally update the names of the factory functions (if you are using TypeScript, see the TypeScript section for further details on what else you must update). The new libraries support the old factory functions, so it isn't mandatory to update them.

You may also need to update the .npmrc file because of the new @interopio scope.

Native

For your .NET interop-enabled apps, you must switch from the deprecated Glue42 .NET library to the new io.Connect.NET one.

For details on the available io.Connect .NET libraries, see the How to... > Interop-Enable Your Apps > .NET section.

Breaking Changes

The following sections describe the major changes introduced by the new io.Connect libraries. Some of the changes won't break your existing implementations, as they are backwards compatible - e.g., in the JavaScript libraries, both the old and new factory functions are supported, as well as the old glue42gd and the new iodesktop objects injected in the global window object.

JavaScript

The glue42gd object injected in the global window object and used for accessing io.Connect functionalities (OS Info, request headers, proxy settings and more) before the io.Connect library initialization has completed, is now named iodesktop. The previous name is still supported.

The following factory functions have been renamed:

Previous Name New Name Library
Glue() IODesktop() @interopio/desktop
GlueCore() IOConnectCore() @interopio/core
GlueIntentsResolver() IOConnectIntentsResolver() @interopio/intents-resolver-api
GlueWorkspaces() IOWorkspaces() @interopio/workspaces-api

The previous factory function names are still supported.

TypeScript

If you are using TypeScript, take into consideration that some type names are different in the new libraries.

The following types have been renamed in the @interopio/desktop library:

Previous Name New Name
GDWindow IOConnectWindow
Glue API
Glue42 IOConnectDesktop
Glue42Notification Notification
Glue42NotificationAction NotificationAction
Glue42NotificationOptions IOConnectNotificationOptions

The following types have been renamed in the @interopio/core library:

Previous Name New Name
Glue42Core IOConnectCore
GlueCore API
GlueCoreFactoryFunction IOConnectCoreFactoryFunction

The following types have been renamed in the @interopio/workspaces-api library:

Previous Name New Name
Glue42Workspaces IOConnectWorkspaces

The following types have been renamed in the @interopio/intents-resolver-api library:

Previous Name New Name
GlueIntentsResolverFactoryFunction IOConnectIntentsResolverFactoryFunction

React

The following contexts, components and hooks have been renamed in the @interopio/react-hooks library:

Previous Name New Name
GlueContext IOConnectContext
<GlueProvider /> <IOConnectProvider />
useGlue() useIOConnect()
useGlueInit() useIOConnectInit()

If you are using TypeScript with React, consider that the following types have been renamed in the @interopio/react-hooks library:

Previous Name New Name
Glue42DesktopFactory IOConnectDesktopFactory
Glue42ReactConfig IOConnectReactConfig
Glue42ReactFactory IOConnectReactFactory
GlueInitSettings IOConnectInitSettings
GlueProviderProps IOConnectProviderProps
UseGlueInitFunc UseIOInitFunc

The following properties of the IOConnectInitSettings object have been renamed:

Previous Name New Name
web browser
webPlatform browserPlatform

The useGDWindow() hook in the @interopio/groups-ui-react library has been renamed to useIOConnectWindow().

The glue property of the <Workspaces />, <AddApplicationPopup />, <AddWorkspacePopup /> and <SaveWorkspacePopup /> components in the @interopio/workspaces-ui-react library has been renamed to io. A new <Logo /> component is available to be used instead of the <GlueLogo /> component. The <GlueLogo /> component is still supported.

Angular

The following modules and services have been renamed in the @interopio/ng library:

Previous Name New Name
Glue42Ng IOConnectNg
Glue42Store IOConnectStore

The getGlue() method of the IOConnectStore service has been renamed to getIOConnect().

The following types have been renamed in the @interopio/ng library:

Previous Name New Name
Glue42DesktopFactoryFunction IODesktopFactoryFunction
Glue42NgFactory IOConnectNgFactory
Glue42NgFactoryConfig IOConnectNgFactoryConfig
Glue42NgSettings IOConnectNgSettings

The following properties of the IOConnectNgSettings object have been renamed:

Previous Name New Name
web browser
webPlatform browserPlatform

Configurations

If you have a custom system.json file and are using auto injection for the @interopio/desktop or the @interopio/fdc3 library, set the value for the "version" properties to "*" in order to get the latest versions:

{
    "autoInjectAPI": {
        "enabled": true,
        "version": "*"
    },
    "autoInjectFdc3": {
        "enabled": true,
        "version": "*"
    }
}

If you are using the io.Connect classic groups and have a custom themes.json file for configuring the io.Connect themes, change the value of all instances of the "iconSize" property to 16:

// Change the value of `"iconSize"` to 16 for all defined themes.
[
    {
        "name": "dark",
        "displayName": "Night",
        "properties": {
            "buttons": {
                "iconSize": 16
            },
            "group": {
                "buttons": {
                    "iconSize": 16
                }
            },
            "tabs": {
                "headerButtons": {
                    "iconSize": 16
                }
            }
        }
    }
]