> ## Documentation Index
> Fetch the complete documentation index at: https://docs.activeviam.com/llms.txt
> Use this file to discover all available pages before exploring further.

# UI Activation

Each UI project is designed as an extension of the Atoti UI "host application". This section explains how you can easily combine these extensions into a running Atoti ISDA-SIMM application.

## Activating Atoti ISDA-SIMM

1. Download and set up the latest version of the Atoti UI starter application. See the Atoti UI tutorial [here](https://docs.activeviam.com/products/atoti/ui/5.1/docs/tutorial/setup).

2. To activate Atoti ISDA-SIMM, make the following changes:

   In `package.json`:

   ```diff theme={"languages":{"custom":["/engine/python-sdk/6.2/languages/pycon.tmLanguage.json"]}}
   "dependencies": {
   +   "@activeviam/simm-sdk": 3.0.4,
    ...
     }
   ```

   In `index.tsx`:

   ```diff theme={"languages":{"custom":["/engine/python-sdk/6.2/languages/pycon.tmLanguage.json"]}}
   + import { activate } from "@activeviam/simm-sdk";

   const extension: ExtensionModule = {
     activate: async (configuration) => {
       ...
   +    activate({configuration});
     }
   }
   ```

   In `env.development.js` and `env.production.js`, ensure the following exist:

   * A server used as the Content Server
   * An Atoti ISDA-SIMM server with the key "SIMM"

   These elements could refer to the same server. For example:

   ```ts theme={"languages":{"custom":["/engine/python-sdk/6.2/languages/pycon.tmLanguage.json"]}}
   window.env = {
     contentServerVersion: "6.0.0",
     contentServerUrl: "http://localhost:12000/simm-starter",
     activePivotServers: {
       SIMM: {
         url: "http://localhost:12000/simm-starter",
         version: "6.0.0",
       },
     },
   };
   ```

3. Build and run the starter, now with the Atoti ISDA-SIMM features enabled.

## Configuring Atoti ISDA-SIMM

The example above activates Atoti ISDA-SIMM with a default configuration and default settings.
Here's how to modify them.

### Change the configuration

The [`configuration`](https://docs.activeviam.com/products/atoti/ui/5.1/docs/api/types#configuration) parameter is the entry-point to configuring the Atoti UI "host application". It is supplied to the `activate` function that modifies it to add the Atoti ISDA-SIMM features. If you want to make changes like adding or removing a plugin, changing the application's title or adding an HOC, you can modify the configuration object **after** invoking `activate`.

For example:

```ts theme={"languages":{"custom":["/engine/python-sdk/6.2/languages/pycon.tmLanguage.json"]}}
const extension: ExtensionModule = {
  activate: async (configuration) => {
    // default application name
    configuration.applicationName = "AtotiUI";
     ...
    // changes the application name to Atoti ISDA-SIMM
    activate({configuration});
    // Customized application name
    configuration.applicationName = "My Atoti ISDA-SIMM";
  },
};
```

### Change the settings

The `activate` function accepts a `settings` and a `basSettings` argument to let you configure the Atoti ISDA-SIMM features and the BAS features respectively.
You can use the default values exported from the SDK as an override basis:

```ts theme={"languages":{"custom":["/engine/python-sdk/6.2/languages/pycon.tmLanguage.json"]}}
import { activate, settings, basSettings } from "@activeviam/simm-sdk";

const extension: ExtensionModule = {
  activate: async (configuration) => {
    ...
    activate({
      configuration
      settings: {
        ...settings,
        ...{
          // customize here
        }
      },
      basSettings: {
        ...basSettings,
        ...{
          // customize here
        }
      }
    });
  },
};
```

For more information:

* Atoti ISDA-SIMM settings, see [UI settings](./ui-settings).
* BAS settings, see [UI Components](https://docs.activeviam.com/products/tools/ui-components/5.0.40/online-help/).

## Combining Atoti ISDA-SIMM with other solutions or modules

To combine multiple solutions and modules, simply repeat the steps in the combined SDK's "Activating" section.
<Warning>You can only combine solution SDKs that have an Atoti UI peer dependency equal to 5.1.\*.</Warning>

Example:

```ts theme={"languages":{"custom":["/engine/python-sdk/6.2/languages/pycon.tmLanguage.json"]}}
import { activate as simmActivate } from "@activeviam/simm-sdk";
import { activate as frtbActivate } from "@activeviam/frtb-sdk";

const extension: ExtensionModule = {
  activate: async (configuration) => {
    ...
    simmActivate({ configuration });
    frtbActivate({ configuration });
  },
};
```
