[package]
edition = "2024"
name = "monosecret"
version = "0.4.4"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
default-run = "monosecret"
description = "Declarative secrets, every environment, any provider"
readme = "README.md"
license = "Apache-2.0"
repository = "https://github.com/ifiokjr/monosecret/tree/main/crates/monosecret"
resolver = "2"
[features]
aac = [
"akv",
"dep:reqwest",
"azure_core/hmac_rust",
]
age = ["dep:age"]
akv = [
"dep:azure_core",
"dep:azure_identity",
"dep:azure_security_keyvault_secrets",
]
awsps = [
"dep:aws-config",
"dep:aws-sdk-ssm",
]
awssm = [
"dep:aws-config",
"dep:aws-sdk-secretsmanager",
"aws-config/credentials-login",
]
bw = ["dep:base64"]
bws = []
cli = [
"dep:clap_complete",
"dep:clap_complete_nushell",
"dep:is_executable",
"dep:dunce",
]
cloudflare = ["dep:reqwest"]
convex = ["dep:reqwest"]
default = [
"cli",
"keyring",
"kdbx",
"keeper",
"gcsm",
"awssm",
"awsps",
"vault",
"openbao",
"bws",
"akv",
"aac",
"infisical",
"doppler",
"bw",
"age",
"ejson",
"scaleway",
"sops",
"kubernetes",
"cloudflare",
"netlify",
"vercel",
"digitalocean",
"convex",
"railway",
"pulumi",
"setec",
]
digitalocean = ["dep:reqwest"]
doppler = ["dep:reqwest"]
ejson = ["dep:wait-timeout"]
gcsm = ["dep:google-cloud-secretmanager-v1"]
infisical = [
"dep:reqwest",
"tokio/sync",
]
kdbx = ["dep:keepass"]
keeper = ["dep:keeper-secrets-manager-core"]
keyring = [
"dep:keyring",
"dep:whoami",
"dep:security-framework",
]
kubernetes = [
"dep:kube",
"dep:k8s-openapi",
"dep:base64",
"dep:json-patch",
]
netlify = ["dep:reqwest"]
openbao = [
"dep:reqwest",
"tokio/sync",
]
pulumi = [
"dep:reqwest",
"dep:serde_norway",
]
railway = ["dep:reqwest"]
scaleway = ["dep:reqwest"]
setec = ["dep:reqwest"]
sops = []
vault = [
"dep:reqwest",
"tokio/sync",
]
vercel = ["dep:reqwest"]
[lib]
name = "monosecret"
path = "src/lib.rs"
[[bin]]
name = "docker-credential-monosecret"
path = "src/bin/docker-credential-monosecret.rs"
required-features = ["cli"]
[[bin]]
name = "git-credential-monosecret"
path = "src/bin/git-credential-monosecret.rs"
required-features = ["cli"]
[[bin]]
name = "monosecret"
path = "src/bin/monosecret.rs"
required-features = ["cli"]
[[example]]
name = "rust_first"
path = "examples/rust_first.rs"
[[test]]
name = "bw_import_collision"
path = "tests/bw_import_collision.rs"
[[test]]
name = "check_detail_provider_refs"
path = "tests/check_detail_provider_refs.rs"
[[test]]
name = "check_report_stream"
path = "tests/check_report_stream.rs"
[[test]]
name = "claude_integration"
path = "tests/claude_integration.rs"
[[test]]
name = "cli_command_arms"
path = "tests/cli_command_arms.rs"
[[test]]
name = "cli_snapshots"
path = "tests/cli_snapshots.rs"
[[test]]
name = "config_schemas"
path = "tests/config_schemas.rs"
[[test]]
name = "docker_credential"
path = "tests/docker_credential.rs"
[[test]]
name = "docs_snippets"
path = "tests/docs_snippets.rs"
[[test]]
name = "filtered_run_tests"
path = "tests/filtered_run_tests.rs"
[[test]]
name = "git_configure"
path = "tests/git_configure.rs"
[[test]]
name = "git_credential"
path = "tests/git_credential.rs"
[[test]]
name = "import_alias_warning"
path = "tests/import_alias_warning.rs"
[[test]]
name = "ipc_resolver"
path = "tests/ipc_resolver.rs"
[[test]]
name = "ipc_ssh"
path = "tests/ipc_ssh.rs"
[[test]]
name = "manifest_cli"
path = "tests/manifest_cli.rs"
[[test]]
name = "native_references"
path = "tests/native_references.rs"
[[test]]
name = "non_utf8_env"
path = "tests/non_utf8_env.rs"
[[test]]
name = "op_request_budget"
path = "tests/op_request_budget.rs"
[[test]]
name = "password_store_whitespace"
path = "tests/password_store_whitespace.rs"
[[test]]
name = "pr_example_tests"
path = "tests/pr_example_tests.rs"
[[test]]
name = "provider_dependency_token"
path = "tests/provider_dependency_token.rs"
[[test]]
name = "run_signals"
path = "tests/run_signals.rs"
[[test]]
name = "set_from_file"
path = "tests/set_from_file.rs"
[[test]]
name = "sigpipe"
path = "tests/sigpipe.rs"
[[test]]
name = "spec_schema"
path = "tests/spec_schema.rs"
[[test]]
name = "typed_scope_env"
path = "tests/typed_scope_env.rs"
[dependencies.age]
version = "0.12"
features = [
"armor",
"plugin",
"ssh",
]
optional = true
[dependencies.async-trait]
version = "0.1"
[dependencies.aws-config]
version = "^1"
optional = true
default-features = true
[dependencies.aws-sdk-secretsmanager]
version = "^1"
optional = true
default-features = true
[dependencies.aws-sdk-ssm]
version = "^1"
optional = true
default-features = true
[dependencies.azure_core]
version = "1.0.0"
optional = true
[dependencies.azure_identity]
version = "1.0.0"
optional = true
[dependencies.azure_security_keyvault_secrets]
version = "1.0.0"
optional = true
[dependencies.base64]
version = "0.23"
optional = true
[dependencies.clap]
version = "4"
features = [
"derive",
"env",
]
[dependencies.clap_complete]
version = "4.6"
features = ["unstable-dynamic"]
optional = true
[dependencies.clap_complete_nushell]
version = "4.6"
optional = true
[dependencies.colored]
version = "^3"
default-features = false
[dependencies.data-encoding]
version = "2"
[dependencies.detect-coding-agent]
version = "^0.1"
default-features = false
[dependencies.dotenv]
version = "1.0.0"
package = "dotenv-ng"
[dependencies.dunce]
version = "1.0"
optional = true
[dependencies.etcetera]
version = "^0.11"
default-features = false
[dependencies.google-cloud-secretmanager-v1]
version = "^1.10.0"
optional = true
default-features = false
[dependencies.ini]
version = "0.21.3"
package = "rust-ini"
[dependencies.inquire]
version = "0.9.4"
features = [
"console",
"experimental-multiline-input",
]
default-features = false
[dependencies.is_executable]
version = "1.0"
optional = true
[dependencies.jiff]
version = "0.2"
[dependencies.json-patch]
version = "4.2.0"
optional = true
[dependencies.k8s-openapi]
version = "0.28"
features = ["v1_36"]
optional = true
[dependencies.keepass]
version = "=0.13.17"
features = ["save_kdbx4"]
optional = true
[dependencies.keeper-secrets-manager-core]
version = "17.3.0"
features = ["blocking"]
optional = true
default-features = false
[dependencies.keyring]
version = "4.1.6"
optional = true
[dependencies.kube]
version = "4.2"
features = [
"client",
"rustls-tls",
"aws-lc-rs",
"jsonpatch",
]
optional = true
default-features = false
[dependencies.linkme]
version = "^0.3"
default-features = false
[dependencies.miette]
version = "7.6"
features = [
"derive",
"fancy",
]
default-features = false
[dependencies.monosecret_rpc]
version = "0.4.4"
[dependencies.percent-encoding]
version = "^2.3"
default-features = false
[dependencies.pgp]
version = "0.20"
default-features = false
[dependencies.rand]
version = "0.10"
[dependencies.rand_08]
version = "0.8.6"
package = "rand"
[dependencies.reqwest]
version = "0.13"
features = [
"json",
"query",
"rustls",
]
optional = true
default-features = false
[dependencies.rsa]
version = "0.9"
features = ["pem"]
[dependencies.same-file]
version = "1"
[dependencies.schemars]
version = "1.2"
[dependencies.secrecy]
version = "0.10.3"
features = ["serde"]
default-features = false
[dependencies.serde]
version = "1.0"
features = ["derive"]
default-features = false
[dependencies.serde_json]
version = "1.0"
[dependencies.serde_norway]
version = "0.9"
optional = true
[dependencies.sha2]
version = "0.11"
[dependencies.smallvec]
version = "1"
[dependencies.ssh-key]
version = "0.6.7"
features = ["crypto"]
[dependencies.tempfile]
version = "^3"
default-features = false
[dependencies.thiserror]
version = "^2.0"
default-features = false
[dependencies.tokio]
version = "1"
features = [
"rt",
"rt-multi-thread",
"io-std",
"io-util",
"macros",
"process",
"sync",
"time",
]
default-features = false
[dependencies.toml]
version = "1.1"
[dependencies.toml_edit]
version = "0.25"
features = ["serde"]
[dependencies.tracing]
version = "^0.1"
default-features = false
[dependencies.url]
version = "2.5"
[dependencies.uuid]
version = "1"
features = [
"serde",
"v4",
]
default-features = false
[dependencies.wait-timeout]
version = "0.2"
optional = true
[dependencies.whoami]
version = "^2.1"
optional = true
[dev-dependencies.insta]
version = "1"
features = [
"filters",
"json",
"redactions",
]
default-features = false
[dev-dependencies.insta-cmd]
version = "^0.7"
default-features = false
[dev-dependencies.jsonschema]
version = "0.55.1"
default-features = false
[dev-dependencies.monosecret_rpc]
version = "0.4.4"
features = ["blocking"]
[dev-dependencies.proptest]
version = "1"
[target.'cfg(target_os = "macos")'.dependencies.security-framework]
version = "3.7"
optional = true
[target."cfg(unix)".dependencies.libc]
version = "0.2"
[target."cfg(unix)".dependencies.signal-hook]
version = "0.4"
[target."cfg(windows)".dependencies.windows-sys]
version = "0.61"
features = [
"Win32_Foundation",
"Win32_Security",
"Win32_Security_Authorization",
"Win32_Storage_FileSystem",
"Win32_System_Diagnostics_ToolHelp",
"Win32_System_IO",
"Win32_System_JobObjects",
"Win32_System_SystemServices",
"Win32_System_Threading",
]
[lints.clippy]
blocks_in_conditions = "allow"
cargo_common_metadata = "allow"
cast_possible_truncation = "allow"
cast_possible_wrap = "allow"
cast_precision_loss = "allow"
cast_sign_loss = "allow"
expl_impl_clone_on_copy = "allow"
indexing_slicing = "deny"
items_after_statements = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"
no_effect_underscore_binding = "allow"
tabs_in_doc_comments = "allow"
too_many_lines = "allow"
wildcard_dependencies = "deny"
wildcard_imports = "allow"
[lints.clippy.complexity]
level = "deny"
priority = -1
[lints.clippy.correctness]
level = "deny"
priority = -1
[lints.clippy.pedantic]
level = "deny"
priority = -1
[lints.clippy.perf]
level = "deny"
priority = -1
[lints.clippy.style]
level = "deny"
priority = -1
[lints.clippy.suspicious]
level = "deny"
priority = -1
[lints.rust]
edition_2024_expr_fragment_specifier = "allow"
unsafe_code = "allow"
unstable_features = "deny"
unused_extern_crates = "warn"
unused_import_braces = "warn"
unused_lifetimes = "warn"
unused_macro_rules = "warn"
unused_qualifications = "warn"
variant_size_differences = "warn"
[lints.rust.rust_2021_compatibility]
level = "warn"
priority = -1
[lints.rust.rust_2024_compatibility]
level = "warn"
priority = -1