- Generate an application from the archetype
- Configure the application properties
- Run the application
Prerequisites
- Java 25 or later installed.
- Apache Maven 3.9+ installed.
- Access to the ActiveViam Maven repository (
atoti-solutions-mvn). - A valid Atoti license, configured via the
ATOTI_LICENSEenvironment variable (base64-encoded string) or file path. See Getting Started: License.
Step 1: Generate the application
Use thesolution-app-archetype to generate a ready-to-run application. The archetype is published to the ActiveViam Maven repository.
Run the following command:
${solutions.version} with the target release version, and ${starter.groupId} and ${starter.artifactId} with the coordinates for the chosen solution. The following table lists the available starters:
For Counterparty Credit Risk (Enterprise Risk), each cube has its own starter. See PFE setup and start and Ratings setup and start.
Note: If yourartifactIdcontains hyphens (e.g.,my-app), setpackageto a valid Java package name (e.g.,-Dpackage=com.activeviam.myapp).
Generated project structure
The archetype generates a complete Spring Boot application:Step 2: Configure the application properties
The generatedapplication.yml provides sensible defaults that are sufficient to start the application without changes. Customize cube behavior by editing src/main/resources/application.yml.
For solution-specific properties, refer to the configuration properties page for the chosen solution.
How to customize the application
The generatedModelConfigurer.java is the entry point for extending the default configuration of any solution. It implements IModelConfigurer, which exposes two methods:
configureDatabase(IDatabaseConfigurator): defines tables and joins in the databaseconfigureCubes(ICubeManagerConfigurator): defines cubes, dimensions, and measures
ISolutionCube<?, ?, ?, ?> with the cube interface of the solution. The table below lists them.
Inject the cube through
ObjectProvider when the cube can be disabled. The configurer then still loads when the cube is off, and ifAvailable runs only when the cube is present. A cube that is always on can be injected directly. An application that runs several cubes injects one ObjectProvider per cube.
The generated class is a top-level class annotated with @Configuration, which registers it as a Spring bean.
For examples of how to use each method, see Customizing the data model, Dimensions, and Measures.
Data loading
Each solution ships the channels and CSV topics that describe how its cube is fed, and an alias grouping them that it publishes through its topics bean (I[Cube name]CubeTopics).
Point them at your files with atoti.solution.data-load.csv.base-path, and set topic-type to read from a cloud bucket or the local filesystem.
Requesting a load is the application’s part, and the generated application already opts in. @Import(AsOfDateDataLoadConfiguration.class) on the application class gives it the startup load, the /activeviam/as-of-date/rest/v1 endpoints, and the load and unload events. What is left to fill in is what to load and when:
topics names something, the application starts and serves its cube but loads nothing.
To go further than the properties (repoint a topic at your own files, or attach a table of your own to one the solution already reads), publish an IDataLoadConfigurer bean. Inject the solution’s channel and topic name beans alongside it (e.g. IPfeCubeChannels and IPfeCubeTopics) and take every channel and topic name from them rather than writing the name out. Data loading covers the full property set and shows both overrides.
Step 3: Run the application
Start the Spring Boot application. The default server port is9090, configured in src/main/resources/application.yml.
To confirm the cube is available, query the cube discovery endpoint. The generated application includes a default admin user (password: admin):
Optional: How to enable the health endpoint
The Spring Boot Actuator health endpoint is not exposed by default. To enable it, add the following to yourapplication.yml:
How to access Atoti UI and Atoti Admin UI
The application serves two web interfaces next to the cube:- Atoti UI is where users build dashboards and explore the data of the cube.
- Atoti Admin UI is where administrators monitor the server, manage users, inspect the datastore, and perform other administrative tasks.
For an application that listens elsewhere, use
http://<host>:<port>/ui and http://<host>:<port>/admin/ui.
Every solution starter and cube starter brings atoti-ui-starter and atoti-admin-ui-starter, so no additional server-side configuration is needed to expose a cube to either interface. An application generated from the archetype already contains the environment configuration both interfaces read (CustomUiEnvJsResourceConfig). Sign in with a user the application defines, such as the default admin user of the generated application.
For the use of Atoti UI, see the Atoti UI documentation.