# Engines

## Understanding Engines in Workbench

An engine is an external service that executes WDL ( [Workflow Description Language](https://github.com/openwdl/wdl/blob/main/versions/1.0/SPEC.md) ) workflows in [Workbench](https://github.com/DNAstack/dnastack-product-docs/blob/main/docs/workbench/engines/broken-reference/README.md). These engines interpret your workflows, generate task definitions, and manage their execution in your chosen computing environment. You can [connect an engine](/products/workbench/engines/adding-and-updating-an-engine.md) running in your own environment to your Workbench account, which will then use that engine to submit and monitor workflow runs.

## How Engines Work

The engine is responsible for processing WDL, an open, community-driven workflow language stewarded by the [OpenWDL organization](https://openwdl.org). WDL is designed to be both easy to read and write, while scaling effectively from simple command-line tools to complex parallel workflows.

When you submit a workflow, your engine:

* Interprets the WDL script
* Generates individual task definitions
* Manages task dependencies and scheduling
* Dispatches tasks to execution services
* Handles resource allocation and management

Workflow engines that support WDL, such as Cromwell and miniWDL, provide these capabilities while managing the resources required for workflow execution.

## Supported Environments

You can run Workbench engines in various environments:

* [Amazon Web Services](/products/workbench/engines/adding-and-updating-an-engine/aws-healthomics.md)
* [Google Cloud Platform](/products/workbench/engines/adding-and-updating-an-engine/google-cloud-platform.md)
* [Microsoft Azure](/products/workbench/engines/adding-and-updating-an-engine/microsoft-azure.md)
* [On Premises](/products/workbench/engines/adding-and-updating-an-engine/on-premises.md)

## Viewing and Accessing Engines

Access your engines through either:

* The [Settings Page](https://workbench.omics.ai/settings) in the Workbench UI
* The [Command Line Interface](/products/command-line-interface/reference/workbench/engines-list.md) (CLI)

From the Settings page, use the search bar to find specific engines. Click any engine row to view detailed information about its state, configuration, and parameters.

## Default Engine Settings

The first engine you create in Workbench becomes your default engine. This default engine is pre-populated whenever you submit a workflow run, though you can change engines for specific runs. When submitting workflow runs from the CLI, the default engine is used if you omit the `--engine` flag.

To change your default engine:

1. Navigate to Settings
2. Hover over your chosen engine
3. Click the "Set as Default" star button

{% hint style="info" %}
You cannot delete the default engine. If you want to delete the default engine, you must first set another engine as the default.
{% endhint %}

## Actions

When viewing the engine list, hover over any row to access these actions:

#### **Edit Engine**

Clicking on the `Edit Engine` pencil icon button will allow you to update the engine configuration, engine name, and engine parameters

#### **Set as Default**

Clicking on the `Set as Default` star icon button will set the engine as the default engine in Workbench

#### **Copy Engine Id**

Clicking on the `Copy Engine Id` duplicate icon button will copy the engine ID to your clipboard. This is useful when you need to reference the engine ID in the CLI or API

#### **Delete Engine**

Clicking on the `Delete Engine` trashcan icon will remove the engine from Workbench.

{% hint style="danger" %}
This action is irreversible.
{% endhint %}

* You must set a new default before deleting a default engine
* Currently running workflows will be marked as failed but continue running
* The underlying infrastructure remains unaffected and must be deleted separately
* Previous runs remain visible but you cannot submit new runs or view logs

## Engine Status

Workbench continuously monitors connected engines to ensure availability. The system checks:

* **Connectivity** to API endpoints
* **Credential** authentication
* **Permission** verification
* **Storage** access
* **Log** streaming capability

Each engine runs only the checks relevant to its type and configuration. Failed checks put the engine in `ERROR` state until resolved, while passing checks keep it `ONLINE`. You can view engine status in the UI - a green dot indicates `ONLINE`, while a red dot shows `ERROR`. For troubleshooting help, consult your engine's configuration guide.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.omics.ai/products/workbench/engines.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
