Skip to content

Commit 7d7e44f

Browse files
Merge branch 'main' into CAT-1449
2 parents 1855ca0 + 983fedd commit 7d7e44f

Some content is hidden

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

48 files changed

+1507
-815
lines changed

.github/workflows/cicd.yml

Lines changed: 29 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616

1717
services:
1818
elasticsearch_8_svc:
19-
image: docker.elastic.co/elasticsearch/elasticsearch:8.11.0
19+
image: docker.elastic.co/elasticsearch/elasticsearch:8.19.5
2020
env:
2121
cluster.name: stac-cluster
2222
node.name: es01
@@ -32,25 +32,8 @@ jobs:
3232
ports:
3333
- 9200:9200
3434

35-
elasticsearch_7_svc:
36-
image: docker.elastic.co/elasticsearch/elasticsearch:7.17.1
37-
env:
38-
cluster.name: stac-cluster
39-
node.name: es01
40-
network.host: 0.0.0.0
41-
transport.host: 0.0.0.0
42-
discovery.type: single-node
43-
http.port: 9400
44-
xpack.license.self_generated.type: basic
45-
xpack.security.enabled: false
46-
xpack.security.transport.ssl.enabled: false
47-
ES_JAVA_OPTS: -Xms512m -Xmx1g
48-
action.destructive_requires_name: false
49-
ports:
50-
- 9400:9400
51-
52-
opensearch_2_11:
53-
image: opensearchproject/opensearch:2.11.1
35+
opensearch_2_19:
36+
image: opensearchproject/opensearch:2.19.3
5437
env:
5538
cluster.name: stac-cluster
5639
node.name: os01
@@ -59,17 +42,34 @@ jobs:
5942
discovery.type: single-node
6043
http.port: 9202
6144
http.cors.enabled: true
62-
plugins.security.disabled: true
63-
plugins.security.ssl.http.enabled: true
45+
DISABLE_SECURITY_PLUGIN: true
46+
DISABLE_INSTALL_DEMO_CONFIG: true
6447
OPENSEARCH_JAVA_OPTS: -Xms512m -Xmx512m
6548
action.destructive_requires_name: false
6649
ports:
6750
- 9202:9202
51+
options: >-
52+
--health-cmd="curl -f http://localhost:9202/_cluster/health || exit 1"
53+
--health-interval=10s
54+
--health-timeout=5s
55+
--health-retries=10
56+
--ulimit nofile=65536:65536
57+
--ulimit memlock=-1:-1
58+
59+
redis:
60+
image: redis:7-alpine
61+
options: >-
62+
--health-cmd "redis-cli ping"
63+
--health-interval 10s
64+
--health-timeout 5s
65+
--health-retries 5
66+
ports:
67+
- 6379:6379
6868

