Skip to content

Commit c692a0a

Browse files
authored
Add filter extension (#825)
* feat: add filter extension to conformance * feat: add cql2 filter extension for POST * fix: remove commented code, get rid of .only in tes * feat: cql2 filter extension for GET * fix: use fully qualified property names * test: remove redundant test - decided to not handle filter={}; let it fail * build: 'npm audit fix' to get CI passing * feat: check for correct filter-lang and filter-crs * feat: Add filter extension to aggregate endpoint * docs: update CHANGELOG * test: add test for top level field and property in filter extension filter * review: move constants out of function * review: stacQlQuery -> stacqlQuery * review: buildQuery -> buildOpenSearchQuery * review: Add minimum_should_match = 1 for 'should' clauses * fix: remove .only from test, update a test comment * review: remove explicit prefixing of properties object fields * feat: raise error when collection queryables has additionalProperties set to false * style: align existing test format * feat: add query and filter extensions to openapi.yaml * docs: update README.md * fix: finish adding filters extension to the OpenAPI spec * fix: minor changes to query extension in openapi.yaml * docs: augument CHANGELOG entry, tweak extension list in README * review: remove bbox from UNPREFIXED_FIELDS * review: clarify that fields **must not** be prefixed * review: add deprecated note to Context Extension * review: Add note about filter expression terms exactly matching Item properties fields * review: add back bbox and note that bbox and geometry are not yet supported for filtering * review: add back bbox
1 parent 3a82739 commit c692a0a

12 files changed

+2775
-949
lines changed

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
66
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
77

8+
## Unreleased
9+
10+
### Added
11+
12+
- Minimum implementation (basic-cql2 conformance class) of the filter extension for the
13+
`/search` (GET and POST), `/collections/{collectionId}/items` (GET), and `/aggregate`
14+
(GET) endpoints. Only CQL2 JSON is supported.
15+
816
## [3.8.0] - 2024-05-29
917

1018
### Changed
@@ -465,6 +473,7 @@ Initial release, forked from [sat-api](https://github.com/sat-utils/sat-api/tree
465473
Compliant with STAC 0.9.0
466474

467475
<!-- [unreleased]: https://github.com/stac-utils/stac-api/compare/v3.6.0...main -->
476+
468477
[3.7.0]: https://github.com/stac-utils/stac-api/compare/v3.6.0...v3.7.0
469478
[3.6.0]: https://github.com/stac-utils/stac-api/compare/v3.5.0...v3.6.0
470479
[3.5.0]: https://github.com/stac-utils/stac-api/compare/v3.4.0...v3.5.0

README.md

Lines changed: 146 additions & 89 deletions
Large diffs are not rendered by default.

package-lock.json

Lines changed: 1455 additions & 759 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)