Type object
File match stackhawk.yml stackhawk.yaml stackhawk-*.yml stackhawk-*.yaml
Schema URL https://catalog.lintel.tools/schemas/schemastore/stackhawk-scanner-configuration/latest.json
Source https://download.stackhawk.com/hawk/jsonschema/hawkconfig.json

Validate with Lintel

npx @lintel/lintel check
Type: object

JSON schema for StackHawk HawkScan configuration files.

Properties

app object required

Define key settings for the application to be scanned, including properties like the application's host URL, authentication methods, API type, and custom paths. This section includes essential parameters, such as:

  • applicationId: Required. The unique identifier for the application in the StackHawk platform.
  • env: Required. The environment name used to organize scan results (e.g., "Production" or "Staging").
  • host: Required. The base URL of the application to scan, e.g., http://localhost:8000. The scan will not proceed if the URL is unreachable.

Additionally, specify other optional details such as session tokens, CSRF parameters, API-specific configurations (e.g., GraphQL, OpenAPI, SOAP, gRPC), and any paths to exclude or include in the scan.

All of: variant
19 nested properties
host string required

Required. The base url of the application to scan ex: http://localhost:8000. If the url cannot be reached, the scan will not proceed.

pattern=(?:\$\{[^}]+\}|(?:https?|ftp|file):\/\/|www\.|ftp\.)(?:\([-\w0-9+&@#\/%=~_|$?!:,.]*\)|[-\w0-9+&@#\/%=~_|$?!:,.])*(?:\([-\w0-9+&@#\/%=~_|$?!:,.]*\)|[\w0-9+&@#\/%=~_|$])
applicationId string required

Required. Your StackHawk application UUID. Create an application in the StackHawk platform to obtain this identifier.

pattern=\b[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}\b
env string required

Required. The env environment name to organize Scan Results.

sessionTokens string[]

The names of any session tokens used by your application, provided as an array of strings (Hint: these are the names of session cookies used by your application).

antiCsrfParam string

The name of your CSRF security parameter used in any application form inputs. Globally set, HawkScan will parse this parameter value from form responses to use in subsequent requests.

authentication object

Configuration block for application authentication to enable scanning as the provided user of your application. If provided, HawkScan will first attempt to sign into your web application with the provided login credentials. Only after successfully verifying will scanning occur. For more information, see the Authenticated Scanning section.

All of: variant, variant
14 nested properties
testPath object required

A configuration specifying how to verify if Scan authentication and authorization is working before running a scan.

An example configuration of app.authentication.testPath:

 app:
  authentication:
    testPath:
      type: HEADER
      path: /user/profile
      success: ".*200.*"
      requestMethod: POST
      requestBody: '{"feeling": "KaaKaww!"}'
      requestHeaders:
        Content-Type: "application/json"

This uses either success or fail criteria to determine if authorized access is working correctly.

All of: variant
8 nested properties
path string required

Required. The path to a protected route in your application that requires authorization. For example /mysettings. A GET request will be made to this path using the configured authentication.

pattern=^\/(([A-z0-9\-\%]+\/)*[A-z0-9\-\%]+$)?
type string

An enum value representing what to match against in the response from issuing a request to the testPath.path. The supported values are HEADER and BODY.

Values: "HEADER" "BODY"
success string

A regex that will match against the response header or body, specified by type, of the GET request to the path. A match of the regex supplied will indicate that scanning should proceed with the specified authentication.

HawkScan requires that either success OR fail be configured (do not configure both).

fail string

A regex that will match against the response header or body, specified by type, of the GET request to the path. A match of the regex supplied will indicate that scanning should halt and enter an error state.

HawkScan requires that either success OR fail be configured (do not configure both).

requestMethod string

Request method to use for queries. Will generate GraphQL queries as either POST payloads or GET uri strings.

Values: "GET" "POST" "PUT" "PATCH"
requestBody string

The request content to send along with POST or PUT requests for authentication verification.

requestHeaders Record<string, string>
grpcTestMethod string

The gRPC method path to call for authentication validation (e.g., "/auth.AuthService/ValidateToken"). Only used when authentication type is GRPC.

usernamePassword object

Optional configuration specifying a username and password based authentication configuration. Currently POSTing the credentials via FORM or JSON type is supported. Use in conjunction cookieAuthorization or tokenAuthorization to maintain authorized access to your application.

11 nested properties
loginPath string required

Required. login route to POST credentials for a user in the application (ex. /login). An http POST request using the type specified will be made to this path.

pattern=^(https?://[^\s]+|\/(([A-z0-9\-\%]+\/)*[A-z0-9\-\%]+)?(\?[^\s]*)?)$
usernameField string required

Required. the username html field used in your application form or json, provided as a string.

passwordField string required

Required. The password html field used in your application form or json, provided as a string.

scanUsername string required

Required*. The username credentials provided to authentication when attempting to login to the web application, provided as a string. HawkScan best practices recommend using environment variable runtime overrides for this value (ex. "${SCAN_USERNAME:admin}" will use the $SCAN_USERNAME environment variable as the scanUsername, or fallback to admin).

scanPassword string required

Required*. The password credentials provided to authentication when attempting to login to the web application, provided as a string. HawkScan best practices recommend using environment variable runtime overrides for this value (ex. "${SCAN_PASSWORD}" will use the $SCAN_PASSWORD environment variable as the scanPassword).

loginPagePath string

The path to your login form, if applicable. This is an optional path but is often required if the POST to the loginPath requires an anti csrf token to be passed as part of the POST. The app.antiCsrfParam will be extracted from the response body of a GET request to this page.

pattern=^(https?://[^\s]+|\/(([A-z0-9\-\%]+\/)*[A-z0-9\-\%]+)?(\?[^\s]*)?)$
type string

An enum value describing the type of POST data expected by the loginPath

Values: "FORM" "JSON" "HTTP" "JSON_RPC" "GRPC"
otherParams NameValParam[]

Other request parameters required by your login payload, provided as an array of objects with name and value string keys. This setting is helpful if your authentication process requires other parameters included in the form POST besides the username and password parameters. If in doubt, this setting can be safely left unconfigured.

realm string

Realm for NTLM authentication

jsonrpcMethod string

The JSON-RPC method name to call for authentication (e.g., "auth.login"). Required when type is JSON_RPC.

grpcMethod string

The gRPC method path for authentication (e.g., "/auth.AuthService/Login"). Required when type is GRPC. Uses grpcConf for descriptor.

external object

Optional configuration block for specifying an externally supplied authorization token, HawkScan will attempt to access a protected path in your web application with the supplied token before scanning. For more information, see the Authenticated Scanning section.

2 nested properties
type string

Specifies the type of token being supplied. If COOKIE is specified the .external.value should be in the form of a cookie value = . Defaults to TOKEN.

Values: "TOKEN" "COOKIE"
values AuthTokens[]

The value pairs containing the token that will authorize requests. How the token is passed to your application is determined by the assigned type.

script object

Configuration for a custom authentication script. HawkScan will run the provided authentication script until a request matches the loggedInIndicator, or if the loggedOutIndicator is tripped on a request. The authentication script name should also be included in the hawkAddOn.scripts.name

3 nested properties
name string required

The name of the authentication script, as specified in the hawkAddOn.scripts.name.

parameters Record<string, string>
credentials Record<string, string>
externalCommand object

Optional configuration block allowing HawkScan to run a specified command line process. HawkScan will attempt to access a protected path in your web application with the supplied headers or cookies before scanning. For more information, see the Authenticated Scanning section.

3 nested properties
command string required

The command to start the process e.g. bash, python

parameters string[]

Parameters required to run the script e.g. -c, --verbose

timeoutSeconds number | string

Maximum time in seconds to wait for the process to complete. Defaults to 60 seconds.

Default: 60
pattern=^([0-9][0-9]+|[1-9]|0)$min=0
oauth object

Optional configuration block allowing HawkScan to authorize requests with a 3rd party OAuth 2.0 auth provider.

2 nested properties
credentials object

Credential parameters sent to an OAuth/3rd party provider.

parameters object

Configuration parameters sent to an OAuth/3rd party provider.

tokenExtraction object

Token extraction is optional unless you're using the tokenAuthorization in combination with usernamePassword authentication. This configuration specifies how to extract the authorization token from the authentication response.

2 nested properties
value string required

Required*. String containing the path to the token in the JSON payload authentication response or the name of the response header containing the token. Example: if the authentication response JSON payload looks like {"auth" : {"token": "<my-auth-token>"}} the value would be auth.token. If the authentication response has a header named AuthToken: <my-token>, then the value should be AuthToken.

type string

Specifying TOKEN_PATH tells HawkScan to extract the token from the JSON payload of the response from authentication. HEADER tells HawkScan to extract the token from a header in the response from authentication. defaults to TOKEN_PATH.

Values: "TOKEN_PATH" "HEADER_NAME"
cookieAuthorization object

An optional configuration specifying if authorization is maintained via a cookie session.

1 nested properties
cookieNames string[]

A list of strings that are the names of cookies used for maintaining a session. Typically this is one value like jsessionid or PHPSESS. When used in combination with authentication HawkScan will use this value to persist authenticated session state with your application.

tokenAuthorization object

An optional configuration telling HawkScan how to pass the authorization token to your application on each request to maintain authorized access.

5 nested properties
value string required

Required. The name of the HEADER or QUERY_PARAM the token should be passed as.

type string

An enum value representing how to pass the authorization token to your application. HEADER indicates that each request should have the authorization token header added to the requests. QUERY_PARAM indicates that the token should be passed as a query parameter.

Values: "HEADER" "QUERY_PARAM"
tokenType string

TokenType will be prepended the header value e.g. tokenType: TOKEN -> "TOKEN xxxxxxxxx"

Default: "Bearer"
isJWT boolean

If the token is a JWT, mark this field as true

Default: false
renewMillis number | string

If isJWT is set to true, this field will determine the time in milliseconds before expiration to auto renew the JWT.

pattern=^([0-9][0-9]+|[1-9])$exclusiveMin=0
sessionScript object

Optional configuration block for specifying a custom session management script. To learn more about session scripts, reference the HawkScan Examples{:target="_blank"} repository.

2 nested properties
name string required

Required The name of the session script defined in hawkAddons.scripts. The script type must be session, and match the hawkAddOn.scripts.name field.

parameters Record<string, string>
loggedInIndicator string

A regex to match against http responses from pages in the web application to determine if the scanned pages user session is still logged in to the app, provided as a string (ex. ".*signed in as.*"). Required if authorization token is not a JWT.

loggedOutIndicator string

A regex to match against http responses from pages in the web application to determine if the scanned pages user session is logged out of the app, provided as a string. Required if authorization token is not a JWT.

overrideJWTAutoRenew boolean

If set to true HawkScan will not try to autorenew a JWT.

profiles UserProfile[]

Optional extra creds

excludePaths string[]

An array of strings, used as regexes to match against routes that should be ignored entirely by HawkScan. If populated, paths that match any supplied regex will be excluded from the scan. This field is useful for prohibiting asset directories or other resources that don't require vulnerability scanning.

graphqlConf object

Configure how HawkScan interacts with GraphQL APIs.

One of the following is Required:

  • schemaPath: Relative path to the introspection endpoint (based on the host address).
  • filePath: Relative path to a GraphQL schema file (SDL format).

The following are Optional:

  • operation: Adjust the operation requests generated by the spider (QUERY or MUTATION, defaults to both).
  • excludeOperations: Exclude particular GraphQL operations from being scanned.

For full details, see GraphQL Configuration Documentation.

10 nested properties
schemaPath string

Path to the GraphQL introspection endpoint, relative to the target URI.

pattern=^\/(([A-z0-9\-\%]+\/)*[A-z0-9\-\%]+$)?
requestMethod string

Request method to use for queries. Will generate GraphQL queries as either POST payloads or GET uri strings.

Values: "POST" "GET"
uriMaxLength number | string

Max length of URIs when generation queries for GET requests.

pattern=^([0-9][0-9]+|[1-9]|0)$min=0
maxDepth number | string

Maximum depth for generated query graphs.

pattern=^([0-9][0-9]+|[1-9]|0)$max=50exclusiveMin=0
enabled boolean

Enable GraphQL scan support. HawkScan will enumerate all possible field types and input values for GraphQL Queries and Mutations. Provide relative path to the API endpoint.

operation string

GraphQL operation to enumerate and scan. Defaults to find all Query and Mutation operations. Options are All, QUERY and MUTATION.

Values: "ALL" "QUERY" "MUTATION"
filePath string

Path to a local GraphQL schema file (SDL format) to use instead of introspection.

excludeOperations GraphQLExcludeOperationParam[]

GraphQL operations to exclude from the spider.

fakerEnabled boolean

Enables faker for a GraphQL scan to generate more realistic values when format is provided on the API spec or custom variables.

customVariables GraphQLCustomVariable[]

Define custom variables and values for use in GraphQL scanning.

includePaths string[]

An array of strings, used as regexes to limit which application routes HawkScan will specifically visit. If populated, paths must match at least one supplied regex to be included as part of the scan. This field is useful for constraining the reach of the HawkScan scanner and spider.

autoPolicy boolean

Set to true to enable an optimized policy when scanning specific APIs like GraphQL and OpenAPI. Defaults to True.

autoInputVectors boolean

Set to true to automatically enabled the correct input data types when scanning APIs like GraphQL and OpenAPI. This can increase scan accuracy and reduce false positives. Defaults to True.

openApiConf object

Define how HawkScan scans OpenAPI endpoints.

One of the following is Required:

  • filePath: Path to a local OpenAPI specification file (JSON or YAML).
  • path: URL path to fetch the OpenAPI spec from the scanned host.

For full details such as custom variable injection, see OpenAPI Configuration Documentation.

12 nested properties
path string

A string relative path to an OpenAPI specification file (JSON or YAML) from the scanned host.

pattern=^\/(([A-z0-9\-\%]+\/)*[A-z0-9\-\%]+$)?
filePath string

Path to a local OpenAPI specification file (JSON or YAML format).

strict boolean

Whether to enable strict parsing of the OpenAPI.

customVariables OpenApiCustomVariable[]

Define custom variables and values for use in REST API scanning.

includeAllMethods boolean

When custom variables are provided, DELETE's are skipped for injection. Set this to true to override this default and include all methods in variable injection.

includedMethods string[]

List of methods to include in custom variable injection. Note: if 'includeAllMethods' is set to true, this list is ignored and all methods will be used for custom variable injection.

fakerEnabled boolean

Enables faker for a REST API scan to generate more realistic values when format is provided on the API spec or custom variables.

maxAliasesForCollections number | string

Maximum number of aliases for a collection when parsing YAML. Increase this value if you see the "Number of aliases for non-scalar nodes exceeds the specified max=100" error.

Default: 100
pattern=^([0-9][0-9]+|[1-9]|0)$min=0
forbiddenVariables OpenApiCustomVariable[]

Custom variables that the user should not see for tenancy checks.

filePaths string[]

A list of relative path to specification file(s) (JSON or YAML) for the open api generation for specs with multiple open api files.

usePlatform boolean

Use the OpenApi Specifications mapped to this application from the StackHawk Platform for this scan.

globalParameters Record<string, string>
soapConf object

Set parameters for scanning SOAP APIs.

One of the following is Required:

  • path: Relative URL to fetch the SOAP API WSDL from the scanned host.
  • filePath: Path to a local SOAP API WSDL specification file.

For full details, see SOAP Configuration Documentation.

2 nested properties
path string

Host path to the SOAP WSDL, prefixed with a / .

pattern=^\/(([A-z0-9\-\%]+\/)*[A-z0-9\-\%]+$)?
filePath string

Relative path to the SOAP WSDL schema definition file.

grpcConf object

Configure HawkScan for gRPC API scanning.

One of the following is Required:

For full details such as custom variable injection, see gRPC Configuration Documentation.

5 nested properties
path string

Host path for the grpc reflection endpoint.

filePath string

Path to a local gRPC protobuf descriptor_set file.

customVariables CustomVariable[]

Define custom variables and values for use in gRPC scanning.

maxDepth number | string

Maximum depth for resolving nested protobuf.

Default: 10
pattern=^([0-9][0-9]+|[1-9]|0)$max=50exclusiveMin=0
filePaths string[]

A list of paths to the grpc protobuf descriptor_set file.

inputVectors object

Fine-grained configuration of HawkScan input vectors. This configuration is how and where testable inputs are applied on http requests.

2 nested properties
injectableParam object
6 nested properties
urlQueryParam boolean

Allow injection of testable inputs url query parameter values.

urlQuery boolean

Allow injections of testable inputs url query parameter names.

postData boolean

Allow injection of testable inputs request body inputs on POST requests.

urlPath boolean

Allow injection of testable inputs url paths.

httpHeaders boolean

Allow injection of testable inputs for http headers.

cookieData boolean

Allow injection of testable inputs for cookie data.

enabledRpcParam object
6 nested properties
multipartFormData boolean

Support for multipart/form-data request bodies.

xmlTag boolean

Support for xml request bodies.

json boolean

Support for json request bodies.

googleWebToolkit boolean

Support for GWT request bodies. Deprecated.

odataId boolean

Support for Odata request bodies. Deprecated.

directWebRemoting boolean

Support for direct web remoting request bodies. Deprecated.

waitForAppTarget object

Configuration specifying how to determine if the web application is up, responsive and ready for scanning.

6 nested properties
waitTimeoutMillis number | string required

The maximum amount of time in milliseconds that HawkScan will wait for your app to be available before it starts scanning

pattern=^([0-9][0-9]+|[1-9]|0)$min=0
pollDelay number | string required

The maximum amount of time in milliseconds in between requests to your application to see if it's running

pattern=^([0-9][0-9]+|[1-9]|0)$min=50
path string

The path to a public reachable route in your application. For example /index. A GET request will be made to this path to confirm the host is up and ready to receive traffic.

Default: "/"
requestMethod string

Request method to use for queries. Will generate GraphQL queries as either POST payloads or GET uri strings.

Values: "GET" "POST" "PUT" "PATCH"
requestBody string

The request content to send along with POST or PUT requests for target verification.

requestHeaders Record<string, string>
redact object

Redaction policy of scan logs and stdout when scanning this application.

HawkScan maintains a list of redacted tokens; strings that are sensitive and should be scrubbed preemptively from logs and collected messages. By default, HawkScan redacts app.authentication credentials, and any provided script / discovery credentials.

2 nested properties
headers string[]

List of string header names: the values of HTTP headers matching these names will be redacted from alerts and logs.

values string[]

List of string static values: the values here will be added to the redacted token list. This is best used with ${ENV_VAR:default} interpolation.

scanPolicy object

Configure the policy to be applied for the scan, optionally specifying which plugins to include or exclude. Note: Applies to scan policies created with Organization Policy Management.

3 nested properties
name string required

Required. The unique name of the organization scan policy.

excludePluginIds string[]

Plugin ids to exclude from the named scan policy.

includePluginIds string[]

Plugin ids to include in the scan that are not in the named scan policy.

jsonRpcConf object

Configure HawkScan for JSON-RPC 2.0 API scanning.

One of the following is Required:

  • endpoint: The JSON-RPC endpoint path (e.g., /jsonrpc or /api/rpc).
  • path: Host path to a hosted OpenRPC specification (e.g., /openrpc.json).
  • filePath: Relative path to a local OpenRPC schema file (JSON format).

For full details such as custom variable injection, see JSON-RPC Configuration Documentation.

10 nested properties
enabled boolean

Enable JSON-RPC scan support.

endpoint string

The JSON-RPC endpoint path relative to the target host (e.g., /jsonrpc). Defaults to /.

Default: "/"
pattern=^\/(([A-z0-9\-\%]+\/)*[A-z0-9\-\%]+$)?
filePath string

Path to a local OpenRPC schema file (JSON format) to use instead of network discovery.

maxDepth number | string

Maximum depth for generated nested objects. Defaults to 3.

Default: 3
pattern=^([0-9][0-9]+|[1-9]|0)$max=50exclusiveMin=0
fakerEnabled boolean

Enables faker for JSON-RPC scanning to generate more realistic values when format is provided on the schema or custom variables.

requestTimeout number | string

HTTP request timeout in milliseconds. Defaults to 30000 (30 seconds).

Default: 30000
pattern=^([0-9][0-9]+|[1-9]|0)$exclusiveMin=0
excludeMethods string[]

Regex patterns for JSON-RPC method names to exclude from scanning.

customVariables JsonRpcCustomVariable[]

Define custom variables and values for use in JSON-RPC scanning.

mcp object

MCP (Model Context Protocol) server configuration for JSON-RPC scanning.

3 nested properties
endpoint string

MCP server endpoint path relative to target host. Defaults to /mcp.

Default: "/mcp"
pattern=^\/(([A-z0-9\-\%]+\/)*[A-z0-9\-\%]+$)?
excludeTools string[]

MCP tool names to exclude from scanning.

customValues McpCustomVariable[]

Define custom variables and values for use in MCP tool scanning.

path string

Host path to a hosted OpenRPC specification, relative to the target host (e.g., /openrpc.json).

hawk object

Define global HawkScan settings, independent of the scanned application:

  • spider: Configure application crawling and scan discovery. Enable base and ajax crawlers, set maxDurationMinutes, add seedPaths, use custom commands, or import har files.
  • startupTimeoutMinutes: Maximum time to wait for the scanner to start (default: 5).
  • failureThreshold: Alert severity level to fail a scan (high, medium, or low).
  • scan: Set runtime behavior like max duration, request throttling, and concurrency.
  • config: Advanced scanner configuration overrides.
  • outboundProxy: Configure an outbound proxy, including host, credentials, and CA certificate.

For more details, see HawkScan Configuration Documentation.

6 nested properties
spider object

Configuration block for the application crawling and Discovery Phase aka Spider. See the Scan Discovery page for more details.

10 nested properties
base boolean

Enable the basic web crawler for discovering your application's routes. This spider is appropriate for most traditional web applications.

Default: true
ajax boolean

Enable the ajax web crawler for discovering your application’s routes. This spider is appropriate for single-page web applications.

Default: false
maxDurationMinutes number

Maximum allowed time for enabled spiders to crawl your web application.

Default: 2
exclusiveMin=0
ajaxBrowser string

The browser type and style to use when running the AjaxSpider. When running the stackhawk/hawkscan docker container, this setting is ignored and will use the default CHROME_HEADLESS. The options are CHROME_HEADLESS and CHROME. FIREFOX_HEADLESS and FIREFOX are deprecated.

Values: "FIREFOX_HEADLESS" "CHROME_HEADLESS" "FIREFOX" "CHROME"
seedPaths string[]

List of paths to supplement the spider. These paths will be used as additional starting points for crawling your application. Useful for paths that are not crawlable from the root of your application. For example, /admin. Note: this configuration is NOT a replacement for an API spec and provides no benefit to pure REST API's.

custom object
7 nested properties
command string

Provide a command to run as part of the scan discovery phase. This command will be split from its arguments and execute on its own thread in a context with additional environment variables set with the proxy configuration for HawkScan to intercept http traffic.

environment Record<string, string>
workingDir string

The absolute path working directory these commands are run from.

credentials Record<string, string>
arguments string[]

Command arguments provided as an array of strings. These arguments can be used in addition to or instead of the command. This should be used if the command is sufficiently complex or is exceptionally whitespace sensitive.

excludeParentEnvironment boolean

Only provide the environment variables and credentials as configured. By default also includes the environment from the parent process environment for convenience.

logOutputToForeground boolean

This command prints the stdout and stderr of the command to the foreground.

postmanConfig object

Configuration for the Postman Collection.

3 nested properties
apikey string

API key to authenticated the user with Postman.

collectionUID string

Id of the collection to be pulled from Postman.

filePath string

File path of the Postman collection.

har object

Configuration for using a HAR file as the discovery for a scan. HAR files often contain requests including urls from many hosts, but only URLs matching the app.host or replaceHost will be included in the scan.

All of: variant
3 nested properties
replaceHost string

The hostname of URLs in the HAR file that will be replaced with the host defined in app.host. Leave blank if the app.host is then same hostname in the HAR file.

file object

Paths to .har HTTP Archive formatted files, for use with HARImportConfig.

dir object

Paths to directories, for use with HARImportConfig.

disableSmartCrawling boolean

Disable smart crawling for openApiConf to enable legacy openapi import process.

Default: false
responseBodyFilter object
2 nested properties
includeContentTypes string[]

Content types to include in response body uploads. If specified, replaces the default include list. Supports wildcards (e.g., application/*+json, image/*).

excludeContentTypes string[]

Content types to exclude from response body uploads. If specified, adds to the default exclude list. Exclusions take precedence over inclusions. Supports wildcards (e.g., image/*).

startupTimeoutMinutes number

Maximum time in minutes to wait for the scanner process to start.

Default: 5
exclusiveMin=0
failureThreshold string

The lowest alert level that returns a failed scan status. Accepted values: high, medium, or low.

pattern=\b(?:high|medium|low|HIGH|MEDIUM|LOW)\b
scan object

Configuration block for HawkScan runtime.

10 nested properties
maxDurationMinutes number | string

Maximum duration that a scan will run.

pattern=^([0-9][0-9]+|[1-9]|0)$min=0
maxRuleDurationMinutes number | string

Maximum duration that a scan will spend on a rule.

pattern=^([0-9][0-9]+|[1-9]|0)$min=0
requestDelayMillis number | string

Delay time between sending requests.

pattern=^([0-9][0-9]+|[1-9]|0)$min=0
concurrentRequests number | string

Number of request threads. If you need that little extra push. defaults to 20.

pattern=^([0-9][0-9]+|[1-9])$exclusiveMin=0
throttlePassiveBacklog number | string

Pause active scan when passive backlog is greater than this value, resumes once backlog is empty. defaults to 50.

pattern=^([0-9][0-9]+|[1-9])$exclusiveMin=0
throttleIntervalSeconds number | string

How often the throttle check is run, in seconds.

pattern=^([0-9][0-9]+|[1-9])$exclusiveMin=0
throttleTempRecordMax number | string

The max number of temp records allowed before pruning of temp records begins.

pattern=^([0-9][0-9]+|[1-9])$exclusiveMin=0
throttleTempRecordDeleteQuota number | string

The percentage of throttleTempRecordMax records to delete on each throttleIntervalSeconds.

pattern=^([0-9][0-9]+|[1-9])$min=1max=100
policyName string

Name of a specific named scan policy to use. This field is optional, and an applicable scan policy will be selected if omitted.

includedPlugins string[]

Specify to only scan with these listed plugins.

config string[]

Scanner configuration overrides, provided as a list of key=value strings. A list of strings in the form of key=value pairs passed to the scanner as scanner configuration overrides.

This is an advanced feature to configure HawkScan plugins and override their default behavior.

outboundProxy object

Configuration block for a proxy. This enables HawkScan to traffic scanner requests through an outbound network proxy.

3 nested properties
host string

The host of the outbound explicit proxy, including port (e.g. https://localhost:8888).

credentials object

Credential details for the outbound proxy behavior.

4 nested properties
username string

Required. The username for proxy credentials.

password string

Required. The password for proxy credentials.

realm string

Realm for proxy credentials.

scheme string

Scheme of proxy authentication. Currently BASIC, NTLM are supported.

rootCACertPath string

Path to root CA Certificate for transparent outbound proxies. This can be used without specifying host or credentials.

hawkAddOn object

Extend HawkScan functionality with add-ons and custom scripts:

  • replacer: Modify or replace HTTP request headers using rules with properties like matchString, replacement, isRegex, and replaceOnly.
  • scripts: Configure custom scripts to customize scan behavior with name, type (e.g., active, authentication), path, language (KOTLIN, JAVASCRIPT), and vars.

For more detail, see HawkScan Configuration Documentation.

2 nested properties
replacer object

Configuration block for header value replacement. These rules support manipulating request headers, useful for modifying requests to web applications running behind a proxy.

1 nested properties

List of regex match and replace rules for request headers.

scripts Script[]

List of configurations for custom scripts.

tags Tag[]

Searchable keywords to associate with this scan.

Definitions

HawkscanConf object

The HawkScan configuration. The stackhawk.yml file follows this structure. A run of HawkScan will use this configuration to inform the scanner how to operate.

The minimum stackhawk.yml required is the following:

 app:
  applicationId: kkAAAKAW-kAWW-kkAA-WWwW-kAAkkAAAAwWW
  env: Test
  host: http://localhost:1337

Signup for a StackHawk account and Get Started.

app object required

Define key settings for the application to be scanned, including properties like the application's host URL, authentication methods, API type, and custom paths. This section includes essential parameters, such as:

  • applicationId: Required. The unique identifier for the application in the StackHawk platform.
  • env: Required. The environment name used to organize scan results (e.g., "Production" or "Staging").
  • host: Required. The base URL of the application to scan, e.g., http://localhost:8000. The scan will not proceed if the URL is unreachable.

Additionally, specify other optional details such as session tokens, CSRF parameters, API-specific configurations (e.g., GraphQL, OpenAPI, SOAP, gRPC), and any paths to exclude or include in the scan.

All of: variant
19 nested properties
host string required

Required. The base url of the application to scan ex: http://localhost:8000. If the url cannot be reached, the scan will not proceed.

pattern=(?:\$\{[^}]+\}|(?:https?|ftp|file):\/\/|www\.|ftp\.)(?:\([-\w0-9+&@#\/%=~_|$?!:,.]*\)|[-\w0-9+&@#\/%=~_|$?!:,.])*(?:\([-\w0-9+&@#\/%=~_|$?!:,.]*\)|[\w0-9+&@#\/%=~_|$])
applicationId string required

Required. Your StackHawk application UUID. Create an application in the StackHawk platform to obtain this identifier.

pattern=\b[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}\b
env string required

Required. The env environment name to organize Scan Results.

sessionTokens string[]

The names of any session tokens used by your application, provided as an array of strings (Hint: these are the names of session cookies used by your application).

antiCsrfParam string

The name of your CSRF security parameter used in any application form inputs. Globally set, HawkScan will parse this parameter value from form responses to use in subsequent requests.

authentication object

Configuration block for application authentication to enable scanning as the provided user of your application. If provided, HawkScan will first attempt to sign into your web application with the provided login credentials. Only after successfully verifying will scanning occur. For more information, see the Authenticated Scanning section.

All of: variant, variant
14 nested properties
testPath object required

A configuration specifying how to verify if Scan authentication and authorization is working before running a scan.

An example configuration of app.authentication.testPath:

 app:
  authentication:
    testPath:
      type: HEADER
      path: /user/profile
      success: ".*200.*"
      requestMethod: POST
      requestBody: '{"feeling": "KaaKaww!"}'
      requestHeaders:
        Content-Type: "application/json"

This uses either success or fail criteria to determine if authorized access is working correctly.

All of: variant
usernamePassword object

Optional configuration specifying a username and password based authentication configuration. Currently POSTing the credentials via FORM or JSON type is supported. Use in conjunction cookieAuthorization or tokenAuthorization to maintain authorized access to your application.

external object

Optional configuration block for specifying an externally supplied authorization token, HawkScan will attempt to access a protected path in your web application with the supplied token before scanning. For more information, see the Authenticated Scanning section.

script object

Configuration for a custom authentication script. HawkScan will run the provided authentication script until a request matches the loggedInIndicator, or if the loggedOutIndicator is tripped on a request. The authentication script name should also be included in the hawkAddOn.scripts.name

externalCommand object

Optional configuration block allowing HawkScan to run a specified command line process. HawkScan will attempt to access a protected path in your web application with the supplied headers or cookies before scanning. For more information, see the Authenticated Scanning section.

oauth object

Optional configuration block allowing HawkScan to authorize requests with a 3rd party OAuth 2.0 auth provider.

tokenExtraction object

Token extraction is optional unless you're using the tokenAuthorization in combination with usernamePassword authentication. This configuration specifies how to extract the authorization token from the authentication response.

cookieAuthorization object

An optional configuration specifying if authorization is maintained via a cookie session.

tokenAuthorization object

An optional configuration telling HawkScan how to pass the authorization token to your application on each request to maintain authorized access.

sessionScript object

Optional configuration block for specifying a custom session management script. To learn more about session scripts, reference the HawkScan Examples{:target="_blank"} repository.

loggedInIndicator string

A regex to match against http responses from pages in the web application to determine if the scanned pages user session is still logged in to the app, provided as a string (ex. ".*signed in as.*"). Required if authorization token is not a JWT.

loggedOutIndicator string

A regex to match against http responses from pages in the web application to determine if the scanned pages user session is logged out of the app, provided as a string. Required if authorization token is not a JWT.

overrideJWTAutoRenew boolean

If set to true HawkScan will not try to autorenew a JWT.

profiles UserProfile[]

Optional extra creds

excludePaths string[]

An array of strings, used as regexes to match against routes that should be ignored entirely by HawkScan. If populated, paths that match any supplied regex will be excluded from the scan. This field is useful for prohibiting asset directories or other resources that don't require vulnerability scanning.

graphqlConf object

Configure how HawkScan interacts with GraphQL APIs.

One of the following is Required:

  • schemaPath: Relative path to the introspection endpoint (based on the host address).
  • filePath: Relative path to a GraphQL schema file (SDL format).

The following are Optional:

  • operation: Adjust the operation requests generated by the spider (QUERY or MUTATION, defaults to both).
  • excludeOperations: Exclude particular GraphQL operations from being scanned.

For full details, see GraphQL Configuration Documentation.

10 nested properties
schemaPath string

Path to the GraphQL introspection endpoint, relative to the target URI.

pattern=^\/(([A-z0-9\-\%]+\/)*[A-z0-9\-\%]+$)?
requestMethod string

Request method to use for queries. Will generate GraphQL queries as either POST payloads or GET uri strings.

Values: "POST" "GET"
uriMaxLength number | string

Max length of URIs when generation queries for GET requests.

pattern=^([0-9][0-9]+|[1-9]|0)$min=0
maxDepth number | string

Maximum depth for generated query graphs.

pattern=^([0-9][0-9]+|[1-9]|0)$max=50exclusiveMin=0
enabled boolean

Enable GraphQL scan support. HawkScan will enumerate all possible field types and input values for GraphQL Queries and Mutations. Provide relative path to the API endpoint.

operation string

GraphQL operation to enumerate and scan. Defaults to find all Query and Mutation operations. Options are All, QUERY and MUTATION.

Values: "ALL" "QUERY" "MUTATION"
filePath string

Path to a local GraphQL schema file (SDL format) to use instead of introspection.

excludeOperations GraphQLExcludeOperationParam[]

GraphQL operations to exclude from the spider.

fakerEnabled boolean

Enables faker for a GraphQL scan to generate more realistic values when format is provided on the API spec or custom variables.

customVariables GraphQLCustomVariable[]

Define custom variables and values for use in GraphQL scanning.

includePaths string[]

An array of strings, used as regexes to limit which application routes HawkScan will specifically visit. If populated, paths must match at least one supplied regex to be included as part of the scan. This field is useful for constraining the reach of the HawkScan scanner and spider.

autoPolicy boolean

Set to true to enable an optimized policy when scanning specific APIs like GraphQL and OpenAPI. Defaults to True.

autoInputVectors boolean

Set to true to automatically enabled the correct input data types when scanning APIs like GraphQL and OpenAPI. This can increase scan accuracy and reduce false positives. Defaults to True.

openApiConf object

Define how HawkScan scans OpenAPI endpoints.

One of the following is Required:

  • filePath: Path to a local OpenAPI specification file (JSON or YAML).
  • path: URL path to fetch the OpenAPI spec from the scanned host.

For full details such as custom variable injection, see OpenAPI Configuration Documentation.

12 nested properties
path string

A string relative path to an OpenAPI specification file (JSON or YAML) from the scanned host.

pattern=^\/(([A-z0-9\-\%]+\/)*[A-z0-9\-\%]+$)?
filePath string

Path to a local OpenAPI specification file (JSON or YAML format).

strict boolean

Whether to enable strict parsing of the OpenAPI.

customVariables OpenApiCustomVariable[]

Define custom variables and values for use in REST API scanning.

includeAllMethods boolean

When custom variables are provided, DELETE's are skipped for injection. Set this to true to override this default and include all methods in variable injection.

includedMethods string[]

List of methods to include in custom variable injection. Note: if 'includeAllMethods' is set to true, this list is ignored and all methods will be used for custom variable injection.

fakerEnabled boolean

Enables faker for a REST API scan to generate more realistic values when format is provided on the API spec or custom variables.

maxAliasesForCollections number | string

Maximum number of aliases for a collection when parsing YAML. Increase this value if you see the "Number of aliases for non-scalar nodes exceeds the specified max=100" error.

Default: 100
pattern=^([0-9][0-9]+|[1-9]|0)$min=0
forbiddenVariables OpenApiCustomVariable[]

Custom variables that the user should not see for tenancy checks.

filePaths string[]

A list of relative path to specification file(s) (JSON or YAML) for the open api generation for specs with multiple open api files.

usePlatform boolean

Use the OpenApi Specifications mapped to this application from the StackHawk Platform for this scan.

globalParameters Record<string, string>
soapConf object

Set parameters for scanning SOAP APIs.

One of the following is Required:

  • path: Relative URL to fetch the SOAP API WSDL from the scanned host.
  • filePath: Path to a local SOAP API WSDL specification file.

For full details, see SOAP Configuration Documentation.

2 nested properties
path string

Host path to the SOAP WSDL, prefixed with a / .

pattern=^\/(([A-z0-9\-\%]+\/)*[A-z0-9\-\%]+$)?
filePath string

Relative path to the SOAP WSDL schema definition file.

grpcConf object

Configure HawkScan for gRPC API scanning.

One of the following is Required:

For full details such as custom variable injection, see gRPC Configuration Documentation.

5 nested properties
path string

Host path for the grpc reflection endpoint.

filePath string

Path to a local gRPC protobuf descriptor_set file.

customVariables CustomVariable[]

Define custom variables and values for use in gRPC scanning.

maxDepth number | string

Maximum depth for resolving nested protobuf.

Default: 10
pattern=^([0-9][0-9]+|[1-9]|0)$max=50exclusiveMin=0
filePaths string[]

A list of paths to the grpc protobuf descriptor_set file.

inputVectors object

Fine-grained configuration of HawkScan input vectors. This configuration is how and where testable inputs are applied on http requests.

2 nested properties
injectableParam object
enabledRpcParam object
waitForAppTarget object

Configuration specifying how to determine if the web application is up, responsive and ready for scanning.

6 nested properties
waitTimeoutMillis number | string required

The maximum amount of time in milliseconds that HawkScan will wait for your app to be available before it starts scanning

pattern=^([0-9][0-9]+|[1-9]|0)$min=0
pollDelay number | string required

The maximum amount of time in milliseconds in between requests to your application to see if it's running

pattern=^([0-9][0-9]+|[1-9]|0)$min=50
path string

The path to a public reachable route in your application. For example /index. A GET request will be made to this path to confirm the host is up and ready to receive traffic.

Default: "/"
requestMethod string

Request method to use for queries. Will generate GraphQL queries as either POST payloads or GET uri strings.

Values: "GET" "POST" "PUT" "PATCH"
requestBody string

The request content to send along with POST or PUT requests for target verification.

requestHeaders Record<string, string>
redact object

Redaction policy of scan logs and stdout when scanning this application.

HawkScan maintains a list of redacted tokens; strings that are sensitive and should be scrubbed preemptively from logs and collected messages. By default, HawkScan redacts app.authentication credentials, and any provided script / discovery credentials.

2 nested properties
headers string[]

List of string header names: the values of HTTP headers matching these names will be redacted from alerts and logs.

values string[]

List of string static values: the values here will be added to the redacted token list. This is best used with ${ENV_VAR:default} interpolation.

scanPolicy object

Configure the policy to be applied for the scan, optionally specifying which plugins to include or exclude. Note: Applies to scan policies created with Organization Policy Management.

3 nested properties
name string required

Required. The unique name of the organization scan policy.

excludePluginIds string[]

Plugin ids to exclude from the named scan policy.

includePluginIds string[]

Plugin ids to include in the scan that are not in the named scan policy.

jsonRpcConf object

Configure HawkScan for JSON-RPC 2.0 API scanning.

One of the following is Required:

  • endpoint: The JSON-RPC endpoint path (e.g., /jsonrpc or /api/rpc).
  • path: Host path to a hosted OpenRPC specification (e.g., /openrpc.json).
  • filePath: Relative path to a local OpenRPC schema file (JSON format).

For full details such as custom variable injection, see JSON-RPC Configuration Documentation.

10 nested properties
enabled boolean

Enable JSON-RPC scan support.

endpoint string

The JSON-RPC endpoint path relative to the target host (e.g., /jsonrpc). Defaults to /.

Default: "/"
pattern=^\/(([A-z0-9\-\%]+\/)*[A-z0-9\-\%]+$)?
filePath string

Path to a local OpenRPC schema file (JSON format) to use instead of network discovery.

maxDepth number | string

Maximum depth for generated nested objects. Defaults to 3.

Default: 3
pattern=^([0-9][0-9]+|[1-9]|0)$max=50exclusiveMin=0
fakerEnabled boolean

Enables faker for JSON-RPC scanning to generate more realistic values when format is provided on the schema or custom variables.

requestTimeout number | string

HTTP request timeout in milliseconds. Defaults to 30000 (30 seconds).

Default: 30000
pattern=^([0-9][0-9]+|[1-9]|0)$exclusiveMin=0
excludeMethods string[]

Regex patterns for JSON-RPC method names to exclude from scanning.

customVariables JsonRpcCustomVariable[]

Define custom variables and values for use in JSON-RPC scanning.

mcp object

MCP (Model Context Protocol) server configuration for JSON-RPC scanning.

path string

Host path to a hosted OpenRPC specification, relative to the target host (e.g., /openrpc.json).

hawk object

Define global HawkScan settings, independent of the scanned application:

  • spider: Configure application crawling and scan discovery. Enable base and ajax crawlers, set maxDurationMinutes, add seedPaths, use custom commands, or import har files.
  • startupTimeoutMinutes: Maximum time to wait for the scanner to start (default: 5).
  • failureThreshold: Alert severity level to fail a scan (high, medium, or low).
  • scan: Set runtime behavior like max duration, request throttling, and concurrency.
  • config: Advanced scanner configuration overrides.
  • outboundProxy: Configure an outbound proxy, including host, credentials, and CA certificate.

For more details, see HawkScan Configuration Documentation.

6 nested properties
spider object

Configuration block for the application crawling and Discovery Phase aka Spider. See the Scan Discovery page for more details.

10 nested properties
base boolean

Enable the basic web crawler for discovering your application's routes. This spider is appropriate for most traditional web applications.

Default: true
ajax boolean

Enable the ajax web crawler for discovering your application’s routes. This spider is appropriate for single-page web applications.

Default: false
maxDurationMinutes number

Maximum allowed time for enabled spiders to crawl your web application.

Default: 2
exclusiveMin=0
ajaxBrowser string

The browser type and style to use when running the AjaxSpider. When running the stackhawk/hawkscan docker container, this setting is ignored and will use the default CHROME_HEADLESS. The options are CHROME_HEADLESS and CHROME. FIREFOX_HEADLESS and FIREFOX are deprecated.

Values: "FIREFOX_HEADLESS" "CHROME_HEADLESS" "FIREFOX" "CHROME"
seedPaths string[]

List of paths to supplement the spider. These paths will be used as additional starting points for crawling your application. Useful for paths that are not crawlable from the root of your application. For example, /admin. Note: this configuration is NOT a replacement for an API spec and provides no benefit to pure REST API's.

custom object
postmanConfig object

Configuration for the Postman Collection.

har object

Configuration for using a HAR file as the discovery for a scan. HAR files often contain requests including urls from many hosts, but only URLs matching the app.host or replaceHost will be included in the scan.

All of: variant
disableSmartCrawling boolean

Disable smart crawling for openApiConf to enable legacy openapi import process.

Default: false
responseBodyFilter object
startupTimeoutMinutes number

Maximum time in minutes to wait for the scanner process to start.

Default: 5
exclusiveMin=0
failureThreshold string

The lowest alert level that returns a failed scan status. Accepted values: high, medium, or low.

pattern=\b(?:high|medium|low|HIGH|MEDIUM|LOW)\b
scan object

Configuration block for HawkScan runtime.

10 nested properties
maxDurationMinutes number | string

Maximum duration that a scan will run.

pattern=^([0-9][0-9]+|[1-9]|0)$min=0
maxRuleDurationMinutes number | string

Maximum duration that a scan will spend on a rule.

pattern=^([0-9][0-9]+|[1-9]|0)$min=0
requestDelayMillis number | string

Delay time between sending requests.

pattern=^([0-9][0-9]+|[1-9]|0)$min=0
concurrentRequests number | string

Number of request threads. If you need that little extra push. defaults to 20.

pattern=^([0-9][0-9]+|[1-9])$exclusiveMin=0
throttlePassiveBacklog number | string

Pause active scan when passive backlog is greater than this value, resumes once backlog is empty. defaults to 50.

pattern=^([0-9][0-9]+|[1-9])$exclusiveMin=0
throttleIntervalSeconds number | string

How often the throttle check is run, in seconds.

pattern=^([0-9][0-9]+|[1-9])$exclusiveMin=0
throttleTempRecordMax number | string

The max number of temp records allowed before pruning of temp records begins.

pattern=^([0-9][0-9]+|[1-9])$exclusiveMin=0
throttleTempRecordDeleteQuota number | string

The percentage of throttleTempRecordMax records to delete on each throttleIntervalSeconds.

pattern=^([0-9][0-9]+|[1-9])$min=1max=100
policyName string

Name of a specific named scan policy to use. This field is optional, and an applicable scan policy will be selected if omitted.

includedPlugins string[]

Specify to only scan with these listed plugins.

config string[]

Scanner configuration overrides, provided as a list of key=value strings. A list of strings in the form of key=value pairs passed to the scanner as scanner configuration overrides.

This is an advanced feature to configure HawkScan plugins and override their default behavior.

outboundProxy object

Configuration block for a proxy. This enables HawkScan to traffic scanner requests through an outbound network proxy.

3 nested properties
host string

The host of the outbound explicit proxy, including port (e.g. https://localhost:8888).

credentials object

Credential details for the outbound proxy behavior.

rootCACertPath string

Path to root CA Certificate for transparent outbound proxies. This can be used without specifying host or credentials.

hawkAddOn object

Extend HawkScan functionality with add-ons and custom scripts:

  • replacer: Modify or replace HTTP request headers using rules with properties like matchString, replacement, isRegex, and replaceOnly.
  • scripts: Configure custom scripts to customize scan behavior with name, type (e.g., active, authentication), path, language (KOTLIN, JAVASCRIPT), and vars.

For more detail, see HawkScan Configuration Documentation.

2 nested properties
replacer object

Configuration block for header value replacement. These rules support manipulating request headers, useful for modifying requests to web applications running behind a proxy.

1 nested properties

List of regex match and replace rules for request headers.

scripts Script[]

List of configurations for custom scripts.

tags Tag[]

Searchable keywords to associate with this scan.

HawkConf object

Define global HawkScan settings, independent of the scanned application:

  • spider: Configure application crawling and scan discovery. Enable base and ajax crawlers, set maxDurationMinutes, add seedPaths, use custom commands, or import har files.
  • startupTimeoutMinutes: Maximum time to wait for the scanner to start (default: 5).
  • failureThreshold: Alert severity level to fail a scan (high, medium, or low).
  • scan: Set runtime behavior like max duration, request throttling, and concurrency.
  • config: Advanced scanner configuration overrides.
  • outboundProxy: Configure an outbound proxy, including host, credentials, and CA certificate.

For more details, see HawkScan Configuration Documentation.

spider object

Configuration block for the application crawling and Discovery Phase aka Spider. See the Scan Discovery page for more details.

10 nested properties
base boolean

Enable the basic web crawler for discovering your application's routes. This spider is appropriate for most traditional web applications.

Default: true
ajax boolean

Enable the ajax web crawler for discovering your application’s routes. This spider is appropriate for single-page web applications.

Default: false
maxDurationMinutes number

Maximum allowed time for enabled spiders to crawl your web application.

Default: 2
exclusiveMin=0
ajaxBrowser string

The browser type and style to use when running the AjaxSpider. When running the stackhawk/hawkscan docker container, this setting is ignored and will use the default CHROME_HEADLESS. The options are CHROME_HEADLESS and CHROME. FIREFOX_HEADLESS and FIREFOX are deprecated.

Values: "FIREFOX_HEADLESS" "CHROME_HEADLESS" "FIREFOX" "CHROME"
seedPaths string[]

List of paths to supplement the spider. These paths will be used as additional starting points for crawling your application. Useful for paths that are not crawlable from the root of your application. For example, /admin. Note: this configuration is NOT a replacement for an API spec and provides no benefit to pure REST API's.

custom object
7 nested properties
command string

Provide a command to run as part of the scan discovery phase. This command will be split from its arguments and execute on its own thread in a context with additional environment variables set with the proxy configuration for HawkScan to intercept http traffic.

environment Record<string, string>
workingDir string

The absolute path working directory these commands are run from.

credentials Record<string, string>
arguments string[]

Command arguments provided as an array of strings. These arguments can be used in addition to or instead of the command. This should be used if the command is sufficiently complex or is exceptionally whitespace sensitive.

excludeParentEnvironment boolean

Only provide the environment variables and credentials as configured. By default also includes the environment from the parent process environment for convenience.

logOutputToForeground boolean

This command prints the stdout and stderr of the command to the foreground.

postmanConfig object

Configuration for the Postman Collection.

3 nested properties
apikey string

API key to authenticated the user with Postman.

collectionUID string

Id of the collection to be pulled from Postman.

filePath string

File path of the Postman collection.

har object

Configuration for using a HAR file as the discovery for a scan. HAR files often contain requests including urls from many hosts, but only URLs matching the app.host or replaceHost will be included in the scan.

All of: variant
3 nested properties
replaceHost string

The hostname of URLs in the HAR file that will be replaced with the host defined in app.host. Leave blank if the app.host is then same hostname in the HAR file.

file object

Paths to .har HTTP Archive formatted files, for use with HARImportConfig.

dir object

Paths to directories, for use with HARImportConfig.

disableSmartCrawling boolean

Disable smart crawling for openApiConf to enable legacy openapi import process.

Default: false
responseBodyFilter object
2 nested properties
includeContentTypes string[]

Content types to include in response body uploads. If specified, replaces the default include list. Supports wildcards (e.g., application/*+json, image/*).

excludeContentTypes string[]

Content types to exclude from response body uploads. If specified, adds to the default exclude list. Exclusions take precedence over inclusions. Supports wildcards (e.g., image/*).

startupTimeoutMinutes number

Maximum time in minutes to wait for the scanner process to start.

Default: 5
exclusiveMin=0
failureThreshold string

The lowest alert level that returns a failed scan status. Accepted values: high, medium, or low.

pattern=\b(?:high|medium|low|HIGH|MEDIUM|LOW)\b
scan object

Configuration block for HawkScan runtime.

10 nested properties
maxDurationMinutes number | string

Maximum duration that a scan will run.

pattern=^([0-9][0-9]+|[1-9]|0)$min=0
maxRuleDurationMinutes number | string

Maximum duration that a scan will spend on a rule.

pattern=^([0-9][0-9]+|[1-9]|0)$min=0
requestDelayMillis number | string

Delay time between sending requests.

pattern=^([0-9][0-9]+|[1-9]|0)$min=0
concurrentRequests number | string

Number of request threads. If you need that little extra push. defaults to 20.

pattern=^([0-9][0-9]+|[1-9])$exclusiveMin=0
throttlePassiveBacklog number | string

Pause active scan when passive backlog is greater than this value, resumes once backlog is empty. defaults to 50.

pattern=^([0-9][0-9]+|[1-9])$exclusiveMin=0
throttleIntervalSeconds number | string

How often the throttle check is run, in seconds.

pattern=^([0-9][0-9]+|[1-9])$exclusiveMin=0
throttleTempRecordMax number | string

The max number of temp records allowed before pruning of temp records begins.

pattern=^([0-9][0-9]+|[1-9])$exclusiveMin=0
throttleTempRecordDeleteQuota number | string

The percentage of throttleTempRecordMax records to delete on each throttleIntervalSeconds.

pattern=^([0-9][0-9]+|[1-9])$min=1max=100
policyName string

Name of a specific named scan policy to use. This field is optional, and an applicable scan policy will be selected if omitted.

includedPlugins string[]

Specify to only scan with these listed plugins.

config string[]

Scanner configuration overrides, provided as a list of key=value strings. A list of strings in the form of key=value pairs passed to the scanner as scanner configuration overrides.

This is an advanced feature to configure HawkScan plugins and override their default behavior.

outboundProxy object

Configuration block for a proxy. This enables HawkScan to traffic scanner requests through an outbound network proxy.

3 nested properties
host string

The host of the outbound explicit proxy, including port (e.g. https://localhost:8888).

credentials object

Credential details for the outbound proxy behavior.

4 nested properties
username string

Required. The username for proxy credentials.

password string

Required. The password for proxy credentials.

realm string

Realm for proxy credentials.

scheme string

Scheme of proxy authentication. Currently BASIC, NTLM are supported.

rootCACertPath string

Path to root CA Certificate for transparent outbound proxies. This can be used without specifying host or credentials.

Spider object

Configuration block for the application crawling and Discovery Phase aka Spider. See the Scan Discovery page for more details.

base boolean

Enable the basic web crawler for discovering your application's routes. This spider is appropriate for most traditional web applications.

Default: true
ajax boolean

Enable the ajax web crawler for discovering your application’s routes. This spider is appropriate for single-page web applications.

Default: false
maxDurationMinutes number

Maximum allowed time for enabled spiders to crawl your web application.

Default: 2
exclusiveMin=0
ajaxBrowser string

The browser type and style to use when running the AjaxSpider. When running the stackhawk/hawkscan docker container, this setting is ignored and will use the default CHROME_HEADLESS. The options are CHROME_HEADLESS and CHROME. FIREFOX_HEADLESS and FIREFOX are deprecated.

Values: "FIREFOX_HEADLESS" "CHROME_HEADLESS" "FIREFOX" "CHROME"
seedPaths string[]

List of paths to supplement the spider. These paths will be used as additional starting points for crawling your application. Useful for paths that are not crawlable from the root of your application. For example, /admin. Note: this configuration is NOT a replacement for an API spec and provides no benefit to pure REST API's.

custom object
7 nested properties
command string

Provide a command to run as part of the scan discovery phase. This command will be split from its arguments and execute on its own thread in a context with additional environment variables set with the proxy configuration for HawkScan to intercept http traffic.

environment Record<string, string>
workingDir string

The absolute path working directory these commands are run from.

credentials Record<string, string>
arguments string[]

Command arguments provided as an array of strings. These arguments can be used in addition to or instead of the command. This should be used if the command is sufficiently complex or is exceptionally whitespace sensitive.

excludeParentEnvironment boolean

Only provide the environment variables and credentials as configured. By default also includes the environment from the parent process environment for convenience.

logOutputToForeground boolean

This command prints the stdout and stderr of the command to the foreground.

postmanConfig object

Configuration for the Postman Collection.

3 nested properties
apikey string

API key to authenticated the user with Postman.

collectionUID string

Id of the collection to be pulled from Postman.

filePath string

File path of the Postman collection.

har object

Configuration for using a HAR file as the discovery for a scan. HAR files often contain requests including urls from many hosts, but only URLs matching the app.host or replaceHost will be included in the scan.

All of: variant
3 nested properties
replaceHost string

The hostname of URLs in the HAR file that will be replaced with the host defined in app.host. Leave blank if the app.host is then same hostname in the HAR file.

file object

Paths to .har HTTP Archive formatted files, for use with HARImportConfig.

1 nested properties
paths string[]

Paths to HAR files to import. Files will be loaded in order provided.

dir object

Paths to directories, for use with HARImportConfig.

1 nested properties
path string

Path to directory containing .har files. Only files with the .har extension will be loaded in alphanumeric order.

disableSmartCrawling boolean

Disable smart crawling for openApiConf to enable legacy openapi import process.

Default: false
responseBodyFilter object
2 nested properties
includeContentTypes string[]

Content types to include in response body uploads. If specified, replaces the default include list. Supports wildcards (e.g., application/*+json, image/*).

excludeContentTypes string[]

Content types to exclude from response body uploads. If specified, adds to the default exclude list. Exclusions take precedence over inclusions. Supports wildcards (e.g., image/*).

CustomDiscovery object
command string

Provide a command to run as part of the scan discovery phase. This command will be split from its arguments and execute on its own thread in a context with additional environment variables set with the proxy configuration for HawkScan to intercept http traffic.

environment Record<string, string>
workingDir string

The absolute path working directory these commands are run from.

credentials Record<string, string>
arguments string[]

Command arguments provided as an array of strings. These arguments can be used in addition to or instead of the command. This should be used if the command is sufficiently complex or is exceptionally whitespace sensitive.

excludeParentEnvironment boolean

Only provide the environment variables and credentials as configured. By default also includes the environment from the parent process environment for convenience.

logOutputToForeground boolean

This command prints the stdout and stderr of the command to the foreground.

EnvironmentEntry Record<string, string>
CredentialsEntry Record<string, string>
PostmanConfig object

Configuration for the Postman Collection.

apikey string

API key to authenticated the user with Postman.

collectionUID string

Id of the collection to be pulled from Postman.

filePath string

File path of the Postman collection.

HARImportConfig object

Configuration for using a HAR file as the discovery for a scan. HAR files often contain requests including urls from many hosts, but only URLs matching the app.host or replaceHost will be included in the scan.

replaceHost string

The hostname of URLs in the HAR file that will be replaced with the host defined in app.host. Leave blank if the app.host is then same hostname in the HAR file.

file object

Paths to .har HTTP Archive formatted files, for use with HARImportConfig.

1 nested properties
paths string[]

Paths to HAR files to import. Files will be loaded in order provided.

dir object

Paths to directories, for use with HARImportConfig.

1 nested properties
path string

Path to directory containing .har files. Only files with the .har extension will be loaded in alphanumeric order.

HARImportFiles object

Paths to .har HTTP Archive formatted files, for use with HARImportConfig.

paths string[]

Paths to HAR files to import. Files will be loaded in order provided.

HARImportDirectory object

Paths to directories, for use with HARImportConfig.

path string

Path to directory containing .har files. Only files with the .har extension will be loaded in alphanumeric order.

SpiderResponseBodyFilter object
includeContentTypes string[]

Content types to include in response body uploads. If specified, replaces the default include list. Supports wildcards (e.g., application/*+json, image/*).

excludeContentTypes string[]

Content types to exclude from response body uploads. If specified, adds to the default exclude list. Exclusions take precedence over inclusions. Supports wildcards (e.g., image/*).

ScanConf object

Configuration block for HawkScan runtime.

maxDurationMinutes number | string

Maximum duration that a scan will run.

pattern=^([0-9][0-9]+|[1-9]|0)$min=0
maxRuleDurationMinutes number | string

Maximum duration that a scan will spend on a rule.

pattern=^([0-9][0-9]+|[1-9]|0)$min=0
requestDelayMillis number | string

Delay time between sending requests.

pattern=^([0-9][0-9]+|[1-9]|0)$min=0
concurrentRequests number | string

Number of request threads. If you need that little extra push. defaults to 20.

pattern=^([0-9][0-9]+|[1-9])$exclusiveMin=0
throttlePassiveBacklog number | string

Pause active scan when passive backlog is greater than this value, resumes once backlog is empty. defaults to 50.

pattern=^([0-9][0-9]+|[1-9])$exclusiveMin=0
throttleIntervalSeconds number | string

How often the throttle check is run, in seconds.

pattern=^([0-9][0-9]+|[1-9])$exclusiveMin=0
throttleTempRecordMax number | string

The max number of temp records allowed before pruning of temp records begins.

pattern=^([0-9][0-9]+|[1-9])$exclusiveMin=0
throttleTempRecordDeleteQuota number | string

The percentage of throttleTempRecordMax records to delete on each throttleIntervalSeconds.

pattern=^([0-9][0-9]+|[1-9])$min=1max=100
policyName string

Name of a specific named scan policy to use. This field is optional, and an applicable scan policy will be selected if omitted.

includedPlugins string[]

Specify to only scan with these listed plugins.

Proxy object

Configuration block for a proxy. This enables HawkScan to traffic scanner requests through an outbound network proxy.

host string

The host of the outbound explicit proxy, including port (e.g. https://localhost:8888).

credentials object

Credential details for the outbound proxy behavior.

4 nested properties
username string

Required. The username for proxy credentials.

password string

Required. The password for proxy credentials.

realm string

Realm for proxy credentials.

scheme string

Scheme of proxy authentication. Currently BASIC, NTLM are supported.

rootCACertPath string

Path to root CA Certificate for transparent outbound proxies. This can be used without specifying host or credentials.

ProxyCredentials object

Credential details for the outbound proxy behavior.

username string

Required. The username for proxy credentials.

password string

Required. The password for proxy credentials.

realm string

Realm for proxy credentials.

scheme string

Scheme of proxy authentication. Currently BASIC, NTLM are supported.

AppConf object

Define key settings for the application to be scanned, including properties like the application's host URL, authentication methods, API type, and custom paths. This section includes essential parameters, such as:

  • applicationId: Required. The unique identifier for the application in the StackHawk platform.
  • env: Required. The environment name used to organize scan results (e.g., "Production" or "Staging").
  • host: Required. The base URL of the application to scan, e.g., http://localhost:8000. The scan will not proceed if the URL is unreachable.

Additionally, specify other optional details such as session tokens, CSRF parameters, API-specific configurations (e.g., GraphQL, OpenAPI, SOAP, gRPC), and any paths to exclude or include in the scan.

host string required

Required. The base url of the application to scan ex: http://localhost:8000. If the url cannot be reached, the scan will not proceed.

pattern=(?:\$\{[^}]+\}|(?:https?|ftp|file):\/\/|www\.|ftp\.)(?:\([-\w0-9+&@#\/%=~_|$?!:,.]*\)|[-\w0-9+&@#\/%=~_|$?!:,.])*(?:\([-\w0-9+&@#\/%=~_|$?!:,.]*\)|[\w0-9+&@#\/%=~_|$])
applicationId string required

Required. Your StackHawk application UUID. Create an application in the StackHawk platform to obtain this identifier.

pattern=\b[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}\b
env string required

Required. The env environment name to organize Scan Results.

sessionTokens string[]

The names of any session tokens used by your application, provided as an array of strings (Hint: these are the names of session cookies used by your application).

antiCsrfParam string

The name of your CSRF security parameter used in any application form inputs. Globally set, HawkScan will parse this parameter value from form responses to use in subsequent requests.

authentication object

Configuration block for application authentication to enable scanning as the provided user of your application. If provided, HawkScan will first attempt to sign into your web application with the provided login credentials. Only after successfully verifying will scanning occur. For more information, see the Authenticated Scanning section.

All of: variant, variant
14 nested properties
testPath object required

A configuration specifying how to verify if Scan authentication and authorization is working before running a scan.

An example configuration of app.authentication.testPath:

 app:
  authentication:
    testPath:
      type: HEADER
      path: /user/profile
      success: ".*200.*"
      requestMethod: POST
      requestBody: '{"feeling": "KaaKaww!"}'
      requestHeaders:
        Content-Type: "application/json"

This uses either success or fail criteria to determine if authorized access is working correctly.

All of: variant
8 nested properties
path string required

Required. The path to a protected route in your application that requires authorization. For example /mysettings. A GET request will be made to this path using the configured authentication.

pattern=^\/(([A-z0-9\-\%]+\/)*[A-z0-9\-\%]+$)?
type string

An enum value representing what to match against in the response from issuing a request to the testPath.path. The supported values are HEADER and BODY.

Values: "HEADER" "BODY"
success string

A regex that will match against the response header or body, specified by type, of the GET request to the path. A match of the regex supplied will indicate that scanning should proceed with the specified authentication.

HawkScan requires that either success OR fail be configured (do not configure both).

fail string

A regex that will match against the response header or body, specified by type, of the GET request to the path. A match of the regex supplied will indicate that scanning should halt and enter an error state.

HawkScan requires that either success OR fail be configured (do not configure both).

requestMethod string

Request method to use for queries. Will generate GraphQL queries as either POST payloads or GET uri strings.

Values: "GET" "POST" "PUT" "PATCH"
requestBody string

The request content to send along with POST or PUT requests for authentication verification.

requestHeaders Record<string, string>
grpcTestMethod string

The gRPC method path to call for authentication validation (e.g., "/auth.AuthService/ValidateToken"). Only used when authentication type is GRPC.

usernamePassword object

Optional configuration specifying a username and password based authentication configuration. Currently POSTing the credentials via FORM or JSON type is supported. Use in conjunction cookieAuthorization or tokenAuthorization to maintain authorized access to your application.

11 nested properties
loginPath string required

Required. login route to POST credentials for a user in the application (ex. /login). An http POST request using the type specified will be made to this path.

pattern=^(https?://[^\s]+|\/(([A-z0-9\-\%]+\/)*[A-z0-9\-\%]+)?(\?[^\s]*)?)$
usernameField string required

Required. the username html field used in your application form or json, provided as a string.

passwordField string required

Required. The password html field used in your application form or json, provided as a string.

scanUsername string required

Required*. The username credentials provided to authentication when attempting to login to the web application, provided as a string. HawkScan best practices recommend using environment variable runtime overrides for this value (ex. "${SCAN_USERNAME:admin}" will use the $SCAN_USERNAME environment variable as the scanUsername, or fallback to admin).

scanPassword string required

Required*. The password credentials provided to authentication when attempting to login to the web application, provided as a string. HawkScan best practices recommend using environment variable runtime overrides for this value (ex. "${SCAN_PASSWORD}" will use the $SCAN_PASSWORD environment variable as the scanPassword).

loginPagePath string

The path to your login form, if applicable. This is an optional path but is often required if the POST to the loginPath requires an anti csrf token to be passed as part of the POST. The app.antiCsrfParam will be extracted from the response body of a GET request to this page.

pattern=^(https?://[^\s]+|\/(([A-z0-9\-\%]+\/)*[A-z0-9\-\%]+)?(\?[^\s]*)?)$
type string

An enum value describing the type of POST data expected by the loginPath

Values: "FORM" "JSON" "HTTP" "JSON_RPC" "GRPC"
otherParams NameValParam[]

Other request parameters required by your login payload, provided as an array of objects with name and value string keys. This setting is helpful if your authentication process requires other parameters included in the form POST besides the username and password parameters. If in doubt, this setting can be safely left unconfigured.

realm string

Realm for NTLM authentication

jsonrpcMethod string

The JSON-RPC method name to call for authentication (e.g., "auth.login"). Required when type is JSON_RPC.

grpcMethod string

The gRPC method path for authentication (e.g., "/auth.AuthService/Login"). Required when type is GRPC. Uses grpcConf for descriptor.

external object

Optional configuration block for specifying an externally supplied authorization token, HawkScan will attempt to access a protected path in your web application with the supplied token before scanning. For more information, see the Authenticated Scanning section.

2 nested properties
type string

Specifies the type of token being supplied. If COOKIE is specified the .external.value should be in the form of a cookie value = . Defaults to TOKEN.

Values: "TOKEN" "COOKIE"
values AuthTokens[]

The value pairs containing the token that will authorize requests. How the token is passed to your application is determined by the assigned type.

script object

Configuration for a custom authentication script. HawkScan will run the provided authentication script until a request matches the loggedInIndicator, or if the loggedOutIndicator is tripped on a request. The authentication script name should also be included in the hawkAddOn.scripts.name

3 nested properties
name string required

The name of the authentication script, as specified in the hawkAddOn.scripts.name.

parameters Record<string, string>
credentials Record<string, string>
externalCommand object

Optional configuration block allowing HawkScan to run a specified command line process. HawkScan will attempt to access a protected path in your web application with the supplied headers or cookies before scanning. For more information, see the Authenticated Scanning section.

3 nested properties
command string required

The command to start the process e.g. bash, python

parameters string[]

Parameters required to run the script e.g. -c, --verbose

timeoutSeconds number | string

Maximum time in seconds to wait for the process to complete. Defaults to 60 seconds.

Default: 60
pattern=^([0-9][0-9]+|[1-9]|0)$min=0
oauth object

Optional configuration block allowing HawkScan to authorize requests with a 3rd party OAuth 2.0 auth provider.

2 nested properties
credentials object

Credential parameters sent to an OAuth/3rd party provider.

parameters object

Configuration parameters sent to an OAuth/3rd party provider.

tokenExtraction object

Token extraction is optional unless you're using the tokenAuthorization in combination with usernamePassword authentication. This configuration specifies how to extract the authorization token from the authentication response.

2 nested properties
value string required

Required*. String containing the path to the token in the JSON payload authentication response or the name of the response header containing the token. Example: if the authentication response JSON payload looks like {"auth" : {"token": "<my-auth-token>"}} the value would be auth.token. If the authentication response has a header named AuthToken: <my-token>, then the value should be AuthToken.

type string

Specifying TOKEN_PATH tells HawkScan to extract the token from the JSON payload of the response from authentication. HEADER tells HawkScan to extract the token from a header in the response from authentication. defaults to TOKEN_PATH.

Values: "TOKEN_PATH" "HEADER_NAME"
cookieAuthorization object

An optional configuration specifying if authorization is maintained via a cookie session.

1 nested properties
cookieNames string[]

A list of strings that are the names of cookies used for maintaining a session. Typically this is one value like jsessionid or PHPSESS. When used in combination with authentication HawkScan will use this value to persist authenticated session state with your application.

tokenAuthorization object

An optional configuration telling HawkScan how to pass the authorization token to your application on each request to maintain authorized access.

5 nested properties
value string required

Required. The name of the HEADER or QUERY_PARAM the token should be passed as.

type string

An enum value representing how to pass the authorization token to your application. HEADER indicates that each request should have the authorization token header added to the requests. QUERY_PARAM indicates that the token should be passed as a query parameter.

Values: "HEADER" "QUERY_PARAM"
tokenType string

TokenType will be prepended the header value e.g. tokenType: TOKEN -> "TOKEN xxxxxxxxx"

Default: "Bearer"
isJWT boolean

If the token is a JWT, mark this field as true

Default: false
renewMillis number | string

If isJWT is set to true, this field will determine the time in milliseconds before expiration to auto renew the JWT.

pattern=^([0-9][0-9]+|[1-9])$exclusiveMin=0
sessionScript object

Optional configuration block for specifying a custom session management script. To learn more about session scripts, reference the HawkScan Examples{:target="_blank"} repository.

2 nested properties
name string required

Required The name of the session script defined in hawkAddons.scripts. The script type must be session, and match the hawkAddOn.scripts.name field.

parameters Record<string, string>
loggedInIndicator string

A regex to match against http responses from pages in the web application to determine if the scanned pages user session is still logged in to the app, provided as a string (ex. ".*signed in as.*"). Required if authorization token is not a JWT.

loggedOutIndicator string

A regex to match against http responses from pages in the web application to determine if the scanned pages user session is logged out of the app, provided as a string. Required if authorization token is not a JWT.

overrideJWTAutoRenew boolean

If set to true HawkScan will not try to autorenew a JWT.

profiles UserProfile[]

Optional extra creds

excludePaths string[]

An array of strings, used as regexes to match against routes that should be ignored entirely by HawkScan. If populated, paths that match any supplied regex will be excluded from the scan. This field is useful for prohibiting asset directories or other resources that don't require vulnerability scanning.

graphqlConf object

Configure how HawkScan interacts with GraphQL APIs.

One of the following is Required:

  • schemaPath: Relative path to the introspection endpoint (based on the host address).
  • filePath: Relative path to a GraphQL schema file (SDL format).

The following are Optional:

  • operation: Adjust the operation requests generated by the spider (QUERY or MUTATION, defaults to both).
  • excludeOperations: Exclude particular GraphQL operations from being scanned.

For full details, see GraphQL Configuration Documentation.

10 nested properties
schemaPath string

Path to the GraphQL introspection endpoint, relative to the target URI.

pattern=^\/(([A-z0-9\-\%]+\/)*[A-z0-9\-\%]+$)?
requestMethod string

Request method to use for queries. Will generate GraphQL queries as either POST payloads or GET uri strings.

Values: "POST" "GET"
uriMaxLength number | string

Max length of URIs when generation queries for GET requests.

pattern=^([0-9][0-9]+|[1-9]|0)$min=0
maxDepth number | string

Maximum depth for generated query graphs.

pattern=^([0-9][0-9]+|[1-9]|0)$max=50exclusiveMin=0
enabled boolean

Enable GraphQL scan support. HawkScan will enumerate all possible field types and input values for GraphQL Queries and Mutations. Provide relative path to the API endpoint.

operation string

GraphQL operation to enumerate and scan. Defaults to find all Query and Mutation operations. Options are All, QUERY and MUTATION.

Values: "ALL" "QUERY" "MUTATION"
filePath string

Path to a local GraphQL schema file (SDL format) to use instead of introspection.

excludeOperations GraphQLExcludeOperationParam[]

GraphQL operations to exclude from the spider.

fakerEnabled boolean

Enables faker for a GraphQL scan to generate more realistic values when format is provided on the API spec or custom variables.

customVariables GraphQLCustomVariable[]

Define custom variables and values for use in GraphQL scanning.

includePaths string[]

An array of strings, used as regexes to limit which application routes HawkScan will specifically visit. If populated, paths must match at least one supplied regex to be included as part of the scan. This field is useful for constraining the reach of the HawkScan scanner and spider.

autoPolicy boolean

Set to true to enable an optimized policy when scanning specific APIs like GraphQL and OpenAPI. Defaults to True.

autoInputVectors boolean

Set to true to automatically enabled the correct input data types when scanning APIs like GraphQL and OpenAPI. This can increase scan accuracy and reduce false positives. Defaults to True.

openApiConf object

Define how HawkScan scans OpenAPI endpoints.

One of the following is Required:

  • filePath: Path to a local OpenAPI specification file (JSON or YAML).
  • path: URL path to fetch the OpenAPI spec from the scanned host.

For full details such as custom variable injection, see OpenAPI Configuration Documentation.

12 nested properties
path string

A string relative path to an OpenAPI specification file (JSON or YAML) from the scanned host.

pattern=^\/(([A-z0-9\-\%]+\/)*[A-z0-9\-\%]+$)?
filePath string

Path to a local OpenAPI specification file (JSON or YAML format).

strict boolean

Whether to enable strict parsing of the OpenAPI.

customVariables OpenApiCustomVariable[]

Define custom variables and values for use in REST API scanning.

includeAllMethods boolean

When custom variables are provided, DELETE's are skipped for injection. Set this to true to override this default and include all methods in variable injection.

includedMethods string[]

List of methods to include in custom variable injection. Note: if 'includeAllMethods' is set to true, this list is ignored and all methods will be used for custom variable injection.

fakerEnabled boolean

Enables faker for a REST API scan to generate more realistic values when format is provided on the API spec or custom variables.

maxAliasesForCollections number | string

Maximum number of aliases for a collection when parsing YAML. Increase this value if you see the "Number of aliases for non-scalar nodes exceeds the specified max=100" error.

Default: 100
pattern=^([0-9][0-9]+|[1-9]|0)$min=0
forbiddenVariables OpenApiCustomVariable[]

Custom variables that the user should not see for tenancy checks.

filePaths string[]

A list of relative path to specification file(s) (JSON or YAML) for the open api generation for specs with multiple open api files.

usePlatform boolean

Use the OpenApi Specifications mapped to this application from the StackHawk Platform for this scan.

globalParameters Record<string, string>
soapConf object

Set parameters for scanning SOAP APIs.

One of the following is Required:

  • path: Relative URL to fetch the SOAP API WSDL from the scanned host.
  • filePath: Path to a local SOAP API WSDL specification file.

For full details, see SOAP Configuration Documentation.

2 nested properties
path string

Host path to the SOAP WSDL, prefixed with a / .

pattern=^\/(([A-z0-9\-\%]+\/)*[A-z0-9\-\%]+$)?
filePath string

Relative path to the SOAP WSDL schema definition file.

grpcConf object

Configure HawkScan for gRPC API scanning.

One of the following is Required:

For full details such as custom variable injection, see gRPC Configuration Documentation.

5 nested properties
path string

Host path for the grpc reflection endpoint.

filePath string

Path to a local gRPC protobuf descriptor_set file.

customVariables CustomVariable[]

Define custom variables and values for use in gRPC scanning.

maxDepth number | string

Maximum depth for resolving nested protobuf.

Default: 10
pattern=^([0-9][0-9]+|[1-9]|0)$max=50exclusiveMin=0
filePaths string[]

A list of paths to the grpc protobuf descriptor_set file.

inputVectors object

Fine-grained configuration of HawkScan input vectors. This configuration is how and where testable inputs are applied on http requests.

2 nested properties
injectableParam object
6 nested properties
urlQueryParam boolean

Allow injection of testable inputs url query parameter values.

urlQuery boolean

Allow injections of testable inputs url query parameter names.

postData boolean

Allow injection of testable inputs request body inputs on POST requests.

urlPath boolean

Allow injection of testable inputs url paths.

httpHeaders boolean

Allow injection of testable inputs for http headers.

cookieData boolean

Allow injection of testable inputs for cookie data.

enabledRpcParam object
6 nested properties
multipartFormData boolean

Support for multipart/form-data request bodies.

xmlTag boolean

Support for xml request bodies.

json boolean

Support for json request bodies.

googleWebToolkit boolean

Support for GWT request bodies. Deprecated.

odataId boolean

Support for Odata request bodies. Deprecated.

directWebRemoting boolean

Support for direct web remoting request bodies. Deprecated.

waitForAppTarget object

Configuration specifying how to determine if the web application is up, responsive and ready for scanning.

6 nested properties
waitTimeoutMillis number | string required

The maximum amount of time in milliseconds that HawkScan will wait for your app to be available before it starts scanning

pattern=^([0-9][0-9]+|[1-9]|0)$min=0
pollDelay number | string required

The maximum amount of time in milliseconds in between requests to your application to see if it's running

pattern=^([0-9][0-9]+|[1-9]|0)$min=50
path string

The path to a public reachable route in your application. For example /index. A GET request will be made to this path to confirm the host is up and ready to receive traffic.

Default: "/"
requestMethod string

Request method to use for queries. Will generate GraphQL queries as either POST payloads or GET uri strings.

Values: "GET" "POST" "PUT" "PATCH"
requestBody string

The request content to send along with POST or PUT requests for target verification.

requestHeaders Record<string, string>
redact object

Redaction policy of scan logs and stdout when scanning this application.

HawkScan maintains a list of redacted tokens; strings that are sensitive and should be scrubbed preemptively from logs and collected messages. By default, HawkScan redacts app.authentication credentials, and any provided script / discovery credentials.

2 nested properties
headers string[]

List of string header names: the values of HTTP headers matching these names will be redacted from alerts and logs.

values string[]

List of string static values: the values here will be added to the redacted token list. This is best used with ${ENV_VAR:default} interpolation.

scanPolicy object

Configure the policy to be applied for the scan, optionally specifying which plugins to include or exclude. Note: Applies to scan policies created with Organization Policy Management.

3 nested properties
name string required

Required. The unique name of the organization scan policy.

excludePluginIds string[]

Plugin ids to exclude from the named scan policy.

includePluginIds string[]

Plugin ids to include in the scan that are not in the named scan policy.

jsonRpcConf object

Configure HawkScan for JSON-RPC 2.0 API scanning.

One of the following is Required:

  • endpoint: The JSON-RPC endpoint path (e.g., /jsonrpc or /api/rpc).
  • path: Host path to a hosted OpenRPC specification (e.g., /openrpc.json).
  • filePath: Relative path to a local OpenRPC schema file (JSON format).

For full details such as custom variable injection, see JSON-RPC Configuration Documentation.

10 nested properties
enabled boolean

Enable JSON-RPC scan support.

endpoint string

The JSON-RPC endpoint path relative to the target host (e.g., /jsonrpc). Defaults to /.

Default: "/"
pattern=^\/(([A-z0-9\-\%]+\/)*[A-z0-9\-\%]+$)?
filePath string

Path to a local OpenRPC schema file (JSON format) to use instead of network discovery.

maxDepth number | string

Maximum depth for generated nested objects. Defaults to 3.

Default: 3
pattern=^([0-9][0-9]+|[1-9]|0)$max=50exclusiveMin=0
fakerEnabled boolean

Enables faker for JSON-RPC scanning to generate more realistic values when format is provided on the schema or custom variables.

requestTimeout number | string

HTTP request timeout in milliseconds. Defaults to 30000 (30 seconds).

Default: 30000
pattern=^([0-9][0-9]+|[1-9]|0)$exclusiveMin=0
excludeMethods string[]

Regex patterns for JSON-RPC method names to exclude from scanning.

customVariables JsonRpcCustomVariable[]

Define custom variables and values for use in JSON-RPC scanning.

mcp object

MCP (Model Context Protocol) server configuration for JSON-RPC scanning.

3 nested properties
endpoint string

MCP server endpoint path relative to target host. Defaults to /mcp.

Default: "/mcp"
pattern=^\/(([A-z0-9\-\%]+\/)*[A-z0-9\-\%]+$)?
excludeTools string[]

MCP tool names to exclude from scanning.

customValues McpCustomVariable[]

Define custom variables and values for use in MCP tool scanning.

path string

Host path to a hosted OpenRPC specification, relative to the target host (e.g., /openrpc.json).

Authentication object

Configuration block for application authentication to enable scanning as the provided user of your application. If provided, HawkScan will first attempt to sign into your web application with the provided login credentials. Only after successfully verifying will scanning occur. For more information, see the Authenticated Scanning section.

testPath object required

A configuration specifying how to verify if Scan authentication and authorization is working before running a scan.

An example configuration of app.authentication.testPath:

 app:
  authentication:
    testPath:
      type: HEADER
      path: /user/profile
      success: ".*200.*"
      requestMethod: POST
      requestBody: '{"feeling": "KaaKaww!"}'
      requestHeaders:
        Content-Type: "application/json"

This uses either success or fail criteria to determine if authorized access is working correctly.

All of: variant
8 nested properties
path string required

Required. The path to a protected route in your application that requires authorization. For example /mysettings. A GET request will be made to this path using the configured authentication.

pattern=^\/(([A-z0-9\-\%]+\/)*[A-z0-9\-\%]+$)?
type string

An enum value representing what to match against in the response from issuing a request to the testPath.path. The supported values are HEADER and BODY.

Values: "HEADER" "BODY"
success string

A regex that will match against the response header or body, specified by type, of the GET request to the path. A match of the regex supplied will indicate that scanning should proceed with the specified authentication.

HawkScan requires that either success OR fail be configured (do not configure both).

fail string

A regex that will match against the response header or body, specified by type, of the GET request to the path. A match of the regex supplied will indicate that scanning should halt and enter an error state.

HawkScan requires that either success OR fail be configured (do not configure both).

requestMethod string

Request method to use for queries. Will generate GraphQL queries as either POST payloads or GET uri strings.

Values: "GET" "POST" "PUT" "PATCH"
requestBody string

The request content to send along with POST or PUT requests for authentication verification.

requestHeaders Record<string, string>
grpcTestMethod string

The gRPC method path to call for authentication validation (e.g., "/auth.AuthService/ValidateToken"). Only used when authentication type is GRPC.

usernamePassword object

Optional configuration specifying a username and password based authentication configuration. Currently POSTing the credentials via FORM or JSON type is supported. Use in conjunction cookieAuthorization or tokenAuthorization to maintain authorized access to your application.

11 nested properties
loginPath string required

Required. login route to POST credentials for a user in the application (ex. /login). An http POST request using the type specified will be made to this path.

pattern=^(https?://[^\s]+|\/(([A-z0-9\-\%]+\/)*[A-z0-9\-\%]+)?(\?[^\s]*)?)$
usernameField string required

Required. the username html field used in your application form or json, provided as a string.

passwordField string required

Required. The password html field used in your application form or json, provided as a string.

scanUsername string required

Required*. The username credentials provided to authentication when attempting to login to the web application, provided as a string. HawkScan best practices recommend using environment variable runtime overrides for this value (ex. "${SCAN_USERNAME:admin}" will use the $SCAN_USERNAME environment variable as the scanUsername, or fallback to admin).

scanPassword string required

Required*. The password credentials provided to authentication when attempting to login to the web application, provided as a string. HawkScan best practices recommend using environment variable runtime overrides for this value (ex. "${SCAN_PASSWORD}" will use the $SCAN_PASSWORD environment variable as the scanPassword).

loginPagePath string

The path to your login form, if applicable. This is an optional path but is often required if the POST to the loginPath requires an anti csrf token to be passed as part of the POST. The app.antiCsrfParam will be extracted from the response body of a GET request to this page.

pattern=^(https?://[^\s]+|\/(([A-z0-9\-\%]+\/)*[A-z0-9\-\%]+)?(\?[^\s]*)?)$
type string

An enum value describing the type of POST data expected by the loginPath

Values: "FORM" "JSON" "HTTP" "JSON_RPC" "GRPC"
otherParams NameValParam[]

Other request parameters required by your login payload, provided as an array of objects with name and value string keys. This setting is helpful if your authentication process requires other parameters included in the form POST besides the username and password parameters. If in doubt, this setting can be safely left unconfigured.

realm string

Realm for NTLM authentication

jsonrpcMethod string

The JSON-RPC method name to call for authentication (e.g., "auth.login"). Required when type is JSON_RPC.

grpcMethod string

The gRPC method path for authentication (e.g., "/auth.AuthService/Login"). Required when type is GRPC. Uses grpcConf for descriptor.

external object

Optional configuration block for specifying an externally supplied authorization token, HawkScan will attempt to access a protected path in your web application with the supplied token before scanning. For more information, see the Authenticated Scanning section.

2 nested properties
type string

Specifies the type of token being supplied. If COOKIE is specified the .external.value should be in the form of a cookie value = . Defaults to TOKEN.

Values: "TOKEN" "COOKIE"
values AuthTokens[]

The value pairs containing the token that will authorize requests. How the token is passed to your application is determined by the assigned type.

script object

Configuration for a custom authentication script. HawkScan will run the provided authentication script until a request matches the loggedInIndicator, or if the loggedOutIndicator is tripped on a request. The authentication script name should also be included in the hawkAddOn.scripts.name

3 nested properties
name string required

The name of the authentication script, as specified in the hawkAddOn.scripts.name.

parameters Record<string, string>
credentials Record<string, string>
externalCommand object

Optional configuration block allowing HawkScan to run a specified command line process. HawkScan will attempt to access a protected path in your web application with the supplied headers or cookies before scanning. For more information, see the Authenticated Scanning section.

3 nested properties
command string required

The command to start the process e.g. bash, python

parameters string[]

Parameters required to run the script e.g. -c, --verbose

timeoutSeconds number | string

Maximum time in seconds to wait for the process to complete. Defaults to 60 seconds.

Default: 60
pattern=^([0-9][0-9]+|[1-9]|0)$min=0
oauth object

Optional configuration block allowing HawkScan to authorize requests with a 3rd party OAuth 2.0 auth provider.

2 nested properties
credentials object

Credential parameters sent to an OAuth/3rd party provider.

5 nested properties
username string

Username which will be posted in the request body to the token endpoint with the field name of username.

password string

Password which will be posted in the request body to the token endpoint with the field name of password.

clientId string

The client id of your application registered with your OAuth provider which will be posted n the request body to the token endpoint with the field name of client_id.

clientSecret string

The client secret of your application registered with your OAuth provider which will be posted n the request body to the token endpoint with the field name of client_secret.

additionalCreds Record<string, string>
parameters object

Configuration parameters sent to an OAuth/3rd party provider.

7 nested properties
tokenEndpoint string

URL of the endpoint to get a token

grantType string

Grant type of token request, this will be passed to the request body of the token endpoint as grant_type.

scope string

Scope type of token request, this will be passed to the request body of the token endpoint as scope.

additionalQueryParams Record<string, string>
additionalBodyParams Record<string, string>
requestMethod string

Http method for accessing the token endpoint. The default is POST.

Values: "POST" "PUT" "DELETE" "GET" "OPTIONS" "PATCH" "HEAD"
requestHeaders Record<string, string>
tokenExtraction object

Token extraction is optional unless you're using the tokenAuthorization in combination with usernamePassword authentication. This configuration specifies how to extract the authorization token from the authentication response.

2 nested properties
value string required

Required*. String containing the path to the token in the JSON payload authentication response or the name of the response header containing the token. Example: if the authentication response JSON payload looks like {"auth" : {"token": "<my-auth-token>"}} the value would be auth.token. If the authentication response has a header named AuthToken: <my-token>, then the value should be AuthToken.

type string

Specifying TOKEN_PATH tells HawkScan to extract the token from the JSON payload of the response from authentication. HEADER tells HawkScan to extract the token from a header in the response from authentication. defaults to TOKEN_PATH.

Values: "TOKEN_PATH" "HEADER_NAME"
cookieAuthorization object

An optional configuration specifying if authorization is maintained via a cookie session.

1 nested properties
cookieNames string[]

A list of strings that are the names of cookies used for maintaining a session. Typically this is one value like jsessionid or PHPSESS. When used in combination with authentication HawkScan will use this value to persist authenticated session state with your application.

tokenAuthorization object

An optional configuration telling HawkScan how to pass the authorization token to your application on each request to maintain authorized access.

5 nested properties
value string required

Required. The name of the HEADER or QUERY_PARAM the token should be passed as.

type string

An enum value representing how to pass the authorization token to your application. HEADER indicates that each request should have the authorization token header added to the requests. QUERY_PARAM indicates that the token should be passed as a query parameter.

Values: "HEADER" "QUERY_PARAM"
tokenType string

TokenType will be prepended the header value e.g. tokenType: TOKEN -> "TOKEN xxxxxxxxx"

Default: "Bearer"
isJWT boolean

If the token is a JWT, mark this field as true

Default: false
renewMillis number | string

If isJWT is set to true, this field will determine the time in milliseconds before expiration to auto renew the JWT.

pattern=^([0-9][0-9]+|[1-9])$exclusiveMin=0
sessionScript object

Optional configuration block for specifying a custom session management script. To learn more about session scripts, reference the HawkScan Examples{:target="_blank"} repository.

2 nested properties
name string required

Required The name of the session script defined in hawkAddons.scripts. The script type must be session, and match the hawkAddOn.scripts.name field.

parameters Record<string, string>
loggedInIndicator string

A regex to match against http responses from pages in the web application to determine if the scanned pages user session is still logged in to the app, provided as a string (ex. ".*signed in as.*"). Required if authorization token is not a JWT.

loggedOutIndicator string

A regex to match against http responses from pages in the web application to determine if the scanned pages user session is logged out of the app, provided as a string. Required if authorization token is not a JWT.

overrideJWTAutoRenew boolean

If set to true HawkScan will not try to autorenew a JWT.

profiles UserProfile[]

Optional extra creds

UsernamePasswordCredentials object

Optional configuration specifying a username and password based authentication configuration. Currently POSTing the credentials via FORM or JSON type is supported. Use in conjunction cookieAuthorization or tokenAuthorization to maintain authorized access to your application.

loginPath string required

Required. login route to POST credentials for a user in the application (ex. /login). An http POST request using the type specified will be made to this path.

pattern=^(https?://[^\s]+|\/(([A-z0-9\-\%]+\/)*[A-z0-9\-\%]+)?(\?[^\s]*)?)$
usernameField string required

Required. the username html field used in your application form or json, provided as a string.

passwordField string required

Required. The password html field used in your application form or json, provided as a string.

scanUsername string required

Required*. The username credentials provided to authentication when attempting to login to the web application, provided as a string. HawkScan best practices recommend using environment variable runtime overrides for this value (ex. "${SCAN_USERNAME:admin}" will use the $SCAN_USERNAME environment variable as the scanUsername, or fallback to admin).

scanPassword string required

Required*. The password credentials provided to authentication when attempting to login to the web application, provided as a string. HawkScan best practices recommend using environment variable runtime overrides for this value (ex. "${SCAN_PASSWORD}" will use the $SCAN_PASSWORD environment variable as the scanPassword).

loginPagePath string

The path to your login form, if applicable. This is an optional path but is often required if the POST to the loginPath requires an anti csrf token to be passed as part of the POST. The app.antiCsrfParam will be extracted from the response body of a GET request to this page.

pattern=^(https?://[^\s]+|\/(([A-z0-9\-\%]+\/)*[A-z0-9\-\%]+)?(\?[^\s]*)?)$
type string

An enum value describing the type of POST data expected by the loginPath

Values: "FORM" "JSON" "HTTP" "JSON_RPC" "GRPC"
otherParams NameValParam[]

Other request parameters required by your login payload, provided as an array of objects with name and value string keys. This setting is helpful if your authentication process requires other parameters included in the form POST besides the username and password parameters. If in doubt, this setting can be safely left unconfigured.

realm string

Realm for NTLM authentication

jsonrpcMethod string

The JSON-RPC method name to call for authentication (e.g., "auth.login"). Required when type is JSON_RPC.

grpcMethod string

The gRPC method path for authentication (e.g., "/auth.AuthService/Login"). Required when type is GRPC. Uses grpcConf for descriptor.

NameValParam object

General name / value parameter.

name string

Param name.

val string

Param value.

ExternalCredentials object

Optional configuration block for specifying an externally supplied authorization token, HawkScan will attempt to access a protected path in your web application with the supplied token before scanning. For more information, see the Authenticated Scanning section.

type string

Specifies the type of token being supplied. If COOKIE is specified the .external.value should be in the form of a cookie value = . Defaults to TOKEN.

Values: "TOKEN" "COOKIE"
values AuthTokens[]

The value pairs containing the token that will authorize requests. How the token is passed to your application is determined by the assigned type.

AuthTokens object

Configuration for Token Authentication.

type string

Specifies the type of token being supplied, either TOKEN or COOKIE. Defaults to TOKEN.

Values: "TOKEN" "COOKIE"
tokenType string

If specified tokenType will be prepended the header value e.g. tokenType: Bearer -> "Bearer xxxxxxxxx"

value object

General name / value parameter.

2 nested properties
name string

Param name.

val string

Param value.

AuthenticationScript object

Configuration for a custom authentication script. HawkScan will run the provided authentication script until a request matches the loggedInIndicator, or if the loggedOutIndicator is tripped on a request. The authentication script name should also be included in the hawkAddOn.scripts.name

name string required

The name of the authentication script, as specified in the hawkAddOn.scripts.name.

parameters Record<string, string>
credentials Record<string, string>
ParametersEntry Record<string, string>
ExternalCommandCredentials object

Optional configuration block allowing HawkScan to run a specified command line process. HawkScan will attempt to access a protected path in your web application with the supplied headers or cookies before scanning. For more information, see the Authenticated Scanning section.

command string required

The command to start the process e.g. bash, python

parameters string[]

Parameters required to run the script e.g. -c, --verbose

timeoutSeconds number | string

Maximum time in seconds to wait for the process to complete. Defaults to 60 seconds.

Default: 60
pattern=^([0-9][0-9]+|[1-9]|0)$min=0
OAuth object

Optional configuration block allowing HawkScan to authorize requests with a 3rd party OAuth 2.0 auth provider.

credentials object

Credential parameters sent to an OAuth/3rd party provider.

5 nested properties
username string

Username which will be posted in the request body to the token endpoint with the field name of username.

password string

Password which will be posted in the request body to the token endpoint with the field name of password.

clientId string

The client id of your application registered with your OAuth provider which will be posted n the request body to the token endpoint with the field name of client_id.

clientSecret string

The client secret of your application registered with your OAuth provider which will be posted n the request body to the token endpoint with the field name of client_secret.

additionalCreds Record<string, string>
parameters object

Configuration parameters sent to an OAuth/3rd party provider.

7 nested properties
tokenEndpoint string

URL of the endpoint to get a token

grantType string

Grant type of token request, this will be passed to the request body of the token endpoint as grant_type.

scope string

Scope type of token request, this will be passed to the request body of the token endpoint as scope.

additionalQueryParams Record<string, string>
additionalBodyParams Record<string, string>
requestMethod string

Http method for accessing the token endpoint. The default is POST.

Values: "POST" "PUT" "DELETE" "GET" "OPTIONS" "PATCH" "HEAD"
requestHeaders Record<string, string>
OAuthCredentials object

Credential parameters sent to an OAuth/3rd party provider.

username string

Username which will be posted in the request body to the token endpoint with the field name of username.

password string

Password which will be posted in the request body to the token endpoint with the field name of password.

clientId string

The client id of your application registered with your OAuth provider which will be posted n the request body to the token endpoint with the field name of client_id.

clientSecret string

The client secret of your application registered with your OAuth provider which will be posted n the request body to the token endpoint with the field name of client_secret.

additionalCreds Record<string, string>
AdditionalCredsEntry Record<string, string>
OAuthParameters object

Configuration parameters sent to an OAuth/3rd party provider.

tokenEndpoint string

URL of the endpoint to get a token

grantType string

Grant type of token request, this will be passed to the request body of the token endpoint as grant_type.

scope string

Scope type of token request, this will be passed to the request body of the token endpoint as scope.

additionalQueryParams Record<string, string>
additionalBodyParams Record<string, string>
requestMethod string

Http method for accessing the token endpoint. The default is POST.

Values: "POST" "PUT" "DELETE" "GET" "OPTIONS" "PATCH" "HEAD"
requestHeaders Record<string, string>
AdditionalQueryParamsEntry Record<string, string>
AdditionalBodyParamsEntry Record<string, string>
RequestHeadersEntry Record<string, string>
TokenExtraction object

Token extraction is optional unless you're using the tokenAuthorization in combination with usernamePassword authentication. This configuration specifies how to extract the authorization token from the authentication response.

value string required

Required*. String containing the path to the token in the JSON payload authentication response or the name of the response header containing the token. Example: if the authentication response JSON payload looks like {"auth" : {"token": "<my-auth-token>"}} the value would be auth.token. If the authentication response has a header named AuthToken: <my-token>, then the value should be AuthToken.

type string

Specifying TOKEN_PATH tells HawkScan to extract the token from the JSON payload of the response from authentication. HEADER tells HawkScan to extract the token from a header in the response from authentication. defaults to TOKEN_PATH.

Values: "TOKEN_PATH" "HEADER_NAME"
CookieAuthorization object

An optional configuration specifying if authorization is maintained via a cookie session.

cookieNames string[]

A list of strings that are the names of cookies used for maintaining a session. Typically this is one value like jsessionid or PHPSESS. When used in combination with authentication HawkScan will use this value to persist authenticated session state with your application.

TokenAuthorization object

An optional configuration telling HawkScan how to pass the authorization token to your application on each request to maintain authorized access.

value string required

Required. The name of the HEADER or QUERY_PARAM the token should be passed as.

type string

An enum value representing how to pass the authorization token to your application. HEADER indicates that each request should have the authorization token header added to the requests. QUERY_PARAM indicates that the token should be passed as a query parameter.

Values: "HEADER" "QUERY_PARAM"
tokenType string

TokenType will be prepended the header value e.g. tokenType: TOKEN -> "TOKEN xxxxxxxxx"

Default: "Bearer"
isJWT boolean

If the token is a JWT, mark this field as true

Default: false
renewMillis number | string

If isJWT is set to true, this field will determine the time in milliseconds before expiration to auto renew the JWT.

pattern=^([0-9][0-9]+|[1-9])$exclusiveMin=0
SessionScript object

Optional configuration block for specifying a custom session management script. To learn more about session scripts, reference the HawkScan Examples{:target="_blank"} repository.

name string required

Required The name of the session script defined in hawkAddons.scripts. The script type must be session, and match the hawkAddOn.scripts.name field.

parameters Record<string, string>
AuthTestPath object

A configuration specifying how to verify if Scan authentication and authorization is working before running a scan.

An example configuration of app.authentication.testPath:

 app:
  authentication:
    testPath:
      type: HEADER
      path: /user/profile
      success: ".*200.*"
      requestMethod: POST
      requestBody: '{"feeling": "KaaKaww!"}'
      requestHeaders:
        Content-Type: "application/json"

This uses either success or fail criteria to determine if authorized access is working correctly.

path string required

Required. The path to a protected route in your application that requires authorization. For example /mysettings. A GET request will be made to this path using the configured authentication.

pattern=^\/(([A-z0-9\-\%]+\/)*[A-z0-9\-\%]+$)?
type string

An enum value representing what to match against in the response from issuing a request to the testPath.path. The supported values are HEADER and BODY.

Values: "HEADER" "BODY"
success string

A regex that will match against the response header or body, specified by type, of the GET request to the path. A match of the regex supplied will indicate that scanning should proceed with the specified authentication.

HawkScan requires that either success OR fail be configured (do not configure both).

fail string

A regex that will match against the response header or body, specified by type, of the GET request to the path. A match of the regex supplied will indicate that scanning should halt and enter an error state.

HawkScan requires that either success OR fail be configured (do not configure both).

requestMethod string

Request method to use for queries. Will generate GraphQL queries as either POST payloads or GET uri strings.

Values: "GET" "POST" "PUT" "PATCH"
requestBody string

The request content to send along with POST or PUT requests for authentication verification.

requestHeaders Record<string, string>
grpcTestMethod string

The gRPC method path to call for authentication validation (e.g., "/auth.AuthService/ValidateToken"). Only used when authentication type is GRPC.

UserProfile object

Configuration for additional user profiles used in multi-user scanning scenarios for testing multi-tenancy isolation and access control.

name string

Required. A unique identifier name for this user profile to distinguish between different users during multi-user scans.

userNamePassword object

Username and password credentials for basic authentication similar to the primary authentication configuration.

2 nested properties
username string

Required. The username for this user profile. Use environment variable interpolation (e.g., ${USER2_USERNAME}).

password string

Required. The password for this user profile. Use environment variable interpolation (e.g., ${USER2_PASSWORD}).

external object

External authentication tokens for this user profile using pre-obtained tokens (e.g., JWT tokens, API keys, or session cookies).

1 nested properties
authTokens AuthTokens[]

List of authentication tokens to use for this user profile. Can include multiple tokens or cookies.

authScript object

Custom authentication script configuration for this user profile requiring custom authentication logic.

2 nested properties
name string

Required. The name of the authentication script defined in hawkAddOn.scripts to use for this profile.

credentials Record<string, string>
isPrivileged boolean

Indicates whether this user profile has elevated privileges (true for admin/privileged users, false for standard users).

globalParameters Record<string, string>
UserNamePassword object

Username and password credentials for basic authentication similar to the primary authentication configuration.

username string

Required. The username for this user profile. Use environment variable interpolation (e.g., ${USER2_USERNAME}).

password string

Required. The password for this user profile. Use environment variable interpolation (e.g., ${USER2_PASSWORD}).

External object

External authentication tokens for this user profile using pre-obtained tokens (e.g., JWT tokens, API keys, or session cookies).

authTokens AuthTokens[]

List of authentication tokens to use for this user profile. Can include multiple tokens or cookies.

ProfileScript object

Custom authentication script configuration for this user profile requiring custom authentication logic.

name string

Required. The name of the authentication script defined in hawkAddOn.scripts to use for this profile.

credentials Record<string, string>
GlobalParametersEntry Record<string, string>
GraphQLConf object

Configure how HawkScan interacts with GraphQL APIs.

One of the following is Required:

  • schemaPath: Relative path to the introspection endpoint (based on the host address).
  • filePath: Relative path to a GraphQL schema file (SDL format).

The following are Optional:

  • operation: Adjust the operation requests generated by the spider (QUERY or MUTATION, defaults to both).
  • excludeOperations: Exclude particular GraphQL operations from being scanned.

For full details, see GraphQL Configuration Documentation.

schemaPath string

Path to the GraphQL introspection endpoint, relative to the target URI.

pattern=^\/(([A-z0-9\-\%]+\/)*[A-z0-9\-\%]+$)?
requestMethod string

Request method to use for queries. Will generate GraphQL queries as either POST payloads or GET uri strings.

Values: "POST" "GET"
uriMaxLength number | string

Max length of URIs when generation queries for GET requests.

pattern=^([0-9][0-9]+|[1-9]|0)$min=0
maxDepth number | string

Maximum depth for generated query graphs.

pattern=^([0-9][0-9]+|[1-9]|0)$max=50exclusiveMin=0
enabled boolean

Enable GraphQL scan support. HawkScan will enumerate all possible field types and input values for GraphQL Queries and Mutations. Provide relative path to the API endpoint.

operation string

GraphQL operation to enumerate and scan. Defaults to find all Query and Mutation operations. Options are All, QUERY and MUTATION.

Values: "ALL" "QUERY" "MUTATION"
filePath string

Path to a local GraphQL schema file (SDL format) to use instead of introspection.

excludeOperations GraphQLExcludeOperationParam[]

GraphQL operations to exclude from the spider.

fakerEnabled boolean

Enables faker for a GraphQL scan to generate more realistic values when format is provided on the API spec or custom variables.

customVariables GraphQLCustomVariable[]

Define custom variables and values for use in GraphQL scanning.

GraphQLExcludeOperationParam object

A GraphQL operation to exclude from the spider by name and type.

name string

GraphQL operation name.

type string

Graphql operation type. Options are All, QUERY and MUTATION.

Values: "ALL" "QUERY" "MUTATION"
GraphQLCustomVariable object

Custom variable data specific to OpenAPI schemas.

field string

The field name of the param to inject values into.

values string[]

A list of possible values to be randomly selected for the given field.

operationName string

An optional operationName that will only inject custom values if the name of the operation on the request matches.

operationType string

An optional GraphQL operation type (MUTATION or QUERY) that will inject custom values only when the request matches the operation type.

Values: "ALL" "QUERY" "MUTATION"
OpenApiConf object

Define how HawkScan scans OpenAPI endpoints.

One of the following is Required:

  • filePath: Path to a local OpenAPI specification file (JSON or YAML).
  • path: URL path to fetch the OpenAPI spec from the scanned host.

For full details such as custom variable injection, see OpenAPI Configuration Documentation.

path string

A string relative path to an OpenAPI specification file (JSON or YAML) from the scanned host.

pattern=^\/(([A-z0-9\-\%]+\/)*[A-z0-9\-\%]+$)?
filePath string

Path to a local OpenAPI specification file (JSON or YAML format).

strict boolean

Whether to enable strict parsing of the OpenAPI.

customVariables OpenApiCustomVariable[]

Define custom variables and values for use in REST API scanning.

includeAllMethods boolean

When custom variables are provided, DELETE's are skipped for injection. Set this to true to override this default and include all methods in variable injection.

includedMethods string[]

List of methods to include in custom variable injection. Note: if 'includeAllMethods' is set to true, this list is ignored and all methods will be used for custom variable injection.

fakerEnabled boolean

Enables faker for a REST API scan to generate more realistic values when format is provided on the API spec or custom variables.

maxAliasesForCollections number | string

Maximum number of aliases for a collection when parsing YAML. Increase this value if you see the "Number of aliases for non-scalar nodes exceeds the specified max=100" error.

Default: 100
pattern=^([0-9][0-9]+|[1-9]|0)$min=0
forbiddenVariables OpenApiCustomVariable[]

Custom variables that the user should not see for tenancy checks.

filePaths string[]

A list of relative path to specification file(s) (JSON or YAML) for the open api generation for specs with multiple open api files.

usePlatform boolean

Use the OpenApi Specifications mapped to this application from the StackHawk Platform for this scan.

globalParameters Record<string, string>
OpenApiCustomVariable object

Custom variable data specific to OpenAPI schemas.

field string

The field name of the param to inject values into.

values string[]

A list of possible values to be randomly selected for the given field.

path string

An optional path regex that will only inject custom values if the path of the request matches.

requestMethods string[]

A list of optional HTTP request methods that will inject custom values only when the request matches one of those methods.

SoapConf object

Set parameters for scanning SOAP APIs.

One of the following is Required:

  • path: Relative URL to fetch the SOAP API WSDL from the scanned host.
  • filePath: Path to a local SOAP API WSDL specification file.

For full details, see SOAP Configuration Documentation.

path string

Host path to the SOAP WSDL, prefixed with a / .

pattern=^\/(([A-z0-9\-\%]+\/)*[A-z0-9\-\%]+$)?
filePath string

Relative path to the SOAP WSDL schema definition file.

GrpcConf object

Configure HawkScan for gRPC API scanning.

One of the following is Required:

For full details such as custom variable injection, see gRPC Configuration Documentation.

path string

Host path for the grpc reflection endpoint.

filePath string

Path to a local gRPC protobuf descriptor_set file.

customVariables CustomVariable[]

Define custom variables and values for use in gRPC scanning.

maxDepth number | string

Maximum depth for resolving nested protobuf.

Default: 10
pattern=^([0-9][0-9]+|[1-9]|0)$max=50exclusiveMin=0
filePaths string[]

A list of paths to the grpc protobuf descriptor_set file.

CustomVariable object

Generic custom variable for different API types.

field string

The field name of the param to inject values into. Using object notation will resolve nested objects for request bodies e.g. myobject.id

values string[]

A list of possible values to be randomly selected for the given field.

path string

Optional path for the endpoint or gRPC service to hit e.g. /myservice/myfunction

InputVectorParams object

Fine-grained configuration of HawkScan input vectors. This configuration is how and where testable inputs are applied on http requests.

injectableParam object
6 nested properties
urlQueryParam boolean

Allow injection of testable inputs url query parameter values.

urlQuery boolean

Allow injections of testable inputs url query parameter names.

postData boolean

Allow injection of testable inputs request body inputs on POST requests.

urlPath boolean

Allow injection of testable inputs url paths.

httpHeaders boolean

Allow injection of testable inputs for http headers.

cookieData boolean

Allow injection of testable inputs for cookie data.

enabledRpcParam object
6 nested properties
multipartFormData boolean

Support for multipart/form-data request bodies.

xmlTag boolean

Support for xml request bodies.

json boolean

Support for json request bodies.

googleWebToolkit boolean

Support for GWT request bodies. Deprecated.

odataId boolean

Support for Odata request bodies. Deprecated.

directWebRemoting boolean

Support for direct web remoting request bodies. Deprecated.

InjectableParam object
urlQueryParam boolean

Allow injection of testable inputs url query parameter values.

urlQuery boolean

Allow injections of testable inputs url query parameter names.

postData boolean

Allow injection of testable inputs request body inputs on POST requests.

urlPath boolean

Allow injection of testable inputs url paths.

httpHeaders boolean

Allow injection of testable inputs for http headers.

cookieData boolean

Allow injection of testable inputs for cookie data.

EnabledRPCParam object
multipartFormData boolean

Support for multipart/form-data request bodies.

xmlTag boolean

Support for xml request bodies.

json boolean

Support for json request bodies.

googleWebToolkit boolean

Support for GWT request bodies. Deprecated.

odataId boolean

Support for Odata request bodies. Deprecated.

directWebRemoting boolean

Support for direct web remoting request bodies. Deprecated.

WaitForAppTarget object

Configuration specifying how to determine if the web application is up, responsive and ready for scanning.

waitTimeoutMillis number | string required

The maximum amount of time in milliseconds that HawkScan will wait for your app to be available before it starts scanning

pattern=^([0-9][0-9]+|[1-9]|0)$min=0
pollDelay number | string required

The maximum amount of time in milliseconds in between requests to your application to see if it's running

pattern=^([0-9][0-9]+|[1-9]|0)$min=50
path string

The path to a public reachable route in your application. For example /index. A GET request will be made to this path to confirm the host is up and ready to receive traffic.

Default: "/"
requestMethod string

Request method to use for queries. Will generate GraphQL queries as either POST payloads or GET uri strings.

Values: "GET" "POST" "PUT" "PATCH"
requestBody string

The request content to send along with POST or PUT requests for target verification.

requestHeaders Record<string, string>
AppRedactions object

Redaction policy of scan logs and stdout when scanning this application.

HawkScan maintains a list of redacted tokens; strings that are sensitive and should be scrubbed preemptively from logs and collected messages. By default, HawkScan redacts app.authentication credentials, and any provided script / discovery credentials.

headers string[]

List of string header names: the values of HTTP headers matching these names will be redacted from alerts and logs.

values string[]

List of string static values: the values here will be added to the redacted token list. This is best used with ${ENV_VAR:default} interpolation.

OrganizationPolicy object

Configure the policy to be applied for the scan, optionally specifying which plugins to include or exclude. Note: Applies to scan policies created with Organization Policy Management.

name string required

Required. The unique name of the organization scan policy.

excludePluginIds string[]

Plugin ids to exclude from the named scan policy.

includePluginIds string[]

Plugin ids to include in the scan that are not in the named scan policy.

JsonRpcConf object

Configure HawkScan for JSON-RPC 2.0 API scanning.

One of the following is Required:

  • endpoint: The JSON-RPC endpoint path (e.g., /jsonrpc or /api/rpc).
  • path: Host path to a hosted OpenRPC specification (e.g., /openrpc.json).
  • filePath: Relative path to a local OpenRPC schema file (JSON format).

For full details such as custom variable injection, see JSON-RPC Configuration Documentation.

enabled boolean

Enable JSON-RPC scan support.

endpoint string

The JSON-RPC endpoint path relative to the target host (e.g., /jsonrpc). Defaults to /.

Default: "/"
pattern=^\/(([A-z0-9\-\%]+\/)*[A-z0-9\-\%]+$)?
filePath string

Path to a local OpenRPC schema file (JSON format) to use instead of network discovery.

maxDepth number | string

Maximum depth for generated nested objects. Defaults to 3.

Default: 3
pattern=^([0-9][0-9]+|[1-9]|0)$max=50exclusiveMin=0
fakerEnabled boolean

Enables faker for JSON-RPC scanning to generate more realistic values when format is provided on the schema or custom variables.

requestTimeout number | string

HTTP request timeout in milliseconds. Defaults to 30000 (30 seconds).

Default: 30000
pattern=^([0-9][0-9]+|[1-9]|0)$exclusiveMin=0
excludeMethods string[]

Regex patterns for JSON-RPC method names to exclude from scanning.

customVariables JsonRpcCustomVariable[]

Define custom variables and values for use in JSON-RPC scanning.

mcp object

MCP (Model Context Protocol) server configuration for JSON-RPC scanning.

3 nested properties
endpoint string

MCP server endpoint path relative to target host. Defaults to /mcp.

Default: "/mcp"
pattern=^\/(([A-z0-9\-\%]+\/)*[A-z0-9\-\%]+$)?
excludeTools string[]

MCP tool names to exclude from scanning.

customValues McpCustomVariable[]

Define custom variables and values for use in MCP tool scanning.

path string

Host path to a hosted OpenRPC specification, relative to the target host (e.g., /openrpc.json).

JsonRpcCustomVariable object

Custom variable data specific to JSON-RPC schemas.

field string

The field name of the param to inject values into. Using dot notation will resolve nested objects for request bodies (e.g., user.address.id).

values string[]

A list of possible values to be randomly selected for the given field.

path string

An optional regex pattern that will only inject custom values if the JSON-RPC method name matches.

McpConf object

MCP (Model Context Protocol) server configuration for JSON-RPC scanning.

endpoint string

MCP server endpoint path relative to target host. Defaults to /mcp.

Default: "/mcp"
pattern=^\/(([A-z0-9\-\%]+\/)*[A-z0-9\-\%]+$)?
excludeTools string[]

MCP tool names to exclude from scanning.

customValues McpCustomVariable[]

Define custom variables and values for use in MCP tool scanning.

McpCustomVariable object

Custom variable data specific to MCP tool scanning.

tool string

MCP tool name this variable applies to.

param string

Parameter name within the tool's inputSchema. Using dot notation resolves nested objects (e.g., user.address.id).

values string[]

A list of possible values to be randomly selected for the given parameter.

HawkAddOnConf object

Extend HawkScan functionality with add-ons and custom scripts:

  • replacer: Modify or replace HTTP request headers using rules with properties like matchString, replacement, isRegex, and replaceOnly.
  • scripts: Configure custom scripts to customize scan behavior with name, type (e.g., active, authentication), path, language (KOTLIN, JAVASCRIPT), and vars.

For more detail, see HawkScan Configuration Documentation.

replacer object

Configuration block for header value replacement. These rules support manipulating request headers, useful for modifying requests to web applications running behind a proxy.

1 nested properties

List of regex match and replace rules for request headers.

scripts Script[]

List of configurations for custom scripts.

Replacer object

Configuration block for header value replacement. These rules support manipulating request headers, useful for modifying requests to web applications running behind a proxy.

List of regex match and replace rules for request headers.

ReplacerRules object

A list of configuration blocks for the Replacer add-on rules. Each configuration block in the list is made up of the following elements. See Configuration Examples for more information.

matchString string required

If replaceOnly is false, only match the header name. If replaceOnly is true, matches the exact string on the header line.

replacement string required

If false, replace existing header value or add the missing header using replacement as the value. If true, only replace the matchString of an existing header line.

initiators string[]

Replacer rule initiators.

replaceOnly boolean

If false, replace existing header value or add the missing header using replacement as the value. If true, only replace the matchString of an existing header line.

isRegex boolean

Enable regex search for matchString. Useful when replaceOnly is true (e.g. Referer:.* will replace the entire Referer: header line).

Script object

Configuration block for custom scripts.

name string

The name of this custom script.

type string

The type of this script. One of active, authentication, httpsender, passive, proxy, session.

Values: "active" "authentication" "httpsender" "passive" "proxy" "session"
path string

Path to the file location for the custom script.

Named variables to expose to the script.

language string

Required. The language of this script. Either KOTLIN or JAVASCRIPT.

Values: "KOTLIN" "JAVASCRIPT"
id number | string

Plugin Id for script.

Tag object

Scan tags are name value pairs that represent metadata of the scan, capturing additional state or context around a scan.

Examples could include adding commit SHAs, branch names, or project management issue titles.

Tag names can use any combination of the following characters: a-zA-Z-_, and their values can be any string. Tag entries can also be interpolated from the environment.

{:class="alert alert-info"}

ℹ️ NOTE: Tag names beginning with _STACKHAWK are in a reserved tag name space.

The following selection of YAML is an example of how you can configure your stackhawk.yml file to include scan tags:

stackhawk.yml {: .filename-tab}

app:
applicationId: <application-uuid>
env: localhost
host: http://localhost:8080
tags:
- name: category
value: hawksome
- name: Another-Value
value: ${SOMETHING_FROM_ENV:default}
- name: _GIT_COMMIT_SHA
value: ${MY_COMMIT_SHA_ENV:HEAD}
name string

The name of the tag.

value string

An arbitrary value to associate with the keyword.

minLength=1maxLength=512
stackHawkId string

The StackHawk tag id.