Skip to main content
For user-facing changes, see the Release notes. For information on upgrading from previous versions, see the Migration guide.
2026-09-30
Follow this link to download the zipped distribution files for:
  • UI source code
  • UI build
  • Source files to build the module
  • Maven repository required to build the project and run the tests.

Added

  • LIM-2432: Added the limits.scope.allow-multiple-not-in-limits property. Setting it to false allows at most one “NOT IN” scoped limit per structure at a time. Defaults to true, preserving prior behavior.

Changed

  • LIM-2361: The Approve and Reject actions of the default Six-Eyes limit approval workflow now include a Comment field, as in the Sign-off workflows.

Deprecated

  • PIVOT-15188: IncidentEvaluator.evaluateIncidents without measure names is deprecated. It reads the KPI value from the limit’s measure, which is wrong for a TOTAL EXCEPT or TOTAL EQUALS scope. Use the overload that takes the status and value measure names selected by the MDX query.

Removed

  • LIM-2438: The limits-common Maven module - which store duplicate classes shared by both Atoti Limits and the connected server - has been removed. Its classes, in the com.activeviam.limits.core.shared packages, now belong to limits-activeviam, while the connected Atoti Server keeps its own copies in limits-integration-common. Package and class names are unchanged. See the Migration guide.
  • PIVOT-14850: Removed support for connecting to Atoti Server 6.0.x and 6.0.x-sb3. The limits-auto-config-60, limits-auto-config-60-sb3, limits-atoti-server-60, and limits-atoti-server-60-sb3 artifacts have been deleted.

Fixed

  • LIM-2346: Fixed a limit scoped at a (Total) of a slicing hierarchy never being applied, leaving those rows with no limit status.
  • LIM-2346: Fixed the scheduled evaluation never raising an incident for a limit scoped at the (Total) of the first level of a slicing hierarchy, whether the scope uses the AllMember or an aggregated operator (TOTAL EQUALS, TOTAL EXCEPT).
  • LIM-2356: When a six-eyes workflow update or deletion is approved, any earlier workflow still active for that limit is now cancelled; the cancelled workflow is marked as superseded and keeps its audit history, so the limit’s original creation request remains visible in the audit trail.
  • LIM-2442: A scheduled evaluation with limit failures sent the same Limits Evaluation Completed notification as a successful run, so failures went unnoticed outside the server log. The notification now reports the number of errors and its severity is raised to high when there were errors.
  • LIM-2432: Creating limits on the same structure with overlapping dates and overlapping “for each in” scopes - for example a limit on Book in [A, B] and a limit on Book in [B, C] - would have passed but should not have been allowed.
  • LIM-2433: Fixed a limit scoped with (Total) of selected or (Total) excluding selected on a multi-level hierarchy being evaluated over every member of the level. The members the scope selects or excludes were ignored, so a (Total) excluding limit was evaluated against the unfiltered total and breached on it; such scopes now aggregate only the members they select.
  • PIVOT-15188: Evaluating a limit with a TOTAL EXCEPT scope failed with a NullPointerException and raised no incident. Such incidents now report the exposure without the excluded members.

Security

2026-09-03
Follow this link to download the zipped distribution files for:
  • UI source code
  • UI build
  • Source files to build the module
  • Maven repository required to build the project and run the tests.

Added

  • PIVOT-14095: Added an opt-in security filter chain for the Atoti Limits REST endpoints of a Connected Server. Setting limits.autoconfiguration.security.enabled to true registers a SecurityFilterChain built with the Connected Server’s MachineToMachineSecurityDsl that accepts any authenticated request, so applications no longer need to write their own chain for these endpoints. The property is false by default and leaves existing applications unchanged. See the Auto-configuration properties reference.

Changed

  • PIVOT-14310: The incident SSE subscription (GET /limits/sse/v2/incidents/subscribe/filter) and the notification service SSE subscription now carry X-Accel-Buffering: no and Cache-Control: no-cache, no-transform so that reverse proxies do not buffer or compress the event stream. A buffering proxy delivers the incident and notification updates only when the stream ends.

