SonarQube
Visualize Sonarqube projects and users, map Sonarqube users to employees, and monitor user changes through queries and alerts.
- Installation
- Authorization
- Data Model
- Release Notes
Installation
The SonarQube integration ingests projects, users, user groups, and code findings using the SonarQube REST API. Before configuring the integration in JupiterOne, create a SonarQube API token for a user with the required permissions.
Prerequisites
The API token must belong to a user with the Administer System global permission. This permission allows the integration to enumerate all projects, users, and user groups across your SonarQube instance. See Managing permissions in the SonarQube documentation for details on setting global permissions.
Creating an API token in SonarQube
- Log in to SonarQube as a user with the Administer System permission.
- Click your avatar in the top-right corner and select My Account.
- Go to the Security tab.
- Under Tokens, enter a descriptive name (for example,
JupiterOne) and click Generate. - Copy the generated token — it is shown only once.
See Managing your tokens for further guidance.
If connecting to SonarQube from JupiterOne-hosted infrastructure, the SonarQube instance must be reachable at a public URL (for example, https://sonarqube.example.com).
Configuration in JupiterOne
To install the SonarQube integration in JupiterOne, navigate to the Integrations tab in JupiterOne and select SonarQube. Click New Instance to begin configuring your integration.
Creating an instance requires the following:
-
The Account Name used to identify the SonarQube account in JupiterOne. Ingested entities will have this value stored in
tag.AccountNamewhen theAccountNametoggle is enabled. -
Description to assist in identifying the integration instance, if desired.
-
Polling Interval that you feel is sufficient for your monitoring needs. You may leave this as
DISABLEDand manually execute the integration. -
Base Url: The URL of your SonarQube instance (for example,
https://sonarqube.example.com). -
API Token: The token generated in the previous step.
Click Create once all values are provided to finalize the integration.
Data Volume Configuration
The following optional settings control the scope and volume of findings data ingested. Narrowing these filters reduces the number of entities created in JupiterOne.
Ingestion Windows
| Field | Description | Default | Options |
|---|---|---|---|
| Findings Ingestion Window | Limits findings ingestion to those created within the specified number of days. | 90 | 90, 180, 275, 365 |
Data Filtering Options
| Field | Description | Default | Options |
|---|---|---|---|
| Findings Severities | Limits findings ingestion to the selected severity levels. Values in parentheses apply to SonarQube 10.4 and later. | MAJOR (MEDIUM), CRITICAL (HIGH), BLOCKER (HIGH) | INFO (LOW), MINOR (LOW), MAJOR (MEDIUM), CRITICAL (HIGH), BLOCKER (HIGH) |
| Findings Statuses | Limits findings ingestion to the selected issue statuses. Values in parentheses apply to SonarQube 10.4 and later. | All statuses enabled | OPEN, CONFIRMED, REOPENED (FALSE_POSITIVE), RESOLVED (ACCEPTED), CLOSED (FIXED) |
| Findings Types | Limits findings ingestion to the selected finding types. Values in parentheses apply to SonarQube 10.4 and later. | VULNERABILITY (SECURITY) | CODE_SMELL (MAINTAINABILITY), BUG (RELIABILITY), VULNERABILITY (SECURITY) |
Next steps
Now that your integration instance has been configured, it will begin running on the polling interval you provided, populating data within JupiterOne. Continue on to our Instance management guide to learn more about working with and editing integration instances.
Entities
The following entities are created:
| Resources | Entity _type | Entity _class |
|---|---|---|
| Account | sonarqube_account | Account |
| Finding | sonarqube_finding | Finding |
| Project | sonarqube_project | Project |
| User | sonarqube_user | User |
| UserGroup | sonarqube_user_group | UserGroup |
Relationships
The following relationships are created:
Source Entity _type | Relationship _class | Target Entity _type |
|---|---|---|
sonarqube_account | HAS | sonarqube_project |
sonarqube_account | HAS | sonarqube_user_group |
sonarqube_account | HAS | sonarqube_user |
sonarqube_project | HAS | sonarqube_finding |
sonarqube_user_group | HAS | sonarqube_user |