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>
42 lines
1.3 KiB
TOML
42 lines
1.3 KiB
TOML
[package]
|
|
name = "harmony_secret"
|
|
edition = "2024"
|
|
version.workspace = true
|
|
readme.workspace = true
|
|
license.workspace = true
|
|
|
|
# `secrete2etest` is a custom cfg flag used to gate integration tests
|
|
# that require a live OpenBao instance. Declare it here so rustc doesn't
|
|
# emit `unexpected_cfg` warnings.
|
|
[lints.rust]
|
|
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(secrete2etest)'] }
|
|
|
|
[dependencies]
|
|
harmony_zitadel_jwt = { path = "../harmony_zitadel_jwt" }
|
|
harmony_secret_derive = { version = "0.1.0", path = "../harmony_secret_derive" }
|
|
serde = { version = "1.0.209", features = ["derive", "rc"] }
|
|
serde_json = "1.0.127"
|
|
thiserror.workspace = true
|
|
lazy_static.workspace = true
|
|
directories.workspace = true
|
|
log.workspace = true
|
|
# infisical = "0.0.2"
|
|
infisical = { git = "https://github.com/jggc/rust-sdk.git", branch = "patch-1" }
|
|
tokio.workspace = true
|
|
async-trait.workspace = true
|
|
http.workspace = true
|
|
inquire.workspace = true
|
|
interactive-parse = "0.1.5"
|
|
schemars = "0.8"
|
|
vaultrs = "0.7.4"
|
|
reqwest = { workspace = true, features = ["json"] }
|
|
url.workspace = true
|
|
# Used by ZitadelOidcAuth to best-effort launch the device-flow
|
|
# URL in the operator's browser. Failure to open is non-fatal —
|
|
# the URL is already printed to the terminal.
|
|
webbrowser = "1"
|
|
|
|
[dev-dependencies]
|
|
pretty_assertions.workspace = true
|
|
tempfile.workspace = true
|