secretspec 0.17.1

Declarative secrets, every environment, any provider
Documentation
[package]
name = "secretspec"
version.workspace = true
edition.workspace = true
repository = "https://github.com/cachix/secretspec"
description = "Declarative secrets, every environment, any provider"
license = "Apache-2.0"

[lib]
name = "secretspec"
path = "src/lib.rs"

[[bin]]
name = "secretspec"
path = "src/bin/secretspec.rs"
required-features = ["cli"]

[dependencies]
clap.workspace = true
keyring = { workspace = true, optional = true }
keepass = { workspace = true, optional = true }
serde.workspace = true
toml.workspace = true
toml_edit = { workspace = true, optional = true }
thiserror.workspace = true
etcetera.workspace = true
colored.workspace = true
dotenvy.workspace = true
inquire.workspace = true
miette.workspace = true
serde_json.workspace = true
tempfile.workspace = true
url.workspace = true
percent-encoding.workspace = true
whoami = { workspace = true, optional = true }
linkme.workspace = true
jiff.workspace = true
secrecy.workspace = true
google-cloud-secretmanager-v1 = { workspace = true, optional = true }
aws-config = { workspace = true, optional = true }
aws-sdk-secretsmanager = { workspace = true, optional = true }
azure_core = { workspace = true, optional = true }
azure_identity = { workspace = true, optional = true }
azure_security_keyvault_secrets = { workspace = true, optional = true }
tokio.workspace = true
reqwest = { workspace = true, optional = true }
rand.workspace = true
rsa.workspace = true
uuid.workspace = true
data-encoding.workspace = true
detect-coding-agent.workspace = true
age = { workspace = true, optional = true }

[features]
default = ["cli", "keyring", "kdbx", "gcsm", "awssm", "vault", "openbao", "bws", "akv", "infisical", "age", "scaleway", "sops"]
cli = ["dep:toml_edit"]
keyring = ["dep:keyring", "dep:whoami"]
kdbx = ["dep:keepass"]
# Compile libdbus from source into the binary instead of linking the system
# library at runtime (keyring's secret-service transport on Linux). Used by
# prebuilt release artifacts that must run on distros we don't build on.
vendored-dbus = ["keyring?/vendored"]
gcsm = ["dep:google-cloud-secretmanager-v1"]
awssm = ["dep:aws-config", "dep:aws-sdk-secretsmanager"]
vault = ["dep:reqwest", "tokio/sync"]
# Scaleway Secret Manager talks to the v1beta1 REST API directly; base64
# payloads use data-encoding, which is already a non-optional dependency.
scaleway = ["dep:reqwest"]
openbao = ["dep:reqwest", "tokio/sync"]
# `tokio/sync` for the async `OnceCell` that serializes the Universal Auth
# exchange. It is already on transitively via reqwest, but a provider should
# name the features it uses rather than inherit them from a sibling.
infisical = ["dep:reqwest", "tokio/sync"]
bws = []
akv = ["dep:azure_core", "dep:azure_identity", "dep:azure_security_keyvault_secrets"]
age = ["dep:age"]
sops = []

[dev-dependencies]
# Validates serialized resolution reports against the committed JSON Schema.
jsonschema = { version = "0.48.5", default-features = false }