[package] name = "fabro-server" edition.workspace = true version.workspace = true publish = false license.workspace = true description = "HTTP server for Fabro pipelines" [lib] doctest = false [features] test-support = ["fabro-store/test-support"] [[test]] name = "it" path = "tests/it/main.rs" required-features = ["test-support"] [lints] workspace = true [dependencies] fabro-automation = { path = "../../components/fabro-automation" } fabro-auth = { path = "../../foundation/fabro-auth" } fabro-install = { path = "../../components/fabro-install" } fabro-spa = { path = "../fabro-spa" } fabro-config = { path = "../../foundation/fabro-config" } fabro-environment.workspace = true fabro-graphviz = { path = "../../components/fabro-graphviz" } fabro-hooks = { path = "../../components/fabro-hooks" } fabro-interview = { path = "../../components/fabro-interview" } fabro-slack = { path = "../../components/fabro-slack" } fabro-workflow = { path = "../../components/fabro-workflow" } fabro-workflow-version = { path = "../../components/fabro-workflow-version" } fabro-validate = { path = "../../components/fabro-validate" } fabro-sandbox = { path = "../../components/fabro-sandbox", features = ["daytona", "docker"] } fabro-github = { path = "../../components/fabro-github" } fabro-agent = { path = "../../components/fabro-agent" } fabro-llm = { path = "../../components/fabro-llm" } fabro-manifest = { path = "../../components/fabro-manifest" } fabro-mcp-store = { path = "../../components/fabro-mcp-store" } fabro-model = { path = "../../foundation/fabro-model" } fabro-proc = { path = "../../foundation/fabro-proc" } fabro-template = { path = "../../foundation/fabro-template" } fabro-tool = { path = "../../components/fabro-tool" } fabro-types = { path = "../../foundation/fabro-types" } fabro-util = { path = "../../foundation/fabro-util" } fabro-api = { path = "../../foundation/fabro-api" } fabro-client = { path = "../../foundation/fabro-client" } fabro-db = { path = "../../foundation/fabro-db" } fabro-store = { path = "../../components/fabro-store" } fabro-vault = { path = "../../foundation/fabro-vault" } fabro-variable = { path = "../../components/fabro-variable" } fabro-http.workspace = true fabro-redact.workspace = true fabro-static.workspace = true chrono.workspace = true croner.workspace = true futures-util.workspace = true axum = { workspace = true, features = ["ws"] } axum-extra.workspace = true cookie.workspace = true dirs.workspace = true globset.workspace = true tower = "0.5" tower-http = { version = "0.6", features = ["trace", "compression-br", "compression-gzip"] } tokio-stream = { workspace = true, features = ["sync"] } tokio-util.workspace = true base64.workspace = true jsonwebtoken.workspace = true hkdf.workspace = true tokio.workspace = true serde.workspace = true serde_json.workspace = true serde_yaml = "0.9" sqlx.workspace = true anyhow.workspace = true async-trait.workspace = true async_zip.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 percent-encoding.workspace = true url = "2" zeroize.workspace = true strum.workspace = true sysinfo = { version = "0.35.2", default-features = false, features = ["system", "disk"] } [build-dependencies] fabro-build-support = { path = "../../foundation/build-support" } chrono = { workspace = true } [dev-dependencies] fabro-auth = { path = "../../foundation/fabro-auth", features = ["test-support"] } git2.workspace = true 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 tokio-util.workspace = true tokio-tungstenite.workspace = true fabro-macros = { path = "../../foundation/fabro-macros" } fabro-sandbox = { path = "../../components/fabro-sandbox", features = ["test-support"] } fabro-store = { path = "../../components/fabro-store", features = ["test-support"] } fabro-test = { workspace = true } fabro-types = { path = "../../foundation/fabro-types", features = ["test-support"] }