Skip to content

v0.4.0

Choose a tag to compare

@philvarner philvarner released this 19 Apr 13:35
· 450 commits to main since this release
6ccc468

Added

  • Add conformance classes for STAC API - Features and STAC API - Collections. Both were already fully-supported, but
    were not advertised in the landing page conformsTo attribute or the /conformance endpoint.
  • Items larger than 256 KB can now be ingested by writing their contents to S3
  • API responses are now compressed
  • Transaction Extension is now implemented
  • Landing Page link relation service-doc now exists, and points to a Redoc instance
  • If a request includes the X-STAC-Endpoint header, that endpoint will be used when generating link hrefs

Fixed

  • Open-ended datetime intervals using either empty string or '..' now work
  • Correct content types are now returned
  • Searching for a nonexistent collection returns empty results
  • Re-ingesting an Item maintains the existing value of properties.created and sets properties.updated to now
  • Fixes the responses from /collections/{collectionId}, /collections/{collectionId}/items, and /collection/{collectionId}/items/{itemId}.
  • Search limit parameter is now validated to be between 1 and 10000 inclusive
  • Search datetime parameter is now strictly validated as a RFC 3339 datetime or interval of two datetimes
  • Added root link relation to Landing Page (/)
  • GET /search only accepts a bbox value of a comma-separated string and POST /search
    only accepts a bbox array of numbers. Previously, both methods accepted both formats in
    violation of the STAC API spec.

Changed

  • Upgrade to Node 14
  • Elasticsearch version update 7.9 -> 7.10
  • Use Express for API routing
  • Item and collection ingest operations will full replace an item with the same ID. Previously, partial-updates were being performed.
  • Improvements to Elasticsearch field mappings
  • PATCH /collections/:collectionId/items/:itemId now returns 204 No Content as succcess instead
    of 200 and the updated Item
  • Default sortby is now guaranteed to be stable. Previously, it was only by properties.datetime, not it is
    by properties.datetime, id, and collection.
  • ItemCollection results no longer have a prev link relation. This is a by-product of changing
    pagination to use Elasticsearch's more performant search_after mechanism rather than page
  • Pagination works past 10,000 items now
  • An invalid search intersects parameter may sometimes return a 500 instead of a 400 status code.

Removed

  • Querying Items in a Collection by POST to /collections/:collectionId/items is
    no longer supported, as this is forbidden by the STAC API - Features
    conformance class because it conflicts with the Transaction Extension

What's Changed

  • Bump tar from 6.1.0 to 6.1.11 by @dependabot in #113
  • Bump nth-check from 2.0.0 to 2.0.1 by @dependabot in #114
  • Bump follow-redirects from 1.14.1 to 1.14.7 by @dependabot in #119
  • Bump trim-off-newlines from 1.0.1 to 1.0.3 by @dependabot in #125
  • Bump trim-off-newlines from 1.0.1 to 1.0.3 in /lambdas/ingest by @dependabot in #122
  • Bump trim-off-newlines from 1.0.1 to 1.0.3 in /lambdas/failed-ingest by @dependabot in #121
  • Bump trim-off-newlines from 1.0.1 to 1.0.3 in /lambdas/api by @dependabot in #123
  • Bump node-fetch from 2.6.1 to 2.6.7 by @dependabot in #124
  • Removed STAC_API_VERSION from root catalog by @geomatician in #128
  • Bump jszip from 3.6.0 to 3.7.1 by @dependabot in #127
  • Bump follow-redirects from 1.14.7 to 1.14.8 by @dependabot in #136
  • Bump simple-get from 2.8.1 to 2.8.2 by @dependabot in #143
  • Upgrade to Node 14 by @marchuffnagle in #134
  • update README, include serverless-offline and instructions for use by @philvarner in #153
  • update license to appropriately mention Element 84 by @philvarner in #146
  • add GH PR template by @philvarner in #148
  • Pv/update stac api version and add collections cc by @philvarner in #154
  • fix comma-separated bbox value parsing by @philvarner in #160
  • fix behavior when ids param is specified to not override all other params by @philvarner in #157
  • upgrade eslint and fix code wrt default linter rules by @philvarner in #150
  • Pv/upgrade es 7.9 to 7.10 by @philvarner in #155
  • Add architecture diagram by @marchuffnagle in #169
  • Fix bug where all ES connections in pool were dead by @marchuffnagle in #167
  • Run integration tests in CI by @marchuffnagle in #163
  • Code reorganization by @marchuffnagle in #170
  • upgrade to ava 4 by @philvarner in #172
  • Add ability to use tsc for static code analysis by @marchuffnagle in #173
  • Add support for ingesting large items from remote sources by @marchuffnagle in #179
  • support open-ended datetime intervals, fix camelcase violations by @philvarner in #180
  • Use Express for API routing by @marchuffnagle in #182
  • Return the correct API content types by @marchuffnagle in #184
  • Return empty results when searching for a nonexistent collection by @marchuffnagle in #185
  • Fix npm build problem by @philvarner in #188
  • fix service-desc link relation type to use OpenAPI yaml media type by @philvarner in #189
  • Split system tests into separate files by @marchuffnagle in #191
  • Clean up a couple skipped tests by @marchuffnagle in #192
  • Compress API responses by @marchuffnagle in #193
  • define routes for transaction endpoints by @philvarner in #194
  • Maintain created time when reingesting an item by @marchuffnagle in #196
  • Perform full-item replacement on ingest rather than partial update by @marchuffnagle in #197
  • Move addEndpoint middleware by @marchuffnagle in #198
  • Tests handle their own API server by @marchuffnagle in #199
  • Improve Elasticsearch mappings by @philvarner in #181
  • fix GET Item endpoint when Item doesn't exist, add Delete Item endpoint impl by @philvarner in #205
  • Bump urijs from 1.19.8 to 1.19.9 by @dependabot in #210
  • Implement POST and PUT for Items from Transaction Extension by @philvarner in #208
  • Pv/retain bbox intersects parameters by @philvarner in #215
  • Pv/validate limit parameters by @philvarner in #217
  • Bump urijs from 1.19.9 to 1.19.10 by @dependabot in #221
  • validate datetime parameter better by @philvarner in #218
  • add root link relation in landing page by @philvarner in #225
  • fix bbox parameter validation and "type" field in root catalog by @philvarner in #233
  • change default sort to be stable by @philvarner in #227
  • add docs for migration by @philvarner in #230
  • update openapi spec to stac api 1.0.0-beta.5, add redoc service-doc endpoint by @philvarner in #232
  • change pagination to use Elasticsearch search_after instead of 'page' by @philvarner in #228
  • change proj:centroid and proj:geometry to not have type match on string by @philvarner in #236
  • replace constant_score and must with bool and filter for ES queries by @philvarner in #244
  • remove dependency on geojson-validation because it's LGPL 3 by @philvarner in #247
  • Bump minimist from 1.2.5 to 1.2.6 by @dependabot in #248
  • Add support for X-STAC-Endpoint header by @marchuffnagle in #251
  • update version to 0.4.0-rc.3 by @philvarner in #250
  • re-add page parameter by @philvarner in #253
  • Allow use of STAC_API_ROOTPATH to set an api gw stage path prefix by @sjwoodr in #255
  • Bump moment from 2.29.1 to 2.29.2 by @dependabot in #256
  • Bump async from 2.6.3 to 2.6.4 by @dependabot in #258
  • Bump urijs from 1.19.10 to 1.19.11 by @dependabot in #257

New Contributors

Full Changelog: v0.3.1...v0.4.0