{
  "id": "sops",
  "name": "SOPS",
  "homepage": "https://github.com/getsops/sops",
  "description": "Simple and flexible tool for managing secrets.",
  "executables": [
    "sops"
  ],
  "dotfiles": {
    "paths": [],
    "secret": [
      "[configHome]/sops/age/keys.txt",
      "[appData]/sops/age/keys.txt",
      "%APPDATA%/sops/age/keys.txt"
    ],
    "side_effect": false
  },
  "commands": {
    "format": 1,
    "label": "SOPS",
    "description": "Encrypt or decrypt a file with sops. Editing, key rotation, key groups, publish and key-service options are left out.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": true,
      "short_bundles": false
    },
    "subcommand": [
      {
        "path": [
          "decrypt"
        ],
        "label": "Decrypt a file",
        "description": "Decrypt a file and print it to stdout, or write it elsewhere.",
        "source": [
          {
            "id": "help",
            "kind": "help",
            "url": "https://github.com/getsops/sops/blob/main/cmd/sops/main.go",
            "evidence": "decrypt [file]: decrypt a file, and output the results to stdout. If no filename is provided, stdin will be used.\n--in-place, -i  write output back to the same file instead of stdout\n--extract  extract a specific key or branch from the input document.\n--output  Save the output after decryption to the file specified\n--input-type  currently json, yaml, dotenv, ini and binary are supported.\n--output-type  currently json, yaml, dotenv, ini and binary are supported."
          }
        ],
        "field": [
          {
            "id": "file",
            "label": "Encrypted file",
            "type": "path",
            "position": 0,
            "path": {
              "kind": "file",
              "role": "input"
            },
            "sources": [
              "help"
            ]
          },
          {
            "id": "in_place",
            "label": "Decrypt in place",
            "type": "boolean",
            "option": [
              "--in-place",
              "-i"
            ],
            "effect": "overwrite",
            "sources": [
              "help"
            ]
          },
          {
            "id": "output",
            "label": "Output file",
            "type": "path",
            "option": [
              "--output"
            ],
            "path": {
              "kind": "file",
              "role": "output"
            },
            "effect": "overwrite",
            "sources": [
              "help"
            ]
          },
          {
            "id": "extract",
            "label": "Extract key",
            "type": "string",
            "option": [
              "--extract"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "input_type",
            "label": "Input type",
            "type": "enum",
            "option": [
              "--input-type"
            ],
            "choices": [
              {
                "value": "json",
                "label": "JSON"
              },
              {
                "value": "yaml",
                "label": "YAML"
              },
              {
                "value": "dotenv",
                "label": "dotenv"
              },
              {
                "value": "ini",
                "label": "INI"
              },
              {
                "value": "binary",
                "label": "Binary"
              }
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "output_type",
            "label": "Output type",
            "type": "enum",
            "option": [
              "--output-type"
            ],
            "choices": [
              {
                "value": "json",
                "label": "JSON"
              },
              {
                "value": "yaml",
                "label": "YAML"
              },
              {
                "value": "dotenv",
                "label": "dotenv"
              },
              {
                "value": "ini",
                "label": "INI"
              },
              {
                "value": "binary",
                "label": "Binary"
              }
            ],
            "sources": [
              "help"
            ]
          }
        ],
        "task": [
          {
            "id": "show",
            "label": "Print decrypted",
            "fields": [
              "file",
              "extract",
              "output_type"
            ],
            "required": [
              "file"
            ]
          },
          {
            "id": "to-file",
            "label": "Decrypt to a file",
            "fields": [
              "file",
              "output",
              "output_type"
            ],
            "required": [
              "file",
              "output"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "file",
              "output",
              "in_place",
              "extract"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "input_type",
              "output_type"
            ]
          }
        ]
      },
      {
        "path": [
          "encrypt"
        ],
        "label": "Encrypt a file",
        "description": "Encrypt a file for age, PGP or cloud KMS recipients and print it to stdout, or write it elsewhere.",
        "source": [
          {
            "id": "help",
            "kind": "help",
            "url": "https://github.com/getsops/sops/blob/main/cmd/sops/main.go",
            "evidence": "encrypt [file]: encrypt a file, and output the results to stdout. If no filename is provided, stdin will be used.\n--in-place, -i  write output back to the same file instead of stdout\n--output  Save the output after encryption to the file specified\n--age, -a  comma separated list of age recipients\n--pgp, -p  comma separated list of PGP fingerprints\n--kms, -k  comma separated list of KMS ARNs\n--encrypted-regex  set the encrypted key regex. When specified, only keys matching the regex will be encrypted.\n--unencrypted-regex  set the unencrypted key regex. When specified, only keys matching the regex will be left unencrypted.\n--input-type  currently json, yaml, dotenv, ini and binary are supported.\n--output-type  currently json, yaml, dotenv, ini and binary are supported."
          }
        ],
        "field": [
          {
            "id": "file",
            "label": "Plaintext file",
            "type": "path",
            "position": 0,
            "path": {
              "kind": "file",
              "role": "input"
            },
            "sources": [
              "help"
            ]
          },
          {
            "id": "in_place",
            "label": "Encrypt in place",
            "type": "boolean",
            "option": [
              "--in-place",
              "-i"
            ],
            "effect": "overwrite",
            "sources": [
              "help"
            ]
          },
          {
            "id": "output",
            "label": "Output file",
            "type": "path",
            "option": [
              "--output"
            ],
            "path": {
              "kind": "file",
              "role": "output"
            },
            "effect": "overwrite",
            "sources": [
              "help"
            ]
          },
          {
            "id": "age",
            "label": "age recipients",
            "description": "Comma separated list of age recipients.",
            "type": "string",
            "option": [
              "--age",
              "-a"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "pgp",
            "label": "PGP fingerprints",
            "description": "Comma separated list of PGP fingerprints.",
            "type": "string",
            "option": [
              "--pgp",
              "-p"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "kms",
            "label": "KMS ARNs",
            "description": "Comma separated list of KMS ARNs.",
            "type": "string",
            "option": [
              "--kms",
              "-k"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "encrypted_regex",
            "label": "Encrypted key regex",
            "type": "string",
            "option": [
              "--encrypted-regex"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "unencrypted_regex",
            "label": "Unencrypted key regex",
            "type": "string",
            "option": [
              "--unencrypted-regex"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "input_type",
            "label": "Input type",
            "type": "enum",
            "option": [
              "--input-type"
            ],
            "choices": [
              {
                "value": "json",
                "label": "JSON"
              },
              {
                "value": "yaml",
                "label": "YAML"
              },
              {
                "value": "dotenv",
                "label": "dotenv"
              },
              {
                "value": "ini",
                "label": "INI"
              },
              {
                "value": "binary",
                "label": "Binary"
              }
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "output_type",
            "label": "Output type",
            "type": "enum",
            "option": [
              "--output-type"
            ],
            "choices": [
              {
                "value": "json",
                "label": "JSON"
              },
              {
                "value": "yaml",
                "label": "YAML"
              },
              {
                "value": "dotenv",
                "label": "dotenv"
              },
              {
                "value": "ini",
                "label": "INI"
              },
              {
                "value": "binary",
                "label": "Binary"
              }
            ],
            "sources": [
              "help"
            ]
          }
        ],
        "task": [
          {
            "id": "age",
            "label": "Encrypt for age",
            "fields": [
              "file",
              "age",
              "output",
              "encrypted_regex"
            ],
            "required": [
              "file",
              "age"
            ]
          },
          {
            "id": "in-place",
            "label": "Encrypt in place",
            "set": {
              "in_place": [
                true
              ]
            },
            "lock": [
              "in_place"
            ],
            "fields": [
              "file",
              "in_place",
              "age",
              "pgp",
              "kms"
            ],
            "required": [
              "file"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "file",
              "age",
              "pgp",
              "kms",
              "output",
              "in_place"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "encrypted_regex",
              "unencrypted_regex",
              "input_type",
              "output_type"
            ]
          }
        ]
      }
    ]
  }
}
