eodag icon indicating copy to clipboard operation
eodag copied to clipboard

create a providers extension

Open alambare opened this issue 7 months ago • 1 comments

Is your feature request related to a problem? Please describe. EODAG server allow a provider filter for most of its endpoint. But we don't have any schema to support it. We need to define a STAC extension describing the spec for this filter. This will help users onboard with the API.

Describe the solution you'd like

  • [ ] define a schema
  • [ ] write example
  • [ ] write a documentation

The current implementation is a single provider filter that accept as value the name of a host provider. I suggest we extend this definition to cross providers searches and considering other roles as well (producer, processor, licensor).

We could have something like that for filter:

{
    "providers": [
        {
            "name": "peps",
            "role": "host"
        },
        {
            "name": "another_provider",
            "role": "processor"
        }
    ]
}

We could default to host if not specified otherwise to allow more concise format with:

{
    "providers": [
        {
            "name": "peps",
        }
    ]
}

A GET filter shape could be

/search?providers=peps:host,another_provider:processor

And allow more concise as well:

/search?providers=peps,another_provider:processor

We should support this endpoint everywhere it is already supported by EODAG:

  • /collections
  • /collections/{collectionId}
  • /collections/{collectionId}/items
  • /collections/{collectionId}/items/{featureId}
  • /queryables
  • /queryables/{collectionId}
  • /search GET and POST
  • /catalogs/{catalogPath}
  • /catalogs/{catalogPath}/items
  • /catalogs/{catalogPath}/items/{featureId}

alambare avatar Nov 23 '23 09:11 alambare