Extending the app#
Note
This feature is not part of the community edition: it needs to be unlocked.
Both the server and the embedded UI can be extended.
Server extension#
Atoti Server extensions are developed in Java and packaged as JARs.
They can register:
measure plugins which can then be used in Python with
atoti.plugin_measure().Spring webservices.
UI extension#
Atoti UI extensions are developed in JavaScript/TypeScript. They can change the behavior of the web app or augment it with new features.
Branding#
The Atoti branding can be replaced with a custom one (also called white-labeling):
>>> from pathlib import Path
>>> import atoti as tt
>>> resources_directory = Path("__resources__") / "extending_the_app"
>>> session_config = tt.SessionConfig(
... branding=tt.BrandingConfig(
... favicon=resources_directory / "favicon.ico",
... logo=resources_directory / "logo.svg",
... title="Hey hey hey",
... ),
... )
>>> session = tt.Session.start(session_config)
The app of this session looks like this:
UI app extension#
There are some prebuilt extensions in atoti.app_extension.
For instance:
>>> session_config = tt.SessionConfig(app_extensions=tt.ADVANCED_APP_EXTENSION)
>>> session = tt.Session.start(session_config)
This extension will add some advanced tools and a Text editor widget:
Take a look at the documentation of atoti.SessionConfig.app_extensions to learn how to create your own extensions.