Glue42 Enterprise is now io.Connect Desktop! The new documentation site for all interop.io products is located at docs.interop.io.

Changelog

Glue42 Desktop

Release date: 09.10.2020

Components Version
Electron 9.2.1
Chromium 83.0.4103.122
Node.js 12.14.1

Breaking Changes

Context Merging

Changed the mechanism of merging context data objects (used in Shared Contexts, Channels). When updating a context object, the new and the old values of its first level properties (e.g., the value of a in { a: { b: 0 } }) are no longer merged, but the new value replaces the old value. For further clarification, see the examples below:

// Creating a context object.
await glue.contexts.set("foo", { a: 1 });

// First level properties are merged.
await glue.contexts.update("foo", { b: { c: 2 } });
// The new context now contains both `a` and `b`: `{ a: 1, b: { c: 2 } }`.

// The values of first level properties are replaced during update.
await glue.contexts.update("foo", { b: { d: 3 } });
// The new context value is `{ a: 1, b: { d: 3 } }`.

As a contrast, in Glue42 3.9 the new context value would be { a: 1, b: { c: 2, d: 3 } } after the last update in the example above.

It is recommended that you update your apps to the latest Glue42 APIs:

Storing Data in the App Default Layout

Added support for saving custom context data in the App Default Layout using the onSaveRequested() method of the Layouts API.

If your app already uses onSaveRequested() to store data when a Global Layout is saved, you must update your code to check for the type of the Layout in the save request (e.g., "Global", "ApplicationDefault", etc.). This is necessary if you want to store data only in a certain type of Layout, or if you want to store different data depending on the Layout (see the example below). If you don't update your code, the data that your app used to save only when participating in a Global Layout, will now also be saved in its App Default Layout if your app is started and closed independently (i.e., not part of a Global Layout).

glue.layouts.onSaveRequested((requestInfo) => {
    // Determine the Layout type.
    const layoutType = requestInfo.layoutType;

    // Return different context data depending on the Layout type.
    if (layoutType === "ApplicationDefault") {
        return { windowContext: { gridWidth: 42 } };

    } else if (layoutType === "Global") {
        return { windowContext: { gridWidth: 420 } };

    } else {
        // Return if not interested in other Layout types.
        return;
    };
});

New Features

Workspaces

Workspaces functionality and Workspaces API added.

Workspaces

Glue42 Themes

New default dark and light Glue42 themes.

Click on the image and use the slider to see the differences between the new and the old Glue42 Day themes.

Click on the image and use the slider to see the differences between the new and the old Glue42 Night themes.

Performance Metrics

New Performance Metrics added.

Storing Custom Data in App Default Layout

Apps can now store custom data in the App Default Layout.

Window Title Format

The title format of Glue42 Windows can now be set through system configuration.

Grouping Apps

Apps can now be grouped in folders and subfolders in the Glue42 Toolbar.

Extending System Configuration

The Glue42 Enterprise system configuration can now be extended with custom configuration from a REST service.

Browser window.open()

The native browser window.open() call can now open browser windows or Glue42 Windows, or can be entirely disabled based on system configuration.

JavaScript Themes API

New Themes JavaScript API.

JavaScript Joining & Leaving Channels

New methods for joining/leaving Channels programmatically, subscribing for a specific Channel and managing Channel context in the Channels JavaScript API.

Java App Shutdown Event

Added event listener for app shutdown to the Java API.

VBA Documentation

Added VBA documentation:

Improvements and Bug Fixes

Glue42 Connectors

New Features

Fidessa Connector

Fidessa Connector added (shipped separately from the trial installer, contact us for more information).

Salesforce Connector Documentation

Salesforce Connector documentation added.