# Snyk

Snyk provides tools and services to help developers find and fix security vulnerabilities in their software applications by identifying vulnerabilities in open-source libraries and containers, which developers commonly use to build their applications.

<div align="left"><figure><img src="https://4252973360-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LXA6EayCcg12qfDcfXd%2Fuploads%2FyUqlsYUYfd7CayvDAQkO%2Fsnyk2.jpg?alt=media&#x26;token=7ce6ec64-e753-436f-88f6-18c4486ba11e" alt=""><figcaption></figcaption></figure></div>

{% hint style="danger" %}
PlexTrac is currently not integrated with Snyk. Check with your account manager for more information.&#x20;
{% endhint %}

Snyk scanner files can be imported into PlexTrac via API for use in a PlexTrac report. PlexTrac integrates with the following Snyk products:

* Snyk Code (SAST)
* Snyk Open Source (SCA)
* Snyk Container
* Snyk Infrastructure as Code

When a file is imported in PlexTrac, the source of the scanner file is retained and tracked in the "Source" field on the findings details page.

## Field Mappings

Below are the field mappings from Snyk to PlexTrac, broken up by tool. The mappings are broken up in the tool sections by findings and assets.

Tables include the following columns:

* **Snyk Field:** this is the field name that appears in Snyk
* **PlexTrac Field:** this is the field name that appears in PlexTrac
* **Direction:** this displays the direction that the flow of data is occurring for the integration (a value of "x" means that the value is not imported)
* **Required:** this denotes if a value is required for the import to be successful
* **Notes:** additional information

{% hint style="info" %}
An asterisk indicates the field is required.
{% endhint %}

### Snyk Open Source, Container, and IaC Mappings

Below are the mappings for the following Snyk products:

* Snyk Open Source (SCA)
* Snyk Container
* Snyk Infrastructure as Code (IaC)

#### Finding Fields

<table><thead><tr><th width="268">Snyk Field</th><th width="140.33333333333331" align="center">Direction</th><th width="178">PlexTrac Field</th><th>Notes</th></tr></thead><tbody><tr><td>Issue Title</td><td align="center">--></td><td>Finding Title*</td><td>required</td></tr><tr><td>Issue Description</td><td align="center">--></td><td>Finding Description*</td><td>required</td></tr><tr><td>Issue Description</td><td align="center">--></td><td>References</td><td></td></tr><tr><td>Issue Description</td><td align="center">--></td><td>Recommendations</td><td></td></tr><tr><td>Disclosure Time</td><td align="center">--></td><td>Created at</td><td></td></tr><tr><td>Publication Time</td><td align="center">x</td><td>(not ingested)</td><td></td></tr><tr><td>CVE Identifier</td><td align="center">--></td><td>CVE Identifier</td><td></td></tr><tr><td>CWE Identifier</td><td align="center">--></td><td>CWE Identifier</td><td></td></tr><tr><td>Severity Score Value</td><td align="center">--></td><td>Score Value</td><td></td></tr><tr><td>Severity Score Calculation</td><td align="center">--></td><td>Severity Score Calculation</td><td></td></tr><tr><td>Severity Score Type</td><td align="center">--></td><td>Score Type</td><td></td></tr><tr><td>(no equivalent field in Snyk)</td><td align="center">--></td><td>Finding Status*</td><td>required; assigned a value of "Open" </td></tr><tr><td>Issue Severity</td><td align="center">--></td><td>Finding Severity*</td><td>required; the five severity value mappings are listed below in italics</td></tr><tr><td><em><code>Informational</code></em></td><td align="center">--></td><td><em><code>Informational</code></em></td><td></td></tr><tr><td><em><code>Low</code></em></td><td align="center">--></td><td><em><code>Low</code></em></td><td></td></tr><tr><td><em><code>Medium</code></em></td><td align="center">--></td><td><em><code>Medium</code></em></td><td></td></tr><tr><td><em><code>High</code></em></td><td align="center">--></td><td><em><code>High</code></em></td><td></td></tr><tr><td><em><code>Default</code></em></td><td align="center">--></td><td><em><code>Critical</code></em></td><td></td></tr><tr><td>Nearest Fixed In Version</td><td align="center">--></td><td>Custom Field "Nearest Fixed In Version</td><td></td></tr><tr><td>Fix Info</td><td align="center">--></td><td>Custom Field "Fix Info"</td><td></td></tr><tr><td>Organization Name</td><td align="center">--></td><td>Custom Field "Organization Name"</td><td></td></tr><tr><td>Organization ID</td><td align="center">--></td><td>Custom Field "Categorical Id"</td><td></td></tr><tr><td>Package Name</td><td align="center">--></td><td>Custom Field "Package Name"</td><td></td></tr><tr><td>Issue Type</td><td align="center">--></td><td>Custom Field "Issue Type"</td><td></td></tr><tr><td>Violated Policy Public Id</td><td align="center">--></td><td>Custom Field "Violated Policy Public Id"</td><td></td></tr><tr><td>Exploit Maturity</td><td align="center">--></td><td>Custom Field "Exploit Maturity"</td><td></td></tr><tr><td>Patches</td><td align="center">--></td><td>Custom Field "Patches"</td><td></td></tr><tr><td>Issue URL</td><td align="center">--></td><td>References</td><td></td></tr></tbody></table>

