Your first workflow
Learn how to run your first simple workflow. This tutorial assumes that you’ve already downloaded and extracted Steep and that it is running and listens to incoming requests on port 8080.
A Steep workflow consists of a set of processing services that are executed in a specific order (see How does Steep work?). Every service that should be executed has to be described with so-called service metadata.
In order to run a workflow, you therefore need at least two things:
- The workflow itself as a YAML document or JSON file (we prefer YAML for its readability).
- The service metadata for all services that are used in the workflow. This metadata has to be stored in the services configuration file. The default path to this file is
conf/services/services.yamlin Steep’s application directory but can be configured.
Step 1: Add service metadata
Let’s assume we want to create a workflow that creates a copy of a file. For this, we can use the
cp command, which is built-in into all UNIX distributions (under Windows, you can use the
copy command instead). Open the file
conf/services/services.yaml and add service metadata below.
The default distribution of Steep already contains metadata for this service, so you actually don’t need to do anything here.
This metadata describes a service with the ID
cp. It has a human-readable
path attribute specifies the path to the service’s executable. Since the cp command is built-in, we can just use
cp here (replace this with
copy under Windows).
The service has two parameters,
output_file, which represent the service’s input and output parameters, respectively. Both have a cardinality of
1..1, which means they are mandatory. They also have human-readable names and descriptions.
Steep uses this metadata later during workflow execution to generate a command line in the following form:
Step 2: Restart Steep
Restart Steep if it is running, so it can pick up the updated configuration.
Step 3: Create the workflow
Now, let’s create a workflow that uses the new
cp service. Create a file
copy.yaml anywhere on your computer and add the following content:
The workflow consists of one execute action calling our
/path/to/example.txt is the path to the file that should be copied. Replace this with the absolute path to any file on your computer.
The name of the output file will be generated later during workflow execution by Steep. It will be stored in the variable
Any output filename generated is relative to either Steep’s temporary directory (
tmpPath) or output directory (
outPath), which can be configured in the general configuration file. In our workflow, we set
true to generate a filename in the output directory.
Step 4: Submit the workflow
It’s now time to submit the workflow to Steep. Run the following command on your terminal:
Steep will return a submission object with runtime information about the workflow including a unique ID. You can either open the web-based user interface at http://localhost:8080 or monitor the workflow execution on the command line:
[WORKFLOW ID] with the unique ID returned by Steep after submitting the workflow.
When the workflow has finished, its status will change to
SUCCESS. You will find the file copy in the output directory, which is
/tmp/steep/out by default. Steep creates a subdirectory for each workflow based in the workflow’s ID: