Neos 2.2 highlights
Key insights
Welcome to the 2.2 release of Neos. There are many updates in this version that we hope you'll like, some of the key highlights include:
- Localizable string input
- Editable chips filter bar
- Read-only filter
- Combobox template
- Badge component
- New
parametersattribute on on theui-viewcomponent - Space management
- Theme in nested clusters
- Client-side grouping
- Global initialized event
- Separator on UI view actions
- New
virtualattribute onrepeatcomponent - Drag and drop in tree views
- UI view property for the lookup free value
- Menu item path in global search result
- Format expression
- Neos Studio
- Manager
- Tenant Management
- UI Customization module
- Task Scheduler
- License Management
- Notification center module
- Data exchange module
Localizable string input
The localizable string input component has been improved to allow faster input.
It is now easy to switch languages by clicking on the flags.

It is still possible to display the popup, where you can use the Translate button to automatically translate languages without translation using AI.

Editable chips filter bar
A new lighter filter bar has been implemented. It is used to display filters in the form of an editable chip. This is not the default mode. To activate it, you need to add the display-mode="editable-chips" attribute to the filter-bar component:
<vertical-layout layout:height="fill">
<horizontal-layout align="right" vertical-align="center" layout:width="fill">
<quick-search layout:width="fill" label-position="hidden" />
<horizontal-layout>
<toolbar />
</horizontal-layout>
</horizontal-layout>
<filter-bar display-mode="editable-chips" layout:width="fill" />
<datagrid layout:height="fill" />
</vertical-layout>

Here we have a quick-search aligned horizontally with the toolbar, then a filter-bar in editable-chips mode and finally a datagrid.
To find out more about the new filter bar, see the documentation.
Read-only filter
We have added the ability to define a read-only filter. This applies to filters added by code. Here is an example of code that shows how to define a read-only filter:
Filter filter = new Filter("Type", FilterOperator.Equal, "Client");
filter.ReadOnly = true;
SetFilter(filter);
The filter will still be displayed to the user, but they will not be able to modify it. You saw an example with the Department property in the editable chips filter bar section.

Combobox template
It is now possible to define a template to modify the content of the combobox options and the selected value. Here is an example of code that shows how to define a template for a combobox:
<combobox value="@Fields.CurrentTransactionType" values="@Fields.TransactionTypes" value-property="Id" display-property="Name" required="true">
<combobox-option-template>
<horizontal-layout align="space-between" layout:width="fill">
<text>
$Item.Name
</text>
<horizontal-layout layout:padding="none small none small" style:corner-radius="large" style:color="neutral" style:background="neutral-20" style:border-color="neutral-300" vertical-align="center">
<text weight="strong" size="small">
$Item.Number
</text>
</horizontal-layout>
</horizontal-layout>
</combobox-option-template>
</combobox>

To find out more about the combobox, see the documentation.
Badge component
We have added a new component called badge. This component is used to display a small amount of information. Here is an example of code that shows how to use the badge component:
<badge value="1" severity="none" size="extrasmall" />
<badge value="10" severity="info" size="small" />
<badge value="20" severity="positive" size="medium" />
<badge value="30" severity="warning" size="large" />
<badge value="40" severity="danger" size="extralarge" />

To find out more about the badge, see the documentation.
New parameters attribute on on the ui-view component
The parameters attribute has been added to the ui-view component. In particular, this allows information to be passed from a repeat component to a UI view. Here is an example of code that shows how to use the parameters attribute:
<repeat values="@Datasource">
<ui-view name="GroupUIView" parameters="@Methods.GetGroupUIViewParameters" />
</repeat>
To find out more about the parameters attribute, see the documentation.
Space management
We have added white space management to automatically handle white spaces in the entity/entity view and remove them in the UI view property as needed. For more details, see the documentation.
Theme in nested clusters
The nested cluster now supports the main cluster theme. The theme will be automatically applied. The main cluster stores the current theme in the local storage. The nested cluster (within an iframe) retrieves the theme from the local storage to apply it. When the main cluster's theme changes, the current theme in the local storage is updated, and a message is sent to the iframes to reapply the theme from the local storage.
Client-side grouping
We support client-side grouping in the datagrid component. For large data sources, server-side grouping is recommended to ensure optimal performance and minimize client-side resource usage. In contrast, client-side grouping is best suited for smaller datasets, as it eliminates the need for additional server requests and provides a more responsive user experience. For more information, see the documentation.
Global initialized event
We added Initialized UI views global event which can be subscribed to in initialization methods. Here is an example of code that shows how to use the Initialized event on a class named AppInitialization:
UIViewEvents.Initialized.AddHandler(async (args) =>
{
ViewModel viewModel = args.ViewModel;
viewModel.Actions.Remove.Location = ActionLocation.Toolbar; // Moves the Remove action in the toolbar
});
To find out more about the Initialized event, see the documentation.
Separator on UI view actions
BeginGroup option has been added on UI view actions to add a separator before the action. The separator is only visible if the action is a sub-action (in a dropdown).

New virtual attribute on repeat component
We added virtual attribute on the repeat component to enable virtualization. It is recommended if the source contains many items.
<vertical-layout layout:height="fill">
<repeat values="@Fields.Categories" virtual="true">
<text>$Item.Name</text>
</repeat>
</vertical-layout>
To find out more about the virtual attribute, see the documentation.
Drag and drop in tree views
Drag and drop is now available in tree views. You can drag and drop items to reorder them. This feature has been implemented in the function tree view:

