Skip to content

Commit b1cd0ec

Browse files
author
Marcel Wallschlaeger
committed
[Fixes #117] upgrade to GeoNode 4.3.0
2 parents 52940eb + 46f27dc commit b1cd0ec

File tree

281 files changed

+6095
-5998
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

281 files changed

+6095
-5998
lines changed

.circleci/config.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
- checkout
2222
- setup_remote_docker:
2323
docker_layer_caching: false
24-
version: 20.10.12
24+
version: docker24
2525

2626
- run:
2727
name: Build the stack
@@ -128,7 +128,7 @@ workflows:
128128
codecov_name: api
129129
load_docker_cache: false
130130
save_docker_cache: false
131-
test_suite: ./test.sh geonode.base.api.tests geonode.layers.api.tests geonode.maps.api.tests geonode.documents.api.tests geonode.geoapps.api.tests geonode.upload.api.tests
131+
test_suite: ./test.sh geonode.api.tests geonode.base.api.tests geonode.layers.api.tests geonode.maps.api.tests geonode.documents.api.tests geonode.geoapps.api.tests geonode.upload.api.tests
132132
- build:
133133
name: geonode_test_csw
134134
codecov_name: csw

.clabot

+2-1
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@
7575
"EHJ-52n",
7676
"MartinPontius",
7777
"ahmdthr",
78-
"fvicent"
78+
"fvicent",
79+
"RegisSinjari"
7980
]
8081
}

.devcontainer/.env

+1-1
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ SECRET_KEY='myv-y4#7j-d*p-__@j#*3z@!y24fz8%^z2v6atuy4bo9vqr1_a'
168168
CACHE_BUSTING_STATIC_ENABLED=False
169169

170170
MEMCACHED_ENABLED=False
171-
MEMCACHED_BACKEND=django.core.cache.backends.memcached.MemcachedCache
171+
MEMCACHED_BACKEND=django.core.cache.backends.memcached.PyLibMCCache
172172
MEMCACHED_LOCATION=127.0.0.1:11211
173173
MEMCACHED_LOCK_EXPIRE=3600
174174
MEMCACHED_LOCK_TIMEOUT=10

.env.sample

+1-5
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,6 @@ ALLOWED_HOSTS="['django', '{hostname}']"
4949
DEFAULT_BACKEND_UPLOADER=geonode.importer
5050
TIME_ENABLED=True
5151
MOSAIC_ENABLED=False
52-
HAYSTACK_SEARCH=False
53-
HAYSTACK_ENGINE_URL=http://elasticsearch:9200/
54-
HAYSTACK_ENGINE_INDEX_NAME=haystack
55-
HAYSTACK_SEARCH_RESULTS_PER_PAGE=200
5652

5753
# #################
5854
# nginx
@@ -177,7 +173,7 @@ GEOIP_PATH=/mnt/volumes/statics/geoip.db
177173
CACHE_BUSTING_STATIC_ENABLED=False
178174

179175
MEMCACHED_ENABLED=False
180-
MEMCACHED_BACKEND=django.core.cache.backends.memcached.MemcachedCache
176+
MEMCACHED_BACKEND=django.core.cache.backends.memcached.PyLibMCCache
181177
MEMCACHED_LOCATION=memcached:11211
182178
MEMCACHED_LOCK_EXPIRE=3600
183179
MEMCACHED_LOCK_TIMEOUT=10

.env_dev

+1-5
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,6 @@ ALLOWED_HOSTS="['django', '*']"
4949
DEFAULT_BACKEND_UPLOADER=geonode.importer
5050
TIME_ENABLED=True
5151
MOSAIC_ENABLED=False
52-
HAYSTACK_SEARCH=False
53-
HAYSTACK_ENGINE_URL=http://elasticsearch:9200/
54-
HAYSTACK_ENGINE_INDEX_NAME=haystack
55-
HAYSTACK_SEARCH_RESULTS_PER_PAGE=200
5652

