[package]
name = "tsafe-cli"
version = "1.0.21"
edition.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
homepage = "https://github.com/0ryant/tsafe"
documentation = "https://docs.rs/tsafe-cli"
rust-version.workspace = true
description = "tsafe CLI — local secret and credential manager (replaces .env files)"
readme = "../../README.md"
categories = ["command-line-utilities", "development-tools"]
keywords = ["secrets", "cli", "vault", "dotenv", "credentials"]
[[bin]]
name = "tsafe"
path = "src/main.rs"
[dependencies]
tsafe-core = { path = "../tsafe-core", version = "1.0.9" }
tsafe-azure = { path = "../tsafe-azure", version = "1.0.3", optional = true }
tsafe-bitwarden = { path = "../tsafe-bitwarden", version = "0.1.0", optional = true }
tsafe-tui = { path = "../tsafe-tui", version = "1.0.8", optional = true }
tsafe-collab = { path = "../tsafe-collab", version = "0.1.0", optional = true }
anyhow = { workspace = true }
chrono = { workspace = true }
rand = { workspace = true }
zeroize = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
ureq = { workspace = true }
clap = { version = "4", features = ["derive", "env"] }
clap_complete = "4"
clap_mangen = "0.2"
rpassword = "7"
inquire = "0.7"
colored = "2"
qr2term = "0.3"
base64 = { workspace = true }
age = { workspace = true }
directories = { workspace = true }
sha1 = "0.10"
sha2 = { workspace = true }
flate2 = "1"
tracing = { workspace = true }
tracing-subscriber = { workspace = true }
hmac = { version = "0.12", optional = true }
toml = { version = "0.8", optional = true }
jsonwebtoken = { workspace = true, optional = true }
thiserror = { workspace = true, optional = true }
keepass = { version = "0.12", optional = true }
opentelemetry = { workspace = true, optional = true }
opentelemetry_sdk = { workspace = true, optional = true }
opentelemetry-stdout = { workspace = true, optional = true }
opentelemetry-otlp = { workspace = true, optional = true }
tracing-opentelemetry = { workspace = true, optional = true }
ssh-key = { version = "0.6", features = ["ed25519", "rsa", "alloc"], optional = true }
ssh-agent-lib = { version = "0.5", optional = true }
tokio = { version = "1", features = ["rt", "net", "macros"], optional = true }
[features]
default = [
"tui",
"akv-pull",
"biometric",
"agent",
"team-core",
"ssh",
]
tui = ["dep:tsafe-tui"]
akv-pull = ["dep:tsafe-azure"]
cloud-pull-aws = ["dep:hmac", "dep:thiserror"]
cloud-pull-gcp = ["dep:jsonwebtoken", "dep:thiserror"]
cloud-pull-keepass = ["dep:keepass", "dep:thiserror"]
cloud-pull-bitwarden = ["dep:tsafe-bitwarden"]
agent = []
biometric = ["tsafe-core/biometric", "dep:windows", "dep:windows-future"]
team-core = []
cloud-pull-vault = ["dep:thiserror"]
cloud-pull-1password = ["dep:thiserror"]
multi-pull = [
"akv-pull",
"cloud-pull-aws",
"cloud-pull-gcp",
"cloud-pull-vault",
"cloud-pull-1password",
"cloud-pull-keepass",
"cloud-pull-bitwarden",
]
pm-import-extended = []
ots-sharing = []
git-helpers = []
browser = ["nativehost"]
nativehost = []
ssh = ["dep:ssh-key", "dep:ssh-agent-lib", "dep:tokio"]
plugins = ["dep:toml"]
collab = ["dep:tsafe-collab"]
otel = [
"dep:opentelemetry",
"dep:opentelemetry_sdk",
"dep:opentelemetry-stdout",
"dep:opentelemetry-otlp",
"dep:tracing-opentelemetry",
]
[dev-dependencies]
assert_cmd = "2"
predicates = "3"
tempfile = { workspace = true }
temp-env = "0.3"
mockito = "1"
keepass = { version = "0.12", features = ["save_kdbx4"] }
serde_yaml = { workspace = true }
[target.'cfg(unix)'.dependencies]
libc = "0.2"
[target.'cfg(windows)'.dependencies]
winreg = "0.52"
windows = { version = "0.61", features = [
"Security_Credentials_UI",
"Win32_System_Console",
"Win32_System_WinRT",
"Foundation",
], optional = true }
windows-future = { version = "0.2", optional = true }
[build-dependencies]
winres = "0.1"
[package.metadata.wix]
extensions = ["WixUIExtension", "WixUtilExtension"]