Releases: stac-utils/stac-fastapi-elasticsearch-opensearch
Releases · stac-utils/stac-fastapi-elasticsearch-opensearch
v5.0.0
What's Changed
- Create shared sfeos helpers module by @jonhealy1 in #376
- Update docs by @jonhealy1 in #386
- Database authorization capability with SSL disabled by @GrzegorzPustulka in #388
- Update version to v5.0.0a1 by @jonhealy1 in #389
- Drop
requestsdependency and optimize data_loader by @Zaczero in #395 - Add support for optional enum queryables by @Zaczero in #390
- Use shared app config by @jonhealy1 in #399
- Update datetime filter by @jonhealy1 in #396
- Make orjson usage more consistent by @Zaczero in #402
- Add sponsors section to readme by @jonhealy1 in #378
- Add atomic maps supporter by @jamesfisher-geo in #380
- Readme redesign by @jonhealy1 in #381
- Add intro to Readme by @jonhealy1 in #384
- docs: add VITO Remote Sensing to list of supporters by @StijnCaerts in #385
- v5.0.0 release by @jonhealy1 in #404
New Contributors
- @GrzegorzPustulka made their first contribution in #388
Full Changelog: v4.2.0...v5.0.0
v5.0.0a1
What's Changed
- Update docs by @jonhealy1 in #386
- Database authorization capability with SSL disabled by @GrzegorzPustulka in #388
- Update version to v5.0.0a1 by @jonhealy1 in #389
New Contributors
- @GrzegorzPustulka made their first contribution in #388
Full Changelog: v5.0.0a0...v5.0.0a1
v5.0.0a0
What's Changed
- Created new
sfeos_helperspackage to improve code organization and maintainability #376 - Added introduction section - What is stac-fastapi-elasticsearch-opensearch? - to README #384
- Refactored utility functions into dedicated modules within
sfeos_helpers#376:- Created
databasepackage with specialized modules for index, document, and utility operations - Created
aggregationpackage for Elasticsearch/OpenSearch-specific aggregation functionality - Moved shared logic from core module to helper functions for better code reuse
- Separated utility functions from constant mappings for clearer code organization
- Created
- Updated documentation to reflect recent code refactoring #376
- Improved README documentation with consistent formatting and enhanced sections #381:
- Added sfeos logo and banner
- Added a comprehensive Quick Start guide
- Reorganized sections for better navigation
- Reformatted content with bullet points for improved readability
- Added more detailed examples for API interaction
Full Changelog: v4.2.0...v5.0.0a0
v4.2.0
What's Changed
Added
- Added dynamic queryables mapping for search and aggregations #375
- Added configurable landing page ID
STAC_FASTAPI_LANDING_PAGE_ID#352 - Added support for
S_CONTAINS,S_WITHIN,S_DISJOINTspatial filter operations #371 - Introduced the
DATABASE_REFRESHenvironment variable to control whether database operations refresh the index immediately after changes. If set totrue, changes will be immediately searchable. If set tofalse, changes may not be immediately visible but can improve performance for bulk operations. If set towait_for, changes will wait for the next refresh cycle to become visible. #370 - Added the
ENABLE_TRANSACTIONS_EXTENSIONSenvironment variable to enable or disable the Transactions and Bulk Transactions API extensions. When set tofalse, endpoints provided byTransactionsClientandBulkTransactionsClientare not available. This allows for flexible deployment scenarios and improved API control. #374
Changed
- Refactored CRUD methods in
TransactionsClientto use thevalidate_refreshhelper method for consistent and reusable handling of therefreshparameter. #370
Fixed
- Fixed an issue where some routes were not passing the
refreshparameter fromkwargsto the database logic, ensuring consistent behavior across all CRUD operations. #370
New Contributors
- @TravisYeah made their first contribution in #372
Full Changelog: v4.1.0...v4.2.0
v4.1.0
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_ERRORenvironment 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
BulkTransactionsClientnow strictly validates all STAC Items using the Pydantic model before insertion. Any invalid item will immediately raise aValidationError, ensuring consistent validation with single-item inserts and preventing invalid STAC Items from being stored. This validation is enforced regardless of theRAISE_ON_BULK_ERRORsetting. #368
Fixed
- Refactored
create_itemandupdate_itemmethods to share unified logic, ensuring consistent conflict detection, validation, and database operations. #368
New Contributors
- @johnmichaelmurner made their first contribution in #326
Full Changelog: v4.0.0...v4.1.0
v4.0.0
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_RESPONSEenvironment 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 isfalsefor safety. A warning is logged at startup if enabled. See issue #347 and PR #359. - Added robust tests for the
ENABLE_DIRECT_RESPONSEenvironment 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-slimwithfastapidependency #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.opensearchtostac_fastapi_opensearch - Changed
stac_fastapi.elasticsearchtostac_fastapi_elasticsearch - Changed
stac_fastapi.coretostac_fastapi_core - Updated all related dependencies to use the new naming convention
- Changed
- Renamed
docker-compose.ymltocompose.ymlto align with Docker Compose V2 conventions #358 - Removed deprecated
versionfield from all compose files #358 - Updated
STAC_FASTAPI_VERSIONenvironment 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_templateto composableput_index_templateAPI indatabase_logic.py. This resolves deprecation warnings and ensures compatibility with Elasticsearch 7.x and 8.x. #359 - Updated all Pydantic models to use
ConfigDictinstead of class-basedConfigfor Pydantic v2 compatibility. This resolves deprecation warnings and prepares for Pydantic v3. #359 - Migrated all Pydantic
@root_validatorvalidators to@model_validatorfor 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_envutility. This ensures robust and consistent handling of environment variables such asES_USE_SSL,ES_HTTP_COMPRESS, andES_VERIFY_CERTSacross both backends. #359
Fixed
- Improved performance of
mk_actionsandfilter-linksmethods #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
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
What's Changed
- Update package names for Pep625 compliance by @jonhealy1 in #358
Full Changelog: v4.0.0a0...v4.0.0a1
v4.0.0a0
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
What's Changed
- Option to configure multiple Elasticsearch/OpenSearch hosts and enable
http_compressby @StijnCaerts in #349 - update to v3.2.5 by @jonhealy1 in #350
Full Changelog: v3.2.4...v3.2.5