Slide 1

Slide 1 text

Giovanni Allegri GeoSolutions State of GeoNode FOSS4GNA 2024 - St.Louis, MO

Slide 2

Slide 2 text

GeoSolutions Enterprise Support Services Deployment Subscription Professional Training Customized Solutions GeoNode • Offices in Italy & US, Global Clients/Team • 40+ collaborators, 30+ Engineers • Our products • Our Offer

Slide 3

Slide 3 text

Affiliations We strongly support Open Source, it IS in our core We actively participate in OGC working groups and get funded to advance new open standards We support standards critical to GEOINT

Slide 4

Slide 4 text

What is GeoNode

Slide 5

Slide 5 text

GeoNode at a Glance GeoNode is a platform for the management and dissemination of geospatial data. It brings together mature open-source software projects under an easy to use interface. With GeoNode, non-specialized users can share data and create interactive maps.

Slide 6

Slide 6 text

Capabilities • Handles geospatial datasets, documents and media • Combines layers and media in more complex aggregates, such as thematic maps, dashboards and geostories • Users can edit layer metadata (when the proper authorizations are granted), which are then exposed by OGC CSW and a REST API, to provide search/discovery capability • Users with can edit layer data (for vector layer) and styles (when the proper authorizations are granted) • GeoNode exposes a number of standard protocols for each layer: OGC (WMS, WMS-C, WFS, WFS-T, WCS, CSW) and mass market search standards (OAI-PMH, SRU, OpenSearch) • Full control through a RESTful API

Slide 7

Slide 7 text

Capabilities - adding data DATASETS DOCUMENTS LOCAL FILES Upload from local filesystem REMOTE SERVICES OGC WMS GeoNode ArcGIS Server Custom harvesters REMOTE FILES (wip) Links (URLs) to remote files

Slide 8

Slide 8 text

Capabilities - combining data DATASETS DOCUMENTS MAPS GEOSTORIES DASHBOARDS GEOAPPS

Slide 9

Slide 9 text

Capabilities - publishing data MAPS GEOSTORIES DASHBOARDS GEOAPPS WMS WMTS WFS CSW embedded viewers DATASETS DOCUMENTS

Slide 10

Slide 10 text

GeoNode - architecture • The GeoNode core is a web application based on Django • The spatial data is handled by a controlled GeoServer instance • MapStore is used as the map client frontend • GeoNode info and data info are stored in two different PostgreSQL+PostGIS databases. • Other ancillary services (e.g. RabbitMQ) are used for process synchronization • Further services (nginx, letsencrypt) are used as accessing services

Slide 11

Slide 11 text

GeoNode - components

Slide 12

Slide 12 text

Security • Access permission to services, APIs and resources can be controlled with granular access rules (permissions) that can be assigned to users and groups • GeoNode permissions synk with Geoserver’s authorization service (Geofence), so direct access to the OGC services relies on rules that can be managed directly inside GeoNode • GeoNode offers Basic Auth and Oauth2 authentication to users and third-party applications • It can integrate external authentication services (Azure Entra ID, Google, Auth0, etc.) and map user identities to internal account and groups memebership

Slide 13

Slide 13 text

Deployment • Docker based deployment is fully supported, although GeoNode can also be installed bare-bones • Deployment on Kubernetes is still in beta stage but there are already organizations that have adopted this deployment. An official Helm Chart is not available yet but there at least a couple of working configurations available within the community. • DB Clustering with pgpool is supported • Geoserver clustering (JMS) is supported

Slide 14

Slide 14 text

The Community • GeoNode code is made of several components, hosted on GitHub under the GeoNode organization • The GeoNode Project Steering Committee (PSC) governs the GeoNode project. • Users and developers mailing list, and a Gitter chat are the main communication channels for the community. https://github.com/GeoNode

Slide 15

Slide 15 text

Customization GeoNode cannot address all use cases but we want to avoid forks. Custom GeoNode Applications are created via GeoNode projects. A GeoNode Project is generated via a template that provides: • Layout and standard files for a Django project • A preconfigured Django app • Vanilla GeoNode as a default requirement • Ready to use Docker Compose configuration The customized app can override and extend most of the GeoNode behaviours and UI.

