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. The availableApplicationServers 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 and IEvaluationTaskManager 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 IValidationErrorHandlers.
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.