1 of 40

GeoNetwork 5

Status Report

GeoNetwork 5 Team

July 2025

AUTHOR

DATE

2 of 40

Welcome

David Blasby�GeoNetwork Maintainer��Antonio Cerciello�GeoNetwork Committer��Jose Garcia�GeoNetwork Maintainer��Francois Prunayre �GeoNetwork Maintainer�

Jody Garnett�Product Owner�jody.garnett@geocat.net@jodygarnett@fosstodon.org

GeoCat�Let’s map the world, together

3 of 40

GeoNetwork at a Glance

Core Protocols:�CSW - XML Catalog�OGCAPI Records - REST / JSON catalog

Records formats:�ISO-19115-3 - geo-metadata info / services�ISO-19139 - geo-metadata xml encoding�.. and many more!��Harvest records from other catalogues, or generate from inspect of web services. Publish directly, or dynamically convert to interchange formats such as DCAT-AP.

Java web application to share, manage and edit metadata records. Works with both records and geospatial records.

The "core-geonetwork" app manages records using a Database and Elasticsearch. Provides full record lifecycle with editing, review, and publication.

Choice of the default AngularJS client,�or a "DataHub" geonetwork-ui Angular client.

Access using industry standard web services alongside a REST API for use by clients and scripts.

4 of 40

GEOCAT FIND

Discover geospatial data with ease

Work with the most used geospatial data catalog, backed by our development and support.

5 of 40

GeoNetwork 5 Challenge

Why GeoNetwork 5:

  • Regulatory Compliance
  • End of Support for Spring 5
  • Security Enhancements
  • Switching to JDK 17
  • Improved XML Engine
  • Future Proof Technology Stack

6 of 40

What Technologies need to be updated?

Spring Security

5 → 6

Spring Framework�5 → 6

Tomcat 9 → 11

Java 11�→�Java 17

Java EE

Jakarta EE

Jetty 9 → 12

Saxon 9.1.0-8b*�→�Saxon-HE 12.5

* 2008 release Saxon no longer supported,we maintain a patched version

iso19139

7 of 40

GeoNetwork 5 Proposals

Proposal A: Update Application

Update and migrate current application from Spring 5 to Spring 6.

  • Unsure if we can smoothly update to Spring Framework 6 due to age of many of the dependencies
  • Team limited to those experienced with core-geonetwork codebase

Proposal B: New Application

Create a new app top of current core-geonetwork 4 application.

  • Easier to do module by module
  • Less knowledge of geonetwork required by team members
  • Start from scratch, clean up
  • Require 2 apps to run in parallel

clean up, improve and simplify the current codebase

8 of 40

Bold GeoNetwork 5 "Spring Boot" Approach

Spring Framework 5 → Spring Boot 6

  • Spring Boot is more friendly
    • Recommended with lots of examples and testing
    • Less labour intensive (@annotation driven)
  • faster, cloud friendly, development
    • Spring Boot Apps are standalone
    • Start up quickly in container environment
  • "rightsize"
    • port only what is needed / modern / maintainability
    • simplify codebase
  • tandem development approach
    • New Spring Boot GeoNetwork 5 Development
    • Delegates to GeoNetwork 4 Web Application

9 of 40

What technology updates are out of scope?

User Interface update is a separate activity:

  • AngularJS reached EOL in 2022
  • Angular is a typescript replacement
    • Used by GeoNetwork UI / DataHub catalog visitor experience

GeoNetwork 5 provides consistent API:

  • Allows concurrent clients development
  • AngularJS UI / GeoNetwork 4�remains operational
  • geonetwork-ui remains operational

AngularJS

Angular

10 of 40

Standalone App

Backends

App

geonetwork

gatewayindexing

searching

ogcapi-records

Java 21 / Spring Boot

Client

search

Angular

edit

Angular

gn4-ui

AngularJS

datahub

Angular

Index

Elastserach

Database

