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

State of GeoNode - Release 3.3.1 and preview of 4.0

State of GeoNode - Release 3.3.1 and preview of 4.0

This webinar provides the information about the upcoming 3.3.1 as well as 4.0 GeoNode releases focusing on the latest developments as well on the upcoming ones.

Simone Giannecchini

February 10, 2022

More Decks by Simone Giannecchini

Other Decks in Programming


  1. GeoNode at a Glance A web framework based on Python

    and Django to allow people to upload, describe, share and use their geospatial data. We usually define GeoNode as a geospatial-CMS. Core Components • Django • PotsgreSQL-PostGIS • GeoServer • GeoWebCache • pycsw • MapStore
  2. Capabilities o Upload geospatial datasets (by default shapefiles and GeoTIFFs)

    o User with appropriate permissions can edit layer metadata, which are exposed by OGC CSW and REST, to provide search/discovery capability o Create thematic maps accessible to general public o Users with appropriate permissions can edit layer styles and features (for vector layers) o Granular permission systems: viewing, downloading, metadata editing, styles and feature editing for a layer can be restricted to users or groups o GeoNode exposes a number of standards for each layer: OGC (WMS, WMS-C, WFS, WFS-T, WCS, CSW) and mass market search standards (OAI-PMH, SRU, OpenSearch)
  3. Releases History o February 2022, GeoNode 3.2.3/3.3.1/4.0-alpha o November 2021,

    GeoNode 3.2.2/3.3.0 o July 2021, GeoNode 3.2.1 o April 2021, GeoNode 3.2.0 (Django 2.2.16, GeoServer 2.18.2) / GeoNode 3.1.1 (last 3.1 release) o May 2020, GeoNode 3.0 (Django 2.2.13, GeoServer 2.16.2) / GeoNode 2.10.4 (last 2.10 release) o February 2020, GeoNode 2.10.2 (Django 1.11.29, GeoServer 2.15.4, pycsw 2.4.2) o June 2019, GeoNode 2.10 (Django 1.11.20, GeoServer 2.14, pycsw 2.2.0) o April 2018, GeoNode 2.8 (Django 1.8.19, GeoServer 2.12.2, pycsw 2.0.2, group moderation and resources publication workflow, SLD upload, metadata wizard) o May 2017, GeoNode 2.6 (Django 1.8.7, GeoServer 2.9, pycsw 2.0.2, React client, QGIS server backend, ansible and docker setup, Ubuntu 16.04 support) o November 2015, GeoNode 2.4 (Django 1.6.11, GeoServer 2.7, pycsw 1.10.5, django-guardian, groups, remote services, responsive template, Ubuntu 14.04 support) o April 2014, GeoNode 2.0 (Django 1.5.5, GeoServer 2.5, pycsw 1.8.6, django-polymorphic, bootstrap, Ubuntu 12.04 support) o October 2012, GeoNode 1.2 (Django 1.4, GeoServer 2.3, South migrations, django-taggit, social features, comments and ratings, find/add layers widget) o May 2012, GeoNode 1.1.1 (Ubuntu 10.04 and 11.04 installer) o December 2010, GeoNode 1.0, with major contributions from OpenGeo, the World Bank, GFDRR, UNISDR, and GEM o August 2010, GeoNode 1.0-beta
  4. Releases Covered by this Presentation 2.10.1 3.1 development stable maintenance

    YOU ARE HERE 2.10.2 2.10.4 3.2.0 3.1.1 3.3.1 3.2.3 4.0-alpha 3.2.1 3.2.2 3.3.0
  5. Play with the online demo instances o 3.2.3 https://stable.demo.geonode.org/ o

    3.3.1 https://development.demo.geonode.org/ o 4.0-alpha https://master.demo.geonode.org/
  6. Are you using an older version? Upgrade! o User/Developer lists

    and Gitter typically covers only supported versions o Today it means only 3.3.x o Security fixes and installation support on new OSs being added to supported versions only! o Moving data from old versions will be much harder if not impossible o Web interfaces and GIS clients will be much different. No one will be able to backport fixes or improvements to the old ones. o Please upgrade your GeoNode installations!!!
  7. Upgrade to GeoServer 2.19 Main Improvements and Fixes • [Security]

    Fixes for Log4J2 zero day vulnerability • [Security] GeoServerOAuthAuthenticationFilter creates Anonymous authentication when preAuthenticated principal is not present • Improved Feature Templating machinery • Improved GeoFence DB connection • Improved Importer stability and logging • Fix Importer application of gridset bounds, (it was not working correctly when GWC DiskQuote in use) • Improved GWC stability and scalability • Support for GeoPackage output format on WPS and WPS-DownloadProcess For more information check the 2.19 release notes.
  8. Upgrade to MapStore Client 3.3.x Improvements and Fixes • Save

    Search Services to the Map • Save Map Preferences into the adapter model • Advanced Style Editor with graphical UI • Improved Map Save Widget, specific for GeoNode • New MapStore client configuration subsystem • Group Layer as named groups For more information check the 3.3.0 release notes. For technical details check: https://github.com/GeoNode/geonode-mapstore-client#readme
  9. MapStore Advanced Styler o Old Styler was somewhat “poor” ✓

    Widget based styler ✓ Vector data classifications ✓ Raster Data Classifications ✓ Well Known Markers ✓ Advanced Styling Options
  10. MapStore WPS Based Async Export o Relies on WMS Download

    Process to export data asynchronously ✓ Different File Formats ✓ Native or WGS-84 projections ✓ Crop dataset option ✓ Download filtered dataset ✓ Export data results
  11. GeoNode REST APIs ✓ Create a real REST API for

    GeoNode resources, which is: ✓ Pluggable: new external dependencies and modules should be easily allowed to add their own API endpoints without modifying the GeoNode code base. ✓ Modular: each app has their own API module if needed. No more monolithic modules with a ton of classes ✓ REST compliant: the new API must adhere to the REST paradigm and protocol ✓ Lives together with the legacy Tastypie based GeoNode APIs (deprecated starting from GeoNode 4.0) • Plenty of updates and improvements • Exposed almost all the GeoNode model resources • Dynamic REST features like searching, sorting, filtering, ordering and field embedding: https://github.com/AltSchool/dynamic-rest#demo e.g.: ❖ https://master.demo.geonode.org/api/v2/geostories/20?inc lude[]=data ❖ https://master.demo.geonode.org/api/v2/resources?filter{r esource_type}=layer
  12. GeoNode Management Commands APIs ✓ Implement a mechanism inside GeoNode

    to generate an HTTP API for any management command. ✓ Expose management over a common HTTP endpoint. ✓ Grant full control on which commands we want to be exposed and under which security restrictions. ✓ Follow the status from the Admin dashboard. https://docs.geonode.org/en/master/admin/mgmt_commands/index.html#a sync-execution-over-http
  13. Thesauri improvements ✓ Thesauri implementation needs some revision, update and

    improvements.: ✓ Handle multiple thesauri ✓ Improve i18n in thesauri titles ✓ Improve cardinality handling ✓ Re-implement thesaurus import/export using rdflib to support a wider range of RDF formats https://docs.geonode.org/en/master/admin/thesaurus/#loading-a-thesaurus
  14. Upload Enhancements ✓ Improved Async Upload of Layers ✓ Uploads

    are now stateful and can be resumed or cancelled later on ✓ Upload now have dynamically configurable size limits (distinct for documents and datasets) ✓ “smart_open” now supports sources from S3, GCS, Azure Blob Storage, HDFS, WebHDFS, HTTP, HTTPS, SFTP, or local filesystem ref.: https://github.com/RaRe-Technologies/smart_open * This is a backend feature only for the time being, not exposed yet from the GUI
  15. Metadata enhancements ✓ Extend the “ResourceBase” metadata model with an

    opaque JSONField (feature proposal #8689) ✓ Custom filters available for the “ResourceBase” opaque filters (feature proposal #8690) https://docs.geonode.org/en/master/usage/extra_metadata/index.html
  16. User Lists Participation o Answering users' questions relies on a

    low number of people o We lack “testers”; this kind of project would need also a lot of manual testing for all its functionalities on a regular basis o Developers are very few and Pull Requests often do not respect the contribution policies. In particular: ✓ There’s no GitHub issue describing the problem linked to the Pull Request ✓ GitHub issues are plain requests often without a good description of the use case and how to reproduce it ✓ Lack of test cases and documentation ✓ History of commits is usually messed up
  17. Steps to get in touch with developers 1. If you

    need for clarification first of all try to describe the issue as well as possible through the official mailing lists; IMPORTANT: always specify ✓ Which versions of GeoNode and GeoServer you are using ✓ Which Operative System and hardware you are using ✓ How you installed the framework 2. If you need to get in touch directly with developers, consider using the official “gitter” chat https://gitter.im/GeoNode/general 2. If the issue has been confirmed and there’s no easy or immediate resolution, open a ticket on GitHub https://github.com/GeoNode/geonode/issues with steps on how to reproduce the problem and labels
  18. In case you stumble into a vulnerability: Responsible Disclosure o

    Keep exploit details out of issue report. o Mark the issue as a vulnerability. o Be prepared to work with Project Steering Committee (PSC) on a solution. o Keep in mind PSC members are volunteers and an extensive fix may require fundraising / resources. If you are not in position to communicate in public please consider commercial support, contacting a PSC member, or reaching us via the Open Source Geospatial Foundation at [email protected]