Files
ResInsight/README-experimental-workflow-ui.md
T
Kristian Bendiksen 65942d455d Workflows: Read workflow schemas with the taskmaestro CLI
Replace the rips.taskmaestro_helper introspect subcommand with
`python -m taskmaestro workflow describe --json`. RimWorkflowDescribeTools
converts the describe output (JSON schemas, depends_on, config_values)
into the workflow graph used by the Workflow UI. This also adds support
for collect dependencies and maps rips.Reservoir to EclipseCase pickers.
2026-10-05 19:56:36 +02:00

87 lines
2.8 KiB
Markdown

# 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
```
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"
```
## 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.
- **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.
- **The workflow cannot connect:** Enable **Python Script Server** and restart
ResInsight.