Migrating to io.Connect Browser

Overview

Glue42 Core and Glue42 Core+ are now io.Connect Browser. It's now required to have a valid license key to create an io.Connect Browser project, as Glue42 Core is deprecated as a free option. All related libraries are also no longer open-source.

Libraries

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 used in the io.Connect Browser Main app and its client apps. Subset of the @interopio/browser-platform and the @interopio/browser libraries which offers basic functionalities for sharing data between apps.
@glue42/web @interopio/browser JavaScript library for io.Connect Browser client apps.
@glue42/web-platform, @glue42/core-plus @interopio/browser-platform JavaScript library for creating a Main app for io.Connect Browser.
@glue42/web-worker @interopio/browser-worker JavaScript library used in a Service Worker for the Main app of io.Connect Browser.
@glue42/fdc3 @interopio/fdc3 JavaScript library providing an io.Connect implementation of the FDC3 standards.
@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 Browser client apps.
@glue42/react-hooks @interopio/react-hooks React library for io.Connect Browser client apps.
@glue42/workspaces-api @interopio/workspaces-api JavaScript library for manipulating Workspaces in io.Connect Browser.
@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 Browser, 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.

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 glue42core and the new iobrowser objects injected in the global window object.

JavaScript

The glue42core object injected in the global window object and used for accessing io.Connect functionalities before the io.Connect library initialization has completed, is now named iobrowser. The previous name is still supported.

The following factory functions have been renamed:

Previous Name New Name Library
GlueCore() IOConnectCore() @interopio/core
GlueIntentsResolver() IOConnectIntentsResolver() @interopio/intents-resolver-api
GlueWeb() IOBrowser() @interopio/browser
GlueWebPlatform(), GlueCorePlus() IOBrowserPlatform() @interopio/browser-platform
GlueWebWorker() IOWorker() @interopio/browser-worker
GlueWorkspaces() IOWorkspaces() @interopio/workspaces-api

The previous factory function names are still supported.

The configuration object for initializing the @interopio/browser-platform library now has a required licenseKey property which you must use to provide a valid license key for your io.Connect Browser project.

Also, the following properties of the configuration object for the IOBrowserPlatform() factory function have been renamed:

Previous Name New Name
glue browser
glueFactory browserFactory
server manager

The glue property of the object returned from initializing the @interopio/browser-platform library, which grants access to the io.Connect APIs, has been renamed to io:

const config = { licenseKey: "my-license-key" };

const { io, platform } = await IOBrowserPlatform(config);

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/browser-platform library:

Previous Name New Name
Glue42WebPlatform IOConnectBrowserPlatform
Server Manager

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

Previous Name New Name
Glue42Web IOConnectBrowser

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