This is the final release including all updates previously released within related RCs of the same series and new updates provided in the stable branch 2024.02.xx
The MapStore submodule revision has been updated to point to the latest stable version of MapStore (2024.02), where the majority of the involved updates have been contributed.
What's Changed
- Add tomcat server xml to hide version by @f-necas in #711
- #714: Project update to the latest MapStore 2024.02 by @dsuren1 in #715
- Catalog service types updated by @dsuren1 in #716
- Run tomcat as non-root user by @jeanpommier in #612
- #738 from georchestra/remove-proj4 by @f-necas in #739
- #736 Circle annotation with form radius by @dsuren1 in #737
Relevant fixes and enhancements
- geosolutions-it/MapStore2#9940 Update config.yaml due to parsing lib change
- geosolutions-it/MapStore2#9941 The defaultPointType and defaultShape configurations are not working as expected on Annotations
- geosolutions-it/MapStore2#9891 Delete Map plugin not longer present
- geosolutions-it/MapStore2#9944 Map connected to table with date attribute breaks the app
- geosolutions-it/MapStore2#9945 WFS legacy style breaks the app in OpenLayers
- geosolutions-it/MapStore2#9919 Disable plugin SaveAs for non-ADMIN role users in Contexts
- geosolutions-it/MapStore2#9946 Map configuration fetched twice
- geosolutions-it/MapStore2#9959 Editing of date/time attributes is not working
- geosolutions-it/MapStore2#9583 Unadvertised resources
- geosolutions-it/MapStore2#9564 Add MIME type support for info_format=application/geo+json for getFeatureInfo
- geosolutions-it/MapStore2#9830 Support for IFC as a further 3D model managed by MapStore
- geosolutions-it/MapStore2#9979 fix mardown linting error in DEV build due to web-ifc files in dist folder
- geosolutions-it/MapStore2#9797 MapStore can not build without git repository
- geosolutions-it/MapStore2#9984 Fix SaveAs plugin showing persisted data
- geosolutions-it/MapStore2#9797 MapStore can not build without git repository
- geosolutions-it/MapStore2#9550 Show creator/editor in 'Edit properties'
- geosolutions-it/MapStore2#9915 Ability to select quick date ranges for date filter fields in Filter Layer tool
- geosolutions-it/MapStore2#9383 Re-enable PDF generation
- geosolutions-it/MapStore2#9987 enhance Support for IFC 3d model in MS
- geosolutions-it/MapStore2#9916 Thematic tool integration in Visual Style Editor
- geosolutions-it/MapStore2#10002 Timeline do not properly snap when switching guide layer with same times
- geosolutions-it/MapStore2#10007 Updating the config.yaml file by adding support for A2 printing layout
- geosolutions-it/MapStore2#9980 Login collides with self opening User Guide
- geosolutions-it/MapStore2#10015 Dependency updates for mapstore-services and POMs refactoring
- geosolutions-it/MapStore2#9997 Integrity check attribute for external JS resources
- geosolutions-it/MapStore2#9965 Unit test for Cesium randomly fails
- geosolutions-it/MapStore2#9382 Change default tile size for GS OSM layers to 512
- geosolutions-it/MapStore2#8871 Empty Language parameter in printing legend seems to be refused by some servers
- geosolutions-it/MapStore2#9999 Geodesic Measurement export
- geosolutions-it/MapStore2#10049 Header authenticationRules support
- geosolutions-it/MapStore2#10044 Remove xmldom
- geosolutions-it/MapStore2#10051 Change vertex coordinate issue when a measurement is transformed into an annotation
- geosolutions-it/MapStore2#10060 Updated migration guidelines to report print YAML changes
- geosolutions-it/MapStore2#10034 CSW Catalog - Include SortyBy parameter in the CSW Catalog csw:Query
- geosolutions-it/MapStore2#9924 Improve and extend the configurability of ContextCreator
- geosolutions-it/MapStore2#10073 Fix async load for script in templates
- geosolutions-it/MapStore2#10008 Advance project customization docs
- geosolutions-it/MapStore2#9974 Remove Edit Icons (plus sign and pencil) for NON-ADMIN role users from Catalog Component
- geosolutions-it/MapStore2#10064 The Delete button does not work when the map has edit permission for the anonymous user
- geosolutions-it/MapStore2#10091 New Update measure.md including note for 3D measurement
- geosolutions-it/MapStore2#10083 Persistence of COG layer's metadata info in catalog service
- geosolutions-it/MapStore2#10034 CSW Catalog - Include SortyBy parameter in the CSW Catalog csw:Query
- geosolutions-it/MapStore2#10062 Map thumbnail is not visible from the Save panel
- geosolutions-it/MapStore2#10000 Add 3D geodesic length measure
- geosolutions-it/MapStore2#9588 Add support to multi-band color mapping for COG layers
- geosolutions-it/MapStore2#10100 Geoprocessing tools - verify which advanced settings are not sent with intersection
- geosolutions-it/MapStore2#9982 Alternative layouts for the TOC
- geosolutions-it/MapStore2#9972 Widgets - cross layer filter created and applied multiple time are not maintained
- geosolutions-it/MapStore2#10114 Mapstore crashes if a an area is drawn after a geosedic distance in 3d
- geosolutions-it/MapStore2#9970 Trying to export data on layers that have arrays in searchUrl will make the loading flag goes in loop
- geosolutions-it/MapStore2#10112 Visual Style Editor for raster layer - RGB bands option UI is incorrect
- geosolutions-it/MapStore2#10117 Update min requirements docuementation
- geosolutions-it/MapStore2#9982 Alternative layouts for the TOC
- geosolutions-it/MapStore2#9688 Build problem
- geosolutions-it/MapStore2#10144 Update proxy.properties
- geosolutions-it/MapStore2#10147 Update German translation to resolve input field issue
- geosolutions-it/MapStore2#10062 Map thumbnail is not visible from the Save panel
- geosolutions-it/MapStore2#10129 geodesic lines crash when switching to area measurement
- geosolutions-it/MapStore2#10111 Enhance GeoFence attribute rule
- geosolutions-it/MapStore2#10125 Annotation click-right options in embedded mode
- geosolutions-it/MapStore2#10121 Improving geodesic distance for 3D mesurement
- geosolutions-it/MapStore2#10157 Failing jenkins tests for DEV and QA
- geosolutions-it/MapStore2#8953 Ability to expand the TOC at context loading
- geosolutions-it/MapStore2#10153 Map Details are shown in new dashboard page
- geosolutions-it/MapStore2#9531 support loading COG layers from query params
- geosolutions-it/MapStore2#10170 Improve local backend environment for testing
- geosolutions-it/MapStore2#10185 Fix #10121 improved geodesc measures
- geosolutions-it/MapStore2#10196 3D map context throws an error using browser history navigation
- geosolutions-it/MapStore2#10193 Issue with WFS added via Query params
- geosolutions-it/MapStore2#9978 Mapillary viewer for custom 360 Imagery
- geosolutions-it/MapStore2#10197 Skipping 'Configure Map' step breaks context configuration
- geosolutions-it/MapStore2#10209 updated java url
- geosolutions-it/MapStore2#10215 #10196 fix context wizard error
- geosolutions-it/MapStore2#10202 Add as layer a geodesic 3D measurement issue
- geosolutions-it/MapStore2#10039 Refactor and simplify the format validator utility logic
- geosolutions-it/MapStore2#10201 By deleting the details the details button remains visible
- geosolutions-it/MapStore2#10222 Feature info issue on delete layer
- geosolutions-it/MapStore2#10026 Interactive legend for TOC layers
- geosolutions-it/MapStore2#10252 Mask property is not applied inside views
- geosolutions-it/MapStore2#10250 Axios 0.28.0 missing paramsSerializer
- geosolutions-it/MapStore2#10243 Problem on Identify in Street View tool
- geosolutions-it/MapStore2#10249 #10026: fix functional tests for Interactive legend for TOC layers [WMS Support]
- geosolutions-it/MapStore2#10233 Add support for HTML response for WFS layer
- geosolutions-it/MapStore2#10238 Change Math.random usages with an alternative
- geosolutions-it/MapStore2#10242 Viewer widgets state not aligned when toggling on/off the layer filter
- geosolutions-it/MapStore2#10262 Map (created with context) crashes if the export plugin is set up to be hidden to certain groups and the user is not logged in
- geosolutions-it/MapStore2#9932 On Binary dashboard public dashboard have + button
- geosolutions-it/MapStore2#10237 On Dashboard and Geostory it is no longer possible to interact with layer filter
- geosolutions-it/MapStore2#10246 Issue adding layer when a group is present on TOC
- geosolutions-it/MapStore2#10283 Fix #10237 hide filter button from dashboard legend
- geosolutions-it/MapStore2#10144 Update proxy.properties
- geosolutions-it/MapStore2#10136 Search for Map CRS coordinates
- geosolutions-it/MapStore2#10286 Fix #10112 Review class name for symbolizer field
- geosolutions-it/MapStore2#10213 Mobile issue - When the TOC opens the navigation toolbar change position
- geosolutions-it/MapStore2#10264 Layer visibility limits may prevent the Info panel of search results from opening
- geosolutions-it/MapStore2#10214 Mobile issue - Overlay of tools and info
- geosolutions-it/MapStore2#10318 Details loads panel even if the details attribute value is NODATA
- geosolutions-it/MapStore2#10070 Scroll bars for legend widgets won't move coherently with displayed data
- geosolutions-it/MapStore2#10272 Choice of type of OGC service for single layer in CSW catalog
- geosolutions-it/MapStore2#10308 Disable the marker when the search for map type is changed
- geosolutions-it/MapStore2#10167 Set OL as default mapType also for 2D map in mobile
- geosolutions-it/MapStore2#10325 Fix - Layer visibility limits may prevent the Info panel of search results from opening
- geosolutions-it/MapStore2#10225 Enhance UX for simple 3D navigation in touch devices
- geosolutions-it/MapStore2#10289 Cursor position is shifted incorrectly in Localized number field component
- geosolutions-it/MapStore2#10295 Incorrect UI when the Search by coordinates bar and Measurement tool are opened at the same time
- geosolutions-it/MapStore2#10040 ArcGIS Interoperability
- geosolutions-it/MapStore2#10281 Use Cache Options functionality extended to be applied on all the layers from a service
- geosolutions-it/MapStore2#10368 GeoProcessing layers are no longer added on top of TOC
- geosolutions-it/MapStore2#10370 Fix #10368 fix positioning of groups generated from GPT tool
- geosolutions-it/MapStore2#10377 Consider queryable layers when 'enableInfoForSelectedLayers' is off and a selected layer is disabled
- geosolutions-it/MapStore2#10378 Adding useCORS for maps.geosolutionsgroup.com geoserver names
- geosolutions-it/MapStore2#10373 Style layer - Property value cause an error on 3D view
- geosolutions-it/MapStore2#10371 TOC - Open on map initialization options does not work as expected
- geosolutions-it/MapStore2#10294 Add layer to selected group action does not add arcgis layer type to group.
- geosolutions-it/MapStore2#10396 Missing libraries in Printing-module of the release
- geosolutions-it/MapStore2#10408 Available formats for background are not including image/vnd.jpeg-png8
- geosolutions-it/MapStore2#10342 Markers are not printed correctly
- geosolutions-it/MapStore2#10406 Remove the 'Change Password' functionality if the logged in user account is managed via LDAP
- geosolutions-it/MapStore2#10339 Legend support for ArcGIS MapServer/ImageServer layers
- geosolutions-it/MapStore2#10374 Changing the layer's opacity in a Map View makes MapStore crash
- geosolutions-it/MapStore2#10354 Fix #10040 print arcgis layer with different projections
- geosolutions-it/MapStore2#10351 A saved map returns to the default state when the translation is changed
- geosolutions-it/MapStore2#10343 Expose support for ArcGIS ImageServer at MapStore Catalog
- geosolutions-it/MapStore2#10340 Global service support for ArcGIS rest catalog
- geosolutions-it/MapStore2#10152 Generic OIDC provider support
- geosolutions-it/MapStore2#10418 Share tool - the 'Add place mark and zoom to sharing link' option is not applied correctly
- geosolutions-it/MapStore2#10235 Interactive legend in dashboard and geostory
- geosolutions-it/MapStore2#10412 #10385: Misleading persistence of CSW advanced settings edits in dashboards
- geosolutions-it/MapStore2#10429 GeoProcessing Tool Intersection issue
- geosolutions-it/MapStore2#10424 The measure tool is not opened properly if Measure plugin has 'showCoordinateEditor' with true into cfg.defaultOptions
- geosolutions-it/MapStore2#10416 Added caching invalidation scheme to version text in client/actions/version.js
- geosolutions-it/MapStore2#10414 Remove the list of associated groups of logged in user from the User Details modal window
- geosolutions-it/MapStore2#10322 Fix scale selector to make it compatible with different projections
- geosolutions-it/MapStore2#6913 Illogical tab order
- geosolutions-it/MapStore2#10434 Changing theme CSS
- geosolutions-it/MapStore2#10279 Show credits/attribution text in printed page
- geosolutions-it/MapStore2#10446 Updating tomcat and java versions for binary package
- geosolutions-it/MapStore2#10459 Fix #4675 Remove ogc-schemas, w3c-schemas and jsonix dependencies
- geosolutions-it/MapStore2#10472 Improved documentation for autoDetectCORS, tileSize and singleTiles
- geosolutions-it/MapStore2#10465 Improved doc for OIDC
- geosolutions-it/MapStore2#10470 Issue in capabilities parsing when only one CRS is present
- geosolutions-it/MapStore2#9851 update maven-war-plugin to 3.4.0 & mockito-core to 4.0.0 to improve java17 compat
- geosolutions-it/MapStore2#10455 Allow use of node version 20
- geosolutions-it/MapStore2#10488 'ilike' as default operator for text field in attribute table quick filter
- geosolutions-it/MapStore2#10497 Translation from CQL to OGC filters do not respect the precedence of filter
- geosolutions-it/MapStore2#10502 Switching to mapfish-print new official version 2.3.1
- geosolutions-it/MapStore2#10487 Custom Tile Grids settings for WMS service are not retained when adding a Background layer from Catalog
- geosolutions-it/MapStore2#10489 Problems with GeoStory map configurations merge process
- geosolutions-it/MapStore2#10485 Tomcat leak version
- geosolutions-it/MapStore2#10506 GetLegendGraphic does not manage Bearer token
- geosolutions-it/MapStore2#10513 Print preview state is not aligned with TOC
- geosolutions-it/MapStore2#10175 Search Epic Test with two services is flaky
- geosolutions-it/MapStore2#10127 Offer to upgrade tests to support a higher version of react-redux
- geosolutions-it/MapStore2#10521 Enhance OL map component in updating map position based on center
- geosolutions-it/MapStore2#10532 Fixed test build failures caused by ChromeHeadless height and a test dependent on window height
- geosolutions-it/MapStore2#10530 If a the url of service catalog is defined as array when you open it the application crash
- geosolutions-it/MapStore2#10516 #10489: Fix 10438: Problems with GeoStory map configurations merge process
- geosolutions-it/MapStore2#10538 Fix #10506 fixed wrong parameter initialization
- geosolutions-it/MapStore2#10541 Fix #10527 Interactive Legend disabled by default until experimental
- geosolutions-it/MapStore2#10159 #10158 painless accessibility improvements
- geosolutions-it/MapStore2#10544 Embedded maps - details loads panel even if the details attribute value is NODATA
- geosolutions-it/MapStore2#10561 Marked openID connect as experimental
- geosolutions-it/MapStore2#10508 Using a {-y} param in a TileProvider mapstore crashes
- geosolutions-it/MapStore2#10552 Plugin enhancements and CI upgrades for template build
- geosolutions-it/MapStore2#10579 [2024.02.xx] Review street view plugin jsdoc
- geosolutions-it/MapStore2#10580 Fix #10455 update extension webpack
- geosolutions-it/MapStore2#10577 GetFeatureInfo in GeoStory does not trigger when one of the responses is an error (Popup)
- geosolutions-it/MapStore2#10063 Search by coordinate in 3D mode issue
- geosolutions-it/MapStore2#10595 wmts getfeatureinfo also requires format parameter..
- geosolutions-it/MapStore2#10486 The default catalog changes after the catalog is opened from the background tool
- geosolutions-it/MapStore2#10480 fetching the list of formats is disabled for a no-vendor WMS service
- geosolutions-it/MapStore2#10545 Option to disable identify popup in case of no results
- geosolutions-it/MapStore2#10081 fixing .geojson file not supported with mac os
- geosolutions-it/MapStore2#10622 Not possible to remove widget from Map - JavaScript error
- geosolutions-it/MapStore2#10641 Update tooltips for TOC toolbar button
- geosolutions-it/MapStore2#10503 Home and Login Plugins do not appear on the page if the Burger Menu is activated in the context in 2024.01.01 version
- geosolutions-it/MapStore2#10355 Visibility limits - The revolution option is not retained as Limits type
- geosolutions-it/MapStore2#10448 Map plugin should not initizialize invalid maps
- geosolutions-it/MapStore2#10648 Issue editing multiple fields in MapStore Attribute Table
- geosolutions-it/MapStore2#10571 Catalog editor i18n
- geosolutions-it/MapStore2#10660 Enhance About plugin to show/hide version/content sections
- geosolutions-it/MapStore2#10663 Is not possible to add decimals in the aeronautical form
- geosolutions-it/MapStore2#10677 Returning wrong pixel xy value on mousemove for leaflet engine
- geosolutions-it/MapStore2#10685 Add documentation to identify plugin
- geosolutions-it/MapStore2#10632 Layer selectable even if the group it belongs to is turned off
- geosolutions-it/MapStore2#10676 widgets in map wrongly align with a specific config
- geosolutions-it/MapStore2#10615 Remove usage of eval in MarkerUtils
- geosolutions-it/MapStore2#10695 WFS requests from mapstore by default return a filter ogc:Andundefined</ogc:And>
- geosolutions-it/MapStore2#10674 Counter widget sends double requests, the first one has viewport as undefined
- geosolutions-it/MapStore2#10697 CQL filter parser can not properly handle ILIKE filter
- geosolutions-it/MapStore2#10708 Dashboards - no longer shows counter widgets
- geosolutions-it/MapStore2#10711 Control loading FontAwesome for vector style
- geosolutions-it/MapStore2#10592 cesium/3d mode forces wms requests to version 1.1.1
- geosolutions-it/MapStore2#10701 Harden error handling when wms layers get map requests fails despite 200 ok
- geosolutions-it/MapStore2#10684 Legend filtering for GeoServer WMS layers
- geosolutions-it/MapStore2#10684 Legend filter is persisted while editing a style causing inconsistencies
- geosolutions-it/MapStore2#10241 Interaction between the Legend filter and the Layer filter
- geosolutions-it/MapStore2#10829 Issue creating Circle annotation with form radius
Documentation update
- geosolutions-it/MapStore2#10574 Update Longitudinal Profile section
- geosolutions-it/MapStore2#10478 Update Use Guide - ArcGIS Interoperability
- geosolutions-it/MapStore2#10582 Second update User Guide - Add support for HTML response for WFS layer
- geosolutions-it/MapStore2#10556 Update Dev Guide - Add new missing GeoServer Extensions
- geosolutions-it/MapStore2#10436 Update Dev Guide - Add new missing GeoServer Extensions
- geosolutions-it/MapStore2#10328 User Guide - Update Attribute Table and Filter Layers sections
- geosolutions-it/MapStore2#10096 Update User Guide - Include SortyBy parameter in the CSW Catalog
- geosolutions-it/MapStore2#9677 Update User Guide - Multivariable charts and the text configuration
- geosolutions-it/MapStore2#9571 Update User Guide - New Annotations UI and 3D support
- geosolutions-it/MapStore2#10071 New Update User Guide - Add Details panel and new Side Bar for dashboards
- geosolutions-it/MapStore2#10028 Update User Guide - Visual Style Editor
- geosolutions-it/MapStore2#9977 Update User Guide - Add time range filtering for Attribute Table quick filter
- geosolutions-it/MapStore2#9994 Update User Guide - Support for IFC service
- geosolutions-it/MapStore2#9976 Update User Guide - Unadvertised resources
- geosolutions-it/MapStore2#10021 Update User Guide - Street Smart API support
- geosolutions-it/MapStore2#10137 Update User Guide - Multi-band color mapping for COG layers and Raster layer section
- geosolutions-it/MapStore2#10169 Update User Guide - Add 3D geodesic length measure
- geosolutions-it/MapStore2#10131 Update User Guide - Alternative layouts for the TOC
- geosolutions-it/MapStore2#10306 Update User Guide - Counter Widget options and 3D models options
- geosolutions-it/MapStore2#10338 Update User Guide - Add the possibility to choose the type of OGC service for single layer in CSW catalog
- geosolutions-it/MapStore2#10327 Update User Guide - Search for Map CRS coordinates
- geosolutions-it/MapStore2#10362 Update User Guide - Use Cache Options from WMS service
MapStore documentation
MapStore latest documentation to use as a reference
Involved migration guidelines for this RC
- Migration from 2023.02.02 to 2024.01.00
- Migration from 2024.01.00 to 2024.01.02
- Migration from 2024.01.02 to 2024.02.00
Docker Image
Migration Changes
-
NodeJS and NPM update
From this version the recommended version to build MapStore or for development is Node 20 (minimum version will be Node 16). Please update your Node version accordingly on your develop machine or CI/CD. Always refer to the official requirements section of the online MapStore documentation. -
Using elevation layer type instead of wms layer with useForElevation property
The wms layer with useForElevation property is deprecated and a elevation layer introduced in substitution.{ "name": "Map", "cfg": { "additionalLayers": [ { - "type": "wms", + "type": "elevation", "url": "/geoserver/wms", "name": "workspace:layername", - "format": "application/bil16", "visibility": true, - "useForElevation": true, "littleEndian": false }, // only needed for 3D terrain + { + "type": "terrain", + "provider": "wms", + "url": "/geoserver/wms", + "name": "workspace:layername", + "littleEndian": false, + "visibility": true, + "crs": "CRS:84" } ] } }
-
Integration with openID Connect
MapStore now supports OpenID Connect (OIDC) authentication with providers like Keycloak, Okta, Google, and Azure.
Updategeostore-spring-security.xml
if not using the default file. Otherwise, no changes are needed.Apply these changes if required:
@@ -24,6 +24,7 @@ <security:custom-filter ref="sessionTokenProcessingFilter" after="FORM_LOGIN_FILTER"/> <security:custom-filter ref="keycloakFilter" before="BASIC_AUTH_FILTER"/> <security:custom-filter ref="googleOpenIdFilter" after="BASIC_AUTH_FILTER"/> + <security:custom-filter ref="oidcOpenIdFilter" before="OPENID_FILTER"/> <!-- ADD a filter with this ref --> <security:anonymous /> </security:http> @@ -52,6 +53,7 @@ <!-- OAuth2 beans --> <context:annotation-config/> + <bean id="oidcSecurityConfiguration" class="it.geosolutions.geostore.services.rest.security.oauth2.openid_connect.OpenIdConnectSecurityConfiguration"/> <!-- add this bean to configure the integration --> <bean id="googleSecurityConfiguration" class="it.geosolutions.geostore.services.rest.security.oauth2.google.OAuthGoogleSecurityConfiguration"/>
-
MapFish Print update
The MapFish Print library has been updated to work with the latest GeoTools version and Java 11 as well as being aligned with the same dependency used by the official GeoServer printing extension- Print config file update
Due to the introduction of the new Jackson Yaml parser, the printconfig.yaml
file has been reviewed and updated. Please refer to the documentation here for the details - Enable showing credits/attribution text in Print config
To ensure that the layers' credits/attributions are displayed correctly on the printed map, specifically at the bottom of the map section, it is necessary to review and update the printconfig.yaml
file.
- Print config file update
Note: see what already contributed for the geOrchestra datadir in georchestra/datadir#428.
DB Changes
Follow the migration details with respect to DB/schema changes (migration information is available here in detail):
POSTGRESQL
ORACLE
H2
Extension compatibility
Below versions of extensions are compatible with this RC release
- Urbanimse - https://github.com/sigrennesmetropole/geor_urbanisme_mapstore/releases/tag/v2.2.1
- Cadastrapp - https://github.com/georchestra/mapstore2-cadastrapp/releases/tag/v2.2.1
New GeoServer plugins and extensions supported from this release
MapStore supports several plugins for GeoServer. Following are the new GS plugins supported by MS. Complete list can be found here
-
WPS longitudinal profile process: this community extension adds the possibility to calculate an altitude profile on a given path and it is required to use the Longitudinal Profile plugin of MapStore.
-
WFS FreeMarker Extension: plugin adds the possibility to generate an HTML output for a WFS GetFeature response. As for the WMS Identify settings, it is applicable in MapStore by selecting the HTML format in the Feature Info Form for the Identify Tool.
Full Changelog: 2023.02.03-geOrchestra...2024.02.00-geOrchestra