> ## 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.

# atoti.SessionConfig

### *final class* atoti.SessionConfig

The config passed to [`atoti.Session.start()`](./atoti.Session.start#atoti.Session.start).

#### ai *: [AiConfig](./atoti_ai.ai_config#atoti_ai.AiConfig) | [None](https://docs.python.org/3/library/constants.html#None)* *= None*

The Atoti Intelligence config.

Requires the [`atoti_ai`](./atoti_ai#module-atoti_ai) plugin.

#### app\_extensions *: [Mapping](https://docs.python.org/3/library/collections.abc.html#collections.abc.Mapping)\[[str](https://docs.python.org/3/library/stdtypes.html#str), [Path](https://docs.python.org/3/library/pathlib.html#pathlib.Path)]* *= frozendict(\{})*

Mapping from the name of an Atoti UI extension (i.e. name property in their package.json) to the path of its dist directory.

<Note>
  This feature is not part of the community edition: it needs to be [unlocked](../guides/unlocking_all_features).
</Note>

[Atoti UI extensions](https://docs.activeviam.com/products/atoti/ui/5.2/developer-guide/customize-atoti-ui/reuse-extensions/create-reusable-extensions/) can [enhance the app](../guides/extending_the_app) in many ways such as:

* Adding new widget plugins.
* Attaching custom menu items or titlebar buttons to a set of widgets.
* Providing other React contexts to the components rendered by the app.

<Callout icon="link">
  **See also**:
  Prebuilt extensions in [`atoti.app_extension`](./atoti.app_extension#module-atoti.app_extension).
</Callout>

#### base\_path *: [str](https://docs.python.org/3/library/stdtypes.html#str)* *= '/'*

Path from which the session is served.

[`atoti.Session.url`](./atoti.Session.url#atoti.Session.url) includes it.
: For example, with `base_path="/foo/bar"`, [`url`](./atoti.Session.url#atoti.Session.url) will be `http://localhost:{port}/foo/bar`.

#### branding *: [BrandingConfig](./atoti.config.branding_config#atoti.BrandingConfig) | [None](https://docs.python.org/3/library/constants.html#None)* *= None*

#### extra\_jars *: [Sequence](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence)\[[Path](https://docs.python.org/3/library/pathlib.html#pathlib.Path)]* *= ()*

Paths of JARs to add to the classpath of the Java subprocess.

#### i18n *: [I18nConfig](./atoti.config.i18n_config#atoti.I18nConfig) | [None](https://docs.python.org/3/library/constants.html#None)* *= None*

#### java\_options *: [Sequence](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence)\[[str](https://docs.python.org/3/library/stdtypes.html#str)]* *= ()*

Additional options to pass when starting the Java subprocess (e.g. for optimization or debugging purposes).

In particular, the `-Xmx` option can be set to increase the amount of RAM that the session can use.
If this option is not specified, the JVM default memory setting is used which is 25% of the machine memory.

<Warning>
  These options are passed as is to the Java subprocess with no guarantee that the [`Session`](./atoti.session#atoti.Session) will behave as expected.
  Options that work with one version of Atoti Python SDK may break with another, even across a bugfix release.
</Warning>

#### logging *: [LoggingConfig](./atoti.config.logging_config#atoti.LoggingConfig) | [None](https://docs.python.org/3/library/constants.html#None)* *= None*

#### observability *: [ObservabilityConfig](./atoti_observability.observability_config#atoti_observability.ObservabilityConfig) | [None](https://docs.python.org/3/library/constants.html#None)* *= None*

The observability config for the session.

When set, the `server_service_name` attribute controls the `otel.service.name` Java system property of the server subprocess.

#### port *: [int](https://docs.python.org/3/library/functions.html#int)* *= 0*

Port on which the session will listen to.

If `0`, the OS will pick an available port.

#### ready *: [bool](https://docs.python.org/3/library/functions.html#bool)* *= True*

Initial value of [`atoti.Session.ready`](./atoti.Session.ready#atoti.Session.ready).

#### security *: [SecurityConfig](./atoti.config.security.security_config#atoti.SecurityConfig) | [None](https://docs.python.org/3/library/constants.html#None)* *= None*

#### user\_content\_storage *: [Path](https://docs.python.org/3/library/pathlib.html#pathlib.Path) | [UserContentStorageConfig](./atoti_jdbc.user_content_storage_config#atoti_jdbc.UserContentStorageConfig) | [None](https://docs.python.org/3/library/constants.html#None)* *= None*

Config controlling how user content is stored.

If a `Path` is given, the content will be stored in the corresponding directory.
If `None`, the content will be stored in memory and will be lost when the session is closed.
