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
}
}
}
}
]