2026-09-18 14:45:41 +02:00
|
|
|
# Using the experimental Workflow UI
|
|
|
|
|
|
|
|
|
|
The Workflow UI adds a **Workflows** node to the ResInsight project tree. It
|
|
|
|
|
requires a Python environment containing `rips`, `taskmaestro`, and the
|
|
|
|
|
workflow package.
|
|
|
|
|
|
|
|
|
|
These instructions assume ResInsight is already installed and working.
|
|
|
|
|
Python 3.12 or newer and Git are required.
|
|
|
|
|
|
|
|
|
|
## 1. Create the Python environment
|
|
|
|
|
|
|
|
|
|
Choose a permanent location for the environment and workflow files:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
mkdir -p ~/resinsight-workflows
|
|
|
|
|
python3 -m venv ~/resinsight-workflows/.venv
|
|
|
|
|
source ~/resinsight-workflows/.venv/bin/activate
|
|
|
|
|
python -m pip install --upgrade pip
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Install `rips` from the `Python` directory supplied with ResInsight:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
python -m pip install -e /path/to/ResInsight/Python
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
For a source checkout, use `/path/to/ResInsight/GrpcInterface/Python` instead.
|
|
|
|
|
|
|
|
|
|
Clone and install the example workflows. This also installs `taskmaestro`:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
git clone https://github.com/OPM/taskmaestro-resinsight.git \
|
|
|
|
|
~/resinsight-workflows/taskmaestro-resinsight
|
|
|
|
|
python -m pip install -e ~/resinsight-workflows/taskmaestro-resinsight
|
|
|
|
|
```
|
|
|
|
|
|
2026-09-30 14:03:53 +02:00
|
|
|
ResInsight reads workflows with `python -m taskmaestro workflow describe`, which
|
|
|
|
|
needs a `taskmaestro` version that reports `config_values`
|
|
|
|
|
([OPM/taskmaestro#13](https://github.com/OPM/taskmaestro/pull/13)). Until that
|
|
|
|
|
is released, install it from Git:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
python -m pip install "git+https://github.com/OPM/taskmaestro.git@main"
|
|
|
|
|
```
|
|
|
|
|
|
2026-09-18 14:45:41 +02:00
|
|
|
## 2. Register the workflows
|
|
|
|
|
|
|
|
|
|
ResInsight discovers workflows in `~/.taskmaestro/workflows`:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
mkdir -p ~/.taskmaestro/workflows
|
|
|
|
|
for workflow in ~/resinsight-workflows/taskmaestro-resinsight/workflows/*/; do
|
|
|
|
|
ln -sfn "$(realpath "$workflow")" \
|
|
|
|
|
~/.taskmaestro/workflows/"$(basename "$workflow")"
|
|
|
|
|
done
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 3. Configure ResInsight
|
|
|
|
|
|
|
|
|
|
Open **Edit → Preferences** and set:
|
|
|
|
|
|
|
|
|
|
1. **Scripting → Python Executable Location** to the absolute path printed by:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
realpath ~/resinsight-workflows/.venv/bin/python
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
2. **Scripting → Enable Python Script Server** to on.
|
|
|
|
|
3. **System → Experimental Features → Workflows** to on.
|
|
|
|
|
|
|
|
|
|
Restart ResInsight. The **Workflows** node should now appear in the project
|
|
|
|
|
tree. Select a workflow, provide its inputs, and click **Run**.
|
|
|
|
|
|
|
|
|
|
## Troubleshooting
|
|
|
|
|
|
|
|
|
|
- **No Workflows node:** Enable the experimental feature and restart
|
|
|
|
|
ResInsight.
|
|
|
|
|
- **The Workflows node is empty:** Check that each directory under
|
|
|
|
|
`~/.taskmaestro/workflows` contains `workflow.yaml`, then restart ResInsight.
|
|
|
|
|
- **A Python module cannot be found:** Confirm that **Python Executable
|
|
|
|
|
Location** points to the virtual environment created above.
|
2026-09-30 14:03:53 +02:00
|
|
|
- **A workflow fails to load with `invalid choice: 'workflow'`, or its inputs
|
|
|
|
|
are not pre-filled from `input.yaml`:** The installed `taskmaestro` is too
|
|
|
|
|
old; reinstall it as described above.
|
2026-09-18 14:45:41 +02:00
|
|
|
- **The workflow cannot connect:** Enable **Python Script Server** and restart
|
|
|
|
|
ResInsight.
|