Skip to content

Commit 2b8cb54

Browse files
authored
Minor version update to v6.8.0 (#561)
**Related Issue(s):** - None **Description:** #### Added - Environment variable `VALIDATE_QUERYABLES` to enable/disable validation of queryables in search/filter requests. When set to `true`, search requests will be validated against the defined queryables, returning an error for any unsupported fields. Defaults to `false` for backward compatibility.[#532](#532) - Environment variable `QUERYABLES_CACHE_TTL` to configure the TTL (in seconds) for caching queryables. Default is `1800` seconds (30 minutes) to balance performance and freshness of queryables data. [#532](#532) - Added optional `/catalogs` route support to enable federated hierarchical catalog browsing and navigation. [#547](#547) - Added DELETE `/catalogs/{catalog_id}/collections/{collection_id}` endpoint to support removing collections from catalogs. When a collection belongs to multiple catalogs, it removes only the specified catalog from the collection's parent_ids. When a collection belongs to only one catalog, the collection is deleted entirely. [#554](#554) - Added `parent_ids` internal field to collections to support multi-catalog hierarchies. Collections can now belong to multiple catalogs, with parent catalog IDs stored in this field for efficient querying and management. [#554](#554) - Added GET `/catalogs/{catalog_id}/children` endpoint implementing the STAC Children extension for efficient hierarchical catalog browsing. Supports type filtering (?type=Catalog|Collection), pagination, and returns numberReturned/numberMatched counts at the top level. [#558](#558) - Implemented context-aware dynamic linking: catalogs use dynamic `rel="children"` links pointing to the `/catalogs/{id}/children` endpoint, and collections have context-dependent `rel="parent"` links (pointing to catalog when accessed via `/catalogs/{id}/collections/{id}`, or root when accessed via `/collections/{id}`). Catalog links are only injected in catalog context. This eliminates race conditions and ensures consistency with parent_ids relationships. [#559](#559) #### Changed - Have opensearch datetime, geometry and collections fields defined as constant strings [#553](#553) #### Fixed - Fix unawaited coroutine in `stac_fastapi.core.core`. [#551](#551) - Parse `ES_TIMEOUT` environment variable as an integer. [#556](#556) - Implemented "Smart Unlink" logic in delete_catalog: when cascade=False (default), collections are unlinked from the catalog and become root-level orphans if they have no other parents, rather than being deleted. When cascade=True, collections are deleted entirely. This prevents accidental data loss and supports poly-hierarchy scenarios where collections belong to multiple catalogs. [#557](#557) - Fixed delete_catalog to use reverse lookup query on parent_ids field instead of fragile link parsing. This ensures all collections are found and updated correctly, preventing ghost relationships where collections remain tagged with deleted catalogs, especially in large catalogs or pagination scenarios. [#557](#557) **PR Checklist:** - [x] Code is formatted and linted (run `pre-commit run --all-files`) - [x] Tests pass (run `make test`) - [x] Documentation has been updated to reflect changes, if applicable - [x] Changes are added to the changelog
1 parent b8f2818 commit 2b8cb54

File tree

19 files changed

+33
-35
lines changed

19 files changed

+33
-35
lines changed

CHANGELOG.md

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

1010
### Added
1111

12+
### Changed
13+
14+
### Fixed
15+
16+
### Removed
17+
18+
### Updated
19+
20+
## [v6.8.0] - 2025-12-15
21+
22+
### Added
23+
1224
- Environment variable `VALIDATE_QUERYABLES` to enable/disable validation of queryables in search/filter requests. When set to `true`, search requests will be validated against the defined queryables, returning an error for any unsupported fields. Defaults to `false` for backward compatibility.[#532](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/532)
1325
- Environment variable `QUERYABLES_CACHE_TTL` to configure the TTL (in seconds) for caching queryables. Default is `1800` seconds (30 minutes) to balance performance and freshness of queryables data. [#532](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/532)
1426
- Added optional `/catalogs` route support to enable federated hierarchical catalog browsing and navigation. [#547](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/547)
@@ -17,7 +29,6 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
1729
- Added GET `/catalogs/{catalog_id}/children` endpoint implementing the STAC Children extension for efficient hierarchical catalog browsing. Supports type filtering (?type=Catalog|Collection), pagination, and returns numberReturned/numberMatched counts at the top level. [#558](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/558)
1830
- Implemented context-aware dynamic linking: catalogs use dynamic `rel="children"` links pointing to the `/catalogs/{id}/children` endpoint, and collections have context-dependent `rel="parent"` links (pointing to catalog when accessed via `/catalogs/{id}/collections/{id}`, or root when accessed via `/collections/{id}`). Catalog links are only injected in catalog context. This eliminates race conditions and ensures consistency with parent_ids relationships. [#559](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/559)
1931

20-
2132
### Changed
2233

2334
- Have opensearch datetime, geometry and collections fields defined as constant strings [#553](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/553)
@@ -29,10 +40,6 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
2940
- Implemented "Smart Unlink" logic in delete_catalog: when cascade=False (default), collections are unlinked from the catalog and become root-level orphans if they have no other parents, rather than being deleted. When cascade=True, collections are deleted entirely. This prevents accidental data loss and supports poly-hierarchy scenarios where collections belong to multiple catalogs. [#557](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/557)
3041
- Fixed delete_catalog to use reverse lookup query on parent_ids field instead of fragile link parsing. This ensures all collections are found and updated correctly, preventing ghost relationships where collections remain tagged with deleted catalogs, especially in large catalogs or pagination scenarios. [#557](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/557)
3142

32-
### Removed
33-
34-
### Updated
35-
3643
## [v6.7.6] - 2025-12-04
3744

3845
### Fixed
@@ -682,7 +689,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
682689
- Use genexp in execute_search and get_all_collections to return results.
683690
- Added db_to_stac serializer to item_collection method in core.py.
684691

685-
[Unreleased]: https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/compare/v6.7.6...main
692+
[Unreleased]: https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/compare/v6.8.0...main
693+
[v6.8.0]: https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/compare/v6.7.6...v6.8.0
686694
[v6.7.6]: https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/compare/v6.7.5...v6.7.6
687695
[v6.7.5]: https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/compare/v6.7.4...v6.7.5
688696
[v6.7.4]: https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/compare/v6.7.3...v6.7.4

compose.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ services:
99
environment:
1010
- STAC_FASTAPI_TITLE=stac-fastapi-elasticsearch
1111
- STAC_FASTAPI_DESCRIPTION=A STAC FastAPI with an Elasticsearch backend
12-
- STAC_FASTAPI_VERSION=6.0.0
1312
- STAC_FASTAPI_LANDING_PAGE_ID=stac-fastapi-elasticsearch
1413
- APP_HOST=0.0.0.0
1514
- APP_PORT=8080
@@ -50,7 +49,6 @@ services:
5049
environment:
5150
- STAC_FASTAPI_TITLE=stac-fastapi-opensearch
5251
- STAC_FASTAPI_DESCRIPTION=A STAC FastAPI with an Opensearch backend
53-
- STAC_FASTAPI_VERSION=6.0.0
5452
- STAC_FASTAPI_LANDING_PAGE_ID=stac-fastapi-opensearch
5553
- APP_HOST=0.0.0.0
5654
- APP_PORT=8082

examples/auth/compose.basic_auth.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ services:
99
environment:
1010
- STAC_FASTAPI_TITLE=stac-fastapi-elasticsearch
1111
- STAC_FASTAPI_DESCRIPTION=A STAC FastAPI with an Elasticsearch backend
12-
- STAC_FASTAPI_VERSION=6.0.0
1312
- STAC_FASTAPI_LANDING_PAGE_ID=stac-fastapi-elasticsearch
1413
- APP_HOST=0.0.0.0
1514
- APP_PORT=8080
@@ -43,7 +42,6 @@ services:
4342
environment:
4443
- STAC_FASTAPI_TITLE=stac-fastapi-opensearch
4544
- STAC_FASTAPI_DESCRIPTION=A STAC FastAPI with an Opensearch backend
46-
- STAC_FASTAPI_VERSION=6.0.0
4745
- STAC_FASTAPI_LANDING_PAGE_ID=stac-fastapi-opensearch
4846
- APP_HOST=0.0.0.0
4947
- APP_PORT=8082

examples/auth/compose.oauth2.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ services:
99
environment:
1010
- STAC_FASTAPI_TITLE=stac-fastapi-elasticsearch
1111
- STAC_FASTAPI_DESCRIPTION=A STAC FastAPI with an Elasticsearch backend
12-
- STAC_FASTAPI_VERSION=6.0.0
1312
- STAC_FASTAPI_LANDING_PAGE_ID=stac-fastapi-elasticsearch
1413
- APP_HOST=0.0.0.0
1514
- APP_PORT=8080
@@ -44,7 +43,6 @@ services:
4443
environment:
4544
- STAC_FASTAPI_TITLE=stac-fastapi-opensearch
4645
- STAC_FASTAPI_DESCRIPTION=A STAC FastAPI with an Opensearch backend
47-
- STAC_FASTAPI_VERSION=6.0.0
4846
- STAC_FASTAPI_LANDING_PAGE_ID=stac-fastapi-opensearch
4947
- APP_HOST=0.0.0.0
5048
- APP_PORT=8082

examples/auth/compose.route_dependencies.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ services:
99
environment:
1010
- STAC_FASTAPI_TITLE=stac-fastapi-elasticsearch
1111
- STAC_FASTAPI_DESCRIPTION=A STAC FastAPI with an Elasticsearch backend
12-
- STAC_FASTAPI_VERSION=6.0.0
1312
- STAC_FASTAPI_LANDING_PAGE_ID=stac-fastapi-elasticsearch
1413
- APP_HOST=0.0.0.0
1514
- APP_PORT=8080
@@ -43,7 +42,6 @@ services:
4342
environment:
4443
- STAC_FASTAPI_TITLE=stac-fastapi-opensearch
4544
- STAC_FASTAPI_DESCRIPTION=A STAC FastAPI with an Opensearch backend
46-
- STAC_FASTAPI_VERSION=6.0.0
4745
- STAC_FASTAPI_LANDING_PAGE_ID=stac-fastapi-opensearch
4846
- APP_HOST=0.0.0.0
4947
- APP_PORT=8082

examples/rate_limit/compose.rate_limit.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ services:
99
environment:
1010
- STAC_FASTAPI_TITLE=stac-fastapi-elasticsearch
1111
- STAC_FASTAPI_DESCRIPTION=A STAC FastAPI with an Elasticsearch backend
12-
- STAC_FASTAPI_VERSION=6.0.0
1312
- STAC_FASTAPI_LANDING_PAGE_ID=stac-fastapi-elasticsearch
1413
- APP_HOST=0.0.0.0
1514
- APP_PORT=8080
@@ -43,7 +42,6 @@ services:
4342
environment:
4443
- STAC_FASTAPI_TITLE=stac-fastapi-opensearch
4544
- STAC_FASTAPI_DESCRIPTION=A STAC FastAPI with an Opensearch backend
46-
- STAC_FASTAPI_VERSION=6.0.0
4745
- STAC_FASTAPI_LANDING_PAGE_ID=stac-fastapi-opensearch
4846
- APP_HOST=0.0.0.0
4947
- APP_PORT=8082

stac_fastapi/core/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
[![GitHub forks](https://img.shields.io/github/forks/stac-utils/stac-fastapi-elasticsearch-opensearch.svg?color=blue)](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/network/members)
1111
[![PyPI version](https://img.shields.io/pypi/v/stac-fastapi-elasticsearch.svg?color=blue)](https://pypi.org/project/stac-fastapi-elasticsearch/)
1212
[![STAC](https://img.shields.io/badge/STAC-1.1.0-blue.svg)](https://github.com/radiantearth/stac-spec/tree/v1.1.0)
13-
[![stac-fastapi](https://img.shields.io/badge/stac--fastapi-6.0.0-blue.svg)](https://github.com/stac-utils/stac-fastapi)
13+
[![stac-fastapi](https://img.shields.io/badge/stac--fastapi-6.1.1-blue.svg)](https://github.com/stac-utils/stac-fastapi)
1414

1515
Core functionality for stac-fastapi. For full documentation, please see the [main README](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/blob/main/README.md).
1616

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
"""library version."""
2-
__version__ = "6.7.6"
2+
__version__ = "6.8.0"

stac_fastapi/elasticsearch/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
[![GitHub forks](https://img.shields.io/github/forks/stac-utils/stac-fastapi-elasticsearch-opensearch.svg?color=blue)](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/network/members)
1111
[![PyPI version](https://img.shields.io/pypi/v/stac-fastapi-elasticsearch.svg?color=blue)](https://pypi.org/project/stac-fastapi-elasticsearch/)
1212
[![STAC](https://img.shields.io/badge/STAC-1.1.0-blue.svg)](https://github.com/radiantearth/stac-spec/tree/v1.1.0)
13-
[![stac-fastapi](https://img.shields.io/badge/stac--fastapi-6.0.0-blue.svg)](https://github.com/stac-utils/stac-fastapi)
13+
[![stac-fastapi](https://img.shields.io/badge/stac--fastapi-6.1.1-blue.svg)](https://github.com/stac-utils/stac-fastapi)
1414

1515
This is the Elasticsearch backend for stac-fastapi. For full documentation, please see the [main README](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/blob/main/README.md).
1616

stac_fastapi/elasticsearch/pyproject.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ keywords = [
2828
]
2929
dynamic = ["version"]
3030
dependencies = [
31-
"stac-fastapi-core==6.7.6",
32-
"sfeos-helpers==6.7.6",
31+
"stac-fastapi-core==6.8.0",
32+
"sfeos-helpers==6.8.0",
3333
"elasticsearch[async]~=8.19.1",
3434
"uvicorn~=0.23.0",
3535
"starlette>=0.35.0,<0.36.0",
@@ -48,7 +48,7 @@ dev = [
4848
"httpx>=0.24.0,<0.28.0",
4949
"redis~=6.4.0",
5050
"retry~=0.9.2",
51-
"stac-fastapi-core[redis]==6.7.6",
51+
"stac-fastapi-core[redis]==6.8.0",
5252
]
5353
docs = [
5454
"mkdocs~=1.4.0",
@@ -58,7 +58,7 @@ docs = [
5858
"retry~=0.9.2",
5959
]
6060
redis = [
61-
"stac-fastapi-core[redis]==6.7.6",
61+
"stac-fastapi-core[redis]==6.8.0",
6262
]
6363
server = [
6464
"uvicorn[standard]~=0.23.0",

0 commit comments

Comments
 (0)