{
  "id": "mkcert",
  "name": "mkcert",
  "homepage": "https://github.com/FiloSottile/mkcert",
  "description": "A simple zero-config tool to make locally trusted development certificates with any names you'd like.",
  "executables": [
    "mkcert"
  ],
  "dotfiles": {
    "paths": [
      "[dataHome]/mkcert/rootCA.pem"
    ],
    "exclude": [],
    "secret": [
      "[dataHome]/mkcert/rootCA-key.pem"
    ],
    "side_effect": false
  },
  "commands": {
    "format": 1,
    "label": "Issue a local certificate",
    "description": "Create a locally-trusted development certificate for one or more names. Installing the local CA (-install) and -csr are left out. Options must come before the names.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": false,
      "short_attached": false,
      "short_bundles": false
    },
    "source": [
      {
        "id": "readme",
        "kind": "manual",
        "url": "https://github.com/FiloSottile/mkcert/blob/master/README.md",
        "revision": "master",
        "evidence": "$ mkcert example.com \"*.example.com\" example.test localhost 127.0.0.1 ::1\n\t-cert-file FILE, -key-file FILE, -p12-file FILE\n\t    Customize the output paths.\n\t-client\n\t    Generate a certificate for client authentication.\n\t-ecdsa\n\t    Generate a certificate with an ECDSA key.\n\t-pkcs12\n\t    Generate a \".p12\" PKCS #12 file, also know as a \".pfx\" file,\n> **Note:** You _must_ place these options before the domain names list."
      }
    ],
    "field": [
      {
        "id": "cert_file",
        "label": "Certificate output file",
        "type": "path",
        "option": [
          "-cert-file"
        ],
        "path": {
          "kind": "file",
          "role": "output"
        },
        "effect": "overwrite",
        "sources": [
          "readme"
        ]
      },
      {
        "id": "key_file",
        "label": "Key output file",
        "type": "path",
        "option": [
          "-key-file"
        ],
        "path": {
          "kind": "file",
          "role": "output"
        },
        "effect": "overwrite",
        "sources": [
          "readme"
        ]
      },
      {
        "id": "p12_file",
        "label": "PKCS #12 output file",
        "type": "path",
        "option": [
          "-p12-file"
        ],
        "path": {
          "kind": "file",
          "role": "output"
        },
        "effect": "overwrite",
        "sources": [
          "readme"
        ]
      },
      {
        "id": "client",
        "label": "Client authentication certificate",
        "type": "boolean",
        "option": [
          "-client"
        ],
        "sources": [
          "readme"
        ]
      },
      {
        "id": "ecdsa",
        "label": "ECDSA key",
        "type": "boolean",
        "option": [
          "-ecdsa"
        ],
        "sources": [
          "readme"
        ]
      },
      {
        "id": "pkcs12",
        "label": "Also write a .p12 / .pfx file",
        "type": "boolean",
        "option": [
          "-pkcs12"
        ],
        "sources": [
          "readme"
        ]
      },
      {
        "id": "names",
        "label": "Domains, IPs or emails",
        "description": "For example example.com, *.example.com, localhost, 127.0.0.1, ::1.",
        "type": "string",
        "position": 0,
        "multiple": true,
        "sources": [
          "readme"
        ]
      }
    ],
    "task": [
      {
        "id": "localhost",
        "label": "Certificate for localhost",
        "fields": [
          "names"
        ],
        "required": [
          "names"
        ],
        "set": {
          "names": [
            "localhost",
            "127.0.0.1",
            "::1"
          ]
        }
      },
      {
        "id": "named_files",
        "label": "Certificate with named output files",
        "fields": [
          "cert_file",
          "key_file",
          "names"
        ],
        "required": [
          "cert_file",
          "key_file",
          "names"
        ]
      }
    ],
    "group": [
      {
        "id": "basic",
        "label": "Basic",
        "fields": [
          "names",
          "cert_file",
          "key_file"
        ]
      },
      {
        "id": "advanced",
        "label": "Advanced",
        "fields": [
          "client",
          "ecdsa",
          "pkcs12",
          "p12_file"
        ]
      }
    ]
  }
}
