2023.06
Release Notes
Enhancements
The following are key enhancments in Servoy version 2023.06
ECMAScript Parser
Servoy is in the process of updating the JavaScript engine and tooling to be compatible with ECMA 2015+. In the 2023.6 release, we have added an ECMA parser, which enables developers to use more modern JavaScript syntax.
Try it Out
In Servoy Developer, go to the menu Window -> preferences -> JavaScript
and select the option "Enabled the ECMAScript parser", after which your Script Editor will be able to parse newer ECMA syntax, such as Arrow Functions and Template Literals.
Additional syntax will be possible in forthcoming releases, such as let
and for-of
loops.
Stateless Authentication
The processes of authentication is being moved out of Servoy Developer and in the future will work with Authentication Providers, including ServoyCloud and 3rd-party identity platforms (i.e. Azure AD, Okta, Google, etc)
As part of this process, the login screen will become stateless and will not initiate a client session until post-authentication. This will increase performance and pave the way for a more integrated security setup!
This change only applies to a Solution having mustAuthenticate
to true
and having NOloginForm
or loginSolutionName
. All other solutions will not be affected.
Servoy Developer Connects to ServoyCloud
For customers that build applications in ServoyCloud, the Servoy Developer (IDE) can now automatically checkout these applications from ServoyCloud Repositories.
Servoy Developer adds simplified UI to quickly push and pull from ServoyCloud when you have a cloned repository selected.
This applies only when having an empty workspace and when you are logged into the IDE using your ServoyCloud credentials. All other implementations will be unaffected.
Value List - Search Customization
A new configuration property has been added to allow developers to customize the behavior of components using ValueList objects to perform look-ups.
A new property type is added to the system ValueListConfig which will be used besides the ValueList property type for certain components like the typeahead which use the filter option of the valuelist. now through the config file you can say how the filtering should be done like "startsWith" or "contains" also should only the display values be queried or also the real values.
This is a replacement for components that now use APP_NG_PROPERTY.VALUELIST_CONTAINS_SEARCH
UI property, components that use the filter options should start using this new ValueListConfig property
List Form Component
We have added properties rowEnabledDataprovider
and a rowEditableDataprovider
to the ListFormComponent to disable or make 1 row read-only based on a calculation dataprovider. Also inline with other components the "readonly" property is only used under the hood by controller.readOnly
and an "editable" property should be used to make the LFC itself fully read-only or not through code.
HTTP Client Pugin
HttpClient plugin now has an option to disabled hostname/certifcate validation completely with HttpClientConfig.hostValidation = false. (this should only be used for testing purposes!)
NGDesktop
When using NGDestkop and you use application.showUrl() or that is used under the hood (by the OAuth plugin) then you need to also update ngdesktop to the latest release. Else showUrl will fail or don't do anything.
Behavior Changes
Below are key client behavior changes to be aware of.
List Form Component - Default Scrolling Mode
The ListFormComponent now supports scrolling and that has become the default mode. (Previous implementations supported only pagination)
If you take no action, then you will notice that these lists will scroll instead of paginate. However, if you want to revert to the classic mode, then you can configure the client using a UI property LISTFORMCOMPONENT_PAGING_MODE
. This can be done globally or for individual components.
Revert Globally
Revert Individually
List Form Component - Responsive Height
When using a Responsive Layout form, the behavior can change because the responsiveHeight
property of the ListFormComponent will work the same as the responsiveHeight
property of the Data Grid.
API Changes
The following are additions and changes to API
Added method
getRecordByPk
()
toJSFoundSet
(andViewFoundSet
): Added performance enhancement: Allows a developer to quickly get a cached record by primary key. Does not trigger a query to the database.Added methods
getSQL()
andgetSQLParameters()
toQBSelect
,JSFoundSet
(andViewFoundSet
) Allows a developer to quickly get the underlying SQL and Parameters from an object. These methods are now Deprecated fromJSDatabaseManager
.Added
getLoadedFoundsets()
toJSDataSource
. This method can be used to loop overJSFoundSet
objects and programmatically dispose of them to clean up resources quickly.Added
getFoundset(name)
toJSDataSource
. An existingJSFoundSet
under that name will be returned and created if need be.Performance enhancement
JSDataSource.getRecord()
now uses a special namedJSFoundSet
instead of a fully cachedJSFoundSet
.A disposed
JSFoundSet
cannot be used anymore (added checks)
added servoy property
"servoy.ignore.invalid.server.on.import=true" can be added to the servoy.properties file when you allow database servers to be invalid on import. Be carefull with this, because this does mean servoy will not do any updates to the schema op the database, so that is something you have to control your self. If you use this to have all kinds of clones that don't have to be there at startup, then those servers will be in a disabled state, and we will try to enabled it at the moment you use databaseManager.switchServer() So switch server can fail if the server still can't be connected to at that time.
Case List
Below is a comprehensive list of cases associated with each release candidate
2023.06-Final
We added a System property (-Dservoy.useES6) or through an Environment property to be able to set the javascript parser to the new ES202x mode. So that also through the command line you when exporting a solution/making a war the new parser can be used when exporting.
Also a new quick fix is added to the new builder warning for json properties that are in the frm files that are not in the spec anymore for those components.
Components | Key | Summary |
---|---|---|
2023.06-RC3
This is a release for the new NGGrid release, we needed to upgrade the underlying AGGrid lib from 29.x to 30.x because of some issue they fixed. But this is a major version increase, we made this RC3 release for a bit more testing. You have to use the latest NGGrid 2023.06.x also with Servoy 2023.06_RC3. This stuff also affects the new ListFormComponent in scrolling mode (see Behavior differences)
Components | Key | Summary |
---|---|---|
2023.06-RC2
Components | Key | Summary |
---|---|---|
2023.06-RC1
Components | Key | Summary |
---|---|---|
Last updated