How to...
Authentication
io.Connect Desktop doesn't provide a built-in support for any particular authentication mechanism, but rather provides mechanisms for easily integrating your already existing authentication processes. This design decision allows you to keep your existing authentication flows and processes unchanged, while still being able to leverage the io.Connect platform and its capabilities.
The io.Connect platform enables you to show a login screen (an SSO app) before the first client app has been loaded. The io.Connect API injected in the SSO app provides a method for signaling the platform when a user has been successfully authenticated. You can also pass to the platform any relevant information about the authenticated user, which the platform in turn will pass to io.Manager and to any other remote store connected to io.Connect Desktop. This information can later be retrieved by other apps in order to enhance the SSO flow when authentication is needed for additional services.
ℹ️ For more details on configuring and using a login screen and on how to signal the platform that a user has been authenticated, see the Security > Authentication section.
Remote Apps & Layouts
In the standard io.Connect Desktop deployment model, app definitions aren't stored locally on the user machine, but are served remotely. Remote apps and Layouts can be hosted and retrieved using io.Manager stores and/or REST stores.
The settings for the app and Layout stores are defined in the system.json system configuration file of io.Connect Desktop. The app store settings are under the "appStores" top-level key and the Layout store settings are under the "layouts" top-level key.
⚠️ Note that io.Connect Desktop respects the FDC3 standards and can retrieve standard io.Connect, as well as FDC3-compliant app definitions.
ℹ️ For more details on working with FDC3-compliant apps, see the FDC3 Compliance section, the FDC3 App Directory documentation and the FDC3 Application schema.
io.Manager
Apps
To configure io.Connect Desktop to fetch app definitions from io.Manager, set the "type" property of the app store configuration object to "server":
{
"appStores": [
{
"type": "server"
}
]
}ℹ️ For more details, see App Stores > io.Manager Stores.
Layouts
To configure io.Connect Desktop to fetch Layouts from io.Manager, set the "type" property of the "store" object to "server":
{
"layouts" : {
"store": {
"type": "server"
}
}
}ℹ️ For more details, see Layout Stores.
REST Stores
Apps
To configure a connection to the REST service providing the app store, add a new entry to the "appStores" top-level key in the system.json file:
{
"appStores": [
{
"type": "rest",
"details": {
"url": "http://localhost:3000/appd/v1/apps/search",
"auth": "no-auth",
"pollInterval": 30000,
"enablePersistentCache": true,
"cacheFolder": "%LocalAppData%/interop.io/io.Connect Desktop/UserData/%IO_CD_ENV%-%IO_CD_REGION%/configCache/"
}
}
]
}The remote store must return app definitions in the following response shape:
{
"applications": [
// List of app definition objects.
{}, {}
]
}ℹ️ For more details, see App Stores > Remote.
Layouts
To configure a connection to the REST service providing the Layout store, use the "store" property of the "layouts" top-level key in the system.json file:
{
"layouts": {
"store": {
"type": "rest",
"restURL": "http://localhost:8004/",
"restFetchInterval": 20,
"restClientAuth": "no-auth"
}
}
}The remote store must return Layout definitions in the following response shape:
{
"layouts": [
// List of Layout definition objects.
{}, {}
]
}ℹ️ For more details, see Layout Stores.
Example Store Implementations
Apps
ℹ️ For a reference implementation of a remote app definitions store, see the Node.js REST Config example.
Layouts
ℹ️ For a reference implementation of a remote Layout definitions store, see the Node.js REST Config example.
Environments & Regions
io.Connect Desktop allows running it in different environments and regions. Environments usually include development, testing, quality assurance, production environments, and others, in which io.Connect Desktop is tested or integrated. Regions can be any semantic groups - geographic regions, user groups, product categories, and more, defined by the client adopting io.Connect Desktop.
To enable io.Connect Desktop to run in different environments and regions, you must:
create a separate system configuration file for each environment and region combination. You can use the
system.jsonsystem configuration file of io.Connect Desktop as a base system configuration template, common for all environments and regions;create different shortcuts pointing to the io.Connect Desktop executable file for each environment and region, and set command line arguments specifying the respective environment and region configuration file that will be merged with the base system configuration file;
ℹ️ For details on how to configure the io.Connect platform to run in different environments and regions, see the Developers > Configuration > System > Environments & Regions section.
ℹ️ For details on how to automatically create shortcuts during installation when using the io.Connect Desktop installer app for deployment, see the Installer > Shortcuts section. Otherwise, you can use PowerShell or any other deployment technology to create shortcuts.
Multiple Local & Remote Configuration Sources
Available since io.Connect Desktop 10.0.3
he system settings for io.Connect Desktop can be retrieved from multiple local and remote configuration sources. Each source can be assigned priority and the final system configuration will be the result of merging all available configuration sources.
It's possible to use custom configuration files from remote sources. There are also certain limitations that you must take into account regarding some of the system configuration properties.
ℹ️ For details on defining local and remote configuration sources, on using custom configuration files, and on the related limitations, see the Developers > Configuration > System > Multiple Local & Remote Configuration Sources section.
9.0 Version Stream
If you are still using the io.Connect Desktop 9.0 version stream, the configuration of io.Connect Desktop can be extended with configuration files hosted on io.Manager or on another REST service. The configurations from the remote location will be fetched on startup of io.Connect Desktop and will be merged with the locally available ones. You can also supply different remote configurations for each environment and region in which io.Connect Desktop runs.
ℹ️ For details on the requirements for fetching remote configurations, the available settings, and how to fetch remote configuration per environment and region, see the Developers > Configuration > System > Gilding Configuration > Remote Configurations section.
Launcher
The io.Connect Launchpad is a web app that is available as a React Component on NPM as part of the @interopio/home-ui-react library.
ℹ️ For details on how to customize the Launchpad or build an entirely new Launchpad, see the Capabilities > Launcher section.
Workspaces
The Workspaces App is entirely customizable.
ℹ️ For details on how to customize the Workspaces UI or build an entirely new Workspaces App, see the Capabilities > Windows > Workspaces section.
Window Groups
The io.Connect web groups are entirely customizable.
ℹ️ For details on how to customize the io.Connect Windows or build an entirely new Web Group App, see the Capabilities > Windows > Window Management section.
Modal Windows
io.Connect Desktop supports a set of predefined modal windows (alerts and dialogs), which you can use in your interop-enabled apps via the @interopio/modals-api library.
ℹ️ For details on how to configure the io.Connect modal windows, see the Capabilities > Modals section.
Notifications
You can filter the io.Connect notifications, enable or disable notification toasts and specify their size and duration through configuration.
ℹ️ For more details on how to configure the default notification apps or your custom Notifications App, see the Notifications section.
Feedback Form
io.Connect Desktop has a built-in Feedback Form that allows users to send feedback with improvement suggestions or bug reports.
ℹ️ For more details, see the Capabilities > More > Features > Feedback Form section.

