devboy-storage 0.30.1

Secure credential storage for devboy-tools — OS keychain (macOS/Windows/Linux) with redacted SecretString plumbing.
Documentation
[package]
name = "devboy-storage"
description = "Secure credential storage for devboy-tools — OS keychain (macOS/Windows/Linux) with redacted SecretString plumbing."
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
authors.workspace = true
readme = "README.md"
keywords = ["devboy", "keychain", "credentials", "secrets", "storage"]
categories = ["authentication", "os", "development-tools"]

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[dependencies]
devboy-core = { workspace = true }
devboy-secret-patterns = { workspace = true }
thiserror.workspace = true
serde.workspace = true
serde_json.workspace = true
toml.workspace = true
tracing.workspace = true
dirs.workspace = true
secrecy.workspace = true
async-trait.workspace = true
bitflags = "2.6"
regex.workspace = true
chrono = { version = "0.4", default-features = false, features = ["std"] }
sha2.workspace = true
hex = "0.4"
tokio = { workspace = true, features = ["rt-multi-thread", "macros", "process", "sync", "io-util", "time"] }

# Keychain access (platform-specific features)
[target.'cfg(target_os = "macos")'.dependencies]
keyring = { version = "3", features = ["apple-native"] }

[target.'cfg(target_os = "windows")'.dependencies]
keyring = { version = "3", features = ["windows-native"] }

[target.'cfg(target_os = "linux")'.dependencies]
keyring = { version = "3", features = ["sync-secret-service", "crypto-rust"] }

[dev-dependencies]
tokio = { workspace = true, features = ["rt-multi-thread", "macros", "process", "sync", "io-util", "time"] }
tempfile.workspace = true
temp-env = { version = "0.3", features = ["async_closure"] }

[lints]
workspace = true