1911 Commits

Author SHA1 Message Date
Gabriel Roldan
da9468a980 Disable Jekyll processing on GitHub Pages 2025-12-06 21:07:58 -03:00
Gabriel Roldan
2a16159670 docs: Add All Contributors page to recognize all contribution types
Implement the All Contributors initiative in the documentation to recognize
contributions of all kinds - not just code. This includes business development,
project management, financial support, user testing, and more.

- Add .all-contributorsrc configuration file at project root
- Create new Community section in documentation
  - docs/src/community/index.md - Community landing page
  - docs/src/community/contributors.md - All Contributors page
- Update docs/mkdocs.yml navigation to include Community section
- Configure htmlproofer to ignore contributors page (has dynamic anchor links)
- Add initial contributors with their contribution types

How to add contributors:

Install the CLI (one-time setup):

```
npm install --save-dev all-contributors-cli

npx all-contributors-cli add <github-username> <contribution-types>

npx all-contributors-cli add username code,doc,test,bug
```
2025-12-06 21:07:58 -03:00
Gabriel Roldan
266fec7f51 Remove links from home page in favor of the navigation bar 2025-12-06 18:48:38 -03:00
Gabriel Roldan
9248ceec2f
Add backlink to the pr in preview docs banner 2025-12-06 18:46:08 -03:00
Gabriel Roldan
11d486ae4a
docs: Preserve main site and add job to clean up pr previews 2025-12-06 18:46:03 -03:00
Gabriel Roldan
e9b8f5b348
docs: add mkdocs-htmlproofer-plugin to check for broken links in documentation 2025-12-06 18:45:59 -03:00
Gabriel Roldan
b6ad018732
Add safety checks for docs-preview.yaml 2025-12-06 18:21:08 -03:00
Gabriel Roldan
64b07236ff docs: remove Jekyll/kramdown ToC syntax 2025-12-06 17:43:33 -03:00
Gabriel Roldan
b2eddf5146
Add force-orphan: true to the documentation workflows
peaceiris/actions-gh-pages@v4 action needs force_orphan: true
to create a clean orphan branch containing only the published files
2025-12-06 17:27:45 -03:00
Gabriel Roldan
6d6c082b64 Initial port of documentation to mkdocs 2025-12-06 17:22:02 -03:00
Gabriel Roldan
0307a076d6
Revert "Set version to 2.28.1.1"
This reverts commit afe3865df52d38b769092803e21357edf85e21f4.
2025-12-02 17:48:33 -03:00
Gabriel Roldan
2015ac1215
Update docs for 2.28.1.1 v2.28.1.1 2025-12-02 17:48:33 -03:00
Gabriel Roldan
d62972cb6d
Set version to 2.28.1.1 2025-12-02 17:48:33 -03:00
Gabriel Roldan
55dec103a1 Add AWS credential chain authentication support for GeoParquet S3
Pre-installs the `aws` duckdb extension an incorporates:

[GEOT-7847] Add AWS credential chain authentication support for GeoParquet S3 access
[GEOS-12007] Add AWS credential chain authentication UI and documentation for GeoParquet
2025-12-02 15:07:03 -03:00
Gabriel Roldan
b9ec0782d4
Merge pull request #724 from groldan/extension/control-flow
Add Control Flow extension
2025-12-01 02:29:07 +01:00
Gabriel Roldan
4f34696238
Add Control Flow extension 2025-11-30 19:43:17 -03:00
Jose Macchi
eba82b73cb Remove unnecessary duckdb_jdbc dependecy override 2025-11-26 17:37:00 +01:00
Gabriel Roldan
f5831bdcd9
Set version to 2.28.2-SNAPSHOT 2025-11-25 12:22:14 -03:00
Gabriel Roldan
a96982f4e7
Update docs for 2.28.1.0 v2.28.1.0 2025-11-25 12:22:14 -03:00
Gabriel Roldan
107e37100e
Set version to 2.28.1.0 2025-11-25 12:22:13 -03:00
Gabriel Roldan
3abc358364 Upgrade to GeoServer 2.28.1.0 2025-11-25 16:20:46 +01:00
Gabriel Roldan
c1c417057d [GEOS-11982] Added user profile properties in UI: JSON mappings 2025-11-25 16:20:46 +01:00
Gabriel Roldan
b4785c08f8 Upgrade to GeoServer 2.28.1.0-SNAPSHOT 2025-11-25 16:20:46 +01:00
Cécile Vuilleumier
72f016a5b2 Use get_map method where possible 2025-11-25 15:18:37 +01:00
Cécile Vuilleumier
5b14faaadb Use new coverage API 2025-11-25 15:18:37 +01:00
Cécile Vuilleumier
0cb1cd72b6 Passing an empty string as language now returns an empty label 2025-11-25 15:18:37 +01:00
Cécile Vuilleumier
e1ee3537ad Use fixture to create and delete test workspaces 2025-11-25 15:18:37 +01:00
Cécile Vuilleumier
b3f10e669b Acceptance tests: upgrade python-geoservercloud 2025-11-25 15:18:37 +01:00
Gabriel Roldan
d44a1854e5 Upgrade maven plugins ahead of Spring Boot 3 upgrade
com.diffplug.spotless:spotless-maven-plugin ....... 2.43.0 -> 3.0.0
com.github.ekryd.sortpom:sortpom-maven-plugin ...... 3.3.0 -> 4.0.0
io.github.git-commit-id:git-commit-id-maven-plugin . 7.0.0 -> 9.0.2
maven-compiler-plugin ............................ 3.11.0 -> 3.14.1
maven-enforcer-plugin .............................. 3.5.0 -> 3.6.2
maven-surefire-plugin .............................. 3.2.1 -> 3.5.4
maven-failsafe-plugin .............................. 3.2.1 -> 3.5.4
maven-jar-plugin ................................... 3.3.0 -> 3.2.0
org.codehaus.mojo:build-helper-maven-plugin ........ 3.4.0 -> 3.6.1
org.codehaus.mojo:exec-maven-plugin ................ 3.1.0 -> 3.6.2
org.codehaus.mojo:flatten-maven-plugin ............. 1.5.0 -> 1.7.3
org.codehaus.mojo:versions-maven-plugin .......... 2.18.0 -> 2.19.1
org.jacoco:jacoco-maven-plugin ................... 0.8.11 -> 0.8.14
2025-11-10 03:55:43 +01:00
Gabriel Roldan
2c959dbb56 Upgrade dependencies ahead of Spring Boot 3 upgrade
jackson.version:2.19.2 -> 2.19.4
lombok.version:1.18.30 -> 1.18.42
mapstruct.version:1.6.0.Beta1 -> 1.6.3
flyway.version:11.1.0 -> 11.16.0
testcontainers.version:1.19.3 -> 1.21.3
2025-11-10 03:26:31 +01:00
Gabriel Roldan
dc60f8ef22
Revert "Set version to 2.28.0.2"
This reverts commit c9c252edd37944231fd25dfac16220d6939e8fb9.
2025-11-08 17:49:56 -03:00
Gabriel Roldan
18fcb007fb
Update docs for 2.28.0.2 2025-11-07 16:40:53 -03:00
Gabriel Roldan
c9c252edd3
Set version to 2.28.0.2 v2.28.0.2 2025-11-07 16:37:01 -03:00
Gabriel Roldan
a497ddfac1
Merge pull request #717 from groldan/monitoring/prometheus_grafana
Add simple monitoring stack for development (Prometheus/Grafana)
2025-11-07 02:38:10 +01:00
Gabriel Roldan
98b7a680c8
Add simple monitoring stack for development (Prometheus/Grafana)
Add basic Prometheus/Grafana setup for local development observability
and as a starting point for building custom production monitoring.

Usage: ./pgconfig -f monitoring.yml up -d
- Grafana at http://localhost:3000 (admin/admin)
- Prometheus at http://localhost:9091 with Eureka service discovery

Includes basic dashboard showing JVM metrics, HTTP rates, service health,
and resource usage. Intentionally kept simple - users should customize for
production with alerting, persistence, security, and integration with
existing observability platforms.

Features:
- Auto-discovery of scaled replicas via Eureka
- Comprehensive monitoring guide
- Example queries and dashboard customization tips

This is a development tool and foundation, not production-ready monitoring.
2025-11-06 22:23:01 -03:00
Gabriel Roldan
a2656682f8
Merge pull request #716 from groldan/build/use_separate_datadir_for_acceptance
Configure separate bind mount directories for development and acceptance tests
2025-11-07 02:20:47 +01:00
Gabriel Roldan
b77b89c8f4
Configure separate bind mount directories for development and acceptance tests
Use separate bind mount directory for acceptance tests

Configure catalog-datadir bind mount path via environment variable to
isolate acceptance test data from development data.

- catalog-datadir.yml: Use ${CATALOG_DATADIR_PATH:-$PWD/catalog-datadir}
- acceptance_datadir: Use catalog-datadir_acceptance directory
- compose/.gitignore: Ignore catalog-datadir_acceptance/