To find out more about this functionality, see the documentation.
UI view property for the lookup free value
We added the possibility to specify a property in the UI view to bind to the free value of the lookup. To find out more about this functionality, see the documentation.
Menu item path in global search result
The menu entry path is now displayed in the global search results for menu entries.

Format expression
An expression can now be used to define the format of a UI view property. Here is an example of code that shows how to use the format expression:
return Item != null ? $"{Property.GetDecimalFormat(Item)} \"{Item.Currency}\"" : Property.GetDecimalFormat(Item);
To find out more about the format, see the documentation.
Neos Studio
Dark theme
A dark theme is now available in Neos Studio. To enable it, use the button at the top right. You can use NeosV2Dark as a base theme for your own themes.


Edit YAML
We added the ability to enter YAML in Neos Studio by triggering the Ctrl + Shift + Y shortcut from any screen.

For more information, see the documentation.
Improvements to string resources
Creating and editing string resources in Neos Studio could be cumbersome, especially requiring navigating between multiple tabs.
To make things easier, string resources can now be created or modified directly from UI templates or C# code using the right click.
Creating a new string resource from text
You can now select plain text and transform it to a string resource.
Then set its name and translations.

And finally, insert it in the template.

Editing a string resource
An existing string resource can be edited from the code editor after selecting it.

You can also open the string resources list directly from the right click.
For more information, see the documentation.
Warnings
Warnings issued by dependencies are now hidden in the result of the neos generate command. Only an information message at the end of the generation tells you if there are warnings in dependencies.

To change this behavior, see the documentation.
We also added customization of the level of a message emitted by neos generate for a specific element. To facilitate identification, we have added a code for each warning issued by the generator. This setting is available in the module properties.

For more information, see the documentation.
Generator diagram for an Entity or EntityView
Diagram generation on entity views and entities is available in Neos Studio. To access it, click on the Diagram button in the more button of the toolbar.

Manager
Improved monitoring requests
Query display has been improved in the manager to show a hierarchical view and integrate server validation rule executions.


Tenant Management
Database migration simulation
We have added the ability to simulate database migrations. This allows you to see the changes that will be made to the database before applying them. To simulate a database migration, check Run a migration simulation in the Database migration options dialog.

A notification will be sent to the user to indicate that the simulation is complete. The user can then view the changes made to the database by clicking on the Simulation details button in the notification.
Input language
We added the ability to configure input languages on a tenant. If your cluster is multi-language (e.g. English and French) but you only want English as input language, you can specify this for a tenant.

UI Customization module
Edit filter
We improve custom view creation to be able to edit the filter. There are now two sections:
Filtersto edit the filter
Filter fieldsto edit the UI view properties
Task Scheduler
The Task Scheduler is a new independent cluster for schedule background server methods execution. To find out more about the Task Scheduler, see the documentation.
We also provide the module Task Scheduler client to interact with the Task Scheduler cluster.
License Management
We have improved the layout of the License Management screens. The cluster also brings new features:
Technical functions: linked to functions defined in your cluster


Features: grouping of technical functions

Notification center module
Neos now provides an optional notification center module that can be added to your cluster.
It contains a UI component to include in your templates. It displays the button that opens the notification center.

When the notification center is opened, a sidebar is displayed. User notifications are grouped by category.

When a user notification is received, a toast is automatically displayed. The toast can contain actions.

Notifications can be sent by code to specific users or to all the users of the current tenant by using IUserNotification.
For more information, see the documentation.
Data exchange module
The data exchange is an optional module that builds upon the native data export and provides a customization dialog for this action.