#### Asset Fields

<table><thead><tr><th width="274">Snyk Field</th><th width="137" align="center">Direction</th><th>PlexTrac Field</th><th>Notes</th></tr></thead><tbody><tr><td>Project Name</td><td align="center">--></td><td>Affected Asset Name</td><td></td></tr></tbody></table>

#### Deduplication Logic

If a duplicate finding title is found during import, the finding title in PlexTrac is appended with the Snyk `Organization ID` and `Issue Id` in parenthesis at the end of the title value.

### Snyk Code Mappings

Below are the mappings for Snyk Code (SAST).

#### Findings

<table><thead><tr><th>Snyk Field</th><th width="139" align="center">Direction</th><th>PlexTrac Field</th><th>Notes</th></tr></thead><tbody><tr><td>Aggregate Title</td><td align="center">--></td><td>Finding Title*</td><td>required</td></tr><tr><td>Detail Title</td><td align="center">--></td><td>Finding Description*</td><td>required</td></tr><tr><td>Product</td><td align="center">--></td><td>Tags</td><td></td></tr><tr><td>Product</td><td align="center">--></td><td>Source</td><td></td></tr><tr><td>Priority Score</td><td align="center">--></td><td>Score Type General</td><td></td></tr><tr><td>CVE</td><td align="center">--></td><td>CVE</td><td></td></tr><tr><td>CWE ID</td><td align="center">--></td><td>CWE</td><td></td></tr><tr><td>Issue URL</td><td align="center">--></td><td>References</td><td></td></tr><tr><td>Severity Mapping</td><td align="center"></td><td></td><td>required; the five severity value mappings are listed below in italics</td></tr><tr><td><em><code>Informational</code></em></td><td align="center">--></td><td><em><code>Informational</code></em></td><td></td></tr><tr><td><em><code>Low</code></em></td><td align="center">--></td><td><em><code>Low</code></em></td><td></td></tr><tr><td><em><code>Medium</code></em></td><td align="center">--></td><td><em><code>Medium</code></em></td><td></td></tr><tr><td><em><code>High</code></em></td><td align="center">--></td><td><em><code>High</code></em></td><td></td></tr><tr><td><em><code>Default</code></em></td><td align="center">--></td><td><em><code>Critical</code></em></td><td></td></tr><tr><td>Primary Region</td><td align="center">--></td><td>Custom Field: "Source Location"</td><td></td></tr><tr><td>Priority Score Factors</td><td align="center">--></td><td>Custom Field: "Snyk Priority Score Factors"</td><td></td></tr></tbody></table>

#### Asset Mappings

<table><thead><tr><th width="196">Snyk Field</th><th width="145.66666666666666" align="center">Direction</th><th>PlexTrac Field</th><th>Notes</th></tr></thead><tbody><tr><td>Project Name</td><td align="center">--></td><td>Parent Asset*</td><td>required</td></tr><tr><td>Primary File Path</td><td align="center">--></td><td>Child Asset*</td><td>required</td></tr><tr><td>Primary File Path</td><td align="center">--></td><td>Affected Asset(s)*</td><td>required</td></tr></tbody></table>

## Setting up Integration with Snyk

<mark style="background-color:yellow;">Step 1</mark>: From the **Admin Dashboard**, click **Integrations** under "Tools & Integrations."

<div align="left"><figure><img src="https://4252973360-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LXA6EayCcg12qfDcfXd%2Fuploads%2FfnbNARZaPv4rpZRf8vhd%2Fimage.png?alt=media&#x26;token=2ee6cbb5-8bb7-4d13-94a7-78b16c7cf449" alt=""><figcaption></figcaption></figure></div>

<mark style="background-color:yellow;">Step 2</mark>: Click **Connect** within the Snyk box.

