> For the complete documentation index, see [llms.txt](https://docs.erathos.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.erathos.com/api/quickstart/prefect.md).

# Prefect

The Prefect template is designed to create a new execution of type **Flow**. To use this template, specific variables and secrets must be pre-configured in your environment.

## **Prerequisites**

Before proceeding with the template configuration, the following must be set up in the environment:

* **Variables**:
  * **`prefect_api_version`**: Specifies the Prefect API version being used.
  * **`prefect_flow_id`**: Identifies the Prefect Flow to be executed.
* **Secrets**:
  * **`prefect_api_key`**: Authentication token for secure access to the Prefect API.

### Additional Requirements for Prefect Cloud

For users on the **Cloud** version of Prefect, the following additional variables are required:

* **`prefect_account_id`**: Identifier for your Prefect account.
* **`prefect_workspace_id`**: Identifier for the specific Prefect workspace being used.

## Triggering a flow

When a registered job in Erathos successfully completes, the specified Flow will be triggered.

### Prefect Cloud

POST Payload:

```json
{
  "description": "Create Prefect Cloud flow run",
  "is_active": true,
  "method": "POST",
  "url": "https://api.prefect.cloud/api/accounts/${{variables.account_id}}/workspaces/${{variables.workspace_id}}/flow_runs/",
  "header": {
    "Content-Type": "application/json",
    "Authorization": "Bearer ${{secrets.prefect_api_key}}"
    "x-prefect-api-version": "${{variables.prefect_api_version}}"
  },
  "body": {
    "name": "erathos_run_${{erathos.table_name}}"
    "flow_id": "${{variables.prefect_flow_id}}",
    "idempotency_key": "${{erathos.execution_id}}"
  },
  "rules": [
  ],
  "jobs": [
    "<ERATHOS_JOB_ID>",
  ]
}
```

### Self-hosted

```json
{
  "description": "Create Self-hosted Prefect flow run",
  "is_active": true,
  "method": "POST",
  "url": "https://${{variables.prefect_api_url}}/api/flow_runs/",
  "header": {
    "Content-Type": "application/json",
    "Authorization": "Bearer ${{secrets.prefect_api_key}}"
    "x-prefect-api-version": "${{variables.prefect_api_version}}"
  },
  "body": {
    "name": "erathos_run_${{erathos.table_name}}"
    "flow_id": "${{variables.prefect_flow_id}}",
    "idempotency_key": "${{erathos.execution_id}}"
  },
  "rules": [
  ],
  "jobs": [
    "<ERATHOS_JOB_ID>",
  ]
}
```