For more information, see the documentation.
v2.2.13
Published on Oct 20, 2025.
Fixes
- [Security] Fixed CVE-2025-55315 (CVSS CRITICAL 9.9). Please update your backend / task-runner docker images to use at least ASP.NET Core Runtime version
8.0.21(see this article for backend and this article for task-runner). (14580), closes 29701
v2.2.12
Published on Sep 25, 2025.
Fixes
- [Helm] Changed Redis bitnami images reposity to use legacy images. Please see this article for more details on Bitnami's policy change regarding its Docker images. (14316)
- [UICustomization] Disabled a pre-validation rule temporarily to avoid an error when editing a custom view. (14206), closes 27746
v2.2.11
Published on Aug 22, 2025.
Fixes
- [User Permissions] Fixed user roles cache not being updated correctly (race condition when starting multiple backends simultaneously). (13881), closes 28003
v2.2.10
Published on Jul 30, 2025.
Features
- Improved error handling in interservice calls to enable retrieval of detailed error information. See documentation. (13467)
Fixes
- Fixed reactivity of the summary row when a property of a item loaded from the server changes. (13767), closes 28216
v2.2.9
Published on Jun 26, 2025.
Features
- Added
RadioGroupcomponent attributes in the theme. (13341)
Fixes
- Fixed execution of a validation rule dependent on multiple source elements that was running on the first element regardless of which element was modified. (13420), closes 27207
v2.2.8
Published on Jun 18, 2025.
Features
- Added
ClientDependencyOverridessection to the cluster configuration file to generate theoverridesfield in clientpackage.jsonfile for managing sub-dependency breaking changes. (13314)
Fixes
- Fixed calling of overridden UI view event rule which uses the arguments. (13322)
- Fixed report viewer crash regression when refreshing or navigating a browser window with an opened "by code" report viewer tab that has the focus : the viewer in the reloaded tab would show an error 500. (13255), closes 27244
v2.2.7
Published on May 22, 2025.
Features
- [Report Viewer] By default, any fonts used in the report that are installed on the report server will be automatically embedded in the report for display in the viewer when the report is generated. See this article. (12973)
Fixes
- [Task Scheduler] Fixed the
ScheduleTaskserver method in theTaskSchedulerClientmodule to correctly pass task arguments. (12951), closes 26922 - Fixed a failure to execute a pre-validation rule on first position change when the rule depends on the entire data source. (12941), closes 26868
- Fixed automatic sizing of the last column of the datagrid (2.2). (12909), closes 26845
- Fixed the badge displaying the number of applied conditions in the filter bar (
inputsdisplay mode) which could be truncated. (12906) - Fixed visual regressions of the filter bar (
inputsdisplay-mode). (12906), closes 26854
v2.2.6
Published on May 06, 2025.
Features
- Added a migration identifier (guid) returned by tenant management API calls involving a database migration (
MigrateDatabase,ChangeDatabaseClusterVersionandSetDatabaseClusterVersionserver methods). This identifier can then be used as a filter byMigrationIdentifierproperty onDatabaseMigrationViewAPI endpoint. (12865)
v2.2.5
Published on May 05, 2025.
Fixes
- Fixed error on grouping and sorting on a localizable string property. (12720), closes 26560
- Fixed execution order of
ItemAddingandPropertyChangedevent rules when editing a cell and focusing the add row of the datagrid. (12721), closes 26563 - Successful healthcheck (
/hc) and metrics (/metrics) requests are not sent to Application Insights anymore by default. See this article for how to filter specific successful endpoints. (12785)
v2.2.4
Published on Apr 17, 2025.
Fixes
- Added the ability to disable font embedding in the report viewer (see this article). (12691), closes 26515
- Changed Neos Studio's global search to search via the chatbot even if a conversation is in progress, the conversation is then reset (12633), closes 25933
- Fixed retrieval of the customers list when assigning a license to a tenant. We were only fetching the first 10 entries. (12697), closes 26514
- Removed the Add button that was appearing in the toolbar of the "Customer identifier" when assigning a license to a tenant: this information is managed by the Licenses cluster and is read-only as far as the Tenants cluster is concerned. (12697), closes 26514
v2.2.3
Published on Apr 09, 2025.
Features
- Added automatic removal of notification handlers when UI components are disposed. (12518)
Fixes
- Fixed
layout:widthdirective with fixed value on an action button. (12572), closes 25833 - Fixed duplicate
andtext in filter editable chip popover. (12564), closes 26281 - Fixed errors when changing filter operator with new filter bar. (12565), closes 26283, 26285, 26313
- Fixed file type validation to be case-insensitive when uploading. (12543), closes 26006
- Fixed inherited UI view view model type import. (12575), closes 26279
- Fixed memory leaks in Neos front-end code and updated Primevue to fix a memory leak in their code (https://github.com/primefaces/primevue/pull/6889). (12546)
- Fixed notification handlers automatic removal on sub UI views. (12518)
- Fixed notifications not working in development when cluster name is the same as tenant name. (12468), closes 26176
- Fixed reference to module UserPermissions in module NeosNotificationCenter. (12494), closes 26201
- Fixed report server viewer not working with multiple replicas in deployed environment. (12533), closes 25971
- Fixed the quick search expression generated for a property of type Long. (12576), closes 26234
- Primevue version upgrade to 4.3.2 (12546)
v2.2.2
Published on Mar 24, 2025.
Breaking changes
- Helm : Application Insights
instrumentationKeySecretfor sending Dapr telemetry is deprecated by 31 March 2025, please useconnectionStringSecretinstead. Please see this article. (12432)
Features
- Added Debian fonts-recommended package to the report server so they can be used to generate a PDF in deployed environment. (12324)
- Added the ability to create your own reporting service image (e.g.: for including specific fonts). Please see this article for more details. (12324)
- Improved security of the 'EntityQuerier' AI skill. (12313)
Fixes
- Fixed report viewer not embedding fonts in the page. (12438)
- Removed AI agent CSharpEvaluator from Neos Studio. (12311)
v2.2.1
Published on Mar 12, 2025.
Fixes
- Added missing Calibri (Carlito) and Cambria (Caladea) fonts in report server. See this article. (12203), closes 25804
- Fix to no longer show dependencies warnings in Neos Studio when they are ignored (see DependenciesWarnings in cluster configuration for more information) (12271), closes 25829
- Fixed
@Loadingusage in the UI template. (12250), closes 25841 - Fixed
loadingproperty transpilation of theIViewModel<T>interface. (12250) - Fixed
NeosTemplateToolbarUI component so thattoolbaris always on the right without thequick-searchcomponent. (12177), closes 25793 - Fixed application of style rules when datagrid is in an
if. (12261), closes 25853 - Fixed datagrid columns that could be hidden due to the lack of a minimum width. Added a minimum width to all columns to prevent this issue. (12264)
- Fixed logout button not working after an
onAuthenticatedmethod failure. (12282), closes 24973 - Fixed missing "Open property editor" action in the YAML code editor. (12223), closes 25811
- Fixed tenant access when the first access is in a dynamically instantiated service (by a factory using IServiceProvider for example). (12292), closes 25886
- Fixed unable to create a technical function in License management (12248), closes 25767
- Fixed untimely display of database migration simulation results when creating a tenant on shared database. (12241), closes 24952
v2.2.0
Published on Mar 04, 2025.
Breaking changes
- Added new methods (VectorizeDocumentAsync, VectorizeWebPageAsync, VectorizeTextAsync) in GroupeIsa.Neos.Application.AI.Memories.IDocumentVectorizer interface and marked VectorizeAsync method as obsolete. (11688)
- GroupeIsa.Neos.Shared.Localization.LocalizableString no longer inherits from ReadOnlyDictionary<string, string> and is no longer directly enumerable. See this article for more informations. (11236)
- Modified somes methods signatures to add
CancellationToken: If you have implemented your own class ofIUserAccountUpsertion,IAuthProvideror overide modified servers methods, you should add CancellationToken for the cluster to compile. See PR details to get list of servemethods inUserPermissionsandUICustomizationmodules. (11311) - Modified the constructor of
GroupeIsa.Neos.Application.Permissions.Functionclass to change the type of its fourth parameter fromIEnumerable<FunctionResource>toFunctionResource[]. (11740) - Modified the type of the
Themesproperty in theGroupeIsa.Neos.Designer.UIAbstractions.ThemeManagerstatic class fromstring[]toGroupeIsa.Neos.Designer.UIAbstractions.Theme[]. (12036) - Modified UI
ResumeChangeTrackingbehavior. Before nested calls can cause invalid behavior en resume change instead of keep suspend. See documentation. (11373) - Moved
TabNavigator,TabHeaderandTabPageto the "NeosSharedUI" module (instead of "UICustomization") and they are now prefixed with "Neos": their new name isNeosTabNavigator,NeosTabHeaderandNeosTabPage. (12055) - Renamed
GroupeIsa.Neos.Designer.UIAbstractions.SystemEnvironmentWindowLocation.Locationnamespace toGroupeIsa.Neos.Designer.UIAbstractions.SystemEnvironment.Location. (11081) - Renamed
ILicensesAccessor.GetLicenseDetailByCodenameAsyncmethod toILicenses.FindLicenseVolumetryAsync. (11697) - Renamed
ILicensesAccessorinterface toILicenses(like theITenantsinterface). (11697) - Report and server data export toasts have been replaced by standard toasts now that they can natively display buttons. However, this means that method
IWebBrowserAutomation.GetReportToastis no longer able to differentiate between a standard toast and a report toast. This method is now obsolete and returns the first toast it finds. This should only create problems in automation tests that display multiple toasts at the same time. Use methodIWebBrowserAutomation.GetToastinstead.
More details : 11420
Features
./entity/properties.md#white-space-handling) (11778)
[Neos Studio] Adding generating diagram for an Entity or an EntityView (11635)
[Onboarding] Switched on automatic detection of URL changes. (12068)
Added an article in the documentation explaining how to contribute to the framework. (11620)
Added Dapr app health checks in deployed environnement. (11992)
Added
badgecomponent (11957)Added
BeginGroupoption on UI view actions to add a separator before the action. The separator is only visible if the action is a sub-action (in a dropdown). (11356)Added
combobox-value-templatecomponent to be able to customize the current value of Combobox. (11979)Added
display-modeattribute to thefilter-barcomponent. The allowed values areinputs(default value) andeditable-chips. (11827)Added
Dividerabstraction for use in UIView templates. (12075)Added
ILicenses.FindCurrentLicenseFunctionsAsyncmethod to find the current license functions. (11697)Added
ILicenses.FindCurrentLicenseIdmethod to find the current license identifier. (11697)Added
ILicenses.FindCurrentLicenseVolumetryAsyncmethod to find a volumetry of the current license. (11697)Added
ILicenses.FindLicenseFunctionsAsyncmethod to find the functions of a specific license. (11697)Added
InitializedUI views global event which can be subscribed to in initialization methods. (11324)Added
keyattribute on therepeatcomponent to improve performance on dynamic source. (11509)Added
parametersattribute on theui-viewcomponent to be able to populate the view context (as well as creation mode, current id, ...). (12037)Added
SystemEnvironment.LocalStorage.Clusterproperty to access the local storage whose keys are prefixed by the cluster name. (11877)Added
SystemEnvironment.LocalStorage.Globalproperty to access the local storage whose keys are not prefixed. (11877)Added
SystemEnvironment.LocalStorage.Tenantproperty to access the local storage whose keys are prefixed by the cluster name and the tenant identifier. (11877)Added
virtualattribute on therepeatcomponent to enable virtualization. (11509)Added a check when deploying a custom gateway to avoid compatibility errors. Please see this article for more detail. (11939)
Added a check when deploying cluster backend/task-runner to prevent name or version mismatch between the images and the Helm value file. Please see this article for more detail. (11939)
Added a dark theme to Neos Studio. (11188)
Added a generated project containing the client c# code. (11446)
Added a new
Serilog:OutputTemplateconfiguration property to customize log output format (see this article). (11341)Added a new
Task Schedulercluster to schedule background server methods execution. (11637)Added a new action in [Tenant Management] cluster version screen to add a version from the currently deployed clusters. (11090)
Added a new colspan-Master parameter to the NeosTemplateMasterDetail component to determine the number of columns the master takes out of 12 available columns (11558)
Added a new screen in [Tenant Management] to display the current deployed services and there status. (11090)
Added a validation rule that checks the 'Major.Minor.Patch' format of the cluster version. (11209)
Added a warning to check that the name of a foreign key starts with FK_. (11952)
Added ability to stop chatbot by code. (11890)
Added AI assistant for creating end-to-end tests in Neos Studio. (11269)
Added AI assistant for creating ui templates in Neos Studio. (11269)
Added automatic application of the main cluster theme to nested clusters. (12036)
Added automatic tenant initialization on scopes created from background server methods. (11540)
Added client-side grouping. (11559)
Added customization of the level of a message emitted by
neos generatefor a specific element. This setting is available in the module properties. (12021)Added customize option on
Comboboxcomponent. (11956)Added database migration simulation in tenant management. (11651)
Added database models comparison helper classes documentation (
SchemaComparison,SchemaComparisonResultandSchemaDifference). (12086)Added drag and drop on the function tree. (10476)
Added drag and drop support in the
tree-viewcomponent. (10476)Added Handlebars support in instructions of AI agent. (10856)
Added kubernetes liveness probes for Neos pods (report, gateway, ...). (11992)
Added lookup on login of client administrator when creating a tenant. If the user is already assigned to tenants, a warning will be displayed [Tenant Management] (11245)
Added menu item path in global search result. (11732)
Added neos community search in Neos Studio's AI agent Ketty (11688)
Added new AI skills to explore entities and query data through EF Linq. (12039)
Added new UI view action location
RelativeToto be able to position an action relative to another action. (11977)Added NonUnicodeString column type and renamed String column type to UnicodeString. (11214)
Added support for .NET SDK versions from 8.0.400 to 8.0.499 instead of just the recommended version that the
neos setupcommand installs. (11662)Added support for read only filter (by setting the
ReadOnlyon theFilterinstance totrue). (11920)Added support for System.Math.Sign in UI code. (11073)
Added support for the layout:height="fill" directive on form fields of type
LocalizableStringand the<input-localizable-string>component. (11137)Added Task
OnTenantDatabaseMigratedAsync(TenantDatabaseMigratedEventData, CancellationToken) method to the ITenantDatabaseMigrationInterceptor interface. The cancellationToken parameter can be used to cancel the underlying operation when the request is aborted. implementation example :
/// <inheritdoc/> public async Task<Result> OnTenantDatabaseMigratedAsync( TenantDatabaseMigratedEventData tenantDatabaseMigratedEventData, CancellationToken cancellationToken) { // Implement the interceptor here... ... }
More details : 11955
- Added the "NeosDataExchange" module with the
NeosDataExport.ShowExportDialogAsyncUI method. (11896) - Added the ability to change Application Insights minimum severity for logs to be sent (see this article). (11992)
- Added the ability to configure input languages on a tenant. If your cluster is multi-language (e.g. English and French) but you only want English as input language, you can specify this for a tenant. [Tenant management] (11679)
- Added the ability to create / edit a referenced string resource in templates and C# code in Neos Studio (right-click on the string resource name after selecting it in the editor). (11255)
- Added the ability to create a new string resource from text in templates and C# code in Neos Studio (right-click on selected text in the editor). (11255)
- Added the ability to create skill dependencies from a business skill to a Neos skill. (11909)
- Added the ability to define an expression for the format of a UI view property. (11855)
- Added the ability to deploy specific Redis instances for each Neos component. Please see this article. (11231)
- Added the ability to display a toast with buttons that can execute code when clicked. (11330)
- Added the ability to enter YAML in Neos Studio by triggering the
Ctrl + Shift + Yshortcut from a screen. (11175) - Added the ability to import deployed clusters in tenant management. (11764)
- Added the ability to open the string resources list from templates and C# code in Neos Studio (right-click in the editor). (11255)
- Added the possibility to get and set a value in a lookup in combobox mode in the IlookupComponent Automation (11707)
- Added the possibility to make UI tests in Multi-Tenant. (11258)
- Added the possibility to make UI tests with Azure B2C and Neos Auth authentication. (11258)
- Added the possibility to specify a property to bind to the free value of the lookup. See documentation. (12083)
- Added transpilation for
KeyValuePairclass. (10915) - Added transpilation of UI event arguments. (11024)
- Added utility classes for database schema comparison in the
GroupeIsa.Neos.Migration.Comparisonnamespace (11824) - Added validation rule on tables, columns, indexes, index columns and foreign keys names. (11032)
- Added white space management to check them in the entity/entity view and automatically remove them in the ui view property, depending on the case. [See documentation]( (11778)
- Allowed underscores when entering resource names. (11211)
- Assign a code to each warning issued by
neos generateto allow their customization. (12021) - Changed cache management for the current user account so that it is no longer fetched from the state store but only from the repository. (11210)
- Changed Dapr state store for workflow (background task) component to use its own configuration instead of sharing the base state store configuration. (11040)
- Changed the 'quick search', 'starts with', 'contains' and 'ends with' filters to not be sensitive to accents. They were already not case sensitive. (11779)
- Database : Added the number of tenants and number of migrations in the tab title [Tenant management] (11289)
- Fixed display status of latest database migration. (11022)
- Improved access to NeosStudio's Ketty AI agent. (11732)
- Improved AI localizable string translator. (10856)
- Improved custom UI view creation UI to be able to edit the filter. (12052)
- Improved datagrid to hide the checkbox to select all rows when not all data is loaded on the client side (11287)
- Improved frontend to not prevent app from loading if backend is unresponsive. (11419)
- Improved localizable string entry by allowing switching between languages without opening the edit popup. (11255)
- Improved menu to automatically close submenus when the mouse does not hover over the menu after 500ms. (11763)
- Improved query display in the manager to show a hierarchical view and integrate server validation rule executions. (12050)
- Improved the string resource screen in Neos Studio. (11255)
- Improved UI view template binding by allowing the use of an action's label with
@Actions.MyAction.Caption. (11000) - Modified navigation parameters to allow nullable values. (11906)
- Subsequent characters must be letters, digits, _ or $. (11032)
- Support for environment variables in development mode to customize ports used by Dapr
placement.exeservice. (11872) - Tenants : Added the number of users and number of clusters in the tab title [Tenant management] (11289)
- The license cluster is no longer delivered as standard with the neos command. This avoids downloading it systematically when it is not necessarily used. It must be installed if necessary by running
neos install-cluster LicenseManagement. (11598) - The name must start with a letter, _ or $. (11032)
- Updated deployment architecture documentation to include task scheduler. (11313)
- Updated recommended .NET SDK version to 8.0.405. (11662)
- Updated Stimulsoft to version 2025.1.4. (11826)
- Updated user permissions retrieval to take account of license functions. (11740)
- Upgraded SignalR pod default memory request from 128Mi to 256Mi. (11992)
Fixes
- Added a check to the save when entering an entity view validation rule executed on the client side with dependencies. (11542)
- Added a filter to display only client users in the permissions screen when authenticated with a client user. (12091), closes 25249
- Added an example in documentation on how to create a persistent volume claim in a kubernetes cluster. (11621), closes 24754
- Added scroll in dropdown menu when height exceeds window height. (11426), closes 24363
- Changed
Directives can't be used for the "..." element.message severity from error to warning. (11469) - Changed the behavior of an input component with the
value-changedattribute to automatically assign the input value to the binded value. (11068), closes 22158 - Changed the dapr rabbitmq host value in intercluster communication documentation page to neos-dapr-rabbitmq as it fits the deployed pod. (11575), closes 24752
- Disabled modal dragging to prevent them from leaving the window. (11075), closes 23966
- Disabled Swagger button on business clusters with MultiTenant mode (it needs to open an URL with the tenant information and we can't provide this feature at the moment). The URL needs to be entered manually, or the business cluster needs to be run in mono-tenant mode. (12118), closes 21649
- Fixed 'Lookup' property visibility on filter only UI view properties. (10993), closes 23747
- Fixed
IFunctionResourceAuthorizermethods to support entities (to find out whether an entity is allowed or not). (12065) - Fixed
neos check-metadata --fixcommand which modified the YML files of locally referenced modules to set theReadOnlytotrue. (12105), closes 25561 - Fixed
NewFramenavigation from a UI view opened inPopupso that navigation is forced inPopup. (11170), closes 24059 - Fixed
panel-menulogo display. (11530), closes 24578 - Fixed
panel-menutitles that did not match the theme. (11516), closes 24577 - Fixed
sizeandweightattributes on thelabelcomponent. (11427), closes 24403 - Fixed
style:hover-*directives on animated buttons. (11532), closes 24579 - Fixed
TenantManagementuser role display: Show cluster title instead of name. (12010) - Fixed
TrySetLookupValuemethod for feeding theSelectedLookupItemargument to thePropertyChangedevent rule. (11173) - Fixed
UICustomizationandNeosCoremodule assembly name to remove duplicate. (11429), closes 24265 - Fixed a typo by renaming FileUploadState.Succeed to FileUploadState.Succeeded. (11597)
- Fixed action buttons in a datagrid
column-templateto automatically change the position of the current item and the selection before executing the action. (11943), closes 24887 - Fixed an error when assigning a value to a
LocalizableStringproperty with lookup in UI code. (11157), closes 24038 - Fixed an infinite loop in when an item is removed in embedded collection when UnitOfWork.SaveAsync is called on an entity view's Saved event. (11978), closes 25252
- Fixed an issue where ALT+Number character codes could not be entered in textbox. (11194), closes 21495, 21558, 24364
- Fixed API error parse to transform
extensionsproperty into a dictionary. (11710), closes 24855 - Fixed auto custom view saving to log error instead of showing it. (11610)
- Fixed autocompletion and diagnostics of virtual components to disallow directives. (11026), closes 23333
- Fixed bad generation when there is a menu item that opens a UI view associated to a function. (11658), closes 24815
- Fixed bad oData aggregation query on filtered data for OpenAI models. (11967), closes 25327
- Fixed bad partial generation when changing a uiview used in a lookup. (11044), closes 23161
- Fixed behavior when duplicating after navigating from a lookup. Saving will now no longer cause the value to be overwritten by the duplicated item. (11237), closes 24056
- Fixed binding on the
max-lengthattribute of thetextboxcomponent. (11194) - Fixed button enlargement when loading causing scrollbar to appear on parent container. (11591), closes 24758
- Fixed case sensitivity when searching for the exact match in a lookup. (11654), closes 24786
- Fixed client notifications not working when a user of a multitenant cluster was associated to only one tenant. (11908)
- Fixed code editor full screen mode in a modal. (11303), closes 22099
- Fixed code generation when a table has database triggers. (11436), closes 24393
- Fixed code generation when overloading a server method if the method has a
cancellationTokenparameter. Previously the parameter was doubled. (11476), closes 24511 - Fixed column widths in the tenant migration interceptor history grid. (11953), closes 25093
- Fixed constraint error (unique name on user role name) at migration time when several roles of type TenantsAdmistrator exist. Tenant management] (11298), closes 24052
- Fixed custom view button visibility when disabled by calling the shared UI method
UIMethods.UICustomization.DisableCustomView()in theInitializedevent rule. (11054) - Fixed CVE-2025-23207 (Severity Moderate CVSS 6.3) (11649)
- Fixed CVE-2025-24010 (Severity Moderate CVSS 6.5) (11649)
- Fixed data table metadata generation when inherited entity from dependencies module. (11296), closes 24049
- Fixed datagrid add button access of the default lookup modal. (11461), closes 24480
- Fixed datagrid to stay in edit mode after value change by lookup modal. (11308), closes 23350
- Fixed default custom view application to avoid refreshing data. (11062), closes 23692
- Fixed display of execution times in the manager in development mode. (12050), closes 25344, 25390
- Fixed display of lazy loadings in the manager in development mode. (12050), closes 25344, 25390
- Fixed display of the spinner instead of the 'No data found.' message when the data loaded in the grid is a child collection. (11440), closes 23817
- Fixed display user roles on clusters that don't have the user permissions module. (12032)
- Fixed double tenant identifier in server data export file download URL. (11045), closes 23937
- Fixed duplicate
Undefinedtext in the group row for thenullvalue of a nullable boolean property. (11944), closes 25283 - Fixed duplicate opening of the same UI view in Neos Studio. (11011), closes 23886
- Fixed empty tab caption on the entity and entity view properties in Neos Studio. (11206), closes 24118
- Fixed encoding of values in application context with accented letters. (10990), closes 22071
- Fixed enum property values updating when the UI view is inherited. (11852), closes 21450
- Fixed error
Caches are being built, updating is not currently possible. Please try again in a few moments.when upgrade or downgrade version of a cluster. [Tenant Management]* (11150) - Fixed error generating EntityViewTextualContext file when AI description contains multiline string. (11981), closes 24797
- Fixed error in smart translation of localizable strings once a language value has been deleted (11993), closes 25303
- Fixed error on grouping and sorting on a localizable string property. (11838), closes 19308, 20193
- Fixed error saving to a table with trigger. (11510), closes 24696
- Fixed error when adding/inserting/importing an empty item list in UI view datasource. (11583), closes 24744
- Fixed exception when select a localizableString property in a OData query. (11236), closes 23522, 24185
- Fixed external cluster roles retrieving from the distributed cache. (11267), closes 24074
- Fixed filter bar chips to not display an error if operator does not match property data type. (11660), closes 24831
- Fixed filter chips display on client-side filtering (on embedded collections). (12035)
- Fixed filtering by the filter panel to not reset the quick search value. (12035), closes 25439, 25442
- Fixed focus trap on error and message modals (11682)
- Fixed focus when opening a UI view with a filter bar: If there are form fields and a filter bar, the focus will be on the first form field. If there is only a filter bar, the focus will be on the first field of the filter bar. (11076), closes 22180
- Fixed full generation via Neos Studio in certain cases, such as adding a new parameter to a UIViewMethod, new server method called in the frontend, renaming also works better... (11776), closes 24918
- Fixed generation error when interface is implemented by an entity view of embedded reference. (11652)
- Fixed grouping on a scalar property with lookup where the displayed property value was not displayed. (11838)
- Fixed Helm chart secrets check throwing exception when a secret with required value was empty. (11862), closes 25008
- Fixed image display in Neos Studio's image editor. After editing an existing image and saving, the old one no longer reappears. (11496), closes 24456
- Fixed in tenant creation, allow
_an-in the tenant identifier. [Tenant Management] (11149) - Fixed intellisense on cloned
computedsin UI views. (11241), closes 24000 - Fixed invisible datagrid when data is shared and the datasource is empty. (11608), closes 24733
- Fixed item value on ReferenceRetriving when the lookup is based on a model other than datasource current (11372), closes 24184
- Fixed JSON deserialization of a filter condition without values. (12049), closes 25450
- Fixed localizable strings not being displayed when they do not contain a translation for the current language. They now display the first translation. (12072), closes 24789, 25465
- Fixed login not normalize (not lower-cased, space not trimmed...) when a new tenant is created with new administrator or publisher. [Tenant management] (11235), closes 23715
- Fixed logout button not working when a user had only one authorized tenant for a multitenant cluster. (11488), closes 23628
- Fixed logout in multitenancy mode not redirecting to login page. (11307), closes 21566, 23158
- Fixed menu button to be disabled when no menu items are available. (10995), closes 23367
- Fixed menu collapse on menu item click when
collapse-on-item-clickattribute ofpanel-menucomponent istrue. (11051), closes 23936 - Fixed menu duplication in Neos Studio. (11083), closes 23661
- Fixed multiline textbox and pagination bar combox colors. (11208), closes 24123, 24125
- Fixed multiple API requests in Neos Studio datatable UI view. (11334), closes 24368
- Fixed multitenant cluster not working when launched in addition to a running cluster or after monotenancy launch. (11569), closes 24450
- Fixed navigation to an unauthorized UI view to display a denied access message instead of nothing. (11531), closes 22411
- Fixed nextSibling error on refresh by hot module replacement (when a UI view is saved). (11423)
- Fixed number of records reloaded (via the refresh button) when loading elements via infinite scroll. (11312), closes 24342
- Fixed obsolescence check in the
check-metadatacommand to not trigger a warning or error when an obsolete element references another obsolete element. (11498), closes 21432 - Fixed opening of modals by datagrid buttons on the overrided metadata UI in Neos Studio. (11055), closes 23933
- Fixed optional services display in the manager. (12094), closes 24970, 25535
- Fixed pagination bar visibility in default lookup modal when the datagrid has infinite scrolling. (11432), closes 24459
- Fixed partial generation when modifying data table indexes or foreign keys. (12067), closes 25354
- Fixed performance warning when
Read allowedis disabled on the entity view. (11254), closes 23274 - Fixed popup display for renaming an entity validation rule. (11212), closes 23957
- Fixed position change in datagrid when clicking on scrollbars (on Firefox only). (11468), closes 24492
- Fixed property with lookup invalidation generation on a UI view where the entity view is unbound (without entity). (11867), closes 25175
- Fixed quick search on nested properties should not be in placeholder if the reference or collection of the nested property has quick search disabled. (10960)
- Fixed race condition in development mode leading to wrong cluster configuration after first run. (11747), closes 24892
- Fixed raise of property changed event despite suspend tracking in certain cases. (11373), closes 24377
- Fixed read only
rich-text-editorcomponent. (12024), closes 25376 - Fixed Redis startup check in dev mode on some machines on first run. (11745), closes 24895
- Fixed report viewer not working when displayed on a nested cluster UI. (11541), closes 23425
- Fixed service invocation error in userpermission users ui when a cluster is launched in single tenant mode. (11823), closes 24966
- Fixed shortcuts that should not be executed when these error and message modals are in the foreground. (11682), closes 24850
- Fixed slowness in Neos Studio after a build or partial build. (11436), closes 24393
- Fixed slowness in the manager when many SQL queries are executed. (11436), closes 24393
- Fixed some missing error sources when generating. (11053), closes 23662
- Fixed spacing and separators for overlays (modal, toast, popover). (11573), closes 24576
- Fixed swagger UI Error on Neos Studio. (11236), closes 23522, 24185
- Fixed switch padding. (11711), closes 24833
- Fixed tab navigation in some filter input components. (11982), closes 25348, 25350
- Fixed TaskRunner generation when there is no background server method (11479), closes 24463
- Fixed tenant list display when a tenant owns more than one cluster. [Tenant management] (11229)
- Fixed Tenant management interceptor when database migration from 2.0 to 2.1 with data loss. (11202), closes 24088
- Fixed tenant selection page now redirecting to login page when user is not authenticated. (11307)
- Fixed text filter construction error. (11169), closes 24050
- Fixed the
FirstOrDefaultAsyncandSingleOrDefaultAsyncmethods, which were executing the same SQL query twice if the first query returned no results. (11680) - Fixed the caption of an entity property linked to a reference in Neos Studio. (11631), closes 24346
- Fixed the check for the presence of foreign key of entity association to avoid issuing warning when the datatable is excluded from the migration. (11469)
- Fixed the cluster generation when a module without UI views is associated with a specific root namespace. (11039), closes 23162
- Fixed the display of customized error messages triggered by database indexes referencing the
TenantIdcolumn. (11572), closes 24439 - Fixed the entity view API calls on frontend/backend to encode/decode the key values in the route. (11005), closes 23203
- Fixed the intellisense by using the FuzzySharp library to sort the results before bringing them back truncated. (11506), closes 24347
- Fixed the method for setting a lookup value using a display value (
TrySetLookupValueFromDisplayValueAsync) which was changing the previous persisted value when the display value being affected is invalid. (11156), closes 24044 - Fixed the visual aspect of the
messagecomponent. (11840), closes 25006 - Fixed total number of items displayed not being updated on deletion of a persisted item. (11936), closes 20192
- Fixed transpilation of data object default values to throw an error when accessing an unknown member. (12087), closes 24402
- Fixed transpilation of pre-validation rules flagging methods
MessageandSuccessas not supported. (10996), closes 23701 - Fixed type script check error due to missing import when 'UIMethods' has an
Interfacetype parameter defined inNeos Studio. (11778), closes 24993 - Fixed UI template autocompletion when the cursor is in a tag with several spaces (or line break). (11025), closes 22002
- Fixed UI views inheriting tags from a parent UI view not appearing in folders corresponding to the inherited tags in Neos Studio menu. (10971), closes 23601
- Fixed untimely display of database migration simulation results when creating a tenant. (12047), closes 24952
- Fixed user roles display sorted alphabetically. (12038), closes 25382
- Fixed validation messages for some properties when loading the lookup edit UI in Neos Studio. (11500), closes 24567
- Fixed value emitted by
input-colorcomponent when there is no value (nullinstead of empty string). (11178), closes 24081 - Fixed visibility of datagrid context menu separators when there is no action to follow. (11179), closes 24083
- Fixed Vue warning in the web browser console when binding a number to the label of a button. (11137)
- Fixed YAML serialization to no longer remove trailing spaces from non-empty lines on multi-line localizable strings in an additional language. (11744), closes 24861
- Fixed z-index of datagrid tooltips. (11016), closes 23600
- The FileUploadState.Succeed enumeration member is still available but marked as obsolete. (11597), closes 24761
- Updated presentation of the license management. (11974)
Previous releases
You can find the changelog of previous releases by clicking on the following links :