Capability library / Application package

SonarQube package v1.0.0

SonarQube Server: read projects, issues, code metrics and quality gate results; change issue status or a project’s quality gate; and create or delete projects.

Review state: Reviewed · Distributable: yes, digest matches the release manifest

This page describes AAES Govern’s controls. AAES Operate has private-work permissions, operational reviews and recorded-spend limits; it does not include Govern. About AAES Govern

Before you enable this package

The endpoint host 'sonarqube-server.invalid' is a reserved .invalid placeholder that fails closed until you substitute the real host in both the endpoint URLs and the egress allowlist.

Read each action's effects and exclusions below. Before installation, also read the complete package requirements, including credential issuance, scope, expiry, and provider permissions. These are deployment prerequisites, not capabilities this package supplies.

Capabilities (8)

Each capability below is one registered operation. The complete package JSON includes its exact network destination allowlist. The repository stores it at packs/sonarqube.json and embeds a copy in the release binary.

Risk tiers. R0 is the minimum for reads. R2 is the minimum for write, create, update, execute, and invoke. R3 is the minimum for delete, send, pay, deploy, approve, share, and transfer. Operators can raise these levels. A minimum tier does not measure the operation's business or confidentiality risk.

On supported execution paths routed through AAES Govern, the R3 actions listed below require approval by an authorized person. Bypass paths and observation-only registrations are outside that guarantee. A provider's restoration feature does not remove this approval requirement. A provider-side approval, such as approving a GitLab merge request, is also separate from AAES Govern human approval. The capability matrix shows which execution paths are implemented, restricted to lab use, or refused at startup. Live compatibility must be tested in your environment.

Field guide. Endpoint is the service address and request method. Connector is the adapter that makes the call. Custody describes how the credential is held; the credential reference identifies the value to resolve. Data class sets handling requirements: pii means personal data, financial means financial records, and internal means internal organizational data.

sonarqube.projects.search v1.0.0R0

Kind
tool
Action
read
Endpoint
GET https://sonarqube-server.invalid/api/projects/search
Connector
http
Custody
customer_vault
Credential ref
secret-ref-sonarqube-user-token
Data class
internal

Search projects.

Search and list projects on the instance — a collection read of project keys, names and visibility classified as internal data.

The host is a reserved placeholder: substitute the customer's SonarQube Server base URL before enabling.

sonarqube.issues.search v1.0.0R0

Kind
tool
Action
read
Endpoint
GET https://sonarqube-server.invalid/api/issues/search
Connector
http
Custody
customer_vault
Credential ref
secret-ref-sonarqube-user-token
Data class
pii

Search issues.

Search issues (bugs, vulnerabilities, code smells) across projects — a collection read. Results can include assignee logins, source file paths and rule details: the developer identifiers in results are personal data, so the capability is classified as pii (personal data).

The host is a reserved placeholder: substitute before enabling.

sonarqube.measures.read v1.0.0R0

Kind
tool
Action
read
Endpoint
GET https://sonarqube-server.invalid/api/measures/component
Connector
http
Custody
customer_vault
Credential ref
secret-ref-sonarqube-user-token
Data class
internal

Read measures.

Read measures (code metrics such as ncloc, code_smells, complexity, coverage) for one component — the operation SonarQube's own Web API guide uses as its worked example. Reading a private project's measures requires the token's user to hold Browse permission on that project, which is the least-privilege boundary.

The host is a reserved placeholder: substitute before enabling.

sonarqube.qualitygates.status.read v1.0.0R0

Kind
tool
Action
read
Endpoint
GET https://sonarqube-server.invalid/api/qualitygates/project_status
Connector
http
Custody
customer_vault
Credential ref
secret-ref-sonarqube-user-token
Data class
internal

Read quality gate status.

Read a project's quality gate status (pass/fail and the conditions evaluated). This is a read only — it does not register changing the gate result or bypassing the gate.

The host is a reserved placeholder: substitute before enabling.

sonarqube.issue.transition v1.0.0R2

Kind
tool
Action
update
Endpoint
POST https://sonarqube-server.invalid/api/issues/do_transition
Connector
http
Custody
customer_vault
Credential ref
secret-ref-sonarqube-user-token
Data class
internal

Change issue status.

Change an issue's workflow status: confirm, unconfirm, reopen, resolve as fixed, mark false-positive, or accept. A later transition can restore its status, so the action is registered as update at R2.