PostgreSQL

GeoNetwork 4

Java 11 / Spring Framework 5.3 / Tomcat

proxy

Development

11 of 40

Standalone App

Backends

App

geonetwork

indexing

searching

ogcapi-records

Java 21 / Spring Boot

Client

search

Angular

edit

Angular

gn4-ui

AngularJS

datahub

Angular

Index

Elastserach

Database

PostgreSQL

GeoNetwork 5

12 of 40

DCAT

13 of 40

DCAT AP NL Sprint

  • Project funded by NGR to add Dutch ISO geographical metadata datasets and services support to export to DCAT-AP NL format (RDF/XML).
  • A document describing the Dutch ISO metadata-> DCAT-AP NL mapping has been created.
  • Requires GeoNetwork 5.x (or GeoNetwork 4.4.x)

14 of 40

DCAT AP NL Sprint - DCAT Output!

DCAT Output

15 of 40

DCAT AP NL Sprint : HTML DCAT-AP NL View

  • Display the metadata information exported to this format.

16 of 40

DCAT AP NL Sprint

  • Metadata editor validation rules to help creating ISO metadata with the valid information required for DCAT-AP NL.

17 of 40

DCAT AP NL Sprint

  • CSW output format to provide DCAT-AP NL metadata

18 of 40

OGCAPI Records

19 of 40

Updates to GeoNetwork OGCAPI-Records

  • Connect a Metadata record with a “collection” (GeoNetwork: sub-portal)
  • More information available to display
  • New Angular User Interface

20 of 40

Queryables

Both server and client.

Fully configurable,�- Anything in Elasticsearch�- Including complex queries

21 of 40

Improved GeoJSON

Follows OGC API - Records specification

  • Themes
  • Contacts

22 of 40

Specialized Output Formats

Single-Record Formats (from GN4)

  • DCAT
    • eu-dcat-ap
    • eu-dcat-ap-hdv
    • eu-geodcat-ap
  • DataCite
  • More in progress

Multiple-Record Formats

  • CSW-Like

23 of 40

OGCAPI-Records: Part 2 (Facets)

Provides summarized information about a search query.

For example, how many records are dataset records and how many are service records?

24 of 40

OGC’s OpenAPI spec for 
OGC API Records

OpenAPI .yaml

Modified OpenAPI for

“good” code generation

OpenAPI .yaml

Java model and interface code

.java

"clean up" integer or string → string

autogenerate

GeoNetwork 5

Service Implementations

25 of 40

Standalone App

Backend

Index

Elastserach

Database

PostgreSQL

App

ogcapi-records

ogcapi-records

—-

index-client�domain�formatting

schema-model�schemas

Client

stac-browser

ogcapi-records

Angular

OGCAPI

26 of 40

GeoNetwork 5 Milestones

27 of 40

GeoNetwork 5 Roadmap

Read-Only�Catalog Services

Configuration�and Security

Automated Catalog Population

Public Search

Record Management

Record�Editor

iso19139

iso19115-3

ogcapi

records

ogc csw�

rest�security

dcat

dcat-ap-nl

rest�harvester

GN4 client�search

security�integration

ogc csw transaction

iso19139�nl.geografie

iso19139�nl.services

rest�search

harvesters

geonetwork-ui�Angular client

rest�records

GN4 client�editor console

GN4 client�metadata editor

rest�edit

AUTHOR

DATE

28 of 40

Milestone 1 : Read-Only Catalog Services

Expose a pre-populated metadata catalog services:� • OGC Records API (Part 1)� • CSW endpoints� • Supplemental read-only support APIs

Developed items:

  • Records: ISO19139
  • Records: ISO19115-3
  • OGC API Records
  • OGC Catalog Service (CSW)

AUTHOR

DATE

29 of 40

Milestone 2 : Configuration & Security

Implement Settings and User Management APIs to control access, roles, and system parameters.

