workspace

A Flowpipe workspace is a "profile" that allows you to define options for running Flowpipe.

workspace "my_server" {
host = "local"
listen = "network"
port = 7103
update_check = false
memory_max_mb = 2048
base_url = "https://84c5df474.ngrok-free.dev"
}

Flowpipe workspaces allow you to define multiple named configurations and easily switch between them using the --workspace argument or FLOWPIPE_WORKSPACE environment variable.

flowpipe server --workspace my_server

To learn more, see Managing Workspaces →

Arguments

ArgumentDefaultDescription
basenoneA reference to a named workspace resource that this workspace should source its definition from. Any argument can be overridden after sourcing via base.
base_urlhttp://localhost:7103Set the base URL to use for triggers and integrations. This is the base URL that Flowpipe advertises when it interacts with external systems to allow them to call back to Flowpipe. This may include the DNS or IP address of the system on which you are running Flowpipe, or it may be a reverse proxy such as ngrok.
hostnoneSet the remote Flowpipe API host to connect to. This allows you to run Flowpipe commands against a flowpipe host instead of the current working directory.
inputtrueEnable/Disable interactive prompts for missing variables. To disable prompts and fail on missing variables, set it to false. This is useful when running from scripts.

CLI: --input
listennetworkSpecifies the IP addresses on which flowpipe server will listen for connections from clients. Currently supported values are local (localhost only) or network (all IP addresses).
log_leveloffSet the logging output level
max_concurrency_container25Set the maximum number of container step instances that can execute concurrently across all pipeline instances.
max_concurrency_function50Set the maximum number of function step instances that can execute concurrently across all pipeline instances.
max_concurrency_http500Set the maximum number of http step instances that can execute concurrently across all pipeline instances.
max_concurrency_query50Set the maximum number of query step instances that can execute concurrently across all pipeline instances.
memory_max_mb1024Set a memory soft limit for the flowpipe process. Set to 0 to disable the memory limit. This can also be set via the FLOWPIPE_MEMORY_MAX_MB environment variable.
outputprettySet the console output format: pretty, plain, yaml or json.
port7103Specifies the TCP port on which flowpipe server will listen for connections from clients.
telemetryinfoSet the telemetry level in Flowpipe: info or none
update_checktrueEnable or disable automatic update checking.
watchtrueWatch .mod files for changes when running flowpipe server.

Workspaces are defined using the workspace block in one or more Flowpipe config files. Flowpipe will load ALL configuration files (*.fpc) from every directory in the configuration search path, with decreasing precedence. The set of workspaces is the union of all workspaces defined in these directories.

The workspace named default is special; If a workspace named default exists, it will be used whenever the --workspace argument is not passed to Flowpipe. Creating a default workspace in ~/.flowpipe/config/workspaces.fpc provides a way to set all defaults.

Note that the HCL argument names are the same as the equivalent CLI argument names, except using an underscore in place of a dash:

Workspace ArgumentEnvironment VariableArgument
base_urlFLOWPIPE_BASE_URL--base-url
hostFLOWPIPE_HOST--host
input--input
listenFLOWPIPE_LISTEN--listen
log_levelFLOWPIPE_LOG_LEVEL
max_concurrency_containerFLOWPIPE_MAX_CONCURRENCY_CONTAINER--max-concurrency-container
max_concurrency_functionFLOWPIPE_MAX_CONCURRENCY_FUNCTION--max-concurrency-function
max_concurrency_httpFLOWPIPE_MAX_CONCURRENCY_HTTP--max-concurrency-http
max_concurrency_queryFLOWPIPE_MAX_CONCURRENCY_QUERY--max-concurrency-query
memory_max_mbFLOWPIPE_MEMORY_MAX_MB
output--output
portFLOWPIPE_PORT--port
telemetryFLOWPIPE_TELEMETRY
update_checkFLOWPIPE_UPDATE_CHECK
watch--watch

Examples

workspace "server" {
host = "local"
listen = "network"
port = 7103
update_check = false
memory_max_mb = 2048
base_url = "https://84c5df474.ngrok-free.dev"
}
workspace "local_01" {
output = "pretty"
watch = true
input = true
host = "http://localhost:7103"
port = 7103
listen = local
update_check = true
telemetry = "info"
log_level = "info"
memory_max_mb = 1024
base_url = "https://84c5df474.ngrok-free.dev"
max_concurrency_container = 50
max_concurrency_function = 50
max_concurrency_http = 250
max_concurrency_query = 50
}
workspace "dev_server" {
base = workspace.server
log_level = "debug"
port = 7104
base_url = "https://84c5df474.ngrok-free.dev"
}