[workspace]
resolver = "2"
members = [
    "crates/deployer-types",
    "crates/deployer-server",
    "crates/node-agent",
    "crates/nix-agent",
    "crates/cert-authority",
    "crates/deployer-ctl",
    "crates/ultracloud-reconciler",
    "crates/fleet-scheduler",
]

[workspace.package]
version = "0.1.0"
edition = "2021"
rust-version = "1.75"
authors = ["UltraCloud Contributors"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/centra/ultracloud"

[workspace.dependencies]
# Internal crates
deployer-types = { path = "crates/deployer-types" }
photon-config = { path = "../crates/photon-config" }
photon-runtime = { path = "../crates/photon-runtime" }

# External dependencies
tokio = { version = "1.38", features = ["full"] }
axum = { version = "0.7", features = ["macros"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
anyhow = "1.0"
thiserror = "1.0"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
chrono = { version = "0.4", features = ["serde"] }
rcgen = { version = "0.13", features = ["pem", "x509-parser"] }
clap = { version = "4.5", features = ["derive"] }
tonic = { version = "0.12", features = ["tls", "tls-roots"] }

# ChainFire client
chainfire-client = { path = "../chainfire/chainfire-client" }
fiberlb-api = { path = "../fiberlb/crates/fiberlb-api" }
flashdns-api = { path = "../flashdns/crates/flashdns-api" }
iam-client = { path = "../iam/crates/iam-client" }
iam-types = { path = "../iam/crates/iam-types" }
prismnet-api = { path = "../prismnet/crates/prismnet-api" }
