Skip to content

Changelog

Unreleased

Added

  • Add benchmark in CI (#650)
  • Add /queryables link to the landing page (#587)
  • id, title, description and api_version fields can be customized via env variables
  • Add DeprecationWarning for the ContextExtension

Changed

  • Updated the collection update endpoint to match with the collection-transaction extension. (#630)
  • Improve bbox and datetime typing (#490
  • Add items link to inferred link relations (#634)
  • Make sure FastAPI uses Pydantic validation and serialization by not wrapping endpoint output with a Response object (#650)
  • Allow GeometryCollections for intersects parameter in POST search queries (#548)

Removed

  • Deprecate response_class option in stac_fastapi.api.routes.create_async_endpoint method (#650)

2.4.9 - 2023-11-17

Added

  • Add CQL2-json to filter conformance class (#611)
  • Add Elasticsearch backend (#616)

Changed

  • Forward x-forwarded-host (#586)
  • Add method parameter to Bulk Transactions extension in order to support upserting bulk data (#614)

2.4.8 - 2023-06-07

Changed

  • Advertise STAC API v1.0.0 (#578)

2.4.7 - 2023-05-16

Added

  • Add support for POSTing ItemCollections to the /items endpoint of the Transaction Extension (#547)

Changed

  • flake8, isort, and pydocstyle replaced by ruff for pre-commit checks (#549)

2.4.6 - 2023-05-09

Changed

2.4.5 - 2023-04-04

Changed

  • Default branch to main (#544)

Fixed

  • Use V() instead of f-strings for pgstac queries (#554)

2.4.4 - 2023-03-09

Added

  • Nginx service as second docker-compose stack to demonstrate proxy (#503)
  • Validation checks in CI using stac-api-validator (#508)
  • Required links to the sqlalchemy ItemCollection endpoint (#508)
  • Publication of docker images to GHCR (#525)

Changed

  • Updated CI to test against pgstac v0.6.12 (#511)
  • Reworked update_openapi and added a test for it (#523)
  • Limit values above 10,000 are now replaced with 10,000 instead of returning a 400 error (#526)
  • Updated pgstac to v0.7.1 (#535)

Removed

  • Incorrect context STAC extension url from the landing page (#508)

Fixed

  • Allow url encoded values for query in GET requests (#504)
  • Fix path in register_update_item docstring (#507)
  • self link rel for /collections/{c_id}/items (#508)
  • Media type of the item collection endpoint (#508)
  • Manually exclude non-truthy optional values from sqlalchemy serialization of Collections (#508)
  • Support intersects in GET requests (#521)
  • Deleting items that had repeated ids in other collections (#520)
  • 404 for missing collection on /items for sqlalchemy (#528)
  • Conformance URIs for the filter extension (#540)

Deprecated

  • Deprecated VndOaiResponse and config_openapi, will be removed in v3.0 (#523)

2.4.3 - 2022-11-25

Added

  • Add the ENABLED_EXTENSIONS environment variable determining which extensions are enabled in the pgstac application, all extensions are enabled by default (#495)

Changed

Removed

Fixed

2.4.2 - 2022-11-25

Added

  • Add support in pgstac backend for /queryables and /collections/{collection_id}/queryables endpoints with functions exposed in pgstac 0.6.8 (#474)
  • Add bbox and datetime query parameters to /collections/{collection_id}/items. (#476, #380)
  • Update pgstac requirement to 0.6.10
  • Add servers and description to OpenAPI (#459)

Changed

Removed

  • Removed stac_fastapi.api.routes.create_sync_endpoint function to reduce code duplication (#471)

Fixed

  • Quote password in pgsql strings to accomodate special characters. (#455)
  • Fix pgstac backend for /queryables endpoint to return 404 for non-existent collections (#482)
  • /collection/{collection_id}/items endpoints now return geojson media type (#488)

2.4.1 - 2022-08-05

Added

Changed

Removed

Fixed

  • ciso8601 fails to build in some environments, instead use pyiso8601 to parse datetimes.

2.4.0 - 2022-08-04

Added

  • Add hook to allow adding dependencies to routes. (#295)
  • Ability to POST an ItemCollection to the collections/{collectionId}/items route. (#367)
  • Add STAC API - Collections conformance class. (383)
  • Bulk item inserts for pgstac implementation. (411)
  • Add APIRouter prefix support for pgstac implementation. (429)
  • Respect Forwarded or X-Forwarded-* request headers when building links to better accommodate load balancers and proxies.

Changed

  • Update FastAPI requirement to allow version >=0.73 (#337)
  • Bump version of PGStac to 0.4.5 (#346)
  • Add support for PGStac Backend to use PyGeofilter to convert Get Request with cql2-text into cql2-json to send to PGStac backend (#346)
  • Updated all conformance classes to 1.0.0-rc.1. (383)
  • Bulk Transactions object Items iterator now returns the Item objects rather than the string IDs of the Item objects (#355)
  • docker-compose now runs uvicorn with hot-reloading enabled
  • Bump version of PGStac to 0.6.2 that includes support for hydrating results in the API backed (#397)
  • Make item geometry and bbox nullable in sqlalchemy backend. (#398)
  • Transactions Extension update Item endpoint Item is now /collections/{collection_id}/items/{item_id} instead of /collections/{collection_id}/items to align with STAC API spec (#425)

Removed

  • Remove the unused router_middleware function (#439)

Fixed

  • Bumped uvicorn version to 0.17 (from >=0.12, <=0.14) to resolve security vulnerability related to websockets dependency version (#343)
  • AttributeError and/or missing properties when requesting the complete properties-field in searches. Added test. (#339)
  • Fixes issues (and adds tests) for issues caused by regression in pgstac (#345
  • Update error response payloads to match the API spec. (#361)
  • Fixed stray / before the # in several extension conformance class strings (383)
  • SQLAlchemy backend bulk item insert now works (#356)
  • PGStac Backend has stricter implementation of Fields Extension syntax (#397)
  • /queryables endpoint now has type application/schema+json instead of application/json (#421)
  • Transactions Extension update Item endpoint validates that the {collection_id} path parameter matches the Item "collection" property from the request body, if present, and falls back to using the path parameter if no "collection" property is found in the body (#425)
  • PGStac Backend Transactions endpoints return added Item/Collection instead of Item/Collection from request (#424)
  • Application no longer breaks on startup when pagination extension is not included (#444)

2.3.0 - 2022-01-18

Added

  • Add link with rel-type of 'service-doc', pointing to HTML API documentation (#298)

Changed

  • Refactor to remove hardcoded search request models. Request models are now dynamically created based on the enabled extensions. (#213)
  • Change example data to use correct type for the example Joplin collection (#314)
  • Changed the geometry type in the Item model from Polygon to Geometry.
  • Upgrade pgstac backend to use version 0.4.2 (#321)
  • STAC 1.0.0-beta.4 conformance classes updated (#298)
  • Upgrade pgstac backend to use version 0.4.3 (#326)

Removed

  • The tiles extension and all tiles links, added for demonstration purposes, have been removed. (#309)

Fixed

  • Import error using importlib.util (#325)
  • Add environment variables required by upgraded pgstac container (#313)
  • Enabled ContextExtension by default (#207)
  • Content-type response headers for the /search endpoint now reflect the geojson response expected in the STAC api spec (#220)
  • The minimum limit value for searches is now 1 (#296)
  • Links stored with Collections and Items (e.g. license links) are now returned with those STAC objects (#282)
  • Content-type response headers for the /api endpoint now reflect those expected in the STAC api spec (#287)
  • Changed type options for datetime in BaseSearchGetRequest (#318)
  • Expanded on tests to ensure properly testing get and post searches (#318)
  • Ensure invalid datetimes result in 400s (#323)

2.2.0 - 2021-10-19

Added

  • Add CQL2 support (#308)
  • Add ability to override ItemCollectionUri and SearchGetRequest models (#271)
  • Added collections attribute to list of default fields to include, so that we satisfy the STAC API spec, which requires a collections attribute to be output when an item is part of a collection (#276)

Changed

  • Update pgstac to 0.4.0 (#308)
  • Update get_item in sqlalchemy backend to allow for querying for items with same ids but in different collections. (#275)

2.1.1 - 2021-09-23

Added

  • Add middlewares option in stac_fastapi.api.StacApi to allow custom middleware configuration (#267)
  • Support non-interval datetime queries on sqlalchemy backend (#262)
  • Restrict limit parameter in sqlalchemy backend to between 1 and 10,000. (#251)
  • Fix OAS conformance URL (#263)
  • Links to children collections from the landing pagge always have a title (#260)
  • Fix collection links in the all_collections method in pgstac (#269)

Fixed

  • Pin FastAPI to 0.67 to avoid issues with rendering OpenAPI documentation (#246)
  • Add stac_version to default search attributes (#268)
  • pgstac backend specifies collection_id when fetching a single item (#279)

2.1.0 - 2021-08-26

Added

  • Added filter extension. (#165)
  • Add Support for CQL JSON to PGStac Backend (#209)
  • Added item_serializer and item_table to BulkTransactionsClient in sqlalchemy backend (#210)
  • Enable conformance class configuration (#214)
  • Add/fix landing page links (#229)
  • Correct response codes for bad/unusable bboxes (#235)
  • Add a "method" field for search links (#236)
  • Add extension schemas to landing (#237)

Removed

  • Remove shapely from stac_fastapi.pgstac requirements (#225)

Changed

  • Update to STAC API 1.0.0-beta.3 (#239)

Fixed

  • Make collection title optional in landing page links (#198)
  • Preserve relative paths on link generation (#199)
  • Fix collection endpoint return value to match spec (fixes regression) (#232)
  • Return empty item collection instead of error when searching (#233)
  • Correct response codes for bad/unusable bboxes (#235)
  • Update pgstac to return 400 on invalid date parameter (#240)

2.0.0 - 2021-07-26

  • Refactor stac-fastapi into submodules (#106stac-utils/stac-fastapi/pull/106)
  • Add pgstac backend (#126)
  • Upgrade to stac-pydantic 2.0.0 and stac-spec 1.0.0 (#181)

1.1.0 - 2021-01-28

  • Improve how the library declares API extensions (#54)
  • Add postgres bulk transactions client (#59)
  • Update TiTiler version (#61)
  • Use attrs instead of dataclasses (#73)
  • Remove postgres database connection from API layer (#74)
  • Fix pre-commit config (#75)

1.0.0 - 2020-09-28

  • First PyPi release!