2026-03-31 17:17:35 -04:00
|
|
|
[package]
|
|
|
|
|
name = "notsecrets"
|
|
|
|
|
version = "0.1.0"
|
|
|
|
|
edition = "2024"
|
2026-03-31 22:00:10 -04:00
|
|
|
license.workspace = true
|
2026-03-31 17:26:10 -04:00
|
|
|
|
|
|
|
|
[dependencies]
|
2026-04-01 20:44:05 -04:00
|
|
|
notcore = { workspace = true }
|
|
|
|
|
anyhow = { workspace = true }
|
|
|
|
|
thiserror = { workspace = true }
|
|
|
|
|
rpassword = { workspace = true }
|
|
|
|
|
dirs = { workspace = true }
|
feat(notsecrets): add multi-provider secret resolution system
Add a config-driven, strongly-typed secret/env resolution system to
notsecrets with 11 provider backends. The system supports explicit
key bindings with typed SecretRef enums and a priority chain fallback.
Tier 1 providers (implemented): Env, 1Password, dotenvx, SOPS, GSM
Tier 2 providers (stubbed): nuenv, direnv, mise, Bitwarden, Vault, dotenvy
New types: Provider, ProviderConfig, SecretRef, SecretsConfig,
SecretsError, SecretSource, EnumerableSecretSource, SecretResolver
Config lives in notsecrets.toml with typed serde deserialization.
ISP split: EnumerableSecretSource for backends that support bulk
enumeration, SecretSource for single-key lookup only.
Includes conformance test suite, 33 new tests (161 workspace total).
notstrap EnvInjector migration deferred to follow-up.
2026-06-06 09:49:05 -04:00
|
|
|
serde = { workspace = true }
|
|
|
|
|
toml = { workspace = true }
|
2026-04-01 20:44:05 -04:00
|
|
|
x25519-dalek = { version = "2", features = ["static_secrets"] }
|
|
|
|
|
ed25519-dalek = "2"
|
|
|
|
|
sha2 = "0.10"
|
|
|
|
|
hkdf = "0.12"
|
|
|
|
|
chacha20poly1305 = "0.10"
|
|
|
|
|
scrypt = "0.11"
|
|
|
|
|
bech32 = "0.11"
|
|
|
|
|
base64 = "0.22"
|
|
|
|
|
hmac = "0.12"
|
|
|
|
|
rand = "0.8"
|
|
|
|
|
zeroize = "1"
|
|
|
|
|
curve25519-dalek = "4"
|
2026-04-17 00:01:50 -04:00
|
|
|
yubikey = { version = "0.8", optional = true }
|
|
|
|
|
|
|
|
|
|
[features]
|
|
|
|
|
default = []
|
|
|
|
|
yubikey = ["dep:yubikey"]
|
2026-03-31 17:26:10 -04:00
|
|
|
|
|
|
|
|
[dev-dependencies]
|
|
|
|
|
tempfile = { workspace = true }
|