5753
# #################
5854
# nginx
@@ -177,7 +173,7 @@ SECRET_KEY='myv-y4#7j-d*p-__@j#*3z@!y24fz8%^z2v6atuy4bo9vqr1_a'
177173
CACHE_BUSTING_STATIC_ENABLED=False
178174

179175
MEMCACHED_ENABLED=False
180-
MEMCACHED_BACKEND=django.core.cache.backends.memcached.MemcachedCache
176+
MEMCACHED_BACKEND=django.core.cache.backends.memcached.PyLibMCCache
181177
MEMCACHED_LOCATION=127.0.0.1:11211
182178
MEMCACHED_LOCK_EXPIRE=3600
183179
MEMCACHED_LOCK_TIMEOUT=10

.env_local

+1-5
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,6 @@ ALLOWED_HOSTS="['django', '*']"
4949
DEFAULT_BACKEND_UPLOADER=geonode.importer
5050
TIME_ENABLED=True
5151
MOSAIC_ENABLED=False
52-
HAYSTACK_SEARCH=False
53-
HAYSTACK_ENGINE_URL=http://elasticsearch:9200/
54-
HAYSTACK_ENGINE_INDEX_NAME=haystack
55-
HAYSTACK_SEARCH_RESULTS_PER_PAGE=200
5652

5753
# #################
5854
# nginx
@@ -177,7 +173,7 @@ SECRET_KEY='myv-y4#7j-d*p-__@j#*3z@!y24fz8%^z2v6atuy4bo9vqr1_a'
177173
CACHE_BUSTING_STATIC_ENABLED=False
178174

179175
MEMCACHED_ENABLED=False
180-
MEMCACHED_BACKEND=django.core.cache.backends.memcached.MemcachedCache
176+
MEMCACHED_BACKEND=django.core.cache.backends.memcached.PyLibMCCache
181177
MEMCACHED_LOCATION=127.0.0.1:11211
182178
MEMCACHED_LOCK_EXPIRE=3600
183179
MEMCACHED_LOCK_TIMEOUT=10

.env_test

+1-5
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,6 @@ ALLOWED_HOSTS="['django', 'localhost', '127.0.0.1']"
4949
DEFAULT_BACKEND_UPLOADER=geonode.importer
5050
TIME_ENABLED=True
5151
MOSAIC_ENABLED=False
52-
HAYSTACK_SEARCH=False
53-
HAYSTACK_ENGINE_URL=http://elasticsearch:9200/
54-
HAYSTACK_ENGINE_INDEX_NAME=haystack
55-
HAYSTACK_SEARCH_RESULTS_PER_PAGE=200
5652

5753
# #################
5854
# nginx
@@ -186,7 +182,7 @@ GEOIP_PATH=/mnt/volumes/statics/geoip.db
186182
CACHE_BUSTING_STATIC_ENABLED=False
187183

188184
MEMCACHED_ENABLED=False
189-
MEMCACHED_BACKEND=django.core.cache.backends.memcached.MemcachedCache
185+
MEMCACHED_BACKEND=django.core.cache.backends.memcached.PyLibMCCache
190186
MEMCACHED_LOCATION=memcached:11211
191187
MEMCACHED_LOCK_EXPIRE=3600
192188
MEMCACHED_LOCK_TIMEOUT=10

.github/ISSUE_TEMPLATE/gnip.md

