This page explains how user permissions work in Atoti What-If simulations and Atoti Server branches. It covers built-in security managers, role-based access control, and how to implement custom permission logic.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.
How to configure security with the Spring Boot Starter
When using the Spring Boot Starter, security is configured through properties:Security type options
| Value | Description |
|---|---|
spring | Uses Spring Security context for user authentication. This is the default. |
none | No security checks are performed. All operations are allowed for all users. |
custom | You provide your own IDatabaseSimulationsSecurityManager bean. |
Disabling branch permissions
By default, the security manager delegates branch-level permission checks to the Atoti Server branch permissions manager. To disable this:What are Atoti Server branches?
Atoti Server uses branches to isolate data changes. Each branch can have:- Owners: Users who can modify or delete the branch.
- Readers: Users who can view the branch.
How are simulations secured in Atoti What-If?
Simulations are grouped by branch and secured using anIDatabaseSimulationsSecurityManager. Two built-in managers are available:
NoOpDatabaseSimulationsSecurityManager
- Allows all actions for every user.
- Intended for testing only.
- Enabled by setting
atoti.what-if.security.type: none.
SpringDatabaseSimulationsSecurityManager
- Integrates with Spring Security.
- Checks user roles.
- Delegates branch-level checks to the Atoti Server branch permissions manager.
- Enabled by default, or by setting
atoti.what-if.security.type: spring.
- Any user can create simulations.
- Only the creator or users with
ROLE_ADMINcan update, delete, or execute simulations.
How do I implement custom simulation permissions?
You can customize permissions by extending the Spring-based manager or implementing your own. When using the Spring Boot Starter with a custom security manager, setatoti.what-if.security.type: custom and provide your bean. See How to customize auto-configured beans for details.
Option 1: Extend SpringDatabaseSimulationsSecurityManager
Use the setDatabaseSimulationsRoles method to define role-based access: