Release notes and changelog
For user-facing changes, refer to the What’s New page. For information on upgrading from previous versions, see the Atoti Limits Migration Notes
3.3.1
2024-08-30
Download the distribution files here
You can download the following zipped distribution files:
- UI source code
- UI build
- Source files to build the module
- Sample bookmarks
- Maven repository required to build the project and run the tests. The Atoti Server 6.0.14-sb3 Maven repository files can be downloaded from here.
Summary
This release includes artifacts for connecting with instances of Atoti Server on version 6.0.x
using Java 11,
in addition to the already supported 6.0.x-sb3
version using Java 17. There have been no other changes.
The artifact changes are as follows:
Old Name | New Name | Comment |
---|---|---|
lookup-post-processor-ap60 |
lookup-post-processor-ap60-sb3 |
The old artifact has been renamed and requires Java 17. |
N/A | lookup-post-processor-ap60 |
This new artifact is compatible with Java 11. |
limits-auto-config-ap60 |
limits-auto-config-ap60-sb3 |
The old artifact has been renamed and requires Java 17. |
N/A | limits-auto-config-ap60 |
This new artifact is compatible with Java 11. |
limits-atoti-server-60 |
limits-atoti-server-60-sb3 |
The old artifact has been renamed and requires Java 17. |
N/A | limits-atoti-server-60 |
This new artifact is compatible with Java 11. |
Known issues
Issue Key | Details |
---|---|
BAS-1330 | Deleting the last limit value deletes the limit structure. As a workaround, don’t delete all limits on a limit structure unless you are sure that the structure won’t be used again. Alternatively, if you do need to reuse the structure, you can create a limit on it using the endpoint /modules/limits-module/limits/rest/v2/limitDefinition/limits/save . The key of the limit structure will still be visible in the admin-ui. |
LIM-846 | Complex Scopes: Currently, a limit with an aggregated scope and a limit with a non-aggregated scope cannot be created on the same limit structure. As a workaround, create the limits on two separate structures. |
LIM-840 | Complex Scopes: Currently, limits can’t be defined with an aggregated scope location and another scope location. As a workaround, create two separate limits on two separate structures. |
LIM-813 | Managers can incorrectly upload Limit Structures through the REST endpoint. |
LIM-594 | Having email notifications enabled for breaches causes decreased limit evaluation performance. See Configuring the breach email on how to disable breach emails. |
LIM-357 | The Six Eyes workflow is currently not implemented. |
LIM-346 | Limits on calculated measures only work through File Upload, not through the UI. |
LIM-320 | Calculated measures need to be included in Pivot Table Query in order to view a Limit’s KPI in the Pivot Table. See Measures for more on how to create a query for Limits on calculated measures. |
Dependency versions
Component | Version |
---|---|
Atoti Server | 6.0.14-sb3 |
Atoti UI | 5.1.x |
Common Dependencies BOM | 2.0.1 (com.activeviam.apps) |
Common Parent POM | 2.0.1 (com.activeviam.apps) |
Data Connectors | 4.1.0-AP6.0-sb3 |
Java | JDK17 |
UI Components | 5.0.42 |
Added
Issue Key | Details |
---|---|
LIM-1299 | Added connector artifacts on Java 11. |
3.3.0
2024-07-18
Download the distribution files here
You can download the following zipped distribution files:
- UI source code
- UI build
- Source files to build the module
- Sample bookmarks
- Maven repository required to build the project and run the tests. The Atoti Server 6.0.14-sb3 Maven repository files can be downloaded from here.
warning
Please note that Atoti Server versions 5.9, 5.10 and 5.11 are now out-of-support. Therefore, we no longer support connections to servers of these versions starting with this release of Atoti Limits.
Summary
- Limit Persistence : Atoti Limits can now work with persistent data sources. See Persistence for more information.
- Real-time Incidents : Incidents are now updated in real-time in the UI via server-sent events. They can be disabled with the action button above the data table in the Status screen. For more information, see Real-time updates
- Workflow Attachment Links : You can now add a navigable attachment link in the UI to a limit or incident when moving it along its workflow. For more see the section on Managing Limits and Incidents.
- Resizable limits structure drawer: The Limit Structure drawer is now resizable. Atoti Limits remembers the size and whether it was open, the next time you start the module. By default, the drawer is open.
- Limit Structure Templates : You can now create custom templates to pre-populate fields when creating limit structures via the UI. See Adding Custom Limit Structure Templates for more information and implementation details.
- Migration to Configuration Properties : All properties previously retrieved via
@Value
annotations have been migrated to@ConfigurationProperties
classes. For details, see Configuration Properties. - Extendable Validation: It is now easier for users to add custom validation and validation error handling. See Adding Custom Validation.
- Extendable CSV Source Configuration : Adding and overriding DLC and CSV data loading configuration has been made easier. See Customizing the CSV Source and Customizing the Data-Load Controller for more information and implementation details.
- Atoti Server upgrade : Atoti Limits has been upgraded to Atoti Server 6.0.14-sb3.
- Removed Atoti Server 5.9 and 5.10 support : Atoti Server versions 5.9 and 5.10 are now out of support, and are no longer supported within Atoti Limits.
- Updated UI settings: The
restrictedScopes
setting is now keyed by cube name. TheavailableApplicationServers
setting has changed from a record to an array of server keys. AsOfDate settings under this property are now supplied by the server. - Custom Evaluations : The
IEvaluationService
andIEvaluationTaskManager
interfaces have been introduced to facilitate custom evaluation logic. See Adding Custom Evaluation Logic for more information. - Migration Scripts : We have added a new
limits-migrations
module for migrating CSV files. See CSV and properties migrations to 3.3.0.
Known issues
Issue Key | Details |
---|---|
BAS-1330 | Deleting the last limit value deletes the limit structure. As a workaround, don’t delete all limits on a limit structure unless you are sure that the structure won’t be used again. Alternatively, if you do need to reuse the structure, you can create a limit on it using the endpoint /modules/limits-module/limits/rest/v2/limitDefinition/limits/save . The key of the limit structure will still be visible in the admin-ui. |
LIM-846 | Complex Scopes: Currently, a limit with an aggregated scope and a limit with a non-aggregated scope cannot be created on the same limit structure. As a workaround, create the limits on two separate structures. |
LIM-840 | Complex Scopes: Currently, limits can’t be defined with an aggregated scope location and another scope location. As a workaround, create two separate limits on two separate structures. |
LIM-813 | Managers can incorrectly upload Limit Structures through the REST endpoint. |
LIM-594 | Having email notifications enabled for breaches causes decreased limit evaluation performance. See Configuring the breach email on how to disable breach emails. |
LIM-357 | The Six Eyes workflow is currently not implemented. |
LIM-346 | Limits on calculated measures only work through File Upload, not through the UI. |
LIM-320 | Calculated measures need to be included in Pivot Table Query in order to view a Limit’s KPI in the Pivot Table. See Measures for more on how to create a query for Limits on calculated measures. |
Dependency versions
Component | Version |
---|---|
Atoti Server | 6.0.14-sb3 |
Atoti UI | 5.1.x |
Common Dependencies BOM | 2.0.1 (com.activeviam.apps) |
Common Parent POM | 2.0.1 (com.activeviam.apps) |
Data Connectors | 4.1.0-AP6.0-sb3 |
Java | JDK17 |
UI Components | 5.0.41 |
Added
Issue Key | Details |
---|---|
LIM-235 | Added a @ConfigurationProperties class to handle properties from the hibernate.properties file. |
LIM-834 | Added an auto-incrementing IIdentityGenerator to support replacing limitStructureKey , limitKey and incidentKeys with user-defined IDs. |
LIM-979 | Added the ability to load limits from a persistent data source. |
LIM-1002 | Added Liquibase changesets to facilitate database migrations. |
LIM-1006 | Server-sent events have been implemented to update incidents in real time. |
LIM-1010 | Implemented a persistence layer to manage datastore and external database transactions. |
LIM-1050 | Added an Attachment Link task input field for including a link in the limit and incident audit trails. |
LIM-1058 | Updated the usage of the draftLimit to instead use workflow variables. |
LIM-1077 | Added the ability to pre-populate fields of the UI form when creating a new Limit Structure. |
LIM-1094 | Added the maxScopeMembersQueryResult setting to retrieve more members before having to resort to a search. |
LIM-1119 | IValidator subinterfaces have been created to make swapping the default validator(s) easier for a custom solution. |
LIM-1126 | Added a @ConfigurationProperties class to handle DLC properties |
LIM-1147 | Added a defaultValue field for workflow action input fields. |
LIM-1148 | Updated usages of the LimitsCrudService and IncidentCrudService to instead use the LimitsAppCrudService . |
LIM-1149 | Added a preValidation method to the IValidator interface. |
LIM-1154 | Upgraded admin-ui to version 5.1.8. |
LIM-1157 | Evaluations on the status screen can now be updated in real-time. |
LIM-1177 | Added Spring JPA REST services and migration endpoints. |
LIM-1168 | Converted the limitStructureKey , limitKey and incidentKeys to strings. |
LIM-1172 | Added a method for users to load their own JPA Repositories in LimitsJpaConfig . |
LIM-1173 | ID’s are now required fields in the limit_structures.csv and limit_approve.csv files. |
LIM-1196 | Limit files can now be previewed in a table before uploading. Any error when uploading will be shown in the table. |
LIM-1209 | Upgraded Atoti Server to 6.0.14-sb3. |
LIM-1210 | Real-time updates can now be disabled/enabled in the UI. |
LIM-1215 | Column index is now reported for validation errors. |
LIM-1236 | Added a new limits-migrations module for migrating CSV files. See CSV migrations to 3.3.0. |
LIM-1239 | Atoti Limits now sends the business server’s asOfDate dimension in the limits /settings endpoint. |
UIACL-984 | Unsaved limit structures and limits are now persisted if you navigate away from the page without saving. |
Changed
Issue Key | Details |
---|---|
BAS-1879 | Renamed KpiAlertTask and LimitAlertTask to LimitStructureEvaluationTask and LimitEvaluationTask respectively. |
LIM-1116 | Migrated properties previously retrieved via @Value annotations to @ConfigurationProperties classes. |
LIM-1136 | Validation errors are now collected and reported with line numbers (if applicable) instead of failing immediately. |
LIM-1142 | Moved the default cube configuration classes into the limits-activeviam module. Added beans to allow clients to override the cube configuration. See Custom Cube Configuration |
LIM-1143 | Moved the DLC and CSV Source configuration classes into the limits-activeviam module. Created interfaces to override DataLoadControllerConfig and CSVSourceConfig . See Custom DataLoadControllerConfig and Custom ICSVSourceConfig for more information. |
LIM-1144 | Moved tuple publisher classes into the limits-activeviam module. Created interfaces to override the default tuple publishers. See Custom Tuple Publisher for more information. |
LIM-1146 | Replaced IAlertTaskManager with new interfaces to separate evaluation and scheduling logic. See Adding Custom Evaluation Logic for more information. |
LIM-1150 | Refactored the exceptions thrown in DefaultLimitTuplePublisher to be handled by the IValidationErrorHandler s. |
LIM-1151 | Changed the behavior of the asOfDate filter in the Status screen. If there were no incidents present in the Status screen, the asOfDate filter would set the filter date to the current date. Now if there are no incidents present, the asOfDate filter will not be applied by default. |
LIM-1161 | The Limit Structure drawer is now resizable. |
LIM-1166 | Changed the default value of the isLiveOnly argument to true in LimitsDefinitionCrudRestService . |
LIM-1171 | Upgraded the common-dependencies-bom and common-parent-pom versions to 2.0.1. This bumps Spring Boot to version 3.2.4, inheriting bug fixes and improvements. |
LIM-1186 | Improved performance and UX when creating limits. Nodes from the scope tree will now be lazy-loaded when a scope is being selected. |
LIM-1195 | Updated default validation behavior to be non-blocking for limits loaded through the DLC. Loading through REST, like file upload, is still an atomic operation. |
LIM-1197 | Moved REST constants to a dedicated LimitsRestServiceConstants class. |
LIM-1198 | Moved datastore constants to a dedicated LimitsDatastoreConstants class. |
LIM-1208 | Expanded support for reporting line numbers in the default validators. |
LIM-1218 | Improved UX for the Create Limit Structure button on the Limit Structure screen. |
LIM-1222 | The restrictedScopes setting is now keyed by cube. |
LIM-1240 | The availableApplicationServers setting has changed from a record to an array of server keys. AsOfDate settings that used to sit under this property are now supplied by the server. |
Removed
Issue Key | Details |
---|---|
LIM-36 | The User ID field has been removed from the datastore configuration, the LimitStructureDTO object, and all input files. |
LIM-499 | Removed all *.properties files from Atoti Limits. Removed CsvDataExtractionEngineConfig from the default configuration. |
LIM-1044 | Removed the includeUIWorkflowActions and excludePasses arguments from implementation and invocations of the IncidentCrudService . |
LIM-1105 | Removed support for Atoti Server versions 5.9 and 5.10 as they are no longer supported by ActiveViam. |
Fixed
Issue Key | Details |
---|---|
LIM-570 | Fixed a performance issue on startup when reloading workflows. |
LIM-1138 | Fixed a data quality issue by preventing multiple limit structures with the same name to be created. |
LIM-1141 | Incident files are now written when evaluating limits without evaluating the structure. |
LIM-1156 | Fixed issue where incident files included all incidents, regardless of the KPI in the file name. |
LIM-1190 | Fixed bug where copying and saving a limit structure cleared the limit structure form. |
LIM-1220 | Fixed a bug which prevented the user from dragging table columns to the last position in the config panel. |
LIM-1223 | Made the order of incidents in the status screen consistent between realtime-enabled and disabled modes. |
LIM-1225 | Fixed the styling of links on the Status screen. |
LIM-1226 | Real time incidents can now be filtered by multiple dates. |
LIM-1244 | Fixed issue where incidents could be reviewed multiple times. |
LIM-1253 | Fixed an issue that prevented Atoti Limits from starting in persistent mode due to null workflow statuses. |
LIM-1256 | The Inventory now generates limit structure creation templates according to server keys derived by checking the names coming from the server settings endpoint against server keys supplied to LimitsModuleSettings.availableApplicationServerKeys . |
For Removal
Issue Key | Details |
---|---|
LIM-1230 | Manual configuration has been deprecated in favor of auto-configuration and will be removed in the next version of Atoti Limits. |