Version 4.0.6
This new release of GeoNetwork contains a lot of improvements and fixes made during the past 8 months that should make it much more easy to use and customizable. This version also benefited from most of the fixes and improvements made for the GeoNetwork 3.10 and 12 versions during the past months.
Highlights
- Fix for the log4shell CVE
- A new flexible JSON harvester which currently supports CKAN, ODS and ESRI
- Restyled topics and categories in the homepage
- Better UI for the harvester administration
- The possibility to put the search map in the facets column
- Improvements to the search experience and facets
- Improvements to the INSPIRE Atom feed
- Improvements to the DOI creation process
- Improvements to the Editor UI and Admin UI
Security
- Bump log4j2 from 2.17.0 to 2.17.1 (#6110)
- Update log4j2 from 2.16.0 to 2.17.0 to address CVE-2021-45105 (#6083)
- Bump log4j-core and log4j-api from 2.15.0 to 2.16.0 (#6079)
- Update log4j2 from from 2.7 to 2.15.0 (#6075)
Features and improvements
- Display the alert message within the online resource popup (#6109)
- Updated keycloak to use the correct granted authority (#6134)
- DOI - add identifier / online resource url using the DOI proxy url (#6124)
- CSW Harvester / add typeahead support for filter field names (#5796)
- Sort groups and users in transfer ownership (#6093)
- Metadata update and internal reports updates (#6082)
- Service record for CSW capabilities - INSPIRE improvements (#6081)
- Update UI configuration selected by default: select the current node if defined in the configuration, otherwise the first one (#6094)
- Don't allow to delete a group if it owns metadata (#6072)
- Confirmation dialog to delete an UI configuration (#6092)
- Replace Travis badge by Github Actions Badge (#6097)
- Enable to display map in left column of search UI (#6080)
- Add maven caching to GraphQL analysis (#6085)
- Editor / Error message fixes (#6029)
- Add the doi-get query for ISO19115-3.2018 standard (#6065)
- Add proxy level security support for map services (#5941)
- INSPIRE Atom feed / Update retrieve dataset UUID to handle multiple atom feed entries for the same dataset (#6078)
- Metadata get status service - return the status change date for all types of statuses (#6074)
- User custom dialog to ask for users / groups delete confirmation (#6070)
- Add a confirm popup when deleting a logo (#6067)
- Misc. updates to Dutch translations
- Upgrade jsoup library (#6057)
- Update label texts for workflow dialog / actions. Fixes #4992 (#5840)
- Opendata harvesting / add a resource for the landing page (#6062)
- Configuration option to restrict the usage of non-predefined map services in the Regions API. Related to #5166 (#6045)
- Change the forgot password message (#6015)
- Don't display the delete button when creating a new group (#6040)
- Don't display the reset password button when creating a new user (#6041)
- Use the Map projection Region API setting in Regions/geometry related services (#6050)
- Metadata status migration - add FK for relatedMetadataStatusId (#6010)
- Encode view parameter in URL (#6030)
- Uses Java 8 in the code analysis
- Add support for UI settings migrations. Migration for mods.header.isMenubarAccessible (#6044)
- Enable CodeQL analysis in CI workflow
- Add mimetype in WWW:DOWNLOAD protocol on OpenDataSoft harvesting (#6043)
- Metadata retired status support (#5943)
- Allow to reset the users / groups filters (#6042)
- Datacite formatter - process for creators only point of contacts with roles pointOfContact and custodian (#6039)
- Map viewer / support to add layers from ESRI Rest services (#5931)
- JSON Harvester / Improve ESRI and OpenDataSoft harvesting (#6023)
- option for duplicate API to copy attachments or not (#6009)
- Added MetadataPreRemove event before backup operation (#5954)
- Remove username from forgot password service url (#5993)
- Unblock missing user/group information from user profile (#6005)
- Update XslProcessApi to process the draft copies for the metadata in a workflow (#5811)
- Add statusIds list to MetadataWorkflowApi.getStatusByType API (#5984)
- i18n / Add custom translations to the default language packages (#5919)
- Configure how to extract the WMS layer name from metadata online resources to add them to the map viewer (#5987)
- Validation / INSPIRE / Return message when quota exceeded. (#5995)
- Add index folder information in the catalog information table (admin
- statistics and status) (#5976)
- Add logic to only run encryptor once on password during the migration. (#5865)
- Used nv-i18n library to add better support for iso639-2/T iso639-2/B support (#5982)
- Update iso19139 template for uuidref attribute to apply only for srv:operatesOn element (#5924)
- INSPIRE Atom feed / Process data feed download links with multiple download files/links per datafeed entry (#5985)
- ISO19115-3 - jsonld formatter - support online resources multilingual for name and description (#5989)
- ISO19139 - jsonld formatter - support online resources multilingual for name and description (#5955)
- Add a split button for
Validate
in the 'edit' toolbar so the label is always displayed (whether the submenu is there or not). (#5966) - Add a new Json harvester (#5942)
- Remove secure port setting (#5569)
- Avoid loading Recaptcha API by angular-recaptcha if Recaptcha is disabled in the settings (#5562)
- Small UI improvements for the Harvester Settings page (#5926)
- Display topic categories tooltip in the metadata editor when tooltips are enabled (#5935)
- Editor / ISO / Compute extent from one keyword or add one extent from all keywords (#5917)
- Record view / ISO / Temporal range details support. (#5918)
- Homepage / Add a title to info block (#5922)
- Map list / Open map in the viewer, not the record view (#5921)
- Add localizedException logic so that errors can be displayed in multiple languages (#5323)
- Search / Facet / Remove count if undefined (#5915)
- Search / Add search options (eg. titleonly) to permalink (#5914)
- Record status / Highlight superseded record like obsolete one. (#5898)
- Formatter / Admin API / Migrate to Spring. (#5905)
- Update search options of the editor (harmonisation of the search functions between search page and editor) (#5907)
- Search / Active filter / Misc improvements. (#5903)
- INSPIRE / Validation from a portal endpoint. (#5899)
- Data / WFS harvester / Don't diplay widget if WFS is down (#5898)
- Admin / Reports / Consistent CSV format with other exports. (#5897)
- Resources / Load using relative path. (#5902)
- Only extractTitles for type METADATA (#5892)
- Small UI improvements to the (advanced) search on the search page (#5877)
- Record view / Preserve debug mode in links (#5894)
- Dublin core / Improvements (#5893)
- Editor / ISO topic category / Return list corresponding to schema plugins. (#5887)
- Editor / Avoid error if records contains multiple all thesaurus block (#5885)
- Editor board / Validation filter translations. (#5884)
- Break words in table on the record view page (#5879)
- Plugin / SchemaLocation is removed on save in ISO19139 (not in other plugins). (#5878)
- Record view / More like this improvements. (#5858)
- Record view / Add conditional formatter support (#5820)
- Facet / Translation / Distinction between zip code and ZIP format (#5876)
- MetadataManager / Add utility to check if record is valid. (5875)
- Setting / Integer / Get with default value. (#5874)
- Editor / Associated resource / Check null protocol or url (#5880)
- Home page / Facet / Add CSS class (#5869)
- GML / Add required id attribute to TimePeriod (#5867)
- Restyle the logo list in the Settings (#5855)
- Refactor sql to use binding (#5868)
- Facet / Add translation sort and filtering support. (#5852)
- CSW / Restore possibility to store by any index fields (#5849)
- Map / Service list / Add UI configuration filter if any (#5854)
- ISO19139 / Formatter / Support isoType in template match for plugins (#5853)
- Remove deleteAllByMetadataIdExceptGroupId from custom implementation and use the repository @query instead. (#5828)
- Small adjustments to UI settings in the Admin (#5839)
- Restyle topics on the Home page (#5837)
- Escape login redirect url (#5829)
- Add a Bootstrap layout and column to a static page (#5843)
- Aggregation / Add terms script support (#5745)
- Editor / Associated resources / Do not add wildcard on all search (#5792)
- Admin / Tools / Add action to drop data index. (#5812)
- Add exact match and title only search options (#5783)
- Add copy resource interface, implement cmis resource copy with additional properties (#5776)
- Make the editor menu scrollable on small screens (#5795)
- User Profile Readonly for keycloak users (#5769)
- Add confirm to delete Category and Cancel edits to metadata (#5813)
- Editor / Online source / Check URL with a HEAD call (#5741)
- Map / Apply filter to layer search (#5803)
- iso19139 full view - codelist elements - display the codelistValue translation only if the element has a text also (#5793)
- Add a scrollbar to the privileges popup when group names are too long (#5799)
- Display the facet filter on a single row (#5762)
- History / Display close task only when it applies (#5786)
- Revise security policy with example of email list and issue tracker as public forums (#5754)
- Update instructions for local development (#5627)
- Search / Add all title's translations in the default search (#5750)
- Indexing / Temporal extent / Add support for now in range upper bound. (#5784)
- Add new styling options to display the status of metadata records (#5759)
- Move release build properties to separate file (#5348)
- Add
register
andlost password
option to accessible login menu (#5571) - Styling and multiple columns for the language list in the
Create Thesaurus Window
(#5572) - Add a new accessible menubar (clickable and keyboard accessible): (#5518)
- Modify spring security so that it can be set at runtime startup (#5312)
- Add salutation to notification message. (#5686)
- Refactor - autowire settingManager bean to make code cleaner. (#5773)
- Editor / option to disable OGC Capabilities layer processing in the online resource panel. (#5763)
Fixes
- Use typeNames in the WFS URL when version is >= "2.0.0" (#6143)
- URL rewrite / Make "/geonetwork?uuid=..." links work again (#6139)
- Fix the cron expression for the INSPIRE ATOM harvester (#6131)
- Fix issue with CMIS connection during startup (#6106)
- Fix removal of sort by and hits per page elements in the UI configuration (#6091)
- Fix to display the role translation instead of the role code in the iso19139 full view formatter (#6123)
- XSLT formatter / remove debug mode (#6127)
- Fix default URL for the metadata full view (#6125)
- Metadata view / correctly escape quotes in links title to avoid runtime error (#6095)
- Fix for the height of a Modal popup in the Editor (#6098)
- Fix check for layer already in map - case insensitive check of the url (#6090)
- Fix coordinate order in jsonld GeoShape element (#6071)
- Add styles and classes to fix the button bars not really fitting inside the headers on admin pages (#6061)
- Fix the registration of the
surname
andcountry
for the 'self' registration process (#6060) - Fix the list of elements to process in CSW ElementSet strategy 'context' (#6017)
- Fix the display of the service metadata title for CSW and portals (#6026)
- Fix check for layer already in map (#6031)
- Fix feedback email with multiple recipients (#6033)
- Fixed issue with missing keycloakSecurityContextRequestFilter that was causing keycloak not to refresh the token correctly. (#6035)
- DOI creation / Change the links to buttons so that they become actually disabled when clicked (#6037)
- Convert iso639_2T to iso639_2B language codes in form-builder (#6024)
- Reset search parameter after metadata status change to "approved" (#5970)
- Fix gn-fn-index:is-isoDate - invalid dates like 2021-04-207 match, causing indexing errors (#6022)
- Fix credentials autocomplete in harvesters (#6011)
- Admin / better handle harvester types translation (#6006)
- Add missing 3.12.x upgrade steps (#5866)
- Admin / Users / Fix the users that a UserAdmin can manage (#5886)
- Validation / INSPIRE / Fix when setting is 'null' (#5973)
- Fix a bug when the url doesn't contain the ? sign (#5994)
- Fixes some challenges in google-structured-data-test (#5988)
- Remove duplicated dependency (#5986)
- Updated default language so that is comes from common java location. (#5981)
- INSPIRE / Validation / Add API Key. (#5975)
- Fix workflow mail notifications for metadata with a working copy (#5971)
- Small fix for long titles on Topic blocks (#5960)
- Editor / Avoid hiding part of the Add Resource dropdown in sidebar. (#5916)
- External viewer / Fix error when adding layer (#5959)
- Rollback exceptions handled in GlobalExceptionController. Fixes #5944 (#5948)
- Remove online resource - fix resource name comparison (#5934)
- Fix CSW ES mapping for sortBy and bbox (#5927)
- Handle CSW BBOX Filter correctly (#5913)
- Encryptor env variable should be uppercase as this it the general standard otherwise it will not find the variable on unix (#5873)
- Fix issue with localized exception where with* functions were returning LocalizedException instead of the class. i.e. ResourceNotFoundException (#5531)
- API / Avoid browser cache issue when the same API Path serving various formats. (#5901)
- ISO19139 / CRS indexing fails on multilingual records (#5900)
- HTML / Page tab title empty (#5895)
- Record view / Refactor getFormatterForRecord / Fix default url
- Record view / Fix display of topic category. (#5891)
- Search results / PDF / Missing title in TOC (#5888)
- Fit view to exact extent (fixes issue #5791) (#5847)
- Fix ops for public metadata inserted with CSW-T (#5202)
- Record view / Fix display of CRS label. (#5883)
- Record view / Group not set in prod mode (#5851)
- Fix empty metadata list with -1 count in user profile. Fixes #5871. (#5872)
- Encryption / Application fails to start if encryption error on harvester passwords (#5859)
- Admin / Status / Fix facet more (#5848)
- Record view / Advanced / Fix search by keyword links (#5832)
- Indexing / documentStandard is not an array. (#5834)
- Indexing / Do not add twice indexingDate field (#5823)
- User \$translateProvider.useSanitizeValueStrategy('escapeParameters') for encoding sanitizing (#5461)
- Fix for validation result gets lost when approving record and copy validation results when creating a draft. Fixes #5209 (#5418)
- Overview / Removal / Do not delete attachment from other records (#5821)
- INSPIRE Atom feed xslt fix for resource constraints with multiple gmd:otherConstraints elements (#5815)
- Index / Avoid error on multiple results in DQ conformance. (#5814)
- Correct the OpenAPI document so that it does not generate errors that were identified in #5431 (#5809)
- Fix Thumbnail generator (#5757)
- OpenAPI / Restore missing method. (#5752)
- Locale loader: fix to load translation files using the format
relativepath|type
, like../../catalog/views/myview/locales/|core
(#5710) - Search results - metadata with a working copy display a label 'Working copy' if the metadata has a draft copy, even for public users. Fixes #5580 (#5805)
- Create user form issues 2 requests to userselection api that return status code 400. Fixes #4545 (#5804)
- Users without groups assigned are listed in the users lists for any UserAdmin (#5798)
- Selection / PDF / Fix errors due to index schema changes (#5787)
- Fix editor overview manager. Fixes #5806 (#5807)
- Self-register option doesn't work. Fixes #5778 (#5779)
- Updated the index fieldname to match the es index names. (#5772)
- Fix bug in signin link - regression cause by #5518 which used older variable. (#5782)
- Fixed CMIS resource bug where the wrong key function was called causing an invalid key to be generated. (#5775)
- 3.12.x cmis jcloud updates cherry pick (#5767)
A huge thanks to all contributors and maintainers alike!
See 4.0.6 issues and pull requests for full details.