Consolidating the stack exposed a cycle the individual PRs didn't have: master made harmony_zitadel_auth high-level (config.rs derives harmony_config::Config → depends on harmony_config), while the JWT-bearer branch made harmony_secret depend on harmony_zitadel_auth for the token minter. Result: harmony_secret → harmony_zitadel_auth → harmony_config → harmony_secret. Cargo refuses to build it. The minter (jwt_bearer) is a self-contained, harmony-free leaf used by harmony_secret + harmony-fleet-auth (and re-exported by harmony_zitadel_auth). Move it into a new leaf crate harmony_zitadel_jwt; harmony_zitadel_auth re-exports MachineKeyFile/ZitadelJwtBearer from it so downstream consumers are unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
34 lines
958 B
TOML
34 lines
958 B
TOML
[package]
|
|
name = "harmony_zitadel_auth"
|
|
edition = "2024"
|
|
version.workspace = true
|
|
readme.workspace = true
|
|
license.workspace = true
|
|
|
|
[features]
|
|
default = []
|
|
axum = ["dep:axum", "dep:axum-extra"]
|
|
|
|
[dependencies]
|
|
harmony_config = { path = "../harmony_config" }
|
|
harmony_zitadel_jwt = { path = "../harmony_zitadel_jwt" }
|
|
anyhow.workspace = true
|
|
base64.workspace = true
|
|
chrono = { workspace = true, features = ["serde"] }
|
|
rand.workspace = true
|
|
reqwest.workspace = true
|
|
schemars = "0.8"
|
|
serde = { workspace = true, features = ["derive"] }
|
|
serde_json.workspace = true
|
|
sha2 = "0.10"
|
|
url.workspace = true
|
|
tokio = { workspace = true, features = ["time"] }
|
|
arc-swap = "1"
|
|
time = "0.3"
|
|
tracing = { workspace = true }
|
|
|
|
jsonwebtoken = "9"
|
|
openidconnect = { version = "4", default-features = false, features = ["reqwest", "rustls-tls"] }
|
|
axum = { version = "0.8", optional = true }
|
|
axum-extra = { version = "0.10", features = ["cookie", "cookie-private"], optional = true }
|