Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Unreleased¶
Added¶
- Added
datetime_frequency_interval
parameter fordatetime_frequency
aggregation. #294 - Added rate limiting functionality with configurable limits using environment variable
STAC_FASTAPI_RATE_LIMIT
, example:500/minute
. #303 - Added publish.yml to automatically publish new releases to PyPI #305
Changed¶
- Updated CollectionLinks to generate correct
self
link for collections endpoint. #297 - Refactored aggregation in database logic. #294
- Fixed the
self
link for the/collections/{collection_id}/aggregations
endpoint. #295
v3.1.0 - 2024-09-02¶
Added¶
- Added support for FreeTextExtension. #227
Changed¶
- Support escaped backslashes in CQL2
LIKE
queries, and reject invalid (or incomplete) escape sequences. #286
v3.0.0 - 2024-08-14¶
Changed¶
[v3.0.0a3] - 2024-07-17¶
Added¶
- Added an implementation of the Aggregation Extension. Enables spatial, frequency distribution, and datetime distribution aggregations. #276
- Added support for route depndencies configuration through the STAC_FASTAPI_ROUTE_DEPENDENCIES environment variable, directly or via json file. Allows for fastapi's inbuilt OAuth2 flows to be used as dependencies. Custom dependencies can also be written, see Basic Auth for an example. #251
- Added docker-compose.route_dependencies_file.yml that gives an example of OAuth2 workflow using keycloak as the identity provider. #251
- Added docker-compose.route_dependencies_env.yml that gives an example using the STAC_FASTAPI_ROUTE_DEPENDENCIES environment variable. #251
Changed¶
- Updated to stac-fastapi 3.0.0a4. #275
- Converted Basic auth to a route dependency and merged with new route depndencies method. #251
- Updated docker-compose.basic_auth_protected.yml to use STAC_FASTAPI_ROUTE_DEPENDENCIES environment variable. #251
[v3.0.0a2]¶
Added¶
- Queryables landing page and collection links when the Filter Extension is enabled #267
Changed¶
- Updated stac-fastapi libraries to v3.0.0a1 #265
- Updated stac-fastapi libraries to v3.0.0a3 #269
- Converted Basic auth to a route dependency and merged with new route depndencies method. #251
- Updated docker-compose.basic_auth_protected.yml to use STAC_FASTAPI_ROUTE_DEPENDENCIES environment variable. #251
Fixed¶
- API sort extension tests #264
- Basic auth permission fix for checking route path instead of absolute path #266
- Remove deprecated filter_fields property, return all properties as default #269
[v3.0.0a1]¶
Changed¶
- Unskip temporal open window test #254
- Removed deprecated context extension #255
- Remove duplicated code from stac_fastapi.types #257
[v3.0.0a0]¶
Added¶
Changed¶
Fixed¶
- Fixed issue where paginated search queries would return a
next_token
on the last page #243
v2.4.1¶
Added¶
- A test to ensure that pagination correctly returns expected links, particularly verifying the absence of a 'next' link on the last page of results #244
Fixed¶
- Fixed issue where searches return an empty
links
array #241
v2.4.0¶
Added¶
- Added option to include Basic Auth #232
Changed¶
- Upgrade stac-fastapi libaries to v2.5.5 #237
Fixed¶
- Fixed
POST /collections/test-collection/items
returning an item with an empty links array #236
v2.3.0¶
Changed¶
- Upgraded stac-fastapi libraries to v2.5.3 from v2.4.9 #172
v2.2.0¶
Added¶
- use index templates for Collection and Item indices #208
- Added API
title
,version
, anddescription
parameters from environment variablesSTAC_FASTAPI_TITLE
,STAC_FASTAPI_VERSION
andSTAC_FASTAPI_DESCRIPTION
, respectively. #207 - Added a
STAC_FASTAPI_ROOT_PATH
environment variable to define the root path. Useful when working with an API gateway or load balancer. #221 - Added mkdocs, pdocs, to generate docs and push to gh pages via workflow. Updated documentation. #223
Changed¶
- Updated the pip_docker example to use stac-fastapi.elasticsearch 2.1.0 and the elasticsearch 8.11.0 docker image. #216
- Updated the Data Loader CLI tool to accept a base_url, a data directory, a custom collection id, and an option to use bulk insert. #218
- Changed the default
ca_certs
value to usecertifi.where()
to find the installed certificate authority. #222
Fixed¶
- URL encode next href: #215
- Do not overwrite links in Item and Collection objects before persisting in database #210
v2.1.0¶
Added¶
- Added explicit mapping for ID in
ES_COLLECTIONS_MAPPINGS
#198
Changed¶
- Removed database logic from core.py all_collections #196
- Changed OpenSearch config ssl_version to SSLv23 #200
Fixed¶
v2.0.0¶
Added¶
- Added core library package for common logic #186
Changed¶
- Moved Elasticsearch and Opensearch backends into separate packages #186
Fixed¶
- Allow additional top-level properties on collections #191
v1.1.0¶
Added¶
- Advanced comparison (LIKE, IN, BETWEEN) operators to the Filter extension #178
- Collection update endpoint no longer delete all sub items #177
- OpenSearch 2.11.1 support #188
Changed¶
- Elasticsearch drivers from 7.17.9 to 8.11.0 #169
- Collection update endpoint no longer delete all sub items #177
Fixed¶
- Exclude unset fields in search response #166
- Upgrade stac-fastapi to v2.4.9 #172
- Set correct default filter-lang for GET /search requests #179
v1.0.0¶
Added¶
- Collection-level Assets to the CollectionSerializer #148
- Pagination for /collections - GET all collections - route #164
- Examples folder with example docker setup for running sfes from pip #147
- GET /search filter extension queries #163
- Added support for GET /search intersection queries #158
Changed¶
- Update elasticsearch version from 8.1.3 to 8.10.4 in cicd, gh actions #164
- Updated core stac-fastapi libraries to 2.4.8 from 2.4.3 #151
- Use aliases on Elasticsearch indices, add number suffix in index name. #152
Fixed¶
- Corrected the closing of client connections in ES index management functions #132
- Corrected the automatic converstion of float values to int when building Filter Clauses #135
- Do not index
proj:geometry
field as geo_shape #154 - Remove unsupported characters from Elasticsearch index names #153
- Fixed GET /search sortby requests #25
v0.3.0¶
Added¶
- Added bbox and datetime parameters and functionality to item_collection #127
- Added collection_id parameter to create_item function #127
- Added item_id and collection_id to update_item #127
- The default Collection objects index can be overridden by the
STAC_COLLECTIONS_INDEX
environment variable #128 - The default Item objects index prefix can be overridden by the
STAC_ITEMS_INDEX_PREFIX
environment variable #128 - Fields Extension #129
- Support for Python 3.11 #131
Changed¶
- Updated core stac-fastapi libraries to 2.4.3 from 2.3.0 #127
v0.2.0¶
Added¶
- Filter Extension as GET with CQL2-Text and POST with CQL2-JSON, supporting the Basic CQL2 and Basic Spatial Operators conformance classes.
- Added Elasticsearch local config to support snapshot/restore to local filesystem
Fixed¶
- Fixed search intersects query.
- Corrected the Sort and Query conformance class URIs.
Changed¶
- Default to Python 3.10
- Default to Elasticsearch 8.x
- Collection objects are now stored in
collections
index rather thanstac_collections
index - Item objects are no longer stored in
stac_items
, but in indices per collection nameditems_{collection_id}
- When using bulk ingest, items will continue to be ingested if any of them fail. Previously, the call would fail immediately if any items failed.
v0.1.0¶
Changed¶
- Elasticsearch index mappings updated to be more thorough.
- Endpoints that return items (e.g., /search) now sort the results by 'properties.datetime,id,collection'. Previously, there was no sort order defined.
- Db_to_stac serializer moved to core.py for consistency as it existed in both core and database_logic previously.
- Use genexp in execute_search and get_all_collections to return results.
- Added db_to_stac serializer to item_collection method in core.py.