# `ol.sops`

> An extremely tiny and simple wrapper around the awesome sops (previously
> known as mozilla/sops)

![doc](https://img.shields.io/badge/doc-outskirtslabs-orange.svg)
![status: maturing](https://img.shields.io/badge/status-maturing-yellow.svg)
![alt=built with garnix](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Fgarnix.io%2Fapi%2Fbadges%2Foutskirtslabs%2Fsops)
https://clojars.org/com.outskirtslabs/sops[image:https://img.shields.io/clojars/v/com.outskirtslabs/sops.svg[Clojars
Project]]

This is intended for [babashka](https://babashka.org/) and JVM clojure and
provides an idiomatic and data driven wrapper around the CLI tool.

Project status: **[Maturing](https://docs.outskirtslabs.com/open-source-vital-signs#maturing)**.

## Installation

```clojure
;; deps.edn
{:deps {com.outskirtslabs/sops {:mvn/version "0.1.0"}}}

;; Leiningen
[com.outskirtslabs/sops "0.1.0"]
```

## Quick Start

```clojure
(ns myapp.core
  (:require [ol.sops :as sops]))
  

;; decrypt a sops file to string
(sops/decrypt-file-to-str "dev/test.sops.yml"
                          {:env {"SOPS_AGE_KEY_FILE" "dev/keys.txt"}})
;; => "hello: world\n"

;; encrypt a plaintext to a sfile
@(sops/encrypt-to-file "output.sops.json"
                       (edn->json {:foo "bar"})
                       {:age "age15905pjs5av9nyh8rdt4zrzn7x0mdud20eyf7tsvz63mygvsfhd9sclsh94"})
```

## Documentation

* [Docs](https://docs.outskirtslabs.com/ol.sops/next/)
* [API Reference](https://docs.outskirtslabs.com/ol.sops/next/api)
* [Support via GitHub Issues](https://github.com/outskirtslabs/sops/issues)

## Security

See [here](https://github.com/outskirtslabs/sops/security) for security
advisories or to report a security vulnerability.

## License

Copyright © 2025 Casey Link casey@outskirtslabs.com

Distributed under the [MIT License](./LICENSE)