Accepting a security issue or marking it false-positive can remove it from default gate evaluation. Limit policy to named actors and require review.

The caller supplies the issue key and transition as form parameters; the registration binds neither. The documented review verified confirm, unconfirm, reopen, resolve, falsepositive, wontfix, accept, and the hotspot transitions resolveasreviewed/resetastoreview against the public web services listing. Confirm the supported set in the target instance's /web_api console because versions differ.

sonarqube.qualitygate.assign v1.0.0R2

Kind
tool
Action
update
Endpoint
POST https://sonarqube-server.invalid/api/qualitygates/select
Connector
http
Custody
customer_vault
Credential ref
secret-ref-sonarqube-user-token
Data class
internal

Assign quality gate.

Assign a named quality gate to a project. Reassigning another gate or the default reverses the configuration, so the action is registered as update at R2. A weaker gate weakens release controls; restrict it through policy.

This registers the project-to-gate association only. Gate creation, modification, set_as_default, and condition management are excluded. The caller supplies the project key and gate name as form parameters; the registration binds neither.

sonarqube.project.create v1.0.0R2

Kind
tool
Action
create
Endpoint
POST https://sonarqube-server.invalid/api/projects/create
Connector
http
Custody
customer_vault
Credential ref
secret-ref-sonarqube-user-token
Data class
internal

Create project.

Create a project (name, key and optional visibility as form parameters). Registered as create at the minimum R2 tier; a created project can be removed by the registered delete capability. Creating a project does not analyze code — analysis submission through the scanner and compute-engine endpoints is not registered by this pack.

The host is a reserved placeholder: substitute before enabling.

sonarqube.project.delete v1.0.0R3

Kind
tool
Action
delete
Endpoint
POST https://sonarqube-server.invalid/api/projects/delete
Connector
http
Custody
customer_vault
Credential ref
secret-ref-sonarqube-user-token
Data class
internal

Delete project.

Delete a project, removing it and its analysis history, issues and measures from the instance. This pack registers no undelete or restoration operation for a deleted project, and the Web API reference available to this review documents none; delete is one of the designated actions requiring human approval.

On supported execution paths mediated by AAES Govern, irreversible actions require approval by an authorized person; this does not prevent calls through bypass or observation-only paths. This sits at the minimum R3 tier. Bulk project deletion (api/projects/bulk_delete) is deliberately not registered. The project key is a caller-supplied form parameter — this registration does not bind it.

Credential reference

The credential field names a reference rather than containing credential material. Packs are designed not to contain secrets; the format checks cover only known credential formats and cannot prove that arbitrary text contains no secrets. Installing a package registers its capabilities. Configure the provider credentials, endpoints, and network access, then test the integration in your environment before enabling it.

Reference
secret-ref-sonarqube-user-token
Custody
customer_vault
Injection
header (Authorization)

Configure the value and injection format specified in the package. Assign responsibility for credential rotation and revocation, restrict provider permissions, and keep credential material out of logs and responses.

Complete credential requirements

A SonarQube Server user token, held in the client's own secret manager. Token issuance is external: a user (or, for service accounts, an administrator via the instance's token administration) generates the token under Account > My Account > Security, and the deployment's custody job stores it under this reference. The stored material must be the complete Authorization header value (scheme included): 'Bearer ' followed by the token — SonarQube's Web API documentation recommends the bearer scheme and documents that tokens may alternatively be sent as the username half of HTTP Basic with an empty password; this pack registers the Bearer form only.

Token permissions: a USER token carries ALL the permissions of the issuing user (SonarQube states a global admin's user token gives full rights to the instance), so the token must be issued for a dedicated least-privilege service account holding only the permissions the enabled capabilities need (Browse on the bound projects for the reads; Administer Issues on the bound projects for issue transitions; the instance's quality-gate administration permission for gate assignment; the global Create Projects permission for project creation; Administer on a project only where project deletion is enabled — permission names and the supported transition set were verified during the documented review against the machine-readable web services listing on SonarSource's public instance (next.sonarqube.com/api/webservices/list), but instance versions differ, so confirm against the target instance's own /web_api console at deployment) — never a personal admin's token.

Project and global ANALYSIS tokens exist but are scoped to analysis and do not fit these capabilities.

Expiry and revocation: tokens may be created with an expiration or with no expiration; Enterprise editions let an administrator enforce a maximum lifetime; tokens can be revoked at any time under My Account > Security, and a project analysis token stops working if its author loses Execute Analysis permission. SonarQube adds a SonarQube-Authentication-Token-Expiration header to API responses so a custody job can track upcoming expiry; an expired or revoked value fails closed.

