...
Redline coordinate entry
Support tabs as a separator in the input text
Updated to login/logout
Login and logout handing has been updated to better support multiple authentication mechanisms
Min/Max scale display update
The ToC panel has been improved for the displays of the scale ranges for a layer
Oracle Time update
A workaround for the Oracle JDBC driver not being compliant with the JDBC specification when it comes to dates and time has been implemented
Updated non-spatial editing
You can now specify if an edit config has create, update and/or delete capabilities
Encryption key update
The private key used to encrypt items in Weave config files can be specified by an environment variable or system property, rather than just the private.key file
Data export API
A new API for exporting data has been implemented
GeoPackage as a data export format
Along with CSV, HTML and Excel, there is now a GeoPackage option for exporting data from a data grid
List provider API update
The API for generating lists for the client has been updated to improve support for filtering the values
Tile cache update
You can now set the system property tile.cache.disable to true to disable caching of tiles fetched from external servers
WMS Legend generation config update
It's now possible to specify additional tokens that need to be included in the URL sent to a WMS server just for GetLegend requests. Previously you could only specify one set of tokens and they were sent on every request.
SAML Authentication
Support for authenticating using SAML has been added. This provides support for Microsoft AD FS and Azure AD amongst others.
New whoami request
You can open the URL /weave/whoami to get information about who the server thinks you are, which is useful to debug login, role and ACL related issues
Dynamic configuration variables
Variables in config files set by using the "set" instruction are now dynamic (i.e. their value can be changed when the config files are being processed). Previously the values were fixed, with the last value set when processing the config files, being the one that was used. You can set the system property "weave.config.variables.dynamic" to false to restore the previous static variable handling.
Updated Geometry Simplification API
An internal API used for simplifying geometry has been enhanced to provide more control over the simplification process
Geometry REST API update
The /geometry/transform/point endpoint has been updated to be more lenient with missing parameters and more strict with required parameters
Support dump update
The support dump has been updated to include additional information
Client IP address update
The server determining the user's actual IP address, taking into account proxies, has been improved
Runtime Property API update
The internal API for getting system properties has been updated to allow a function to provide the default value
Admin UI Spatial Engines Tool update
The tool now provides filtering for spatial engine layers based on their name
Data API update
The Java Data API now allows some formatting to be provided as functions, not just from a pre-defined set of options. This includes dates and times, URL's and boolean values.
EPSG update
The EPSG database has been updated to version 9.9, from 9.7
SQL Server spatial engine update
The SQL Server config now accepts a "URL" parameter, to allow specifying the full connection URL, rather than having the URL constructed from other config parameters
Third-party library updates
A number of third-party libraries have been updated to newer versions
Bookmark improvements when switching projections
The bookmarks are smarter about reprojecting redlines and extents when a bookmark is saved in one projection but loaded on a client in another projection.
User attributes in client config
It’s now possible to reference users attributes in a client config to customise a client for individual users
For example:
<initial minx=”${user.extent.initial.minx}” miny=”${user.extent.initial.miny}” maxx=”${user.extent.initial.maxx}” maxy=”${user.extent.initial.maxy}” crs=”${user.extent.initial.crs}”/>
You need to create and configure user attributes separately (the example above will not work out of the box)
...