From 55fff49d8ca64d089fdeb9e7739fa382be441761 Mon Sep 17 00:00:00 2001 From: Douglas Adolph Date: Thu, 25 Jun 2026 09:14:00 -0500 Subject: [PATCH] swap architecture mermaid for plain ascii tree github renders the mermaid flowchart with loose spacing, weird cylinder shapes for the backends, and a pan zoom toolbar that floats over the diagram. the ascii tree is denser, renders the same everywhere, and reads top to bottom which matches how people skim a readme. --- README.md | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 8c85e1f..c247529 100644 --- a/README.md +++ b/README.md @@ -135,20 +135,24 @@ Refuses any staged file that matches a `.sops.yaml` rule but is still plaintext. ## Architecture -```mermaid -flowchart LR - code["Your Go code / CLI"] --> enc["cipher Encoder / Decoder"] - enc --> sops["getsops/sops Go API"] - enc --> kp["cipher.KeyProvider"] - kp --> age[("age")] - kp --> kms[("AWS KMS")] - kp --> gcp[("GCP KMS")] - kp --> vault[("Vault Transit")] - kp --> azkv[("Azure Key Vault")] - kp --> pgp[("PGP")] +``` +Your Go code or CLI + | + v +cipher.Encoder / cipher.Decoder -----> getsops/sops Go API + | + v +cipher.KeyProvider + | + +--> age + +--> AWS KMS + +--> GCP KMS + +--> Vault Transit + +--> Azure Key Vault + +--> PGP ``` -cipher is a thin Go layer over the [SOPS](https://github.com/getsops/sops) Go API. Each backend implements `cipher.KeyProvider` and reads credentials the same way the `sops` binary does. The on-disk format is the SOPS format, so anything that decrypts SOPS files (including the upstream `sops` binary) reads what cipher writes. +cipher is a thin Go layer over the [SOPS](https://github.com/getsops/sops) Go API. Each backend implements `cipher.KeyProvider` and reads credentials the same way the `sops` binary does. The on disk format is the SOPS format, so anything that decrypts SOPS files (including the upstream `sops` binary) reads what cipher writes. ## Concepts