Sops
SOPS + age vault for swamp: one encrypted file per secret.
put encrypts {"value": …} to the configured age recipients into <secretsDir>/<key>.enc.json and needs nothing but their public keys, so a writer can store a value for readers whose identities it does not hold: a human without the cluster key, or a workflow that mints a credential. get decrypts one file, list walks the directory without decrypting, delete removes the file. A key with / becomes a directory path; git history is per secret, and no write touches any other secret.
Forked from @zocc/sops-age (Apache-2.0), see NOTICE.md; that provider keeps every secret in one file and decrypts it all to write. sops runs with an argument vector, never a shell; values reach it through a private temporary directory, never as an argument. ageKeyFile is optional: empty leaves the caller's SOPS_AGE_KEY_FILE and age plugins in charge of decryption, so a YubiKey identity works unchanged. swamp vault migrate <vault> --to-type @dataverket/sops splits an existing single-file vault.
One SOPS-encrypted JSON file per secret under a directory; put needs only the recipients' public keys, so a writer can store a value it cannot read back. get decrypts one file, list walks the directory, delete removes the file.
- Has README or module doc2/2earned
- README has a code example1/1earned
- README is substantive1/1earned
- Most symbols documented1/1earned
- No slow types (deprecated)1/1earned
- Dependencies pass trust audit2/2earned
- Has description1/1earned
- Platform support declared (or universal)2/2earned
- License declared1/1earned
- Verified public repository2/2earned