Skip to content

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 for datetime_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

  • Aggregation bug fixes #281
  • Updated stac-fastapi libraries to v3.0.0 #282

[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

  • Symlinks from project-specific readme files to main readme #250
  • Support for Python 3.12 #234

Changed

  • Updated stac-fastapi parent libraries to v3.0.0a0 #234
  • Removed pystac dependency #234

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, and description parameters from environment variables STAC_FASTAPI_TITLE, STAC_FASTAPI_VERSION and STAC_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 use certifi.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 than stac_collections index
  • Item objects are no longer stored in stac_items, but in indices per collection named items_{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.