# Overview

Source: https://docs.interop.io/desktop/capabilities/interception/overview/index.html

## Overview

All io.Connect functionalities exposed by the io.Connect APIs and used by the interop-enabled apps are performed via sending control messages to the **io.Connect Desktop** platform. These control messages contain specific information about the requested io.Connect operations which the platform processes and executes the respective commands in the respective io.Connect API domains. Therefore, by using the [Interception API](https://docs.interop.io/desktop/reference/javascript/interception/api/index.md) to register your app (usually a [hidden service window](https://docs.interop.io/desktop/capabilities/more/features/index.md#service_windows)) as an interception handler, it's possible to intercept such operation requests on a lower level in order to decorate their default functionality, prevent it, or replace it with your custom functionality.

## Configuration

To enable your apps to register interception handlers, use the `"interception"` top-level key in the `system.json` [system configuration](https://docs.interop.io/desktop/developers/configuration/system/index.md) file of **io.Connect Desktop**.

The following example demonstrates how to enable interception for all apps:

```json
{
    "interception": {
        "enabled": true
    }
}
```

The `"interception"` object has the following properties:

| Property | Type | Description |
|----------|------|-------------|
| `"applications"` | `string[]` | List of names of the apps that will be allowed to register interception handlers. |
| `"enabled"` | `boolean` | If `true`, will enable intercepting platform operations. Defaults to `false`. |

To allow only specific apps to register interception handlers, use the `"applications"` property and provide the names of the apps as specified in their respective [app definitions](https://docs.interop.io/desktop/developers/configuration/application/index.md):

```json
{
    "interception": {
        "enabled": true,
        "applications": ["my-app", "my-other-app"]
    }
}
```
