nikaro / sopsy

sops python wrapper library
http://sopsy.nikaro.net/
MIT License
17 stars 1 forks source link
devops secret-management sops

SOPSy

Python Version from PEP 621 TOML PyPI - Version PyPI - Downloads build codecov

SOPSy is a simple Python wrapper arround SOPS.

Installation

SOPS binary must be installed and available in your $PATH:

# use your package manager to install it
brew install sops

Install the SOPSy library:

pip install sopsy

# or with whatever your package/project manager is
uv add sopsy

Quickstart

Retrieve a secret value:

from sopsy import Sops

sops = Sops("secrets.yml")

my_secret_key = sops.get("my_secret_key")
print(f"single secret: {my_secret_key}")

secrets = sops.decrypt()
print(f"all my secrets: {secrets}")

Encrypt a file:

import json
from pathlib import Path
from sopsy import Sops

plaintext_content = json.dumps({"hello": "world"})
Path("secrets.json").write_text(plaintext_content)

s = Sops("secrets.json", in_place=True)
# you either need a `.sops.yml` configuration file with `creation_rules` set
# or append some arguments to the `Sops.global_args` attribute:
# s.global_args.extend([
#     "--age", "age1yt3tfqlfrwdwx0z0ynwplcr6qxcxfaqycuprpmy89nr83ltx74tqdpszlw"
# ])
s.encrypt()

API Reference

Check documentation.