Feedback Button
The Feedback Form can be opened directly from an app instance by using the "Feedback" button in the app window header. The "Feedback" button is disabled by default and can be enabled globally via the system configuration of io.Connect Desktop or per app via the app definition file. The app definition will override the global system configuration.
ℹ️ For more details, see the Capabilities > More > Features > Feedback Form > Feedback Button section.

Configuration
The Feedback Form is configurable globally via the system.json file of io.Connect Desktop.
ℹ️ For more details, see the Capabilities > More > Features > Feedback Form > Configuration section.
Other System Configurations
Multiple Instances
To control running multiple instances of io.Connect Desktop, use the "allowMultipleInstances" top-level key in the system.json file.
The following example demonstrates how to prevent users from running multiple instances of io.Connect Desktop:
{
"allowMultipleInstances": "never"
}The "allowMultipleInstances" property accepts the following values:
| Value | Description |
|---|---|
"inDifferentEnvRegion" |
Default. Allows running multiple instances only in different environments and regions. |
"never" |
Disables running multiple instances. |
Multiple Versions
It's possible to install multiple versions of io.Connect Desktop on the same machine. If you plan on supporting multiple installations, ensure that the different versions are installed in separate folders, and use relative paths in the system.json configuration file in order to avoid data overwriting.
⚠️ Note that the MS Office Adapters are integrated with the registered MS Office app at installation time. This means that only their last-installed version will be available.
Global Protocol Handler
The default name of the io.Connect global protocol is ioconnect, but you can change this prefix using the "protocol" property of the "protocolHandler" top-level key in the system.json file of io.Connect Desktop:
{
"protocolHandler": {
"protocol": "mycustomprotocol"
}
}The following example demonstrates how to start an interop-enabled app using the app protocol option after you have changed the default protocol name:
mycustomprotocol://app/clientlistClient Certificates
The dialog that allows the user to choose from the available client certificates (certificates used in private organizations for user identification) can be configured on system level from the system.json file of io.Connect Desktop.
ℹ️ For more details, see the Capabilities > More > Features > Client Certificates section.
Logging
The logging mechanism of io.Connect Desktop is based on log4js-node and can be customized through the logger.json configuration file. You can modify the configuration for the default log appenders used by io.Connect Desktop or add your custom log appenders.
ℹ️ For more details, see the Developers > Configuration > System > Logging section.