2025.03 (LTS)
Release Notes
2025.03.3 LTS
See the case list below for a few fixes that where done since the 2025.03.2 LTS release.
2025.03.2 LTS
This is the first LTS release of the 2025.03.
it has security fix for the fileupload (upgraded from 1.5 to 1.6)
A few cases where fixed since the 2025.03.1 release, see the case list below.
2025.03.1
Stateless Login page enhancements and security hardening:
If you're using custom Stateless Login HTML files placed in your media directory, it is recommended to let Servoy regenerate a default login page and then reapply your customizations to ensure compatibility and security.
Medium-severity security fix addressing a Cross-Site Request Forgery (CSRF) issue on the login page.
Several additional medium-severity security fixes addressing OWASP-related vulnerabilities in other areas of Servoy’s codebase.
Changes to the handling of server-side URL rewriting:
Previously, parameters resulting from server-side URL rewrites (e.g., rewriting
https://host/someniceurltohttps://host/solution/yoursolution?param1=1¶m2=2) were automatically sent to the index page and transmitted via websocket to the client.This behavior is now controlled by a new property:
servoy.ngclient.output.querystring.for.url.rewrite, which is set tofalseby default.
Updated the embedded Chromium browser:
Fixed an issue where two instances of the Servoy 2025.03 Developer could not run simultaneously without manually specifying JVM arguments.
Restored the functionality for text searches within Servoy files (.frm, .rel, .val, .dbi):
These files were previously incorrectly treated as binary, disabling text search and causing unintended side effects. The issue has been resolved, restoring full search capability within these file types.
2025.03
Introduced native Windows ARM64/AArch64 support with a dedicated Servoy Developer build.
The final release includes further fixes and improvements related to the newly introduced Events Manager and the enhanced OAuth configuration features.
Features:
Events Manager:
A new Events Manager top level node has been introduced, allowing developers to register for events EventType.XXX and fire custom events.
With the Events Manager, you can:
Register for built-in events EventType.XXX and handle them globally.
Built-in events EventType.XXX are fired automatically by Servoy. For example, whenever a form is shown or hidden, Servoy triggers events internally. With the Events Manager, you can listen to these events globally (across all forms) or specifically for individual forms. This complements existing form-level events (like onShow and onHide), allowing more flexible and centralized event handling.
Define and trigger custom events, enabling modules or solutions to communicate effectively.
Custom event types can be defined using the solution or module property Solution.eventTypes. For example, one module can trigger a custom event when specific business logic occurs, and other modules or forms can respond by registering listeners for these events.
Example Use Case: A module can define custom event types and fire them whenever significant actions occur. Other modules or parts of the application can then register listeners to react appropriately, promoting a clear separation of concerns and decoupled functionality.
Developer:
Outline Enhancements - responsive forms
You can now expand or collapse all nodes in the Outline View when working with responsive forms.
Promise API
Added a new Promise API node, currently used only by the HTTP Plugin, which now includes new methods returning promises instead of using callbacks.
The asynchronous methods on the
Requestobject now include a promise-based method:executeAsyncRequest(): Promise<Response>.You can execute multiple asynchronous requests concurrently and use standard JavaScript methods such as
Promise.allorPromise.allSettledto handle the completion of these requests.Additionally, the HttpClient class now provides a single method to execute multiple asynchronous requests:
HttpClient.executeRequest(requests: Array<Request>): Promise<Response>. This method accepts an array of requests, executes them asynchronously, and returns a promise that's resolved when all requests complete, either successfully or with errors.
BigInt Support
Basic support for BigInt has been introduced. BigInt provides support for arbitrarily large integers (whole numbers), essential when standard numeric precision is insufficient.
Note:
JavaScript's BigInt supports whole numbers only, not decimals.
Future updates will explore additional methods and potential workarounds to handle numeric precision more comprehensively.
Code Completion Enhancements
Added for...of code templates for iterating over datasets and foundsets to streamline scripting and reduce boilerplate.
Servoy Menu Editor
A dedicated Menu Editor has been introduced, allowing visual configuration of menus and their menu items directly within the Servoy Developer IDE. You can now easily define a menu structure and set properties of individual menu items directly within this editor.
Custom Foundset Base Types
Introduced new base Types for JSFoundset and JSRecord, like JSBaseFoundset. This base type is essential when working interchangeably with different foundsets, such as ViewFoundsets, MenuFoundsets, and regular JSFoundsets, enabling cleaner, more generic coding patterns across various foundset implementations.
Possible breaking changes
Due to several issues, it's no longer permitted to delete or reorder columns or tabs (custom component types) from a base component. From now on, you can only add new items or change properties of existing ones, but you can no longer delete or reorder them.
Known issues
If you want to run 2 instances of the 25.03.0 release at the same time then it will crash because of a shared directory that the embedded chromium browsers uses.
For this you need to change the servoy.ini file (besides resides the executable) add add a system property:
-Dchromium.cache_path=<point_to_a_unqiue_dir>
When using the stateless OAuth the deeplinks that you give are lost when the oauth service is called to login. This will be fixed for a 25.3.1 release.
Improvements
ECMA Parser Enhancements
The JavaScript builder/parser (used for validation and code completion) has been significantly improved, resulting in greater stability and reduced memory consumption. Numerous smaller improvements have been made, enhancing overall performance and accuracy of code validation.
OAuth Authentication Flexibility
Added the OAuth Authenticator option to the Stateless Login functionality. This allows you to dynamically choose an OAuth provider at runtime instead of being restricted to a single predefined OAuth configuration. It offers greater flexibility when implementing Stateless Login, enabling multiple OAuth providers or dynamic configurations based on some query parameters.
Form Event Enhancements
The onBeforeRecordSelection event, previously introduced as an entity-level event in the 2024.12 release, is now also available at the form level, allowing finer control over record selection behavior.
API
clientutils has now a getUserAgent() method, which returns the user agent string of the client.
Plugins
HTTP Plugin Enhancements
The HttpPlugin now includes a new method: executeRequest, which accepts an array of requests, allowing you to execute multiple HTTP requests asynchronously.
HTTP responses may now include large data handled through temporary files. The returned Response object provides the method getFileUpload(), which returns a JSFile pointing to the temporary file, or null if no temporary file was generated.
Security
The Stateless Login page now uses the global Content Security Policy (CSP) settings. This means it follows the CSP configuration defined for the NGClient, restricting external resource access according to your CSP settings.
If you're using custom login pages or need to reference external resources (e.g., scripts, styles, or images from other domains), ensure that your CSP settings are updated accordingly. By default, the CSP settings restrict external resources, so you'll need to explicitly allow these resources in your CSP configuration if necessary.
Dependency updates:
Eclipse updated to version 2024.12 (4.34)
Angular updated to 19.2 and AGGrid updated to version 33.x.
Note: These are major releases, and all related packages will likely require updates, especially if using packages from source.
The shipped Java version updated to 21.0.6. Future releases will require this version or higher (currently, Servoy 25.03 needs Java 17 or higher, 25.06 needs Java 21 or higher).
The shipped NodeJS version updated to 22.14.0.
The embedded PostgreSQL database shipped with Servoy Developer has been upgraded to version 17.2.
Case List
2025.03.3 LTS
2025.03.2 LTS
2025.03.1
2025.03.0-RC2
2025.03.0-RC1
Last updated
Was this helpful?