[package]
name = "breathe-api-server"
version = "0.1.29"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
description = "breathe's REST surface (axum) over the BreatheStore facade — the same typed core the MCP drives. Routes for bands + nodepools + catalog mirror spec/breathe.openapi.yaml (the source of truth); handlers are kube-rs facade calls (the design's legit hand-serve)."
[[bin]]
name = "breathe-api-server"
path = "src/main.rs"
[dependencies]
breathe-facade = { path = "../breathe-facade", version = "0.1.29" }
breathe-provider = { path = "../breathe-provider", version = "0.1.29" }
rustls = { version = "0.23", default-features = false, features = ["aws_lc_rs"] }
axum = "0.7"
async-graphql = "7"
async-graphql-axum = "7"
tonic = "0.12"
prost = "0.13"
prost-types = "0.13"
pbjson = "0.7"
pbjson-types = "0.7"
tokio = { version = "1.40", features = ["macros", "rt-multi-thread"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1.0"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
[build-dependencies]
tonic-build = "0.12"
prost-build = "0.13"
pbjson-build = "0.7"
protoc-bin-vendored = "3"
which = "6"
[dev-dependencies]
async-trait = "0.1"
serde_yaml = "0.9"
tower = { version = "0.5", features = ["util"] }
http-body-util = "0.1"
breathe-catalog = { path = "../breathe-catalog", version = "0.1.29" }
[lints]
workspace = true