<div align="left"><figure><img src="https://4252973360-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LXA6EayCcg12qfDcfXd%2Fuploads%2FQhnamPsvtaf33V2nrmgP%2Fimage.png?alt=media&#x26;token=72c082ef-3527-4788-8932-f893f06d3285" alt=""><figcaption></figcaption></figure></div>

<mark style="background-color:yellow;">Step 3</mark>: Click **New Connection**.

<div align="left"><figure><img src="https://4252973360-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LXA6EayCcg12qfDcfXd%2Fuploads%2Fn78xWzvmGfXPpUvZu4NO%2Fimage.png?alt=media&#x26;token=ff729d33-e246-4c5f-9469-bfbe08937221" alt=""><figcaption></figcaption></figure></div>

<mark style="background-color:yellow;">Step 4</mark>: On the **Configuration Details** tab, enter a name for the integration and the Snyk API key. Click **Continue**.

{% hint style="info" %}
Visit [Snyk Support](https://docs.snyk.io/snyk-api-info/authentication-for-api) for information on generating an API key.
{% endhint %}

<div align="left"><figure><img src="https://4252973360-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LXA6EayCcg12qfDcfXd%2Fuploads%2FcmcW8b92N1PE7m2feOiG%2Fimage.png?alt=media&#x26;token=f9423fbf-d778-4e5a-9cb5-afc3e9b08ebc" alt=""><figcaption></figcaption></figure></div>

<mark style="background-color:yellow;">Step 5</mark>: On the **Mapping** tab, review the mappings and select the fields in Snyk to import by validating that the checkbox next to the field is set. To ignore a field on import, uncheck the box. Required fields (checkbox is greyed out) cannot be configured. \
\
Scroll to the bottom and click **Save**.

<div align="left"><figure><img src="https://4252973360-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LXA6EayCcg12qfDcfXd%2Fuploads%2Fbg6SqpDRDB1p2zQllGWc%2Fimage.png?alt=media&#x26;token=70dd0cad-881a-49e1-b0b6-6748a3c02244" alt=""><figcaption></figcaption></figure></div>

<mark style="background-color:yellow;">Step 6</mark>: A message on the First Synch tab will confirm if the synch was successful. If successful, click **Got It**.

The connection is now listed.

<div align="left"><figure><img src="https://4252973360-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LXA6EayCcg12qfDcfXd%2Fuploads%2F2bLksDw763LrPTtMlB8C%2Fimage.png?alt=media&#x26;token=55c40b86-7213-4fca-840f-43490c35967f" alt=""><figcaption></figcaption></figure></div>

## Editing Existing Connections

Connections are edited by clicking **Edit** under the "Actions" column.

<div align="left"><figure><img src="https://4252973360-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LXA6EayCcg12qfDcfXd%2Fuploads%2F07KrJg5ygH4vrQ1GQAY4%2Fimage.png?alt=media&#x26;token=fb06709f-d685-47ba-8faa-97ab3fb62580" alt=""><figcaption></figcaption></figure></div>

Connections can be turned off by clicking the toggle bar under the "Enabled" column.

<div align="left"><figure><img src="https://4252973360-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LXA6EayCcg12qfDcfXd%2Fuploads%2FA3PbF1AR1Zpgd46BGlte%2Fimage.png?alt=media&#x26;token=8bc794e9-a107-43e2-a0eb-a700a4a32416" alt=""><figcaption></figcaption></figure></div>

Connections can be manually synchronized by clicking **Sync** under the "Actions" column.

<div align="left"><figure><img src="https://4252973360-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LXA6EayCcg12qfDcfXd%2Fuploads%2FLNiqu0cD910F69u7h5Xs%2Fimage.png?alt=media&#x26;token=a414750d-8680-443f-a431-5a366abbe94d" alt=""><figcaption></figcaption></figure></div>

Connections can be deleted by clicking the three dots under the "Actions" column and then **Delete**. A modal will appear, asking for confirmation of the action.&#x20;

<div align="left"><figure><img src="https://4252973360-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LXA6EayCcg12qfDcfXd%2Fuploads%2FqvQrXbp3LzKKhm6rC44N%2Fimage.png?alt=media&#x26;token=6bda6f35-0159-40d4-a72e-df787d9772d7" alt=""><figcaption></figcaption></figure></div>

Once set up, findings can be imported into a report, and [instructions on this process can be found here](https://docs.plextrac.com/plextrac-documentation/product-documentation/reports/findings/importing-findings-via-an-integration).&#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.plextrac.com/plextrac-documentation/product-documentation-1/account-management/account-admin/integrations-and-webhooks/integrations-api/snyk.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
