openEO Federation Extension

The openEO Federation extension is a set of additional specifications, on top of the standard openEO API specification, to address the need for extra metadata in the context of federated openEO processing, where multiple (separately operated) openEO services are bundled together behind a single API endpoint.

Accessing federation extension metadata

The openEO Python client library provides access to this additional metadata in a couple of resources.

Added in version 0.38.0: initial support to access federation extension related metadata.

Warning

this API is experimental and subject to change.

Backend details

Participating backends in a federation are listed under the federation field of the capabilities document (GET /) and can be inspected using OpenEoCapabilities.ext_federation_backend_details():

import openeo
connection = openeo.connect(url=...)
capabilities = connection.capabilities()
print("Federated backends:", capabilities.ext_federation_backend_details())

Unavailable backends (federation:missing)

When listing resources like collections (with Connection.list_collections()), processes (with Connection.list_processes()), jobs (with Connection.list_jobs()), etc., there might be items missing due to federation participants being temporarily unavailable. These missing federation components are listed in the response under the federation:missing field and can be inspected as follows:

import openeo
connection = openeo.connect(url=...)
collections = connection.list_collections()
print("Number of collections:", len(collections))
print("Missing federation components:", collections.ext_federation_missing())

Note that the collections object in this example, returned by Connection.list_collections(), acts at the surface as a simple list of dictionaries with collection metadata, but also provides additional properties/methods like ext_federation_missing().