| 1 | [package] |
| 2 | name = "codewhale-secrets" |
| 3 | version.workspace = true |
| 4 | edition.workspace = true |
| 5 | rust-version.workspace = true |
| 6 | license.workspace = true |
| 7 | repository.workspace = true |
| 8 | description = "Secret storage backends for Codewhale, with OS keyring and file fallback, plus the shared pure secret-redaction and output-sanitization primitives" |
| 9 | |
| 10 | [lints] |
| 11 | workspace = true |
| 12 | |
| 13 | [dependencies] |
| 14 | codewhale-paths = { path = "../paths", version = "0.10.0" } |
| 15 | chrono.workspace = true |
| 16 | fd-lock = "=4.0.4" |
| 17 | libc.workspace = true |
| 18 | # FEAT-025 D4: the portable output sanitizer owns the regex-based redaction |
| 19 | # passes here so config diagnostics and command helpers share one copy. |
| 20 | regex = "1.11" |
| 21 | serde = { workspace = true } |
| 22 | serde_json = { workspace = true, features = ["preserve_order"] } |
| 23 | sha2.workspace = true |
| 24 | tempfile.workspace = true |
| 25 | thiserror = { workspace = true } |
| 26 | tracing = { workspace = true } |
| 27 | # FEAT-025 D4: URL credential redaction uses the same `url` parser reqwest |
| 28 | # re-exports, with no HTTP client dependency in this pure crate. |
| 29 | url = "2.5" |
| 30 | |
| 31 | [target.'cfg(target_os = "macos")'.dependencies] |
| 32 | keyring = { version = "3", features = ["apple-native"] } |
| 33 | |
| 34 | [target.'cfg(target_os = "windows")'.dependencies] |
| 35 | keyring = { version = "3", features = ["windows-native"] } |
| 36 | |
| 37 | [target.'cfg(all(target_os = "linux", not(target_env = "ohos"), not(target_env = "musl")))'.dependencies] |
| 38 | keyring = { version = "3", features = ["linux-native-sync-persistent", "crypto-rust"] } |
| 39 | |
| 40 | [dev-dependencies] |
| 41 | tempfile.workspace = true |
| 42 |