Skip to content

null fields in item search #166

Closed
Closed
@StijnCaerts

Description

@StijnCaerts

Describe the bug
When the fields extension is enabled, the search response will include null for every field that is not defined in an item.

To Reproduce
Steps to reproduce the behavior:

  1. Ingest STAC Item with minimal metadata, eg. https://github.com/radiantearth/stac-spec/blob/master/examples/simple-item.json
  2. Send GET or POST /search request
  3. The response contains null for the following fields of the features:
    • geometry.bbox
    • assets.*.description
    • assets.*.start_datetime
    • assets.*.created
    • ...
    • links[*].title
    • links[*].label

Expected behavior
According to the STAC API Fields extension, a field should not be specified in the search response if it does not apply to an Item.
https://github.com/stac-api-extensions/fields/blob/6662435f98b8fff6e5d8ffa0f212e3241a10bc6f/README.md?plain=1#L58-L61

Additional context
This bug can be solved in the following ways:
Fix it in stac-fastapi-elasticsearch by adding the exclude_unset=True parameter to the .json() call.
https://github.com/stac-utils/stac-fastapi-elasticsearch/blob/5f26c325940761da7ecd86677da7acceea69bb78/stac_fastapi/elasticsearch/stac_fastapi/elasticsearch/core.py#L512

Or fix it in stac-fastapi by adding exclude_unset to the PostFieldsExtension:filter_fields dictionary.
https://github.com/stac-utils/stac-fastapi/blob/09dac221d86fe70035aa6cddbc9a3f0de304aff5/stac_fastapi/extensions/stac_fastapi/extensions/core/fields/request.py#L57-L60

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions