bria 0.1.4

Multi-pipeline job orchestrator
Documentation
# sqlite source -> file sink (memory state)
[global]
tmp_dir = "/tmp/bria"

[global.log]
level = "info"
format = "json"

[global.state]
backend = "memory"

[server]
enabled = true
bind = "0.0.0.0"
port = 4000
prefix = "v1"

[[sources]]
id = "sqlite-in"
type = "sqlite"
path = "/tmp/bria/source.db"
poll_interval_secs = 1
id_field = "id"

[sources.table]
name = "bria_jobs"

[[tasks]]
id = "echo"
driver = "local"
cmd = "sh"
args = ["-c", "printf '{\"input\":\"%s\",\"pipeline\":\"%s\"}' \"$1\" \"$PIPELINE_ID\"", "sh", "{{job.payload.message}}"]
timeout_secs = 10

[tasks.stdout]
mode = "capture"
max_bytes = 4096

[tasks.stderr]
mode = "capture"
max_bytes = 4096

[[sinks]]
id = "file-out"
type = "file"
path = "/tmp/bria/results.jsonl"

[[pipelines]]
id = "sqlite-file-pipeline"
source = "sqlite-in"
sinks = ["file-out"]

[[pipelines.steps]]
id = "run"
type = "process"
task = "echo"