Open-EO / openeo-processes

Interoperable processes for openEO's big Earth observation cloud processing.
https://processes.openeo.org
Apache License 2.0
48 stars 15 forks source link

load_stac_collection #377

Closed jdries closed 1 year ago

jdries commented 2 years ago

Proposed Process ID: load_stac_collection

Context

An openEO backend now only supports predefined collections, but properly configured STAC collections can also be loaded. This avoids the need for static config, and simplifies use cases like running an openEO backend out of the box.

There's a few bigger questions here:

Summary

Loads a collection from a STAC catalog.

Description

Loads a collection from a STAC catalog by its id and returns it as a processable data cube. The data that is added to the data cube can be restricted with the parameters spatial_extent, temporal_extent, bands and properties.

Parameters

(copy some from load_collection/load_result

collection_id

Optional: no

Description

The STAC collection id to use when querying the catalog

Data Type

string

access_token

Optional: yes

Description

Some catalogs may require an authorization header to be sent along with requests, both for catalog access and for data access.

Data Type

string

Return Value

Description

A data cube for further processing. The dimensions and dimension properties (name, type, labels, reference system and resolution) correspond to the collection's metadata, but the dimension labels are restricted as specified in the parameters.

Data Type

raster-cube

Categories (optional)

m-mohr commented 2 years ago

Looks pretty similar to load_result, which also allows loading via HTTP from STAC.

Question: collection_id is unclear to me - shouldn't that be a link to a STAC resource instead?

How will we deal with authentication headers? Can we do something generic?

I assume with access_token you mean Bearer token in the HTTP headers? STAC has no pre-defined security mechanism, so we can likely only go for tokens via HTTP Headers and/or query parameters.

Would it be useful to be able to override collection metadata?

Not sure. I assume normal users would not know what is missing so this would be a very technical solution that requires going through support usually.

jdries commented 1 year ago

@LukeWeidenwalker this would be the basis for the 'User collections' concept right?

m-mohr commented 1 year ago

API keys can be provided via the URL as query parameters.

Later, we can discuss an option where you can pass an object with headers to load_stac for authentication.