Skip to content

Releases: stac-utils/stac-fastapi-elasticsearch-opensearch

v4.1.0

09 May 11:32
b8c83b4

Choose a tag to compare

v4.1.0

Added

  • Added logging to bulk insertion methods to provide detailed feedback on errors encountered during operations. #364
  • Introduced the RAISE_ON_BULK_ERROR environment variable to control whether bulk insertion methods raise exceptions on errors (true) or log warnings and continue processing (false). #364
  • Added code coverage reporting to the test suite using pytest-cov. #87

Changed

  • Updated dynamic mapping for items to map long values to double versus float. #326
  • Extended Datetime Search to search on start_datetime and end_datetime as well as datetime fields. #182
  • Changed item update operation to use Elasticsearch index API instead of delete and create for better efficiency and atomicity. #75
  • Bulk insertion via BulkTransactionsClient now strictly validates all STAC Items using the Pydantic model before insertion. Any invalid item will immediately raise a ValidationError, ensuring consistent validation with single-item inserts and preventing invalid STAC Items from being stored. This validation is enforced regardless of the RAISE_ON_BULK_ERROR setting. #368

Fixed

  • Refactored create_item and update_item methods to share unified logic, ensuring consistent conflict detection, validation, and database operations. #368

New Contributors

Full Changelog: v4.0.0...v4.1.0

v4.0.0

24 Apr 03:00
53a9d7e

Choose a tag to compare

What's Changed

Added

  • Support for dynamically-generated queryables based on Elasticsearch/OpenSearch mappings, with extensible metadata augmentation #351
  • Included default queryables configuration for seamless integration. #351
  • Added support for high-performance direct response mode for both Elasticsearch and Opensearch backends, controlled by the ENABLE_DIRECT_RESPONSE environment variable. When enabled (ENABLE_DIRECT_RESPONSE=true), endpoints return Starlette Response objects directly, bypassing FastAPI's jsonable_encoder and Pydantic serialization for significantly improved performance on large search responses. Note: In this mode, all FastAPI dependencies (including authentication, custom status codes, and validation) are disabled for all routes. Default is false for safety. A warning is logged at startup if enabled. See issue #347 and PR #359.
  • Added robust tests for the ENABLE_DIRECT_RESPONSE environment variable, covering both Elasticsearch and OpenSearch backends. Tests gracefully handle missing backends by attempting to import both configs and skipping if neither is available. #359

Changed

  • Refactored database logic to reduce duplication #351
  • Replaced fastapi-slim with fastapi dependency #351
  • Changed minimum Python version to 3.9 #354
  • Updated stac-fastapi api, types, and extensions libraries to 5.1.1 from 3.0.0 and made various associated changes #354
  • Changed makefile commands from 'docker-compose' to 'docker compose' #354
  • Updated package names in setup.py files to use underscores instead of periods for PEP 625 compliance #358
    • Changed stac_fastapi.opensearch to stac_fastapi_opensearch
    • Changed stac_fastapi.elasticsearch to stac_fastapi_elasticsearch
    • Changed stac_fastapi.core to stac_fastapi_core
    • Updated all related dependencies to use the new naming convention
  • Renamed docker-compose.yml to compose.yml to align with Docker Compose V2 conventions #358
  • Removed deprecated version field from all compose files #358
  • Updated STAC_FASTAPI_VERSION environment variables to 4.0.0 in all compose files #362
  • Bumped version from 4.0.0a2 to 4.0.0 for the PEP 625 compliant release #362
  • Updated dependency requirements to use compatible release specifiers (~=) for more controlled updates while allowing for bug fixes and security patches #358
  • Removed elasticsearch-dsl dependency as it's now part of the elasticsearch package since version 8.18.0 #358
  • Updated test suite to use httpx.ASGITransport(app=...) for FastAPI app testing (removes deprecation warning). #359
  • Updated stac-fastapi parent libraries to 5.2.0. #359
  • Migrated Elasticsearch index template creation from legacy put_template to composable put_index_template API in database_logic.py. This resolves deprecation warnings and ensures compatibility with Elasticsearch 7.x and 8.x. #359
  • Updated all Pydantic models to use ConfigDict instead of class-based Config for Pydantic v2 compatibility. This resolves deprecation warnings and prepares for Pydantic v3. #359
  • Migrated all Pydantic @root_validator validators to @model_validator for Pydantic v2 compatibility. #359
  • Migrated startup event handling from deprecated @app.on_event("startup") to FastAPI's recommended lifespan context manager. This removes deprecation warnings and ensures compatibility with future FastAPI versions. #361
  • Refactored all boolean environment variable parsing in both Elasticsearch and OpenSearch backends to use the shared get_bool_env utility. This ensures robust and consistent handling of environment variables such as ES_USE_SSL, ES_HTTP_COMPRESS, and ES_VERIFY_CERTS across both backends. #359

Fixed

  • Improved performance of mk_actions and filter-links methods #351
  • Fixed inheritance relating to BaseDatabaseSettings and ApiBaseSettings #355
  • Fixed delete_item and delete_collection methods return types #355
  • Fixed inheritance relating to DatabaseLogic and BaseDatabaseLogic, and ApiBaseSettings #355

New Contributors

Full Changelog: v3.2.5...v4.0.0

v4.0.0a2

22 Apr 16:07
67df17b

Choose a tag to compare

v4.0.0a2 Pre-release
Pre-release

What's Changed

  • Enable direct response, stac-fastapi 5.2.0, deprecation warnings by @jonhealy1 in #359

Full Changelog: v4.0.0a1...v4.0.0a2

v4.0.0a1

18 Apr 17:06
5f91e50

Choose a tag to compare

v4.0.0a1 Pre-release
Pre-release

What's Changed

Full Changelog: v4.0.0a0...v4.0.0a1

v4.0.0a0

17 Apr 02:53
790fb7d

Choose a tag to compare

v4.0.0a0 Pre-release
Pre-release

What's Changed

  • Zero-config dynamically-generated queryables, Performance fixes by @Zaczero in #351
  • Update stac-fastapi parent libraries to 5.1.1 by @jonhealy1 in #354
  • Inherit from Base Database Logic by @jonhealy1 in #355

New Contributors

Full Changelog: v3.2.5...v4.0.0a0

v3.2.5

07 Apr 09:27
353210d

Choose a tag to compare

What's Changed

Full Changelog: v3.2.4...v3.2.5

v3.2.4

14 Mar 07:45
b016945

Choose a tag to compare

What's Changed

Full Changelog: v3.2.3...v3.2.4

v3.2.3

11 Feb 02:07
47ef97a

Choose a tag to compare

What's Changed

Full Changelog: v3.2.2...v3.2.3

v3.2.2

14 Dec 16:13
e45cfea

Choose a tag to compare

What's Changed

Full Changelog: v3.2.1...v3.2.2

v3.2.1

30 Nov 05:37
a9e15ee

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v3.2.0...v3.2.1