Skip to content

Commit 122f03b

Browse files
Maffoochclaude
andauthored
docs(connectors): document Bugcrowd, ServiceNow CMDB, and Linear (#15336)
These are live in the production Pro connector/integration catalog but had no reference docs. Adds a Bugcrowd finding-connector section and a ServiceNow CMDB asset-connector section to the connectors tool reference, and a Linear section to the downstream integrators reference (plus the two integrations.md index lists). Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 4f8e30d commit 122f03b

3 files changed

Lines changed: 77 additions & 1 deletion

File tree

docs/content/import_data/pro/connectors/connectors_tool_reference.md

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ Most Connectors import **findings** from a security tool. **Asset Connectors** w
2626
* **Discover** and **Sync** both reconcile the asset list. New assets appear as `NEW` Records; once mapped (automatically, if auto-mapping is enabled), DefectDojo creates the Product and groups it under a Product Type derived from the tool — for example, the GitLab namespace or the Azure DevOps project.
2727
* If an asset is later removed upstream (for example, a repository is deleted), its mapped Record is flagged `MISSING` on the next Sync so your team can triage it. DefectDojo never silently deletes a Product.
2828

29-
Azure DevOps, Bitbucket, GitHub, GitLab, and Jira Service Management Assets are Asset Connectors. All other Connectors listed below import findings.
29+
Azure DevOps, Bitbucket, GitHub, GitLab, Jira Service Management Assets, and ServiceNow CMDB are Asset Connectors. All other Connectors listed below import findings.
3030

3131
# **Supported Connectors**
3232

@@ -208,6 +208,22 @@ Only Bitbucket Cloud (bitbucket.org) is supported. Bitbucket Server reached end
208208

209209
Each repository becomes a Record named after the repository, grouped by its Bitbucket **project**.
210210

211+
## **Bugcrowd**
212+
213+
The Bugcrowd connector uses the Bugcrowd REST API to import submissions from your bug bounty and vulnerability disclosure programs. DefectDojo discovers the programs your API token can access and creates a Record for each one, importing that program's submissions as findings.
214+
215+
#### Prerequisites
216+
217+
You will need a Bugcrowd **API token** with access to the programs you want to import. We recommend creating a dedicated service account for DefectDojo so automated activity is easy to distinguish from manual team actions. Generate the token in Bugcrowd under **Organization settings \> API credentials**; read access to submissions, programs, and targets is sufficient.
218+
219+
#### Connector Mappings
220+
221+
1. Enter `https://api.bugcrowd.com` in the **Location** field.
222+
2. Enter your Bugcrowd API token in the **Secret** field. It is sent as an `Authorization: Token` header.
223+
3. Optionally, set a **Minimum Severity** to limit which findings are imported.
224+
225+
Each Bugcrowd **program** becomes a Record, and its submissions are imported as findings with the Bugcrowd severity preserved. Duplicate submissions are excluded, so reimport does not create repeated findings for the same issue.
226+
211227
## **BurpSuite**
212228

213229
DefectDojo’s Burp connector calls Burp’s GraphQL API to fetch data.
@@ -879,6 +895,21 @@ Enter `https://semgrep.dev/api/v1/` in the **Location** field.
879895

880896
See [Semgrep documentation](https://semgrep.dev/docs/semgrep-cloud-platform/semgrep-api/#tag__badge-list) for more info.
881897

898+
## **ServiceNow CMDB**
899+
900+
The ServiceNow CMDB connector is an **Asset Connector**: instead of importing findings, it reads Configuration Items (CIs) from your ServiceNow Configuration Management Database and creates a DefectDojo Asset for each CI, grouped into Organizations by CI class. No findings are imported.
901+
902+
#### Prerequisites
903+
904+
You will need a ServiceNow instance and an account that can read the CMDB tables over the ServiceNow Table API. We recommend a dedicated, read-only service account for DefectDojo. The account needs read access to the `cmdb_ci` tables you want to import.
905+
906+
#### Connector Mappings
907+
908+
1. Enter your ServiceNow instance URL in the **Location** field: `https://{your-instance}.service-now.com`.
909+
2. Select or create a ServiceNow **Tool Configuration** holding the instance credentials (the ServiceNow username and password).
910+
911+
Each Configuration Item becomes a Record named after the CI, grouped by its **CI class** (for example, application, server, or business service). Discovery and Sync reconcile the CI list: new CIs appear as `NEW` Records, and a CI removed from the CMDB is flagged `MISSING` on the next Sync so your team can triage it. DefectDojo never silently deletes a Product.
912+
882913
## **Shodan**
883914

884915
The Shodan connector uses the Shodan REST API to import the vulnerabilities (CVEs) Shodan has observed on your internet-exposed hosts. You provide a Shodan search query that scopes the import to your own assets; DefectDojo creates a Record for each matching host and imports its CVEs as findings.

docs/content/issue_tracking/pro_integration/integrations.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ Supported Integrations:
1818
- GitHub
1919
- GitLab Boards
2020
- Jira
21+
- Linear
2122
- PagerDuty
2223
- ServiceDesk Plus
2324
- ServiceNow
@@ -96,6 +97,7 @@ For the complete list of requirements, please open the vendor specific pages bel
9697
- [GitHub](/issue_tracking/pro_integration/integrations_toolreference/#github)
9798
- [GitLab Boards](/issue_tracking/pro_integration/integrations_toolreference/#gitlab)
9899
- [Jira](/issue_tracking/pro_integration/integrations_toolreference/#jira)
100+
- [Linear](/issue_tracking/pro_integration/integrations_toolreference/#linear)
99101
- [PagerDuty](/issue_tracking/pro_integration/integrations_toolreference/#pagerduty)
100102
- [ServiceDesk Plus](/issue_tracking/pro_integration/integrations_toolreference/#servicedesk-plus)
101103
- [ServiceNow](/issue_tracking/pro_integration/integrations_toolreference/#servicenow)

docs/content/issue_tracking/pro_integration/integrations_toolreference.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,49 @@ By default Jira issues use DefectDojo's built-in title and body. To customize th
286286
- **Token lifecycle (OAuth):** DefectDojo owns the whole flow — it performs the authorization-code exchange, stores the access and refresh tokens, and refreshes on demand before a push, persisting the new refresh token each time (Atlassian rotates it on every refresh).
287287
- **Credential storage:** all connection credentials (passwords, tokens, client secrets, OAuth tokens) are encrypted at rest and are never returned through the API — editing a connection shows a "leave blank to keep" placeholder for stored secrets.
288288

289+
## Linear
290+
291+
The Linear integration allows you to push DefectDojo Findings as [Linear](https://linear.app/) Issues. Issues are created in a Team in your Linear workspace.
292+
293+
### Instance Setup
294+
295+
- **Label** should be the label that you want to use to identify this integration.
296+
- **Location** should be set to `https://api.linear.app/graphql`.
297+
- **API Key** should be set to a Linear personal API key. Keys can be generated in Linear under Settings, then Security & access, then [API](https://linear.app/settings/account/security). The key is sent to Linear's GraphQL API in the `Authorization` header.
298+
299+
### Issue Tracker Mapping
300+
301+
- **Team (Group) ID** should be set to the ID of the Linear Team that Issues will be created for. You can list your Teams and their IDs by calling the Linear GraphQL API:
302+
303+
```
304+
curl -H "Authorization: {{API_KEY}}" -H "Content-Type: application/json" \
305+
-d '{"query":"{ teams { nodes { id name key } } }"}' https://api.linear.app/graphql
306+
```
307+
308+
### Severity Mapping Details
309+
310+
A Linear Issue carries a numeric **priority** rather than a severity field. Each DefectDojo severity maps to a Linear priority, where `1` is Urgent and `4` is Low:
311+
312+
- **Severity Field Name**: `Priority`
313+
- **Info Mapping**: `4`
314+
- **Low Mapping**: `4`
315+
- **Medium Mapping**: `3`
316+
- **High Mapping**: `2`
317+
- **Critical Mapping**: `1`
318+
319+
### Status Mapping Details
320+
321+
Each status value must be set to the ID of a Workflow State in your Linear Team. Workflow State IDs are unique to each workspace, so there are no default values. You can list the Workflow States and their IDs by calling the Linear GraphQL API:
322+
323+
```
324+
curl -H "Authorization: {{API_KEY}}" -H "Content-Type: application/json" \
325+
-d '{"query":"{ workflowStates { nodes { id name type team { key } } } }"}' https://api.linear.app/graphql
326+
```
327+
328+
- **Status Field Name**: `Workflow State ID`
329+
- **Active Mapping**: the ID of a started or unstarted state, for example `Todo` or `In Progress`.
330+
- **Closed Mapping**: the ID of a completed state, for example `Done`. When a Finding is deleted in DefectDojo, its Issue is moved to this state.
331+
289332
## PagerDuty
290333

291334
The PagerDuty Integration allows you to push DefectDojo Findings and Finding Groups as PagerDuty Incidents, opened on a PagerDuty Service of your choice.

0 commit comments

Comments
 (0)