+69
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
---
2+
name: GeoNode Improvement Proposal
3+
about: Create an Improvement Proposal for this project
4+
title: ''
5+
labels: ''
6+
assignees: ''
7+
8+
---
9+
10+
# GNIP <num> - <title of the GNIP here>
11+
12+
## Overview
13+
14+
Describe briefly and clearly what this proposal is meant for.
15+
16+
### Proposed By
17+
18+
<user and full name of the proponent>
19+
20+
### Assigned to Release
21+
22+
This proposal is for GeoNode <version>.
23+
24+
### State
25+
26+
* [x] Under Discussion
27+
* [ ] In Progress
28+
* [ ] Completed
29+
* [ ] Rejected
30+
* [ ] Deferred
31+
32+
### Motivation
33+
34+
Details about the motivations. Why people should accept this proposal. What are the benefits compared to the current situation.
35+
36+
## Proposal
37+
38+
Technical details for developers.
39+
40+
### Backwards Compatibility
41+
42+
Declare its Backwards Compatibility.
43+
44+
## Future evolution
45+
46+
Explain which could be future evolutions.
47+
48+
## Feedback
49+
50+
Update this section with relevant feedbacks, if any.
51+
52+
## Voting
53+
54+
Project Steering Committee:
55+
56+
* Alessio Fabiani:
57+
* Francesco Bartoli:
58+
* Giovanni Allegri:
59+
* Toni Schoenbuchner:
60+
* Florian Hoedt:
61+
62+
## Links
63+
64+
Remove unused links below.
65+
66+
* [Email Discussion]()
67+
* [Pull Request]()
68+
* [Mail Discussion]()
69+
* [Linked Issue]()

CHANGELOG.md

