Write Pipelines

Basics

A pipeline is composed of one or more steps:

pipeline "my_job" {
step "http" "my_http_step" {
url = "https://example.com/my/webhook"
}
}

Each step has a type and a name, and the arguments are dependent on the type. The step types are sometimes referred to as "primitives". The previous example included an http step, but there are others - query, function, container, etc. You can even run other pipelines using a pipeline step.

You can run a pipeline manually from the command line:

flowpipe pipeline run my_job

You can also define a trigger that will start the pipeline in response to an event. For example, you can run it on a schedule with an interval trigger:

trigger "schedule" "my_hourly_trigger" {
schedule = "hourly"
pipeline = pipeline.my_job
}
pipeline "my_job" {
step "http" "my_http_step" {
url = "https://example.com/my/webhook"
}
}

Triggers, like steps, require 2 labels - a type and a name. There are multiple trigger types - http, schedule, query, etc.