This prevents acceptance tests from failing when the development datadir
contains non-empty data, while preserving development data across runs.
2025-11-06 21:35:27 -03:00
Gabriel Roldan
fa8deff87e
Add compose/** to pull request workflow paths 2025-11-06 21:35:00 -03:00
Gabriel Roldan
8df7870c83
Merge pull request #713 from groldan/bug/eventualconsistent_catalogfacade_keeps_pending
Fix data-directory backend eventual consistency bugs and improve query performance
2025-11-07 01:11:59 +01:00
Gabriel Roldan
e737d69f66
Fix data-directory backend eventual consistency bugs and improve query performance
This commit addresses two critical bugs in the EventualConsistencyEnforcer
and improves REST API query performance by 95ms when the catalog is converged.

The first bug caused operations to be registered multiple times in pending
queues when retried. This is now prevented by checking for duplicates before
adding operations to the list.

The second bug occurred when objects were removed while other operations still
referenced them. The RemoveOp.clearDependants() method only found operations
currently waiting for the removed object, missing operations that had moved to
waiting for other dependencies. These orphaned operations would later complete
with dangling references. The fix tracks original missing references for each
operation and scans all pending operations when removing an object, discarding
any that originally depended on it regardless of which queue they're in.

Simplified EventuallyConsistentCatalogFacade by removing the isRestRequest()
special case. Previously REST queries always retried even when the catalog was
converged, wasting ~100ms per query. Now all web requests use the same smart
retry logic based on actual catalog convergence state. This eliminates wasteful
retries while still retrying when pending operations exist that might resolve.

Also renamed getMissingRefs() to computeMissingRefs() to reflect its side
effects, cached unresolved refs to avoid recomputation during debug logging,
added comprehensive javadocs, and expanded test coverage to 24 tests including
layers with missing styles and layer groups with missing layers.
2025-11-06 20:45:40 -03:00
Gabriel Roldan
c0ff5bf95b
Merge pull request #714 from groldan/dependency/exclude_xml_apis
Exclude xml-apis:xml-apis:jar:1.0.b2 transitive dependency from gs-app-schema
2025-11-07 00:37:24 +01:00
Gabriel Roldan
0a94d835f3
Merge pull request #715 from groldan/bug/acceptance_tests_broken_for_imagemosaics
Fix ImageMosaic acceptance tests broken by volume mount path change
2025-11-07 00:33:45 +01:00
Gabriel Roldan
600e5664cf
Fix ImageMosaic acceptance tests broken by volume mount path change
The ImageMosaic acceptance tests were failing with 500 errors because they
referenced the old volume mount path /mnt/geoserver_data, which was changed
to /opt/geoserver_data in commit b33a27b9f6.

Changes:
- Update test_imagemosaic.py: Change all file paths from /mnt/ to /opt/
  (6 occurrences across all test functions)
- Update acceptance_tests/README.md: Update sample data path documentation
  to reflect the /opt/ mount location

The tests use external.imagemosaic REST endpoints to reference files that
must exist at the paths specified. With the old /mnt/ paths, GeoServer
could not find the sample data files, resulting in 500 Internal Server
Error responses.
2025-11-06 20:09:11 -03:00
Gabriel Roldan
e12c19bd0d
Exclude xml-apis:xml-apis:jar:1.0.b2 transitive dependency from gs-app-schema 2025-11-06 19:30:15 -03:00
Gabriel Roldan
849f6702c1
Revert "Set version to 2.28.0.1"
This reverts commit 234669be0a57d57c51156d9de33495895e07ed4d.
2025-11-06 13:27:28 -03:00
Gabriel Roldan
27a5cfa2d2
Update docs for 2.28.0.1 v2.28.0.1 2025-11-03 22:28:00 -03:00
Gabriel Roldan
9d1d9395e0
Set version to 2.28.0.1 2025-11-03 22:27:59 -03:00
Gabriel Roldan
297fa9816a
Merge pull request #712 from groldan/pgconfigresourcestore_improve_out_and_save
Fix PgconfigResourceStore.save() undefined type bug and refactor to UPSERT
2025-11-04 02:25:35 +01:00
Gabriel Roldan
c0adadec45
Fix PgconfigResourceStore.save() undefined type bug and refactor to UPSERT
Fixes critical bug where saving new resources failed with "Attempting to save
a resource of undefined type" error. This prevented GeoServer security
initialization when using pgconfig backend (e.g., saving master password file).

Root cause: save() called resource.isUndefined() which triggered getType(),
which called updateState() that reset the type to UNDEFINED before INSERT.

Solution:
- Access resource.type field directly instead of calling getType()
- Refactor save() to unified UPSERT (INSERT ... ON CONFLICT ... DO UPDATE)
- Add optional contents parameter for atomic content+metadata updates
- Use COALESCE to preserve existing content when contents is null

Related improvements:
- Simplify out() implementation to single save() call
- Fix move() to use direct UPDATE, preserving content and ID
- Rename copy() to reset() for clarity
- Add testWriteNewResource() covering the master password scenario
2025-11-03 21:13:14 -03:00
Gabriel Roldan
a0d1f7eefa
Merge pull request #711 from groldan/bug/pgconfig/conntimeout_ogcapi_features
[GEOS-11979] CloseableIterators not closed by OGC API Features
2025-11-03 14:22:12 +01:00