Revocation limit: revoking the service account's SESSION or changing its password does not invalidate already-issued tokens — revocation is per-token.

Executor hygiene: the value must live only in executor memory for the lifetime of a call, must never be written to logs, traces or diagnostics, and must not appear in crash dumps; a deployment that cannot meet that bar must not enable the pack.

Resources

  • sonarqube-instance (api, pii): https://sonarqube-server.invalid/api

Technical package and review record

Complete provider requirements and exclusions

The endpoint host 'sonarqube-server.invalid' is a reserved non-production placeholder (an RFC 2606 reserved TLD): substitute the customer's own SonarQube Server base URL before enabling, in every endpoint, in the resource locator and in every egress allowlist entry. The allowlist matches exactly, so endpoints and allowlist must be substituted together, and substitution is a required deployment step. Request parameters: the registered paths are operation paths only — project, issue and gate selection are sent as caller-supplied form parameters (project, issue, gateName per each operation's parameter names), and nothing in this registration binds or records them at installation: they remain caller-controlled on every request unless a separately reviewed control restricts them. POST operations use application/x-www-form-urlencoded bodies per SonarQube's Web API guidance (parameters in the body, not the URI query string, so they are passed securely).

Approval classification: collection reads (projects, issues) and single-resource reads (measures, quality gate status) sit at the minimum R0 tier; issue transitions and quality gate assignment are reversible workflow/configuration updates at the minimum R2 tier — but transitioning a security issue to accepted or false-positive, or changing a project's quality gate, changes what the quality gate reports and can hide a real finding from release controls: the minimum R2 tier is a minimum, and policy should scope these capabilities to named actors and projects.

Project delete sits at the minimum R3 tier: deleting a project removes it and its analysis history, and delete is one of the designated actions requiring human approval.

Documented exclusions: this pack does not register user and group administration (api/users, api/user_groups), permission management (api/permissions — granting permissions is access-granting and needs its own review), token administration endpoints (api/user_tokens — token issuance and revocation are an external custody process, see the credential note), quality gate and quality profile creation/modification beyond project assignment (instance-wide governance settings), webhook management, analysis submission (the scanner's ce endpoints), and the X-Sonar-Passcode system authentication scheme (a server-wide passcode for monitoring endpoints, not a per-user credential — not registered).

Source basis: SonarQube documents its web services in the running server's own /web_api console, which is client-rendered; the HTML console returned only the client shell, but the console's machine-readable listing on SonarSource's public instance (https://next.sonarqube.com/sonarqube/api/webservices/list) was retrieved during the documented review and documents every registered operation — api/projects/search (GET), api/issues/search (GET, Browse on the project), api/measures/component (GET, Browse or Execute Analysis on the project), api/qualitygates/project_status (GET), api/issues/do_transition (POST; transitions confirm/unconfirm/reopen/resolve/falsepositive/wontfix/accept, with accept, wontfix and falsepositive requiring Administer Issues), api/qualitygates/select (POST; Administer Quality Gates or Administer on the project; params gateName and projectKey), api/projects/create (POST; global Create Projects) and api/projects/delete (POST; Administer System or Administer on the project).

Instance versions differ, so each path and parameter set must still be confirmed against the target instance's own /web_api console before enabling.

Download the complete package JSON for exact network allowlists, credential requirements, exclusions, and setup notes. Read these requirements before installation.

The full documentation review record is supplied in the evaluation package. The evaluation package runs in your environment and comes only with the paid design partnership. This page reproduces the source links and review block; the full record is available for evaluation. Discuss a design partnership to inspect it before installation.

Review block

This section reproduces the review block recorded in the pack file. The evidence and approval record is separate: for a reviewed pack, it is in the evaluation materials and in the release binary's embedded assets.

Review completed: 2026-09-22

3 sources, retrieved 2026-09-21

Current documentation links are navigation aids. They do not change the package, its historical sources or its review date. Review dates describe a documentation review, not a live integration test. No package is provider-endorsed or yet tested against a live provider tenant.

Release identity

SHA-256 of the pack file bytes: 75226b602003c46d1c1bc5379d1596814b7086b9e5ecb4a44437ddb5cd17668d

Distributable: yes, digest matches the release manifest. Editing a package changes its release identity. A deployment plan checks its own file digests; it does not restore reviewed status or authenticate approval.