You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**Related Issue(s):**
- None
**Description:**
- Added STAC_FASTAPI_ES_COERCE_GLOBAL env var to disable automatic type
conversion and enable strict type checking at the index level.
- Implemented CQL2 Abstract Syntax Tree (AST) structure for more
efficient query parsing and better support for datetime-based indexes.
- Made ES_MAX_URL_LENGTH configurable via environment variable to match
server-side http.max_initial_line_length settings.
- Replaced manual existence checks with native ES/OS op_type="create"
for faster bulk duplicate detection and better error handling.
- Atomic Redis queue operations using MULTI/EXEC pipelines to prevent
data inconsistency between ZSET and HASH.
- Added periodic lock refreshing to the item queue worker to prevent
distributed lock expiration during long batch processes.
- Fixed handling of empty collection_ids in query filters to prevent
invalid empty terms filters.
**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
Copy file name to clipboardExpand all lines: CHANGELOG.md
+14-7Lines changed: 14 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,23 +9,29 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
9
9
10
10
### Added
11
11
12
+
### Changed
13
+
14
+
### Fixed
15
+
16
+
### Removed
17
+
18
+
### Updated
19
+
20
+
## [v6.15.0] - 2026-04-04
21
+
22
+
### Added
23
+
12
24
- Added coerce control via `STAC_FASTAPI_ES_COERCE_GLOBAL` env var to enable strict type checking by disabling automatic type conversion at the index level. [#649](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/649)
13
25
- Added CQL2 Abstract Syntax Tree (AST) structure for efficient query parsing and datetime-based indexes. [#659](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/659)
14
26
- Made `ES_MAX_URL_LENGTH` configurable via environment variable (default: `4096`). This value should match the `http.max_initial_line_length` setting in your Elasticsearch/OpenSearch server configuration. [#656](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/656)
15
27
16
-
### Changed
17
-
18
28
### Fixed
19
29
20
30
- Fixed bulk duplicate detection: replaced manual `exist_ok` pre-check with ES/OS native `op_type="create"`. Bulk operations now correctly raise `ItemAlreadyExistsError` when `RAISE_ON_BULK_ERROR=true`, or count duplicates as "skipped" when `false`, instead of throwing raw `BulkIndexError`. [#638](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/issues/638)
21
31
- Fixed `add_collections_to_body` to handle empty `collection_ids` gracefully, preventing an invalid empty `terms` filter from being added to the query body. [#656](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/656)
22
32
- Made Redis queue operations atomic using pipelines (MULTI/EXEC) in `queue_items`, `mark_items_processed`, `remove_item`, and `save_failed_items` to prevent ghost entries where IDs exist in ZSET but data is missing from HASH.
23
33
- Added periodic lock refresh (every 60s) to `item_queue_worker` to prevent distributed lock expiration during long-running batch processing. The worker now stops processing when the lock is lost and checks `owned()` before releasing to avoid releasing another worker's lock.
24
34
25
-
### Removed
26
-
27
-
### Updated
28
-
29
35
30
36
## [v6.14.1] - 2026-03-24
31
37
@@ -845,7 +851,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
845
851
- Use genexp in execute_search and get_all_collections to return results.
846
852
- Added db_to_stac serializer to item_collection method in core.py.
0 commit comments