[package] name = "swarm-controller" version.workspace = true readme = "README.md" edition.workspace = true [[bin]] name = "swarm-controller" path = "src/main.rs" [dependencies] anyhow.workspace = true # `kv` (which pulls `jetstream`) on top of the workspace's feature set: the # queue is this daemon's *store*, not just its transport - a hive's last # status snapshot is read out of a JetStream KV bucket. Declared here rather # than in the workspace entry so the auth-callout responder, which speaks # neither, does not claim to need them. async-nats = { workspace = true, features = ["kv"] } axum.workspace = true futures-util.workspace = true serde.workspace = true serde_json.workspace = true # The queue connect (token mint + auth callback + reconnect) is shared with # every other participant - a hive publishing its own status runs the same # code with a different client id. Two copies of credential handling is one # token-refresh fix that has to be found twice. # # `kv` for the same reason one level in: the status bucket's name and # creation config are shared with the hive that writes it, so this end does # not get to declare them privately. swarm-queue-client = { workspace = true, features = ["kv"] } tokio.workspace = true tracing.workspace = true tracing-subscriber.workspace = true utoipa.workspace = true utoipa-axum.workspace = true [lints] workspace = true