> For the complete documentation index, see [llms.txt](https://developer.harness.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.harness.io/security-testing-orchestration/3.0/use-sto/sto-custom-scanning-and-ingestion/custom-scan-reference.md).

# Custom Scan step for supported scanners

The **Custom Scan** step enables you to configure supported scanners that don't yet have their own dedicated step in the Harness Step Library.

### Important notes for Custom Scan steps <a href="#important-notes-for-custom-scan-steps" id="important-notes-for-custom-scan-steps"></a>

* To configure a Custom Scan step, you add a set of key-value pairs in the **Settings** field. The key and value strings you need to specify, such as `product_name` and `orchestratedScan`, are case-sensitive.
* You need to [add a Docker-in-Docker background step](/security-testing-orchestration/3.0/use-sto/sto-scanner-configuration/security-step-settings-reference.md#configuring-docker-in-docker-dind-for-your-pipeline) if you're running an `orchestratedScan` or `dataLoad` scan in a Kubernetes or Docker build infrastructure.
* You need to run the [Custom Scan step with root access](/security-testing-orchestration/3.0/use-sto/sto-scanner-configuration/security-step-settings-reference.md#root-access-requirements-for-sto) if you need to run a Docker-in-Docker step, or if you need to add trusted certificates to your scan images at runtime.
* The following topics contain useful information for setting up scanner integrations in STO:
  * [What's supported in STO](/security-testing-orchestration/3.0/new-to-sto/sto-whats-supported/sto-deployments.md)
  * [Security Testing Orchestration FAQs](/security-testing-orchestration/3.0/troubleshooting-and-resources/faqs.md)
  * [Optimize STO pipelines](/security-testing-orchestration/3.0/troubleshooting-and-resources/sto-use-cases/set-up-sto-pipelines/optimize-sto-pipelines.md)

### Workflow descriptions <a href="#workflow-descriptions" id="workflow-descriptions"></a>

<details>

<summary>Orchestration/extraction workflows</summary>

</details>

<details>

<summary>Ingestion workflows</summary>

</details>

### Custom Scan settings reference <a href="#custom-scan-settings-reference" id="custom-scan-settings-reference"></a>

To set up a scanner, you add key-value pairs under **Settings**. The following sections describe the different settings and requirements.

<details>

<summary>Scanner configuration in a Custom Scan step</summary>

\- step: type: Security name: custom\_scan\_xray identifier: custom\_scan\_xray spec: privileged: true settings: policy\_type: ingestionOnly scan\_type: containerImage product\_name: xray product\_config\_name: default target\_name: YOUR\_REPO/YOUR\_IMAGE target\_variant: YOUR\_TAG ingestion\_file: /shared/scan\_results/xray2.json

</details>

#### Scanner settings <a href="#scanner-settings" id="scanner-settings"></a>

These settings are required for most scanners. For more information, go to the reference for the scanner integration you're setting up.

* [Product name](#product-name)
* [Scan type](#scan-type)
* [Policy type](#policy-type)
* [Product config name](#product-config-name)

**Product name**

The scanner name. This is required for all Custom Scan steps.

**Key**

```
product_name
```

**Value**

Go to the relevant step configuration.

**Scan type**

The target type to scan.

**Key**

```
scan_type
```

**Value**

Must be one of the following. For supported values, go to the relevant step configuration.

```
containerImage
```

```
repository
```

```
instance
```

```
configuration
```

**Policy type**

The [scan mode](/security-testing-orchestration/3.0/new-to-sto/key-concepts/sto-workflows-overview.md) to use.

**Key**

```
policy_type
```

**Value**

Must be one of the following. For supported values, go to the relevant step configuration.

```
orchestratedScan
```

```
ingestionOnly
```

```
dataLoad
```

**Product config name**

Required for most scanner integrations.

**Key**

```
product_config_name
```

**Value**

For supported values, go to the relevant step configuration.

#### Target and variant <a href="#target-and-variant" id="target-and-variant"></a>

#### Code repositories <a href="#code-repositories" id="code-repositories"></a>

#### Container image <a href="#container-image" id="container-image"></a>

#### Application instances <a href="#application-instances" id="application-instances"></a>

#### Configurations <a href="#configurations" id="configurations"></a>

#### Ingestion file <a href="#ingestion-file" id="ingestion-file"></a>

#### Fail on Severity <a href="#fail-on-severity" id="fail-on-severity"></a>

### Additional Configuration <a href="#additional-configuration" id="additional-configuration"></a>

### Advanced settings <a href="#advanced-settings" id="advanced-settings"></a>
