Upgrade to Pro — share decks privately, control downloads, hide ads and more …

State of GeoNode - FOSS4G North America 2024

State of GeoNode - FOSS4G North America 2024

The presentation covers the latest news about GeoNode, particularly the new features in GeoNode 4.3.0. They include upgrading to the latest version of MapStore and integrating all the plugins it provides.
The news targets end-users developers and DevOps, since new front-end tools, APIs and services will be covered.
Use cases will be presented during the talk to showcase applications of the new features.
The conclusion will present planned and ongoing activities for the next releases, including a deeper integration of 3D Tiles publishing, the refactoring and enhancements to metadata models and editing, and much more.

Simone Giannecchini

September 27, 2024
Tweet

More Decks by Simone Giannecchini

Other Decks in Technology

Transcript

  1. 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
  2. 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
  3. 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.
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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.
  11. 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
  12. Demo instances • You can play with the online demo

    instances • master https://development.demo.geonode.org • 4.3.x https://stable.demo.geonode.org
  13. 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
  14. 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…
  15. 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
  16. Introducing Map Viewers • With a Map Viewer each and

    any MapStore tool can be excluded / included:
  17. 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)
  18. 3D maps • The option to switch between 2D and

    3D view is available for any map, without needing a map viewer
  19. 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
  20. 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
  21. 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
  22. Catalog resource visibility • A resource can be configured to

    be hidden from the catalog, in order to be excluded from search results
  23. 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
  24. 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.
  25. 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
  26. 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.
  27. 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.
  28. 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)
  29. 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…)
  30. 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
  31. 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
  32. 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.
  33. 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.
  34. 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.