Slide 16

Slide 16 text

Releases History • July 2024: GeoNode 4.3.1 • Jan 2024: GeoNode 4.2.0 • June 2023: GeoNode 4.1.0 • Aug 2022: GeoNode 4.0.0 • June 2022: GeoNode 3.3.2/4.0RC1 … • May 2020: GeoNode 3.0 (Django 2.2.13, GeoServer 2.16.2) / GeoNode 2.10.4 (last 2.10 release) • April 2014: GeoNode 2.0 (Django 1.5.5, GeoServer 2.5, pycsw 1.8.6, django-polymorphic, bootstrap, Ubuntu 12.04 support) • August 2010: GeoNode 1.0-beta

Slide 17

Slide 17 text

Demo instances • You can play with the online demo instances • master https://development.demo.geonode.org • 4.3.x https://stable.demo.geonode.org

Slide 18

Slide 18 text

GeoNode 4.3.1

Slide 19

Slide 19 text

MapStore upgrade • Starting from this release GeoNode will be kept aligned to the latest version of MapStore (MapStore v2024.01.01 at the moment) • With the upgrade we were able to extend the GeoNode client to integrate (almost) all the available MS plugins and functionality • This also brings other important benefits: • Updated functionality • Deeper integration between MS and the GeoNode client tools • Increased security

Slide 20

Slide 20 text

MapStore upgrade • Some of the most prominent news brought by the upgrade are: • 3D support (CesiumJS), including 3DTiles visualization, glTf, etc. • Map Catalog: new local and remote layers can be included in a map without needing to configure remote services. • Application Contexts: this feature has been adapted and renamed as Map Viewers in GeoNode (next slides) • Chart traces • WPS Processing client • and more…

Slide 21

Slide 21 text

Introducing Map Viewers • Configure custom map functionalities • The default map viewer provides: • Table of contents (TOC) • Navigation tools (zoom, pan, …) • Identify (query layers) • Background selector • 3D (new) • Map Catalog (new) • Print • Measure

Slide 22

Slide 22 text

Introducing Map Viewers • With a Map Viewer each and any MapStore tool can be excluded / included:

Slide 23

Slide 23 text

Introducing Map Viewers • Maps and Map Viewers • One viewer can be attached to one or many maps • A viewer for a map can be configured by linking an existing viewer or creating a new one • Viewers are visible inside the resources catalog only to their creators (they are not-advertised resources)

Slide 24

Slide 24 text

3D maps • The option to switch between 2D and 3D view is available for any map, without needing a map viewer

Slide 25

Slide 25 text

3D maps • MapStore 3D provides: • 3D Datasets visualization, including 3DTiles and IFC, glTf datasets. At the moment these layers can only be added to the single maps by means of the Map Catalog • 3D Measures: geodesic distance, 3D distance, height from terrain, slope, angles • 3D Annotations: set height over terrain for common annotation types

Slide 26

Slide 26 text

Map Catalog • The MapStore catalog plugin has been enabled by default for maps.

Slide 27

Slide 27 text

Map Catalog • With the Map Catalog external resources and resource services can be added to the current map • The Map Catalog provides support for: • CSW • WMS / WFS • TMS / WMTS • 3D TIles • IFC Models

Slide 28

Slide 28 text

Direct import of local files in a map • A functionality related to this, but provided by another tool (Import plugin) to be configured with a Map Viewer, is the direct import of local vector resources inside a map • ESRI Shapefiles, GeoJSON, GPX and KML/KMZ files can be uploaded in a map and saved within its context

Slide 29

Slide 29 text

Direct import of local files in a map

Slide 30

Slide 30 text

Catalog resource visibility • A resource can be configured to be hidden from the catalog, in order to be excluded from search results

Slide 31

Slide 31 text

Catalog resource visibility • There are cases where a resource is created only to be used within other resources. Examples are images uploaded to be included in a geostory, or datasets only meant to be published inside maps. • The advertised flag under the settings tab of the metadata editor lets owners hide a resource from the catalog listing and the search results. • Notice that visibility is unrelated to resource permissions. If users are able to view a resource, it will still be visible both embedded in another resource or standalone

