> ## 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.

# Updates since 4.0 pre-releases

This page lists the [changes since 4.0.0-alpha](#changes-since-400-alpha) and [4.0.0-beta](#changes-since-400-beta), and explains any changes required to
migrate from these early releases to the stated version of Atoti Limits:

* [Migrate from 4.0.0-alpha](#migrate-to-400-beta) to beta
* [Migrate from 4.0.0-beta](#migrate-to-400) to 4.0.0

## Changes since 4.0.0-beta

### Added

<table><thead><tr><th>Issue Key</th><th>Details</th></tr></thead><tbody><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-987">LIM-987</a></td><td>You can now drill down by a limit scope’s level name and level values in a pivot table.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1318">LIM-1318</a></td><td>Updated the Workflow Common Library to version 2.4.1 and H2 to version 2.2.220 to fix CVEs.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1340">LIM-1340</a></td><td>Permission roles are now enforced on REST requests, blocking the action from being processed by the server if the user does not have the required permissions.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1341">LIM-1341</a></td><td>Permission roles for the workflow actions of approving/rejecting limits and processing incidents are now supported.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1355">LIM-1355</a></td><td>Added <code>/limits/rest/v2/limitDefinition/limits/status/get</code> endpoint to get limits status & server setting to include status for limit structures.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1357">LIM-1357</a></td><td>Added new property to set the <code>default-scope-match-mode</code> for scope permissions.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1369">LIM-1369</a></td><td>Added new property to set the owner role(s) for KPIs and calculated members Limits creates in connected Atoti servers. This property is optional and can be auto-configured.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1373">LIM-1373</a></td><td>Updated Data Connectors to version 4.2.0-AS6.1.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1377">LIM-1377</a></td><td>Added a service in the connected servers to be triggered on limit events. See <a href="../../../dev/dev-extensions/custom-limits-events/custom-limits-event-to-connected-server">Sending events to your connected server</a>.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1382">LIM-1382</a></td><td>Atoti Limits has been upgraded to Atoti Server 6.1.1. The <code>6.0.X</code> and <code>6.0.X-sb3</code> modules have been upgraded to use Atoti Server <code>6.0.17</code> and <code>6.0.17-sb3</code> respectively.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1390">LIM-1390</a></td><td>Permissions for uploading/downloading limits are now supported.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1395">LIM-1395</a></td><td>Added <code>Alive</code> field to the <code>Limits</code> store to indicate if a limit is active or deleted/expired.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1356">LIM-1356</a></td><td>Separate loading of workflow statuses by setting <code>-Dlimits.workflow\.workflow-status-fetched-with-limit=false</code>.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1418">LIM-1418</a></td><td>The datepicker for the limit start date in the Limits viewer screen now defaults to the server’s as of date.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1449">LIM-1449</a></td><td>Added re-evaluate action for reviewed incidents to allow them to be re-evaluated.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1466">LIM-1466</a></td><td>Updated Common Library to version <code>2.1.0-AS6.1</code>.</td></tr></tbody></table>

### Changed

<table><thead><tr><th>Issue Key</th><th>Details</th></tr></thead><tbody><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1359">LIM-1359</a></td><td>The <code>limits-shared-properties</code> module has been renamed to <code>limits-common</code> and the <code>limits-lookup-postprocessors</code> modules have been merged into the <code>limits-integration</code> and <code>limits-common</code> modules.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1410">LIM-1410</a></td><td>Merged <code>RemoteLimit</code>, <code>RemoteLimitEntity</code> and <code>LimitGoal</code> into the new <code>SimpleLimit</code> class.</td></tr></tbody></table>

### Removed

<table><thead><tr><th>Issue Key</th><th>Details</th></tr></thead><tbody><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-000">LIM-000</a></td><td /></tr></tbody></table>

### Fixed

<table><thead><tr><th>Issue Key</th><th>Details</th></tr></thead><tbody><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1303">LIM-1303</a></td><td>Fixed the <code>admin-ui</code> database tab by adding <code>@EnableWebMvc</code> and removing custom message converters.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1371">LIM-1371</a></td><td>Limits are now correctly evaluated via the <strong>Inventory</strong> screen or REST services when cube filters are disabled.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1375">LIM-1375</a></td><td>The “Available amount” and “Utilization perc.” measures are now available for limits created both on startup and at runtime.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1416">LIM-1416</a></td><td>The <code>Re-Evaluate</code> icon for incidents in the <strong>Status</strong> screen is now disabled for users with no permission to evaluate limits.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1429">LIM-1429</a></td><td>Fixed an issue where restarting Atoti Limits in persistent mode did not restore the object and workflow states.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1430">LIM-1430</a></td><td>Corrected <a href="../../../dev/roles/limits-roles">Limits roles documentation</a> for roles that were previously prefixed by <code>GROUP\_</code>, but are now prefixed by <code>ROLE\_</code>.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1439">LIM-1439</a></td><td>Fix limits viewer column configurator allowing reordering columns.</td></tr></tbody></table>

### Fixed issues introduced in 4.0.0-beta

<table><thead><tr><th>Issue Key</th><th>Details</th></tr></thead><tbody><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1392">LIM-1392</a></td><td>Fixed the utilization percentage measure created in the business cube.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1428">LIM-1428</a></td><td>Fixed an issue where role permissions were only partially enforced when creating limits.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1431">LIM-1431</a></td><td>Fixed an issue where a user with restricted data access could create a new structure with the same name as an existing structure.</td></tr></tbody></table>

## Migrate to 4.0.0

Upgrading from version 4.0.0-beta, see [Atoti Limits 4.0.0 Release
Notes](../../release-notes#400).

Atoti Limits uses Atoti Server 6.1.1 and Atoti UI 5.2.x.
For new features and fixes included in these releases, please see the [Atoti UI documentation](https://docs.activeviam.com/products/atoti/ui/5.2/) and [Atoti UI Migration Notes](https://docs.activeviam.com/products/atoti/ui/5.2/docs/changelog), and the [release notes for Atoti Server](https://docs.activeviam.com/products/atoti/server/6.1.1/docs/release/changelog/index.).

### Breaking Changes

No breaking changes.

### Summary

* **Limit statuses** : faster loading times when displaying a limit structure with a large number of limits by enabling a property to fetch the statuses in a separate process.
* **Enhanced scope levels** : Users can now drill down by a limit scope’s [level name](../../../user-ref/cube/scope-level-name) and [level member](../../../user-ref/cube/scope-level-member) in a pivot table.

### Input file formats

No changes.

### Configuration

#### Configuration Properties

##### [limits-activeviam module](../../../user-ref/properties/config-properties/limits-activeviam)

###### Properties added

<table><thead><tr><th>Property Name</th><th>Comment</th><th>Value</th></tr></thead><tbody><tr><td>limits.data-access-control.servers.<server name="">.default-scope-match-mode</server></td><td>Sets the match mode to use for scope permissions when it is omitted.</td><td>MATCH\_ALL</td></tr><tr><td>limits.autoconfiguration.content-server.limits-created-measures-owners</td><td>The roles that will be the owner/reader for the calculated members that were created based on the KPIs. The value should be auto-configured from the KPI owners in the content server.</td><td /></tr><tr><td>limits.workflow\.workflow-status-fetched-with-limit</td><td>When set to true, retrieving limit structures also updates the limit status with the current workflow status.</td><td>true</td></tr></tbody></table>

#### Configuration files

No changes.

### Datastores

#### Modified stores

<table><thead><tr><th>Modification</th><th>Store</th><th>Field</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>Added</td><td><a href="../../../user-ref/datastore/limits-store">Limits</a></td><td>Alive</td><td>Boolean</td><td>This field indicates whether the limit is still alive (not deleted or expired). For more details, see <a href="./migrate-4.0"><code>Alive</code> field in Limits store</a>.</td></tr></tbody></table>

### Cube schema

#### Added

<table><thead><tr><th>Issue Key</th><th>Details</th></tr></thead><tbody><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1200">LIM-1200</a></td><td>An “Available Amount” and “Utilization %” measure for each KPI has been added to the limits-auto-config, calculating the difference and quotient between a KPI’s goal and the KPI’s value, respectively.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1205">LIM-1205</a></td><td>Added a property to configure whether or not filters are applied on evaluation.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1275">LIM-1275</a></td><td>Added debug logs when evaluating Atoti Limits KPIs detailing eligible limits, exposures, and evaluation location.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1302">LIM-1302</a></td><td>Added support for <a href="../../../dev/roles/data-access-permissions">restricting access on scopes</a> in the role permissions.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1324">LIM-1324</a></td><td>Pagination has been added to the Limits viewer.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1328">LIM-1328</a></td><td>Added new <code>matchMode</code> values for scopes to support more flexible retrievals in the <code>IScopeRetrievalService</code>. For details, see <a href="../../../dev/roles/data-access-permissions">Match mode</a>.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1339">LIM-1339</a></td><td>Added <a href="../../../dev/roles/limits-roles">permission roles</a> to control user access to UI actions.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1345">LIM-1345</a></td><td>Improved performance in the Limits viewer screen by using the <code>ScopeCacheService</code> to help retrieve scope objects.</td></tr></tbody></table>

### Changed

<table><thead><tr><th>Issue Key</th><th>Details</th></tr></thead><tbody><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1096">LIM-1096</a></td><td><code>KpiCrudService</code> and <code>KpiCrudRestService</code> have been updated, separating the two classes into a Spring Service and a REST Controller wrapper.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1298">LIM-1298</a></td><td>Improved property handling in Atoti Limits auto-configuration.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1314">LIM-1314</a></td><td>Improvements have been made to the validation framework. See the <a href="../../../dev/dev-extensions/custom-validation/custom-validators">custom validator</a> page for more information.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1323">LIM-1323</a></td><td>Improved performance of filters in Limits tables.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1344">LIM-1344</a></td><td>The <code>ILimitsRetrievalService</code> methods have been updated and the implementation modified to avoid executing methods recursively and to reduce the number of transactions in methods. For more details, see <a href="./migrate-4.0">Changes to <code>IlimitsRetrievalService</code></a>.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1372">LIM-1372</a></td><td>Updated common library to version <code>2.1.0-alpha-AS6.1</code>.</td></tr></tbody></table>

### Removed

<table><thead><tr><th>Issue Key</th><th>Details</th></tr></thead><tbody><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-285">LIM-285</a></td><td><code>Between</code> and <code>Not Between</code> KpiTypes have been disabled. For more information, see <a href="./migrate-4.0">Removing Between and Not Between KPI types</a>.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1274">LIM-1274</a></td><td><code>private\_</code> and <code>internal</code> imports have been removed from Atoti Limits.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1312">LIM-1312</a></td><td>Removed support for Atoti Server version 5.11 as it is no longer supported by ActiveViam.</td></tr></tbody></table>

### Fixed

<table><thead><tr><th>Issue Key</th><th>Details</th></tr></thead><tbody><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1325">LIM-1325</a></td><td>Fixed the scope selector overflowing the popover for large lists of scope members.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1349">LIM-1349</a></td><td>Removed the incorrect usage of the thread pool when creating/dropping KPIs in the <code>KpiCrudService</code>.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1358">LIM-1358</a></td><td>Updated calculated member creation to set <code>ROLE\_USER</code> as the default <code>owner</code> and <code>reader</code> so all users can see the measures.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/LIM-1366">LIM-1366</a></td><td>Fixed issue with evaluation errors not being cleared when retrying the evaluation.</td></tr></tbody></table>

## Migrate to 4.0.0-beta

Upgrading from version 4.0.0-alpha, see [Atoti Limits 4.0.0-beta Release
Notes](../../release-notes#400-beta).

Atoti Limits uses Atoti Server 6.1.0 and Atoti UI 5.2.x.
For new features and fixes included in these releases, please see the [Atoti UI documentation](https://docs.activeviam.com/products/atoti/ui/5.2/) and [Atoti UI Migration Notes](https://docs.activeviam.com/products/atoti/ui/5.2/docs/changelog), and the [release notes for Atoti Server](https://docs.activeviam.com/products/atoti/server/6.1.0/docs/release/changelog/index.).

### Breaking changes

#### Auto-Configuration changes

* `LimitsCoreConfig` has been renamed to `LimitsCoreAutoConfiguration`, is now an `@Autoconfiguration` class and is no longer explicitly imported in `LimitsAppConfig`.

### Input file formats

No changes.

### Configuration

#### Configuration properties

##### Properties modified

###### [limits-integration-common module](../../../user-ref/properties/config-properties/limits-integration-common)

<table><thead><tr><th>Property Name</th><th>Comment</th><th>New Value</th><th>Old Value</th></tr></thead><tbody><tr><td><code>limits.autoconfiguraton.limits-base-url</code></td><td>Contains the base, for example, <code>[http://localhost:3090](http://localhost:3090)</code> instead of the full rest URL, such as <code>[http://localhost:3090/limits/rest/v2](http://localhost:3090/limits/rest/v2)</code></td><td><code>limits.autoconfiguraton.limits-base-url</code></td><td><code>limits.autoconfiguraton.limits-rest-url</code></td></tr></tbody></table>

#### Files Modified

#### Property files

##### [limits-activeviam module](../../../user-ref/properties/config-properties/limits-activeviam)

New properties:

<table><thead><tr><th>Property Name</th><th>Comment</th><th>Value</th></tr></thead><tbody><tr><td>limits.cube.kpi-filters-enabled</td><td>True if cube filters are enabled for Limits KPIs, false otherwise.</td><td>true</td></tr><tr><td /><td /><td /></tr></tbody></table>

### Datastores

No changes.

### Cube schema

No changes.

### Measures

No changes.

### Other changes

#### `ROLE_LIMITS` is no longer a required role

The `ROLE_LIMITS` role is no longer required for all users of Atoti Limits. This role has
been repurposed as the [full-access role](../../../dev/roles/limits-roles#role_limits-full-access) in
the permission roles to maintain backward compatibility.
Users with this role will continue having full access to all actions in the UI as they previously
did.

<Note>
  `ROLE_LIMITS` is still used to tag KPIs created by the module, but user access to the KPIs is
  controlled by the `ROLE_USER` role, which is
  still [required](../../../dev/roles/limits-roles#role_user).
</Note>
