# Available steps table

## Overview

FLUX provides three types of scripts, each with specific available steps for workflow automation. This page details all available steps and their properties for each script type.

---

## Management Script Steps

The `management_script` supports the following steps:

### Set Value in Objects

Stores different types of values in one of three available objects using a typed key.

**Properties:**

| Property Name | Type | Label | Options |
|--------------|------|-------|---------|
| dictionary name | str | Object Name | Results, Context, Settings |
| key name | str | Name of key | — |
| value type | — | Type of value | str, number, none, expression |
| value | — | — | — |

### Set SSH Key Pair in Context

Retrieves an SSH key pair and stores it in one of the defined objects using a custom key.

**Properties:**

| Property Name | Type | Label | Options |
|--------------|------|-------|---------|
| privKeyKey | — | — | — |
| pubKeyKey | — | — | — |

### Set Last Configuration

Retrieves the element's last configuration and stores it in one of the available objects using a custom key.

**Properties:**

| Property Name | Type | Label | Options |
|--------------|------|-------|---------|
| dictionary name | str | — | Results, Context, Settings |
| key name | str | — | — |

---

## Processing Script Steps

The `processing_script` supports the following steps:

### Set Value in Objects

Stores different types of values in one of three available objects using a typed key.

**Properties:**

| Property Name | Type | Label | Options |
|--------------|------|-------|---------|
| dictionary name | str | Object Name | Results, Context, Settings |
| key name | str | Name of key | — |
| value type | — | Type of value | str, number, none, expression |
| value | — | — | — |

### Set Last Configuration

Retrieves the element's last configuration and stores it in one of the available objects using a custom key.

**Properties:**

| Property Name | Type | Label | Options |
|--------------|------|-------|---------|
| dictionary name | — | — | — |
| key name | — | — | — |

### Set Variable on Element Config

Sets an attribute in the element configuration object.

**Properties:**

| Property Name | Type | Label | Options |
|--------------|------|-------|---------|
| key name | — | — | — |
| value type | — | — | — |
| value | — | — | — |

### If Condition Simple for Numbers

Checks a simple condition with a numeric variable. Examples: `if a=b`, `if a >= b`, `if a < 12`

**Properties:**

| Property Name | Type | Label | Options |
|--------------|------|-------|---------|
| variable to evaluate | — | — | — |
| operator | — | — | — |
| value | — | — | — |

### If Condition Simple for Strings

Checks a simple condition with a string variable. Examples: `if a.startswith('device_')`, `if a in b`, `if s.endswith(':')`

**Properties:**

| Property Name | Type | Label | Options |
|--------------|------|-------|---------|
| variable to evaluate | — | — | — |
| operator | — | — | — |
| value | — | — | — |

### If Condition Advanced

Evaluates Python conditions. Examples: `if context['host'] == "0.0.0.0.0"`, `if not data.get('apt_upgradable.table')`

**Properties:**

| Property Name | Type | Label | Options |
|--------------|------|-------|---------|
| condition | — | — | — |

### Pause

Executes a `time.sleep(time)` operation.

**Properties:**

| Property Name | Type | Label | Options |
|--------------|------|-------|---------|
| time | — | — | — |

### Pause with Log

Executes a sleep operation with logging.

**Properties:**

| Property Name | Type | Label | Options |
|--------------|------|-------|---------|
| time | — | — | — |

### Update Element Credentials

Reads SSH credentials from context and updates them in the element.

**Properties:**

| Property Name | Type | Label | Options |
|--------------|------|-------|---------|
| privKeyKey | — | — | — |
| pubKeyKey | — | — | — |

### Wait for Connect

Waits for a specified time until the connection against the element executes correctly.

**Properties:**

| Property Name | Type | Label | Options |
|--------------|------|-------|---------|
| timeout | — | — | — |
| retry | — | — | — |
| sleep | — | — | — |

### Set Variable Value

**Note:** To be documented.

**Properties:**

| Property Name | Type | Label | Options |
|--------------|------|-------|---------|
| variable_name | — | — | — |
| value_type | — | — | — |
| value | — | — | — |

---

## Execution Script Steps

The Flow `execution_script` includes all steps from the Processing Script, plus the following additional steps:

### Filter Flow Elements

Applies a function to filter the given elements, with support for in-place modification or returning a new list.

**Properties:**

| Property Name | Type | Label | Options |
|--------------|------|-------|---------|
| elements | list | List of elements | elements, ... |
| filter_function | function | Function to filter elements | — |
| inplace | bool | Replace or return | True, False |

### Task Execution

Runs a specific task on given elements. If the flow containing the task is serial, the elements parameter is not required.

**Properties:**

| Property Name | Type | Label | Options |
|--------------|------|-------|---------|
| short_name | str | Task short name | — |
| elements | list | List of elements to run the task | elements, ... |
| retry_attempts | int | Retry attempts | — |
| retry_delay | int | Retry delay | — |

### Flow Execution

Runs a specific flow on given elements.

**Properties:**

| Property Name | Type | Label | Options |
|--------------|------|-------|---------|
| short_name | str | Flow short name | — |
| elements | list | List of elements to run the flow | elements, ... |
| retry_attempts | int | Retry attempts | — |
| retry_delay | int | Retry delay | — |