[package]
name = "flowscope-cli"
version.workspace = true
authors.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
homepage = "https://flowscope.pondpilot.io"
documentation = "https://docs.rs/flowscope-cli"
readme = "README.md"
keywords = ["sql", "lineage", "cli", "analysis", "database"]
categories = ["command-line-utilities", "database"]
description = "Command-line interface for FlowScope SQL lineage analyzer"
build = "build.rs"
[[bin]]
name = "flowscope"
path = "src/main.rs"
[features]
default = ["templating", "metadata-provider", "serve"]
templating = ["flowscope-core/templating"]
metadata-provider = ["sqlx", "tokio"]
integration-tests = ["metadata-provider"]
serve = ["dep:axum", "dep:tower-http", "dep:rust-embed", "dep:notify-debouncer-mini", "dep:mime_guess", "dep:open", "dep:walkdir", "dep:chrono", "tokio/macros", "tokio/signal"]
[dependencies]
flowscope-core.workspace = true
flowscope-export = { workspace = true, features = ["duckdb"] }
clap = { version = "4", features = ["derive"] }
serde.workspace = true
serde_json.workspace = true
anyhow = "1.0"
thiserror = "2.0"
tabled = "0.20"
owo-colors = "4"
is-terminal = "0.4"
sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "any", "postgres", "mysql", "sqlite"], optional = true }
tokio = { version = "1", features = ["rt-multi-thread"], optional = true }
axum = { version = "0.8", optional = true }
tower-http = { version = "0.6", features = ["fs", "cors", "limit"], optional = true }
rust-embed = { version = "8", features = ["include-exclude"], optional = true }
chrono = { version = "0.4", optional = true }
notify-debouncer-mini = { version = "0.5", optional = true }
mime_guess = { version = "2", optional = true }
open = { version = "5", optional = true }
walkdir = { version = "2", optional = true }
[dev-dependencies]
tempfile = "3"
rusqlite = "0.32"
tokio = { version = "1", features = ["macros", "rt-multi-thread", "time"] }
tower = { version = "0.5", features = ["util"] }
http-body-util = "0.1"
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] }