Release identity
SHA-256 of the pack file bytes: c24baddaa17d5c58d65a8deff7e280308380f09a3ce250d7db6789b5dcfd6212
Not in the distributable release manifest. The binary carries a digest-bound manifest of the distributable library; a pack whose bytes differ from its manifest entry — endpoint, tier, allowlist, or credential edited, with provider, version, and review block preserved — fails the digest check, loses distributability, and renders MODIFIED rather than as the shipped reviewed artifact. Review state and artifact status are different facts: the first is a documentation-review declaration, the second is the identity of the exact bytes.
Capabilities (8)
sonarqube.projects.search v1.0.0R0
- 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 and list projects on the instance — a collection read of project keys, names and visibility at the internal class. The host is a reserved placeholder: substitute the customer's SonarQube Server base URL before enabling.
sonarqube.issues.search v1.0.0R0
- 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 (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 registered at the pii class. The host is a reserved placeholder: substitute before enabling.
sonarqube.measures.read v1.0.0R0
- 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 (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
- 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 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
- 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
Transition one issue's workflow status (for example confirm, unconfirm, reopen, resolve as fixed, mark false-positive, or accept). The effect is a reversible workflow update — the issue can be transitioned back — so it registers as update at the R2 floor, but note honestly: accepting a security issue or marking it false-positive removes it from default gate evaluation, so the floor is a minimum and policy should scope this capability to named actors and require a review step. The request takes the issue key and the transition as caller-supplied form parameters — this registration does not bind either, and the set of supported transitions must be confirmed against the target instance's /web_api console.
sonarqube.qualitygate.assign v1.0.0R2
- 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
Associate a project with a named quality gate. Reversible (re-select another gate or the default), so registered as update at the R2 floor — but the effect changes the standard the project's code is held to, and selecting a weaker gate weakens release controls; policy should scope it accordingly. This registers project-gate ASSOCIATION only: creating or modifying the gates themselves (api/qualitygates/create, set_as_default, condition management) is deliberately not registered. The project key and gate name are caller-supplied form parameters — this registration does not bind them.
sonarqube.project.create v1.0.0R2
- 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 a project (name, key and optional visibility as form parameters). Registered as create at the R2 floor; 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
- 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 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 IRREVERSIBLE ACTIONS (delete, send, pay, deploy, approve, share and transfer) — an irreversible action cannot be taken without a person — so this sits at the R3 floor. 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 pack names a reference, never a secret. Installing a pack registers capabilities and makes them governable; registration is not connectivity. The credential is created at the provider and held in the client's own secret manager under the reference the pack names, and deployment testing is still required to show the credential path works and cannot be bypassed.
- Reference
secret-ref-sonarqube-user-token- Custody
- customer_vault
- Injection
- header (Authorization)
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. Scope honesty: 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 — the exact permission names and the supported transition set must be confirmed against the target instance's own /web_api console, which was not retrievable in this session) — 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. Note the gap honestly: 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
Pack notes 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. Parameter honesty: 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). Tiering rationale: collection reads (projects, issues) and single-resource reads (measures, quality gate status) sit at the R0 floor; issue transitions and quality gate assignment are reversible workflow/configuration updates at the R2 floor — but note honestly that 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 R2 floor is a minimum, and policy should scope these capabilities to named actors and projects. Project delete sits at the R3 floor: deleting a project removes it and its analysis history, and delete is one of the IRREVERSIBLE ACTIONS (delete, send, pay, deploy, approve, share and transfer). 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 limitation, stated for the reviewer: SonarQube documents its web services in the running server's own /web_api console, which is client-rendered and could not be retrieved in this session (a further attempt against the public next.sonarqube.com /web_api console returned only the client shell); the operations registered here are the long-standing documented Web API operations per the fetched Web API extension guide and token documentation, and each path and parameter set must be confirmed against the target instance's own /web_api console before enabling — that confirmation is why this pack remains a draft.
Review record
Draft review record dated 2026-09-21 · Reviewer: aaes-eng (an opaque id that resolves internally to the responsible reviewer)
- https://docs.sonarsource.com/sonarqube-server/latest/extension-guide/web-api/ (retrieved 2026-09-21)
- https://docs.sonarsource.com/sonarqube-server/user-guide/managing-tokens.md (retrieved 2026-09-21)
A pack review is not a vendor or examiner attestation. A retrieval date says when a source page was read; it does not by itself establish what the page said then. No pack is vendor-endorsed, and none has been connectivity-tested against a live vendor tenant.
