atoti.config.session_config module

class atoti.config.session_config.SessionConfig(authentication=None, aws=None, azure=None, branding=None, extra_jars=None, https=None, i18n=None, java_options=None, jwt=None, logging=None, port=None, same_site='lax', user_content_storage=None)

The structure of the configuration expected by the session.

Sub-classes can be explored for more information on how to use each part of the configuration.

authentication: Optional[atoti.config.authentication.authentication.AuthenticationConfig] = None

Configure the authentication mechanism for the app.

Users and roles are configured using

aws: Optional[] = None
azure: Optional[] = None
branding: Optional[atoti.config.branding.BrandingConfig] = None

UI elements to change in the app to customize its appearance.

extra_jars: Optional[Sequence[Union[str, pathlib.Path]]] = None

The paths to the JAR that will be added to the classpath of the Java process when starting the session.


>>> config = {"extra_jars": ["../extra.jar"]}
https: Optional[atoti.config.https.HttpsConfig] = None

Provide certificates to enable HTTPS on the app.

i18n: Optional[atoti.config.i18n.I18nConfig] = None

Configure custom translation keys for the app.

java_options: Optional[Sequence[str]] = None

The additional options to pass when starting the Java process (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.


>>> config = {"java_options": ["-verbose:gc", "-Xms1g", "-XX:+UseG1GC"]}
jwt: Optional[atoti.config.jwt.JwtConfig] = None

Set the key pair used to validate JWTs when authenticating with the session.

logging: Optional[atoti.config.logging.LoggingConfig] = None

Configure log storage for the session.

port: Optional[int] = None

The port on which the session will be exposed.

Defaults to a random available port.


>>> config = {"port": 8080}
same_site: typing_extensions.Literal[lax, none, strict] = 'lax'

The value to use for the SameSite attribute of the HTTP cookie sent by the session when authentication is configured.


This requires the atoti-plus plugin.

See for more information.

Setting it to none requires the session to be served through HTTPS.


>>> config = {"same_site": "strict"}
user_content_storage: Optional[Union[pathlib.Path, str, atoti.config.user_content_storage.UserContentStorageConfig]] = None

The location of the database where the user content will be stored.

The user content is what is not part of the data sources, such as the dashboards, widgets, and filters saved in the application.

Defaults to None meaning that the user content is kept in memory and is lost when the atoti session is closed.

If a path to a directory is given, it will be created if needed.


>>> config = {"user_content_storage": "./content"}