[package] name = "fabro-server" edition.workspace = true version.workspace = true publish = false license.workspace = true description = "HTTP server for Fabro pipelines" [lib] doctest = false [lints] workspace = true [dependencies] fabro-auth = { path = "../fabro-auth" } fabro-install = { path = "../fabro-install" } fabro-spa = { path = "../fabro-spa" } fabro-config = { path = "../fabro-config" } fabro-graphviz = { path = "../fabro-graphviz" } fabro-hooks = { path = "../fabro-hooks" } fabro-interview = { path = "../fabro-interview" } fabro-slack = { path = "../fabro-slack" } fabro-workflow = { path = "../fabro-workflow" } fabro-validate = { path = "../fabro-validate" } fabro-sandbox = { path = "../fabro-sandbox", features = ["daytona"] } fabro-github = { path = "../fabro-github" } fabro-agent = { path = "../fabro-agent" } fabro-llm = { path = "../fabro-llm" } fabro-model = { path = "../fabro-model" } fabro-proc = { path = "../fabro-proc" } fabro-retro = { path = "../fabro-retro" } fabro-types = { path = "../fabro-types" } fabro-util = { path = "../fabro-util" } fabro-api = { path = "../fabro-api" } fabro-store = { path = "../fabro-store" } fabro-vault = { path = "../fabro-vault" } fabro-http.workspace = true fabro-redact.workspace = true fabro-static.workspace = true chrono.workspace = true futures-util.workspace = true axum.workspace = true axum-extra.workspace = true cookie.workspace = true dirs.workspace = true globset.workspace = true tower = "0.5" tower-http = { version = "0.6", features = ["trace"] } tokio-stream = { workspace = true, features = ["sync"] } base64.workspace = true jsonwebtoken.workspace = true hkdf.workspace = true tokio.workspace = true serde.workspace = true serde_json.workspace = true serde_yaml = "0.9" anyhow.workspace = true clap.workspace = true toml.workspace = true toml_edit.workspace = true tracing.workspace = true ulid.workspace = true uuid.workspace = true hmac.workspace = true sha2.workspace = true hex.workspace = true rand.workspace = true bytes = "1" tempfile = "3" object_store.workspace = true # reqwest 0.12 is a direct dep only so `NoProxyReqwestConnector` can build a # `reqwest::Client` of the version object_store accepts. Rest of the crate # talks to HTTP via fabro-http (reqwest 0.13). object_store_reqwest = { package = "reqwest", version = "0.12", default-features = false, features = ["rustls-tls-native-roots"] } mime_guess.workspace = true regex.workspace = true semver.workspace = true walkdir.workspace = true multer = "3" thiserror.workspace = true ipnet = "2.11.0" percent-encoding.workspace = true url = "2" zeroize.workspace = true strum.workspace = true [build-dependencies] chrono = { workspace = true } [dev-dependencies] tokio = { workspace = true, features = ["test-util", "macros"] } tower = "0.5" http-body-util = "0.1" httpmock = "0.8" serde_yaml = "0.9" tracing-subscriber.workspace = true async-trait.workspace = true tokio-util.workspace = true fabro-macros = { path = "../fabro-macros" } fabro-sandbox = { path = "../fabro-sandbox", features = ["test-support"] } fabro-test = { workspace = true } fabro-types = { path = "../fabro-types", features = ["test-support"] }