What Is io.Connect Desktop?

How It All Works

The main components of io.Connect Desktop are the Desktop Client and the io.Connect Gateway. These two components can be packed together or deployed independently.

Desktop Client

The Desktop Client is an Electron based app which offers APIs for:

App Management

  • Loading the list of app definitions for the current user;
  • Managing the apps life-cycle (starting/stopping apps);

Window Management

  • Hosting web apps in desktop windows;
  • Sticking windows together;
  • Advanced window management - Workspaces UI
  • Saving and restoring layouts - Layouts

Data Sharing Between Apps

  • Synchronizing cross-app data by publishing and subscribing for updates of data objects - Shared Contexts
  • UI based on Shared Contexts - Channels
  • Registering and invoking methods - Interop

The io.Connect APIs are available in JavaScript/TypeScript (as well as through lightweight io.Connect React and Angular wrappers) for web apps and in .NET, Java, and COM/VBA for desktop apps.

The Desktop Client is highly customizable and many of its features can be enabled, disabled or re-configured.

io.Connect Gateway

The io.Connect Gateway is a transport with domain specific protocols. It enables the communication between apps running in io.Connect Desktop. By default, it uses WebSockets for delivering messages to apps. Other options are also available upon request. The io.Connect Gateway is written in Clojure and can be transpiled to Java and JavaScript.

App Stores

io.Connect Desktop loads the list of apps available to the user from a pre-configured set of app stores. They can be of different type:

  • Local stores - definitions are read from folders on the machine that is running io.Connect Desktop;
  • Remote stores - definitions are fetched from a REST service;
  • io.Manager stores - definitions are retrieved from io.Manager;

To add an app to io.Connect Desktop, you need to add it to an app store.

Application Adapters

io.Connect Desktop comes with a set of Application Adapters for integrating third-party apps (MS Office, Bloomberg, Salesforce, etc.) with interop-enabled apps. The Application Adapters expose functionalities provided by a specific third-party app, so that they can be re-used in interop-enabled apps.The io.Connect Excel Adapter, for instance, allows apps to open an Excel sheet, populate it with data from the app and receive updates when the data in Excel is changed.

Additional Services

Notifications

The io.Connect Notifications allows for handling notifications and delivering them to the end user via a notifications UI.

The Global Search performs global searches on all defined search providers and returns consolidated results to the user.

io.Insights

io.Insights is a configurable built-in feature of io.Connect Desktop that enables publishing extensive data in the form of metrics, traces and logs based on the OpenTelemetry standard.

io.Manager

io.Manager is a server-side app that provides data to io.Connect (apps, Layouts, preferences) and allows monitoring and interacting with users running io.Connect. It also includes an Admin UI that helps managing the data stored in io.Manager easier.