6969
strategy:
7070
matrix:
71-
python-version: [ "3.9", "3.10", "3.11", "3.12", "3.13"]
72-
backend: [ "elasticsearch7", "elasticsearch8", "opensearch"]
71+
python-version: [ "3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
72+
backend: [ "elasticsearch8", "opensearch"]
7373

7474
name: Python ${{ matrix.python-version }} testing with ${{ matrix.backend }}
7575

@@ -120,9 +120,12 @@ jobs:
120120
pipenv run pytest -svvv --timeout=300
121121
env:
122122
ENVIRONMENT: testing
123-
ES_PORT: ${{ matrix.backend == 'elasticsearch7' && '9400' || matrix.backend == 'elasticsearch8' && '9200' || '9202' }}
123+
ES_PORT: ${{ matrix.backend == 'elasticsearch8' && '9200' || '9202' }}
124124
ES_HOST: 172.17.0.1
125125
ES_USE_SSL: false
126126
DATABASE_REFRESH: true
127127
ES_VERIFY_CERTS: false
128-
BACKEND: ${{ matrix.backend == 'elasticsearch7' && 'elasticsearch' || matrix.backend == 'elasticsearch8' && 'elasticsearch' || 'opensearch' }}
128+
REDIS_ENABLE: true
129+
REDIS_HOST: localhost
130+
REDIS_PORT: 6379
131+
BACKEND: ${{ matrix.backend == 'elasticsearch8' && 'elasticsearch' || 'opensearch' }}

.github/workflows/publish.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
- name: Install build dependencies
2222
run: |
2323
python -m pip install --upgrade pip
24-
pip install setuptools wheel twine
24+
pip install build twine
2525
2626
- name: Build and publish stac-fastapi-core
2727
working-directory: stac_fastapi/core
@@ -30,7 +30,7 @@ jobs:
3030
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
3131
run: |
3232
# Build package
33-
python setup.py sdist bdist_wheel
33+
python -m build
3434
3535
# Publish to PyPI
3636
twine upload dist/*
@@ -42,7 +42,7 @@ jobs:
4242
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
4343
run: |
4444
# Build package
45-
python setup.py sdist bdist_wheel
45+
python -m build
4646
4747
# Publish to PyPI
4848
twine upload dist/*
@@ -54,7 +54,7 @@ jobs:
5454
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
5555
run: |
5656
# Build package
57-
python setup.py sdist bdist_wheel
57+
python -m build
5858
5959
# Publish to PyPI
6060
twine upload dist/*
@@ -66,7 +66,7 @@ jobs:
6666
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
6767
run: |
6868
# Build package
69-
python setup.py sdist bdist_wheel
69+
python -m build
7070
7171
# Publish to PyPI
7272
twine upload dist/*

.pre-commit-config.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ repos:
3131
]
3232
additional_dependencies: [
3333
"types-attrs",
34-
"types-requests"
34+
"types-requests",
35+
"types-redis"
3536
]
3637
- repo: https://github.com/PyCQA/pydocstyle
3738
rev: 6.1.1

CHANGELOG.md

Lines changed: 61 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,71 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
99

1010
### Added
1111

12-
- Spatial search support for collections via `bbox` parameter on `/collections` endpoint. Collections are now indexed with a `bbox_shape` field (GeoJSON polygon) derived from their spatial extent for efficient geospatial queries when created or updated. [#481](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/481)
12+
### Changed
13+
14+
### Fixed
15+
16+
- Ensure datetime filter rounds microseconds using standard rounding instead of truncation. [#492](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/492)
17+
18+
### Removed
19+
20+
### Updated
21+
22+
## [v6.7.1] - 2025-10-31
23+
24+
### Fixed
25+
26+
- Ensure `REDIS_MAX_CONNECTION` can accept `None` and integer value for default number of connection. [#515](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/515)
27+
28+
## [v6.7.0] - 2025-10-27
29+
30+
### Added
31+
32+
- Environment variable `EXCLUDED_FROM_QUERYABLES` to exclude specific fields from queryables endpoint and filtering. Supports comma-separated list of fully qualified field names (e.g., `properties.auth:schemes,properties.storage:schemes`) [#489](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/489)
33+
- Added Redis caching configuration for navigation pagination support, enabling proper `prev` and `next` links in paginated responses. [#488](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/488)
34+
35+
### Changed
36+
37+
### Fixed
38+
39+
- Fixed filter parameter handling for GET `/collections-search` endpoint. Filter parameters (`filter` and `filter-lang`) are now properly passed through and processed. [#511](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/511)
40+
- Fixed `q` parameter in GET `/collections-search` endpoint to be converted to a list format, matching the behavior of the `/collections` endpoint for consistency. [#511](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/511)
41+
42+
### Removed
43+
44+
### Updated
45+
46+
- Improved OpenAPI docs for `/collections-search` GET and POST endpoints. [#508](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/508)
47+
48+
## [v6.6.0] - 2025-10-21
49+
50+
### Added
51+
52+
- Spatial search support for collections via `bbox` parameter on `/collections` endpoint. Collections are now indexed with a `bbox_shape` field (GeoJSON polygon) derived from their spatial extent for efficient geospatial queries when created or updated. [#481](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/481
1353
- Introduced SFEOS Tools (`sfeos_tools/`) - An installable Click-based CLI package for managing SFEOS deployments. Initial command `add-bbox-shape` adds the `bbox_shape` field to existing collections for spatial search compatibility. Install with `pip install sfeos-tools[elasticsearch]` or `pip install sfeos-tools[opensearch]`. [#481](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/481)
54+
- Moved SFEOS Tools to its own repository at [Healy-Hyperspatial/sfeos-tools](https://github.com/Healy-Hyperspatial/sfeos-tools). The CLI package is now maintained separately.
1455
- CloudFerro logo to sponsors and supporters list [#485](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/485)
1556
- Latest news section to README [#485](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/485)
57+
- Python 3.14 support [#500](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/500)
1658

1759
### Changed
1860

61+
- Removed ENV_MAX_LIMIT environment variable; maximum limits are now handled by the default global limit environment variable. [#482](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/482)
62+
- Changed the default and maximum pagination limits for collections/items endpoints. [#482](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/482)
63+
- Removed the `rel=child` links to the collections from the landing page, as the listing was incomplete due to pagination. [#496](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/496)
64+
- Changed to pyproject.toml file from setup.py [#505](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/505)
65+
1966
### Fixed
2067

21-
- Ensure datetime filter rounds microseconds using standard rounding instead of truncation. [#492](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/492)
68+
### Removed
69+
70+
- Removed Elasticsearch 7 from CI/CD test matrix. The project now only tests against Elasticsearch 8 and OpenSearch. [#497](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/497)
71+
72+
### Updated
73+
74+
- Updated Elasticsearch version to 8.19.5 in CI/CD test matrix and compose.yml. [#497](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/497)
75+
- Updated OpenSearch version to 2.19.3 in CI/CD test matrix and compose.yml. [#499](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/499)
76+
- Updated elasticsearh python library to 8.19.1 in setup.py. [#499](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/499)
2277

2378
## [v6.5.1] - 2025-09-30
2479

@@ -562,7 +617,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
562617
- Use genexp in execute_search and get_all_collections to return results.
563618
- Added db_to_stac serializer to item_collection method in core.py.
564619

565-
[Unreleased]: https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/compare/v6.5.1...main
620+
[Unreleased]: https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/compare/v6.7.1...main
621+
[v6.7.1]: https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/compare/v6.7.0...v6.7.1
622+
[v6.7.0]: https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/compare/v6.6.0...v6.7.0
623+
[v6.6.0]: https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/compare/v6.5.1...v6.6.0
566624
[v6.5.1]: https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/compare/v6.5.0...v6.5.1
567625
[v6.5.0]: https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/compare/v6.4.0...v6.5.0
568626
[v6.4.0]: https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/compare/v6.3.0...v6.4.0

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,4 +117,4 @@ docs-image:
117117
.PHONY: docs
118118
docs: docs-image
119119
docker compose -f compose.docs.yml \
120-
run docs
120+
run docs

0 commit comments

Comments
 (0)