{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/aiproj-json/versions/1.0.json",
  "title": "aiproj",
  "description": "Settings for project analysis by the Application Inspector",
  "x-lintel": {
    "source": "https://www.schemastore.org/aiproj-1.0.json",
    "sourceSha256": "3c0c1198c3178a3b9e5f61e2ac5aad035c0c522b3389d8b6c29df25ef05b8fd0",
    "fileMatch": [
      ".aiproj.json"
    ],
    "parsers": [
      "json"
    ]
  },
  "type": "object",
  "properties": {
    "$schema": {
      "type": "string"
    },
    "BlackBoxSettings": {
      "title": "black box options",
      "type": [
        "object",
        "null"
      ],
      "description": "Black box and autocheck options",
      "properties": {
        "AdditionalHttpHeaders": {
          "title": "HTTP headers",
          "description": "Dictionary of additional HTTP headers",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "Authentication": {
          "title": "authentication options",
          "oneOf": [
            {
              "type": "object",
              "properties": {
                "Type": {
                  "enum": [
                    "RawCookie"
                  ]
                },
                "Cookie": {
                  "type": "object"
                }
              },
              "required": [
                "Cookie",
                "Type"
              ]
            },
            {
              "type": "object",
              "properties": {
                "Type": {
                  "enum": [
                    "Form"
                  ]
                },
                "Form": {
                  "type": "object"
                }
              },
              "required": [
                "Form",
                "Type"
              ]
            },
            {
              "type": "object",
              "properties": {
                "Type": {
                  "enum": [
                    "Http"
                  ]
                },
                "Http": {
                  "type": "object"
                }
              },
              "required": [
                "Http",
                "Type"
              ]
            },
            {
              "type": "object",
              "properties": {
                "Type": {
                  "enum": [
                    "None"
                  ]
                }
              },
              "required": [
                "Type"
              ]
            },
            {
              "type": "null"
            }
          ],
          "type": [
            "object",
            "null"
          ],
          "description": "Authentication options",
          "properties": {
            "Cookie": {
              "title": "cookie authentication options",
              "type": [
                "object",
                "null"
              ],
              "description": "Cookie authentication options",
              "required": [
                "Cookie",
                "ValidationAddress",
                "ValidationTemplate"
              ],
              "properties": {
                "Cookie": {
                  "description": "Cookie",
                  "type": "string"
                },
                "ValidationAddress": {
                  "description": "Verification address",
                  "type": "string"
                },
                "ValidationTemplate": {
                  "description": "String to search for",
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "Form": {
              "title": "form authentication options",
              "type": [
                "object",
                "null"
              ],
              "description": "Form-based authentication options",
              "required": [
                "FormAddress",
                "FormXPath",
                "Login",
                "LoginKey",
                "Password",
                "PasswordKey",
                "ValidationTemplate"
              ],
              "properties": {
                "FormAddress": {
                  "description": "Sign-in form URL",
                  "type": "string"
                },
                "FormXPath": {
                  "description": "Sign-in form XPath",
                  "type": "string"
                },
                "Login": {
                  "description": "User",
                  "type": "string"
                },
                "LoginKey": {
                  "description": "User identifier",
                  "type": "string"
                },
                "Password": {
                  "description": "Password",
                  "type": "string"
                },
                "PasswordKey": {
                  "description": "Password identifier",
                  "type": "string"
                },
                "ValidationTemplate": {
                  "description": "String to search for",
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "Http": {
              "title": "HTTP authentication options",
              "type": [
                "object",
                "null"
              ],
              "description": "HTTP Basic authentication options",
              "required": [
                "Login",
                "Password",
                "ValidationAddress"
              ],
              "properties": {
                "Login": {
                  "description": "User",
                  "type": "string"
                },
                "Password": {
                  "description": "Password",
                  "type": "string"
                },
                "ValidationAddress": {
                  "description": "Verification address",
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "Type": {
              "description": "Type of authentication",
              "type": "string",
              "enum": [
                "Form",
                "Http",
                "RawCookie",
                "None"
              ]
            }
          },
          "additionalProperties": false
        },
        "Level": {
          "description": "Search mode",
          "type": "string",
          "enum": [
            "None",
            "Fast",
            "Full",
            "Normal"
          ]
        },
        "ProxySettings": {
          "title": "proxy options",
          "type": [
            "object",
            "null"
          ],
          "description": "Proxy server settings",
          "properties": {
            "Enabled": {
              "description": "Enabled",
              "type": "boolean"
            },
            "Host": {
              "description": "Address",
              "type": [
                "string",
                "null"
              ]
            },
            "Login": {
              "description": "User",
              "type": [
                "string",
                "null"
              ]
            },
            "Password": {
              "description": "Password",
              "type": [
                "string",
                "null"
              ]
            },
            "Port": {
              "description": "Port",
              "type": "integer"
            },
            "Type": {
              "description": "Type of proxy",
              "type": "string",
              "enum": [
                "Http",
                "Socks4",
                "Socks5"
              ]
            }
          },
          "additionalProperties": false
        },
        "RunAutocheckAfterScan": {
          "description": "Autocheck vulnerabilities after scanning",
          "type": "boolean"
        },
        "ScanScope": {
          "description": "Scan scope",
          "type": "string",
          "enum": [
            "Domain",
            "Folder",
            "Path"
          ]
        },
        "Site": {
          "description": "Website address",
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "ComponentsSettings": {
      "title": "component settings",
      "type": [
        "object",
        "null"
      ],
      "description": "Vulnerable components scan options",
      "properties": {
        "UseCustomYaraRules": {
          "description": "Use custom yara rules",
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "CustomParameters": {
      "description": "Custom kernel startup parameters",
      "type": [
        "string",
        "null"
      ]
    },
    "DotNetSettings": {
      "title": ".NET options",
      "type": [
        "object",
        "null"
      ],
      "description": ".NET scan options",
      "properties": {
        "ProjectType": {
          "description": "Type of application",
          "type": "string",
          "enum": [
            "None",
            "Solution",
            "WebSite"
          ]
        },
        "SolutionFile": {
          "description": "Path to a solution or project",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "DownloadDependencies": {
      "description": "Download dependencies",
      "type": "boolean"
    },
    "JavaSettings": {
      "title": "Java options",
      "type": [
        "object",
        "null"
      ],
      "description": "Java scan options",
      "properties": {
        "Parameters": {
          "description": "JVM start options",
          "type": [
            "string",
            "null"
          ]
        },
        "UnpackUserPackages": {
          "description": "Unpack custom JAR files",
          "type": "boolean"
        },
        "UserPackagePrefixes": {
          "description": "Prefixes of custom packages",
          "type": [
            "string",
            "null"
          ]
        },
        "Version": {
          "description": "JDK version",
          "type": "string",
          "enum": [
            "v1_8",
            "v1_11"
          ]
        }
      },
      "additionalProperties": false
    },
    "ProgrammingLanguage": {
      "description": "Active scanning language",
      "type": "string",
      "enum": [
        "Java",
        "CSharp",
        "VB",
        "Php",
        "JavaScript",
        "Python",
        "ObjectiveC",
        "Swift",
        "CAndCPlusPlus",
        "Go",
        "Kotlin",
        "Sql"
      ]
    },
    "ProjectName": {
      "description": "Project name",
      "type": "string"
    },
    "ScanModules": {
      "description": "Enabled modules",
      "type": "array",
      "uniqueItems": true,
      "items": {
        "type": "string",
        "enum": [
          "Configuration",
          "Components",
          "BlackBox",
          "DataFlowAnalysis",
          "PatternMatching",
          "VulnerableSourceCode"
        ]
      }
    },
    "SkipGitIgnoreFiles": {
      "description": "Exclude from scanning the files from the .gitignore file",
      "type": "boolean"
    },
    "UsePublicAnalysisMethod": {
      "description": "Search from available public and protected methods",
      "type": "boolean"
    },
    "UseSastRules": {
      "description": "Enable SAST Analysis rules",
      "type": "boolean"
    },
    "UseSecurityPolicies": {
      "description": "Check for compliance with the security policy",
      "type": "boolean"
    }
  },
  "id": "https://json.schemastore.org/aiproj-1.0.json",
  "additionalProperties": false
}