Removed

  • PIVOT-14667: The Dependencies page has been removed from the release documentation because the dependencies are now aligned with the Atoti Server version. See the Atoti Server dependencies page for the underlying Spring Boot and Java versions.

Fixed

  • LIM-2278: Fixed limit evaluation considering only the default member for scopes on a slicing hierarchy (no AllMember level); every matching member, including multi-level Total subtotals, is now evaluated.
  • LIM-2346: Fixed a limit defined at the (Total) of a multi-level hierarchy’s first level (for example a dynamic tenor hierarchy) not applying to the Total row, which showed no limit status.
  • LIM-2352: Fixed the Audit Screen reporting a spurious change (for example 100 → 100) when an unchanged numeric value was deserialized as a different numeric type, such as Integer and Double.
  • LIM-2357: Fixed the connection request from an Atoti server timing out when the limits data load is slow, which made the server retry and pile up blocked threads on the Limits server. The limits data load now runs in the background, one load at a time per server, and the connection request returns immediately.
  • LIM-2370: Querying a limit KPI (Goal or Status) on a recently created calculated measure would throw an IllegalArgumentException: Unknown measure contributors.COUNT.
  • LIM-2171: Fixed Limit Structures with no Limits minting a duplicate Scope Value ID instead of reusing the existing “N/A” ID, which could crash the scope cache with a duplicate-key error.
  • LIM-2366: Fixed the log filling with ERROR-level stack traces for every AccessDeniedException, which now logs at DEBUG while other exceptions still log at ERROR.
  • LIM-2365: Fixed the Mismatch for scope locations error not naming which limits caused a limit structure to fail loading; it now names the structure, the two limits, and the missing level.
  • LIM-2428: Fixed querying a limit KPI (Goal or Status) throwing a NullPointerException when the as-of date fell outside the date range of the limits covering the queried location.
  • LIM-2355: The Audit Screen showed no entry for a breach review, or for any other workflow task completed on the new workflow engine, leaving only the object’s creation entry.
  • LIM-2357: Saving a limit took several minutes for a user with scope restrictions. The permission check loaded the whole limit inventory and re-resolved the user’s accessible scopes for every limit in it; it now looks up only the submitted limit and reuses the resolved scopes until a scope is added or removed. An existing limit outside the caller’s scope is also no longer mistaken for a new limit, so updating it requires the update permission rather than the creation one.
  • LIM-2358: Workflow buttons - such as “Approve”, “Reject” and “Review breach” - were enabled for users without permission to approve/reject limits or process incidents, which failed with an “Access Forbidden” error on click instead of being disabled.
  • LIM-2388: Approving an update or deletion of a limit that already had an attachment failed with an error and could leave Atoti Limits unable to restart.
  • LIM-2439: Deleting a limit did not stop its KPIs from being evaluated on the connected Atoti Server until that server was restarted.
  • PIVOT-14979: Uploading a CSV file that creates a large number of limits failed with a database parameter limit error.
  • PIVOT-15169: When the two Six-Eyes approvers entered different comments, the Audit Screen showed the second comment as a change of the first one. Values entered in a workflow action’s input fields, such as Comment, are now shown as entered on each task.
  • PIVOT-15170: When the two Six-Eyes approvers entered the same comment, the second approver’s comment was missing from the limit’s history and from the Audit Screen.

Security

2026-07-27
Follow this link to download the zipped distribution files for:
  • UI source code
  • UI build
  • Source files to build the module
  • Maven repository required to build the project and run the tests.

Added

  • LIM-2228: Added a first-class Atoti Limits plugin for the Atoti Python SDK (atoti-limits), replacing the existing Atoti Limits Python extension as the way to connect an Atoti Python session to a running Atoti Limits server.
  • LIM-2350: Fixed a limit’s ID being reused by a new limit created with the same scope after a restart, which merged their audit histories. New limits no longer reuse a soft-deleted limit’s ID, so their audit histories stay separate.

Fixed

  • LIM-2364: Fixed creating a limit structure on a recently created calculated measure failing validation with Measure ... not in the list of measures for the cube.
  • LIM-2348: Fixed the audit history and decision buttons failing to open for expired, deleted-and-recreated, or fully-approved six-eyes limits. Those steps now simply show no available actions.