# Overview

Source: https://docs.interop.io/manager/overview/index.html

## Overview

**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 facilitates managing the data stored in **io.Manager**.

## Architecture

**io.Manager** consists of three components:

- The actual server - a Node.js app;
- Admin UI - a React app;
- Preferred database (MongoDB by default);

![](https://docs.interop.io/manager/images/manager-architecture.png)

**io.Manager** supports various authentication mechanisms (None, Basic, Auth0, custom authentication) and databases (MongoDB, PostgreSQL, Microsoft SQL Server). For more details, see the [Authentication](https://docs.interop.io/manager/authentication/overview/index.md) and [Databases](https://docs.interop.io/manager/databases/overview/index.md) sections.

## Features

#### App Store

**io.Manager** provides an app definition store that can be used by **io.Connect Desktop** and **io.Connect Browser** projects to retrieve the list of apps for the current user.

> ℹ️ *For more details on app definitions and using app stores in **io.Connect Desktop**, see the [Developers > Configuration > Application](https://docs.interop.io/desktop/developers/configuration/application/index.md) and [Capabilities > App Management > Overview > App Stores](https://docs.interop.io/desktop/capabilities/app-management/overview/index.md#app_stores) sections of the **io.Connect Desktop** documentation.*

> ℹ️ *For more details on app definitions and using app stores in **io.Connect Browser**, see the [Capabilities > App Management > App Definitions](https://docs.interop.io/browser/capabilities/app-management/index.md#app_definitions) section of the **io.Connect Browser** documentation.*

#### Layout Store

**io.Manager** provides a Layout store from where common or private user Layouts can be fetched for **io.Connect Desktop** and **io.Connect Browser** projects.

> ℹ️ *For more details on Layouts and using Layout stores in **io.Connect Desktop**, see the [Capabilities > Windows > Layouts](https://docs.interop.io/desktop/capabilities/windows/layouts/overview/index.md) section of the **io.Connect Desktop** documentation.*

> ℹ️ *For more details on Layouts and using Layout stores in **io.Connect Browser**, see the [Capabilities > Windows > Layouts](https://docs.interop.io/browser/capabilities/windows/layouts/setup/index.md) section of the **io.Connect Browser** documentation.*

#### App Preferences Store

**io.Manager** provides an app preferences store where any app running in **io.Connect Desktop** or **io.Connect Browser** can store custom data per user and retrieve it later.

> ℹ️ *For more details on app preferences and using app preferences stores in **io.Connect Desktop**, see the [Capabilities > App Preferences](https://docs.interop.io/desktop/capabilities/app-preferences/overview/index.md) section of the **io.Connect Desktop** documentation.*

> ℹ️ *For more details on app preferences and using app preferences stores in **io.Connect Browser**, see the [Capabilities > App Preferences](https://docs.interop.io/browser/capabilities/app-preferences/index.md) section of the **io.Connect Browser** documentation.*

#### Configurations Store

**io.Manager** can host and supply all [configuration files](https://docs.interop.io/desktop/developers/configuration/overview/index.md) for **io.Connect Desktop**. Different versions of the configuration files can be provided for different versions of **io.Connect Desktop**.

> ℹ️ *For more details on how to enable **io.Connect Desktop** to fetch configurations from a remote location, see the [Developers > Configuration > System > Gilding Configuration > Remote Configurations](https://docs.interop.io/desktop/developers/configuration/system/index.md#gilding_configuration-remote_configurations) section of the **io.Connect Desktop** documentation.*

#### Diagnostics

**io.Manager** comes with an Admin UI which offers the following functionalities:

- Command Center - send commands to specific user sessions for getting logs, triggering page refresh, restarting the desktop client or even executing custom code;
- Feedback and Native Crashes - monitor, review and comment user Feedback and Native Crashes reports;
- User Monitoring - monitor users and their sessions (current and closed), inspect their hardware setup;

## Admin UI

The Admin UI enables you to manage the data stored in **io.Manager** more easily.

### Dashboard

The "Dashboard" is the entry page that allows quick access to other pages.

![Dashboard](https://docs.interop.io/manager/images/admin-ui-dashboard.png)

### Applications

The "Applications" section allows you to:

- see a list of all apps:

![All Apps](https://docs.interop.io/manager/images/admin-ui-apps.png)

- see apps that are available to a specific user group:

![Apps by Group](https://docs.interop.io/manager/images/admin-ui-apps-by-group.png)

- see apps that are available to a specific user:

![Apps by User](https://docs.interop.io/manager/images/admin-ui-apps-by-user.png)

- import new apps:

![Apps Import](https://docs.interop.io/manager/images/admin-ui-apps-import.png)

> ℹ️ *For more details on app definitions and using app stores in **io.Connect Desktop**, see the [Developers > Configuration > Application](https://docs.interop.io/desktop/developers/configuration/application/index.md) and [Capabilities > App Management > Overview > App Stores](https://docs.interop.io/desktop/capabilities/app-management/overview/index.md#app_stores) sections of the **io.Connect Desktop** documentation.*

> ℹ️ *For more details on using app stores and app definitions in **io.Connect Browser**, see the [Capabilities > App Management > App Definitions](https://docs.interop.io/browser/capabilities/app-management/index.md#app_definitions) section of the **io.Connect Browser** documentation.*

### Layouts

The "Layouts" section allows you to:

- see a list of all Layouts:

![Layouts](https://docs.interop.io/manager/images/admin-ui-layouts.png)

- see Layouts that are available to a specific user group:

![Layouts by Group](https://docs.interop.io/manager/images/admin-ui-layouts-by-group.png)

- import new Layouts:

![Layouts Import](https://docs.interop.io/manager/images/admin-ui-layouts-import.png)

> ℹ️ *For more details on Layouts and using Layout stores in **io.Connect Desktop**, see the [Capabilities > Windows > Layouts](https://docs.interop.io/desktop/capabilities/windows/layouts/overview/index.md) section of the **io.Connect Desktop** documentation.*

> ℹ️ *For more details on Layouts and using Layout stores in **io.Connect Browser**, see the [Capabilities > Windows > Layouts](https://docs.interop.io/browser/capabilities/windows/layouts/setup/index.md) section of the **io.Connect Browser** documentation.*

### Desktop Configs

The "Desktop Configs" section allows you to add, edit and remove different versions of the [configuration files](https://docs.interop.io/desktop/developers/configuration/overview/index.md) for **io.Connect Desktop**. The remote configurations provided here will be merged with the locally available ones when **io.Connect Desktop** is initialized.

![Desktop Configs](https://docs.interop.io/manager/images/admin-ui-configs.png)

> ℹ️ *For more details on how to enable **io.Connect Desktop** to fetch configurations from a remote location, see the [Developers > Configuration > System > Gilding Configuration > Remote Configurations](https://docs.interop.io/desktop/developers/configuration/system/index.md#gilding_configuration-remote_configurations) section of the **io.Connect Desktop** documentation.*

Use the "Select Version and Config" panel on the left to add different **io.Connect Desktop** versions. When you add a version, it appears on the list below the "Add new version" input field. When you click on a newly added version, empty templates for all configuration files of **io.Connect Desktop** will appear automatically. You can also add other files manually by using the "Add new config" input field. Click on a file to edit it. The left editor section shows the currently edited file, while the right editor section shows the final merged version of the file (e.g., the files from a specific version named `3.17` will be merged with the same files from a base version named `*`). You can use the `*` symbol in the name of the file either to provide a base version, or to provide a non-specific version like `3.*` which will be merged both with a base version named `*` (if such exists) and also with any specific version - like `3.17`. Different specific versions (like `3.17` and `3.22`) won't be merged together.

> ⚠️ *Note that merging is available only for top-level file properties. If you provide different values for the same top-level key in different file versions, the value in the most specific version will be taken into account when merging the files.*

The following demonstrates creating a specific version of the `system.json` file which contains a setting for disabling the [hotkeys](https://docs.interop.io/desktop/capabilities/more/apis/index.md#hotkeys) functionality of **io.Connect Desktop**. This version is automatically merged with the `system.json` file from an already existing version named `*`, in which there is a setting for disabling the "Restart" entry in the tray icon menu:

![Adding Configs](https://docs.interop.io/manager/images/admin-ui-adding-configs.mp4)

### Users

The "Users" section allows you to see all users that have connected to the server:

![Users](https://docs.interop.io/manager/images/admin-ui-users.png)

### Sessions

The "Sessions" section allows you to monitor all user sessions:

![Sessions](https://docs.interop.io/manager/images/admin-ui-sessions.png)

### Commands

The "Commands" section allows you to send commands to a specific user session:

![Commands](https://docs.interop.io/manager/images/admin-ui-commands.png)

### Feedback

The "Feedback" section allows you to see a list of all feedback items submitted by **io.Connect Desktop** users:

![Feedback](https://docs.interop.io/manager/images/admin-ui-feedback.png)

> ℹ️ *For more details on issue reporting and on using the Feedback Form and the "Feedback" button in **io.Connect Desktop**, see the [Capabilities > More > Features > Issue Reporting](https://docs.interop.io/desktop/capabilities/more/features/index.md#issue_reporting) section of the **io.Connect Desktop** documentation.*
