Skip to content

Commit 808a07d

Browse files
authored
Merge branch 'main' into main
2 parents a2a49e4 + dc20246 commit 808a07d

Some content is hidden

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

38 files changed

+1196
-475
lines changed

.github/workflows/cicd.yml

Lines changed: 16 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,24 @@ 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
6858
6959
strategy:
7060
matrix:
71-
python-version: [ "3.9", "3.10", "3.11", "3.12", "3.13"]
72-
backend: [ "elasticsearch7", "elasticsearch8", "opensearch"]
61+
python-version: [ "3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
62+
backend: [ "elasticsearch8", "opensearch"]
7363

7464
name: Python ${{ matrix.python-version }} testing with ${{ matrix.backend }}
7565

@@ -120,9 +110,9 @@ jobs:
120110
pipenv run pytest -svvv --timeout=300
121111
env:
122112
ENVIRONMENT: testing
123-
ES_PORT: ${{ matrix.backend == 'elasticsearch7' && '9400' || matrix.backend == 'elasticsearch8' && '9200' || '9202' }}
113+
ES_PORT: ${{ matrix.backend == 'elasticsearch8' && '9200' || '9202' }}
124114
ES_HOST: 172.17.0.1
125115
ES_USE_SSL: false
126116
DATABASE_REFRESH: true
127117
ES_VERIFY_CERTS: false
128-
BACKEND: ${{ matrix.backend == 'elasticsearch7' && 'elasticsearch' || matrix.backend == 'elasticsearch8' && 'elasticsearch' || 'opensearch' }}
118+
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/*

CHANGELOG.md

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

1010
### Added
1111

12+
- 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)
13+
14+
### Changed
15+
16+
### Fixed
17+
18+
### Removed
19+
20+
### Updated
21+
22+
23+
## [v6.6.0] - 2025-10-21
24+
25+
### Added
26+
27+
- 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
28+
- 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)
29+
- 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. [#PR_NUMBER]
1230
- CloudFerro logo to sponsors and supporters list [#485](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/485)
1331
- Latest news section to README [#485](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/485)
14-
- 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`)
32+
- Python 3.14 support [#500](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/500)
1533

1634
### Changed
1735

36+
- 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)
37+
- Changed the default and maximum pagination limits for collections/items endpoints. [#482](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/482)
38+
- 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)
39+
- Changed to pyproject.toml file from setup.py [#505](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/505)
40+
1841
### Fixed
1942

20-
[v6.5.1] - 2025-09-30
43+
### Removed
44+
45+
- 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)
46+
47+
### Updated
48+
49+
- 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)
50+
- 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)
51+
- Updated elasticsearh python library to 8.19.1 in setup.py. [#499](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/499)
52+
53+
## [v6.5.1] - 2025-09-30
2154

2255
### Fixed
2356

2457
- Issue where token, query param was not being passed to POST collections search logic [#483](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/483)
2558
- Issue where datetime param was not being passed from POST collections search logic to Elasticsearch [#483](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/483)
2659
- Collections search tests to ensure both GET /collections and GET/POST /collections-search endpoints are tested [#483](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/483)
2760

28-
[v6.5.0] - 2025-09-29
61+
## [v6.5.0] - 2025-09-29
2962

3063
### Added
3164

@@ -559,7 +592,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
559592
- Use genexp in execute_search and get_all_collections to return results.
560593
- Added db_to_stac serializer to item_collection method in core.py.
561594

562-
[Unreleased]: https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/compare/v6.5.1...main
595+
[Unreleased]: https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/compare/v6.6.0...main
596+
[v6.6.0]: https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/compare/v6.5.1...v6.6.0
563597
[v6.5.1]: https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/compare/v6.5.0...v6.5.1
564598
[v6.5.0]: https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/compare/v6.4.0...v6.5.0
565599
[v6.4.0]: https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/compare/v6.3.0...v6.4.0

0 commit comments

Comments
 (0)