Developed items:

  • Export: DCAT
  • Export: DCAT-AP-NL
  • REST API Security endpoints
  • Security Integration

AUTHOR

DATE

30 of 40

Milestone 3 : Automated Catalog Population

The first way to populate a GeoNetwork 5 catalogue without the need of GeoNetwork 4 “sidecar”.

Allows for independent deploying of GeoNetwork 5.

Developed items:

  • Record: DataCite DOI
  • Record: ISO19139.NL.Geografie/Services
  • Harvester
  • REST API Harvester endpoints

AUTHOR

DATE

31 of 40

Milestone 4 : Public Search

Refine the migration of services required for clients Test AngularJS GN4-UI and Angular GeoNetwork UI.��Provides full public facing of GeoNetwork 5.

Developed items:

  • REST API Client Search endpoints
  • GN4 AngularJS client tested
  • DataHub / geonetwork-ui tested

AUTHOR

DATE

32 of 40

Milestone 4 : Public Search

Refine the migration of services required for clients Test AngularJS GN4-UI and Angular GeoNetwork UI.��Provides full public facing of GeoNetwork 5.

Developed items:

  • REST API Client Search endpoints
  • GN4 AngularJS client tested
  • DataHub / geonetwork-ui tested

AUTHOR

DATE

33 of 40

GeoNetwork 5

Public Search

Standalone App

Backends

App

geonetwork

searching

datahub�—-

index-client�domain

schema-model�schemas

Java 21 / Spring Boot

Client

search

Angular

gn4-ui

AngularJS

datahub

Angular

Index

Elastserach

Database

PostgreSQL

34 of 40

Milestone 5 : Record Management

Provide REST API for managing record publication, review and permissions.

Batch editing and validation may also be scheduled here or as part of the next milestone.

Developed items:

  • REST API record management
  • Edit Console tested

AUTHOR

DATE

35 of 40

Milestone 6 : Record Editing

Provide REST API for managing record editing and validation.

A large number of small queries used to support editing process.

Developed items:

    • REST API record editing / Metadata Editor test

Developed items:

  • Provides REST API for editing records and validation.
  • Record Editor tester

AUTHOR

DATE

36 of 40

GeoNetwork 5 Crowdfunding

37 of 40

GeoNetwork 5 Crowdfunding

TLDR: We don't want to wait!

  • Proof of Concept successful
  • Docker Development Environment
  • Sprints on OGCAPI-Records
  • Sprints on DCAT2 Development

Sharing OGCAPI-Records Milestone with supporters later this year.

GeoNetwork 5 is facing the exact same challenge as GeoServer 3, but is taking a staged approach to crowdfunding.

GeoServer 3 did an all or nothing crowdfunding suitable for�massive updates across several codebases.

GeoNework 5 has the flexibility to provide a staged delivery of useful milestones supports can deploy in production.

38 of 40

GeoNetwork 5 Crowdfunding: Milestone Targets

Milestone 3Catalog Population

Milestone 1Read-Only�Catalog Services

Milestone 2Configuration�and Security

Milestone 4Public Search

Milestone 5Record Management

Milestone 6Record�Editor

iso19139

iso19115-3

ogcapi

records

ogc csw�

rest�security

dcat

dcat-ap-nl

rest�harvester

search

security

ogc csw transaction

nl.geografie

rest�search

harvesters

geonetwork-ui

rest�records

editor console

metadata editor

rest�edit

nl.services

€200k/ €50k

€122k/ €62k

€208k/€100k

€55k

€50k

€174k

39 of 40

Thank you!

Made with by GeoCat

40 of 40

GeoNetwork

Front Services

gateway

Infrastructure

monitoring

Discovery

Infrastructure

Index

Elastserach

Database

PostgreSQL

Config

geonetwork

index

search

ogcapi-records

[0..N]

ogcapi-records

Event Bus

Client

datahub

Angular

stac-brower

ogcapi-records

Angular

edit

Angular