Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Headless Execution

The Headless Execution feature in EOxHub Workspaces enables automated execution of Jupyter notebooks and Argo Workflows directly from the eodash dashboard or programmatically via API endpoints. It is designed for streamlined, reproducible, and user-friendly processing of Earth Observation tasks and workflows.

headless_execution

What is Headless Execution?

Headless execution allows you to:

It is particularly useful for:


Argo Workflows & pygeoapi Integration

EOxHub uses pygeoapi to expose Argo Workflows as standard OGC-compliant processes. This enables external tools or dashboards to:

Each job has:

headless_execution

Triggering Notebook Jobs

Parameterized Jupyter notebooks can also be exposed for headless execution. This provides a direct path from interactive algorithm development in JupyterLab to repeatable, automated processing.

Input variables are defined in a notebook cell tagged parameters. Values supplied with an execution request replace the defaults before the complete notebook is run.

This makes it possible to reuse the same notebook with different:

The executed notebook is retained as part of the result, including the supplied parameters, generated outputs, and any errors. This supports reproducibility, traceability, and debugging.

For a practical walkthrough, see Run a Parameterized Notebook with Headless Execution tutorial.

Notebooks or Argo Workflows?

Parameterized notebooks are a convenient starting point when an algorithm is already being developed in JupyterLab and can run within a single notebook environment.

Argo Workflows are more suitable when processing consists of multiple steps, uses custom container images, requires explicit orchestration, or is intended for recurring operational execution.


Monitoring and Managing Jobs

Once triggered, jobs can be tracked in the Headless Execution section of the workspace UI:

headless_execution

Integration Guidance