[package]
name = "sopsy"
version = "1.3.2"
edition = "2024"
description = "Public/private individual key encryption for repo secrets with biometrics support and explicit approval of who can decrypt. In other words — the missing good UX for SOPS"
license = "MIT"
repository = "https://github.com/kigster/sopsy.git"
homepage = "https://sopsy-cli.dev"
keywords = ["sops", "secrets", "age", "macos", "enclave"]
categories = ["command-line-utilities", "config"]

[dependencies]
anyhow = "1.0.103"
# `wrap_help` makes clap honor terminal width and the `max_term_width` cap.
clap = { version = "4.6.1", features = ["derive", "wrap_help"] }
clap_complete = "4.6"
color-eyre = "0.6.5"
# Signal handler (SIGINT/SIGTERM/SIGHUP) so the portable-key ceremony can shred
# the on-disk private key even when the process is interrupted mid-flow (Ctrl-C
# at the prompt). `termination` adds SIGTERM/SIGHUP on top of Ctrl-C.
ctrlc = { version = "3.4", features = ["termination"] }
# RFC3339 timestamps and human-friendly duration parsing/formatting for the
# join-request freshness window (`requested_at` / `join_request_ttl`).
humantime = "2.2"
indicatif = "0.18.4"
inquire = "0.9.4"
owo-colors = "4.3.0"
# Terminal width detection for the full-width banner boxes in `ui.rs`.
terminal_size = "0.4"
serde = { version = "1.0.228", features = ["derive"] }
# SHA-256 for the `.sopsy.yml` integrity checksum (tamper evidence, not
# encryption — all encryption remains delegated to the external `sops`).
sha2 = "0.10"
# serde_yaml is deprecated/archived upstream; serde_yaml_ng is the actively
# maintained drop-in replacement used for `.sops.yaml` and `.sopsy.yml`.
serde_yaml_ng = "0.10.0"
thiserror = "2.0.17"
tempfile = "3.27.0"
toml = "1.1.2"
which = "8.0.4"

[dev-dependencies]
assert_cmd = "2.0.17"
assert_fs = "1.1.3"
predicates = "3.1.3"
serial_test = "3.2.0"