+94-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,97 @@
1-
# Change Log
1+
# Changelogs
2+
3+
## [4.3.0](https://github.com/GeoNode/geonode/releases/tag/4.3.0) (2024-05-30)
4+
### New features and improvements
5+
6+
- **3D and MapSore catalog plugins available for maps**: This release includes a major upgrade of the MapStore framework upon which the GeoNode client is built. One of the key benefits brought by the alignment to the latest MapStore versions, is the integration of new plugins powered by MapStore. Two of these plugins have been enabled by default for maps: **3D view**, powered by Cesium and the [**Catalog tool**](https://docs.mapstore.geosolutionsgroup.com/en/latest/user-guide/catalog/) which gives users the option to include external layers (from WMS, TMS, CSW, etc. services) directly into a map. The 3D view is the first step toward the publishing of 3D content with GeoNode. Meanwhile external 3D Tiles sources can already be viewed inside a GeoNode map thanks to the [Catalog service for 3D Tiles](https://docs.mapstore.geosolutionsgroup.com/en/v2023.02.01/user-guide/catalog/#3d-tiles-catalog).
7+
- **Map Viewers**: Thanks again to the work done to extend the integration with MapStore, its concept of Application Contexts have been adapted and integrated in GeoNode under the the name "Map Viewers". With a Map Viewer the list of tools and plugins available in a map can be configured. Map Viewers can be created from a map (the feature is available under the Edit menu) and they can be used by multiple maps. With Map Viewers all the plugins offered by MapStore can be used inside GeoNode maps.
8+
- **Hiding resources from catalog listing**: There are cases where a resource is created only to be used within other resources. Images uploaded to be included in a geostory, datasets only meant to be viewed inside maps, are examples. Sometimes we don't want these resoruces to be visibile inside the catalog list, or inside search results. For these cases a new "Advertized" attribute is available under the Settings tab of the Metadata editor. When this flag is turned off the resource will only be listed to its owner. This doesn't affect the permissions on the resource. Users with view permissions can still visualize the resource, but it won't be listed in the catalog to them.
9+
- **Extended Users API**: The User API has been extended to support the full management of GeoNode accounts. This API makes GeoNode compliant with the Data policies that request to give users the option to delete their account and their data from apps. The new APIs also support the transfer of resource ownership to another user and the ability to step down from the Group Manager role for a user.
10+
- **Groups facet**: A new facet (filter) has been added to the filters panel for filtering resources by Group.
11+
12+
### Other minor improvements and fixes
13+
14+
- **Backup/Restore**: Several improvements that make the B/R service more robust and performant. Code customizations (layouts, etc.) are excluded now from projects backups.
15+
- **Owner was update when geoapp were saved**: This fixes a problem with geoapps (geostories and dashboards) where the current user was assigned as owner when the resource was saved.
16+
- **Fixed textara for rich HTML metadata fields**: It wasn't editable due to a regression introduced in previous versions.
17+
- **Metadata and SLD file uploads**: Fixed a problem with the legacy code that prevented the upload of XML and SLD metadata files for an existing resource.
18+
19+
### Software upgrades:
20+
- Django 4.2.9
21+
- Geoserver 2.24.3
22+
- MapStore 2024.01.00
23+
24+
The full list of changes [here](https://github.com/GeoNode/geonode/milestone/43?closed=1)
25+
26+
## [4.2.0](https://github.com/GeoNode/geonode/releases/tag/4.2.0) (2024-01-10)
27+
28+
### New features and improvements
29+
30+
- **Enhanced faceted filtering**: Filtering of resources has undergone a deep refactoring with the goal of improving its performance and implement proper (cascaded) faceted filtering. The resoruces, and their counting, are calculated from the intersection of the topics selected between different filters (AND logic) and the union of the optics selected from the same filter (OR logic). An improvement is planned for a future version to let users select additional topics from the same filter that happen to be hidden because not cointained in the current results.
31+
- **Location view and management**: A new "Location" tab is available inside the information side panel, where the bounding box of the resoruce and its centroid are displayed. The location for spatial resources (datasets and maps) are automatically retrieved by the data itself. For non-spatial resources the same panel gives editors the tools to set the bounding bos and the position of the resource.
32+
- **Linked resources**: The options to link resources has been extended to any type of resource. It's possible to related any resource with any other resource (one or many), and the relationship is disaplyed inside the new "Lined resources" tab inside the information side panel. The direction of the relationship is also visible, since linked resources are disaplyed under two distinct groups "Linked from" and "Lined to".
33+
34+
### Other minor improvements
35+
- Implemented a generic and pluggable OIDC SocialAccount Provider, which extends and improves the one provided by the `allauth` module already available in GeoNode
36+
- Documents from remote URLs can be created from the client
37+
- Regions are not assigned to new resources automatically anymore. A pluggable and configurable option lets administrators implement specific logic for the automatic assignmenet if required
38+
- Option to configure a WMTS service to generate thumbnail backgrounds
39+
- The rendering of thumbnails for the maps now take into account ordering and opacity
40+
- Implemented the option to do not register new users as contributors automatically (default behaviour)
41+
42+
### Software upgrades:
43+
- Django 3.2.23
44+
- Geoserver 2.23.3
45+
- PostgreSQL 15.3 / PostGIS 3.3
46+
- Nginx 1.25.3
47+
48+
The full list of changes [here](https://github.com/GeoNode/geonode/milestone/37?closed=1)
49+
50+
## [4.1.0](https://github.com/GeoNode/geonode/releases/tag/4.1.0) (2023-06-05)
51+
52+
### New upload engine
53+
GeoNode integrates a brand new importer module based on [GDAL/OGR](https://gdal.org/), which offers increased robustness and reliability to the upload UI and API services. GeoPackage (vector), GeoJSON, KML/KMZ formats and a new CSV handler have been implemented.
54+
55+
### Thesaurus faceting and date filtering
56+
If thesaurus and thesaurus keywords are configured and assigned to resources, they will be available inside the filters panel, along with the number of associated resources.
57+
Date filtering (from/top) has also been added.
58+
59+
### Time series configurable after the upload
60+
The configuration of (potential) time series at upload time was confusing for users, and not very robust.
61+
With the new importer, the optional configuration of vector time series can be done afterward, through the Settings tab inside the Metadata editing page
62+
Only vector fomats that provide date(time) fields natively are supported. Conversion from string fields is not implemented.
63+
64+
### Linked resources
65+
This restore a functionality available in previous versions of GeoNode.
66+
A tab inside the info panel has been added where relationships between datasets, maps and documents are reported.
67+
68+
### Vector dataset attributes
69+
A tab inside the info panel has been added showing the attributes of vector datasets
70+
71+
### Remote documents
72+
The API has been extended to permit the creation of document resources referencing remote URLs
73+
74+
### ISO-19115 XML upload via API
75+
The API now supports the upload of a metadata XML file along with the resource data
76+
77+
### Software upgrades
78+
79+
- [Geoserver 2.23.0](https://geoserver.org/announcements/2023/04/05/geoserver-2-23-0-released.html) is now the reference version. This version includes Geofence WPS rules which are employed by GeoNode to strengthen the security of the OGC/WPS processes.
80+
- [MapStore 2022.02.xx](https://github.com/geosolutions-it/MapStore2/tree/2022.02.xx)
81+
- [Django 3.2.19](https://docs.djangoproject.com/en/4.2/releases/3.2.19/)
82+
- PostgreSQL 13 and PostGIS 3.3.3
83+
84+
85+
### Security and Bug Fixes
86+
- [CVE-2023-26043](https://github.com/GeoNode/geonode/security/advisories/GHSA-mcmc-c59m-pqq8)
87+
Fixed a vulnerability to XML External Entity (XXE) injection
88+
- [CVE-2023-28442](https://github.com/GeoNode/geonode/security/advisories/GHSA-87mh-vw7c-5v6w)
89+
Fixed information leak
90+
91+
You can see the **full list of closed issues [here](https://github.com/GeoNode/geonode/compare/4.1.0...4.0.3)**.
92+
93+
## System requirements
94+
Python >3.9 is required to run GeoNode 4.1.0, since many of its dependencies have dropped support for older versions.
295

396
## [4.0.2](https://github.com/GeoNode/geonode/tree/4.0.2) (2022-12-20)
497

docker-compose-dev.yml

+8-8
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ version: '3.9'
44
x-common-django:
55
&default-common-django
66
image: geonode/geonode:local
7+
build:
8+
context: ./
9+
dockerfile: Dockerfile
710
restart: unless-stopped
811
env_file:
912
- .env
@@ -23,9 +26,6 @@ services:
2326
# Our custom django application. It includes Geonode.
2427
django:
2528
<< : *default-common-django
26-
build:
27-
context: ./
28-
dockerfile: Dockerfile
2929
container_name: django4${COMPOSE_PROJECT_NAME}
3030
healthcheck:
3131
test: "curl -m 10 --fail --silent --write-out 'HTTP CODE : %{http_code}\n' --output /dev/null http://django:8000/"
@@ -52,7 +52,7 @@ services:
5252

5353
# Nginx is serving django static and media files and proxies to django and geonode
5454
geonode:
55-
image: geonode/nginx:1.25.3-v1
55+
image: geonode/nginx:1.25.3-latest
5656
container_name: nginx4${COMPOSE_PROJECT_NAME}
5757
env_file:
5858
- .env
@@ -69,7 +69,7 @@ services:
6969

7070
# Gets and installs letsencrypt certificates
7171
letsencrypt:
72-
image: geonode/letsencrypt:2.6.0-v1
72+
image: geonode/letsencrypt:2.6.0-latest
7373
container_name: letsencrypt4${COMPOSE_PROJECT_NAME}
7474
env_file:
7575
- .env
@@ -79,7 +79,7 @@ services:
7979

8080
# Geoserver backend
8181
geoserver:
82-
image: geonode/geoserver:2.23.3-v2
82+
image: geonode/geoserver:2.24.4-v1
8383
container_name: geoserver4${COMPOSE_PROJECT_NAME}
8484
healthcheck:
8585
test: "curl -m 10 --fail --silent --write-out 'HTTP CODE : %{http_code}\n' --output /dev/null http://geoserver:8080/geoserver/ows"
@@ -105,7 +105,7 @@ services:
105105
condition: service_healthy
106106

107107
data-dir-conf:
108-
image: geonode/geoserver_data:2.23.3-v1
108+
image: geonode/geoserver_data:2.24.4-v1
109109
container_name: gsconf4${COMPOSE_PROJECT_NAME}
110110
entrypoint: sleep infinity
111111
volumes:
@@ -117,7 +117,7 @@ services:
117117
# PostGIS database.
118118
db:
119119
# use geonode official postgis 15 image
120-
image: geonode/postgis:15.3-v1
120+
image: geonode/postgis:15.3-latest
121121
command: postgres -c "max_connections=${POSTGRESQL_MAX_CONNECTIONS}"
122122
container_name: db4${COMPOSE_PROJECT_NAME}
123123
env_file:

0 commit comments

Comments
 (0)