Slide 32

Slide 32 text

Resource pages • The navigation of resource types has been split into “pages”

Slide 33

Slide 33 text

Resource pages • An underlined indicator shows the current resource page (Datasets, Maps, etc.) • Each page has functionality for the specific resource type. Examples: • New button: each page has a button to create a new resource for the specific resource type • Filters: the filter panel only shows filters that make sense for the current resource type • The configurations for each page are exposed to GeoNode Projects. This gives the option to adapt each page to the specific project requirements.

Slide 34

Slide 34 text

Extended Users REST API • To make GeoNode compliant with account deletion requirements (Google, Apple and others enforces this policy) the Users API has been enhanced and extended to cover the complete user account’s lifecycle • New user accounts can be created through the API • Users can delete their own account • Rules can be configured and enforced before an account is deleted: • force users to transfer ownership of their resources • downstep from Group Manager roles

Slide 35

Slide 35 text

Backup and Restore • Several improvements to the robustness and reliability of the B/R flow • Previously GeoNode project customizations were part of the backup and restore artifacts. This was posing several issues and we concluded that B/R should only take into account data and not code. With this version B/R will discard customizations, which are delegated to code repositories and CI/CD pipelines.

Slide 36

Slide 36 text

Security and Dependencies • Beyond the continuous review and upgrade of dependencies, to ensure they are always updated to the most recent version (within the limit of compatibility), dependency analysis and monitoring tools have been setup for GeoNode: • Automatic Snyk scans for the GeoNode repositories • Docker Scout analysis for the GeoNode Docker images normally employed in a deployment • This is a work in progress. More coverage will be implemented in the future, including continuous SBOM generation (through Github actions) and offline analysis with Dependency Tracker.

Slide 37

Slide 37 text

Major software upgrades • Django 4.2.9 • Geoserver 2.24.3 (includes patch for CVE-2024-36401) • MapStore 2024.01.00 • PostgreSQL 15.3 (the minimum supported version is 12)

Slide 38

Slide 38 text

The future

Slide 39

Slide 39 text

3DTiles Resources • 3D Tiles become first-citizend resources

Slide 40

Slide 40 text

3DTiles Resources • They can be uploaded as zip file containing the tileset json metafile and the child resources • They can also reference tilesets served over HTTP by remote services (Add from URL…)

Slide 41

Slide 41 text

Assets • Introducing the concept of Assets

Slide 42

Slide 42 text

Assets • Assets are file resources that can be linked to a Resource through the Link model • The upload of a new resource created an asset that is linked to the resource automatically • For the moment they can only be managed from the Django Admin app (only available to admin users) or created programmatically

Slide 43

Slide 43 text

Assets • The long-term plan is to: • implement Assets management for end users • Create new resources from assets • Support files stored inside remote storage services • Extend the concept to “virtual” assets, not necessarily backed by real files

Slide 44

Slide 44 text

GeoNode 4.4.0

Slide 45

Slide 45 text

Features under development • GeoNode importer: • The importer module will be integrated inside GeoNode Core. • Legacy code for managing uploads, copies, (Geoserver concrete manager, Harvester copy), etc. will be dropped.

Slide 46

Slide 46 text

Features under development • Metadata editing: • A brand new metadata API and client editor is under design, finally! • The goal is to make metadata models and their editing more flexible, configurable and maintainable. • PyCSW will be updated to version 3.0, which includes support for ISO 19115-3 metadata • Legacy metadata views and forms will be dropped.

Slide 47

Slide 47 text

Upgrade • Are you using an older version? Upgrade! • Security fixes and installation support on new OSs being added to supported versions only! • Moving data from old versions will be much harder if not impossible • Web interfaces and GIS clients will be much different. No one will be able to backport fixes or improvements to the old ones. • Please upgrade your GeoNode installations!!! • The upgrade from GeoNode 4.2.0 is straightforward, since it doesn’t require any change to configurations and environmental variables.

Slide 48

Slide 48 text