Add parameters to SummaryStore.search_items to enable factoring the filter and sortby extensions into the database query, thus moving the logic out of _handle_search_request and search_stac_items in _stac.py, where it was previously causing issues when results were paginated, as highlighted in #579.
Also took the opportunity to fix logic that was missing or out of line with the STAC API spec, such as reported in #536 and initially attempted in #570.
The STAC API extension specs are sometimes unclear or ambiguous around expected behaviour, so I have chosen to interpret them in the ways that seem the most reasonable and consistent. Most notably,
sortby will ignore any undefined properties,
both sortby and filter will recognise any potential variant of a property name (stac name (ex: created), eo3 name (ex: odc:processing_datetime), and metadata type search field name (ex: creation_time)) as syntactically valid for that property.
Add parameters to
SummaryStore.search_items
to enable factoring thefilter
andsortby
extensions into the database query, thus moving the logic out of_handle_search_request
andsearch_stac_items
in_stac.py
, where it was previously causing issues when results were paginated, as highlighted in #579.Also took the opportunity to fix logic that was missing or out of line with the STAC API spec, such as reported in #536 and initially attempted in #570.
The STAC API extension specs are sometimes unclear or ambiguous around expected behaviour, so I have chosen to interpret them in the ways that seem the most reasonable and consistent. Most notably,
sortby
will ignore any undefined properties,sortby
andfilter
will recognise any potential variant of a property name (stac name (ex:created
), eo3 name (ex:odc:processing_datetime
), and metadata type search field name (ex:creation_time
)) as syntactically valid for that property.📚 Documentation preview 📚: https://datacube-explorer--591.org.readthedocs.build/en/591/