SonarQube‑rapporter API#
Denna artikel beskriver hur du programatiskt kan komma åt SonarQube‑säkerhetsrapporter som lagras i Procurize‑plattformen. Den täcker REST‑API‑et för att lista rapporter och ladda ner dem i HTML, PDF och ZIP‑format.
Översikt#
SonarQube‑rapporter‑submodulen gör det möjligt för organisationer att centralt lagra och hantera säkerhets‑ och kodkvalitetsrapporter som genereras av SonarQube. Procurize‑plattformen exponerar dessa data via ett offentligt REST‑API som låter dig:
- Lista rapportmetadata för en organisation, en projektgrupp eller ett projekt
- Ladda ner en enskild rapport i HTML, PDF eller ZIP‑format
- Ladda ner valda rapporter som ett ZIP‑arkiv
- Ladda ner alla rapporter för ett projekt eller en projektgrupp som ett ZIP‑arkiv
- Hämta de senaste OWASP Top 10‑ och CWE Top 25‑rapporterna direkt från en SonarQube‑tjänst
Dessa funktioner möjliggör integrationer med CI/CD‑pipelines, GRC‑system, interna instrumentpaneler och tredjepartsverktyg för riskhantering.
Slutpunkter#
| Slutpunkt | Metod | Syfte |
|---|---|---|
/security/report/list | GET | Lista rapportmetadata för den valda omfattningen och versionen. |
/security/report/files | GET | Ladda ner de valda rapporterna som ett ZIP‑arkiv. |
/security/report/html | GET | Hämta en enskild rapport som HTML. |
/security/report/pdf | GET | Hämta en enskild rapport som PDF. |
/security/report/zip | GET | Hämta en enskild rapport som ett ZIP‑arkiv. |
/security/report/project-files | GET | Ladda ner alla rapporter för ett projekt som ett ZIP‑arkiv. |
/security/report/directory-files | GET | Ladda ner alla rapporter för en projektgrupp (katalog) som ett ZIP‑arkiv. |
/security/reports/fetch | POST | Hämta de senaste rapporterna från en SonarQube‑tjänst. |
Autentisering och Auktorisation#
Rapportlistnings‑ och nedladdnings‑slutpunkterna som beskrivs i den här artikeln kräver ingen autentisering.
Slutpunkten POST /security/reports/fetch kräver autentisering med en API‑token — se API‑tokens.
Organisations‑ID#
Ett organisations‑identifierare krävs för de flesta förfrågningar som beskrivs här. Du kan ange antingen organisations‑ID (en UUID) eller dess alias — se Identifierare och Alias.
Du hittar den i organisationens inställningspanel på https://dashboard.procurize.ai.
Observera att åtkomst till inställningspanelen kräver behörighet, och åtkomst till organisationens inställningspanel kräver en användarroll på minst Administratör i den organisationen.

Identifierare och Alias#
Omfattningsparametrar accepterar antingen enhetens ID (en UUID) eller ett mänskligt läsbart alias. Alias gör förfrågningarna enklare att läsa och är stabila över miljöer.
| Parameter | Accepterar | Exempel‑alias |
|---|---|---|
org | Organisations‑ID eller alias | aspose, groupdocs |
directory | Katalog‑ (projektgrupp)‑ID eller alias | aspose-imaging, groupdocs-annotation |
project | Projekt‑ID eller alias | aspose-imaging-net, groupdocs-annotation-java |
Till exempel är följande två förfrågningar ekvivalenta:
curl "https://api.procurize.com/security/report/list?org=00000000-0000-0000-0000-000000000001&version=1.0"
curl "https://api.procurize.com/security/report/list?org=aspose&version=1.0"
Obs: Alias stöds inte för
id‑parametern i bulk‑nedladdnings‑slutpunkterna. Ange katalog‑ eller projekt‑UUID tillGET /security/report/project-filesochGET /security/report/directory-files.
Bas‑URL#
Alla REST‑API‑slutpunkter levereras under följande bas‑URL:
https://api.procurize.com
SonarQube‑rapporter REST API#
Lista Rapporter#
Returnerar de säkerhetsrapporter som finns tillgängliga för den valda omfattningen och versionen, utan deras filinnehåll. Använd denna slutpunkt för att upptäcka rapport‑ID:n som kan skickas till nedladdnings‑slutpunkterna.
Slutpunkt
GET /security/report/list
Frågeparametrar
org(valfritt): Organisations‑ID eller alias (t.ex.asposeellergroupdocs). Bredaste omfattning.directory(valfritt): Katalog‑ (projektgrupp)‑ID eller alias (t.ex.aspose-imagingellergroupdocs-annotation). Smalare omfattning.project(valfritt): Projekt‑ID eller alias (t.ex.aspose-imaging-netellergroupdocs-annotation-java). Smalast möjliga omfattning.version(valfritt): Exakt projektversion.minver(valfritt): Minimum projektversion.maxver(valfritt): Maximum projektversion.
Minst en av omfattningsparametrarna org, directory eller project krävs. Prioriteringen är: om project anges söks endast det projektet; annars, om directory anges, söks hela projektgruppen; annars söks hela organisationen (org). När org anges tillsammans med project eller directory valideras målet dessutom att tillhöra den organisationen.
Minst en av version, minver eller maxver krävs. Om version anges ignoreras minver och maxver.
Exempel på förfrågan
curl "https://api.procurize.com/security/report/list?org=aspose&version=1.0"
Omfång till en projektgrupp eller ett projekt via alias:
curl "https://api.procurize.com/security/report/list?directory=aspose-imaging&minver=1.0&maxver=2.0"
curl "https://api.procurize.com/security/report/list?project=aspose-imaging-net&version=1.0"
Exempel på svar
{
"organizationId": "00000000-0000-0000-0000-000000000001",
"reports": [
{
"projectName": "Test product",
"id": "00000000-0000-0000-0000-000000000002",
"reportType": "CWE Top 25",
"reportVersion": 2024,
"projectVersion": "1.0",
"date": "2025-12-17T09:05:48.5946432+00:00",
"uploadDate": "2025-12-17T09:05:48.5946432+00:00",
"vulnerabilitiesCount": 0,
"securityRating": "A"
}
]
}
Svarsfält
organizationId: Organisationen som rapporterna tillhör.reports[].id: Unikt rapport‑ID. Skicka detta värde till nedladdnings‑slutpunkterna.reports[].projectName: Visningsnamn på produkten.reports[].projectVersion: Produktens version.reports[].reportType: Rapporttyp (OWASP Top 10ellerCWE Top 25).reports[].reportVersion: År för rapportstandarden.reports[].date: Datum då rapporten genererades.reports[].uploadDate: Datum då rapporten laddades upp till Procurize.reports[].vulnerabilitiesCount: Antal funna sårbarheter.reports[].securityRating: Övergripande säkerhetsbetyg (A–E, därAär bäst).
Ladda ner rapporter efter ID#
Laddar ner ett ZIP‑arkiv som innehåller de valda rapporterna. Varje rapport inkluderas i både HTML‑ och PDF‑format.
Slutpunkt
GET /security/report/files
Frågeparametrar
org(krav): Organisations‑ID eller alias (t.ex.asposeellergroupdocs).reports(krav): Rapport‑ID:n att inkludera. Upprepa parametern för att inkludera flera rapporter.
Exempel på förfrågan
curl "https://api.procurize.com/security/report/files?org=aspose&reports=00000000-0000-0000-0000-000000000002&reports=00000000-0000-0000-0000-000000000003" -o reports.zip
Svar
- Content‑Type:
application/zip - Svarskroppen innehåller den binära ZIP‑filen.
Klienter bör strömma svaret och spara det till disk.
Arbeta med en enskild rapport#
Slutpunkterna /security/report/html, /security/report/pdf och /security/report/zip returnerar en specifik rapport och delar samma urvalskriterier.
Rapportval#
Rapporttyp och version krävs alltid:
rt(krav): Rapporttyp. Stödda värden ärOWASP Top 10ochCWE Top 25.rv(krav): Rapportversion — året för standardutgåvan, t.ex.2025för OWASP Top 10 eller2024för CWE Top 25.
Den exakta rapporten väljs sedan på ett av två sätt:
- Via rapport‑ID — skicka
id(rapport‑ID) tillsammans med antingenproject(projekt‑ID eller alias) ellerorg(organisations‑ID eller alias). Skicka inteversioni detta läge. - Via projektversion — skicka
project(projekt‑ID eller alias, t.ex.aspose-imaging-netellergroupdocs-annotation-java) ochversion(projektversion). Parameternorganvänds inte i detta läge.
När både project och org anges ignoreras org.
Hämta rapport som HTML#
Renderar en enskild rapport som en HTML‑sida, eller returnerar den som en nedladdningsbar HTML‑fil.
Slutpunkt
GET /security/report/html
Frågeparametrar
rt(krav): Rapporttyp.rv(krav): Rapportversion.- Rapportval‑parametrar: se Rapportval.
download(valfritt): Sätt tilltrueför att returnera HTML som en filnedladdning (Content-Disposition: attachment). Om utelämnad ellerfalsereturneras rapporten inline.
Exempel på förfrågan
curl "https://api.procurize.com/security/report/html?rt=OWASP+Top+10&rv=2025&id=00000000-0000-0000-0000-000000000004&project=aspose-imaging-net"
För att ladda ner HTML‑filen istället för att rendera den inline:
curl "https://api.procurize.com/security/report/html?rt=OWASP+Top+10&rv=2025&project=aspose-imaging-net&version=1.0&download=true" -o report.html
Svar
- Content‑Type:
text/html
Hämta rapport som PDF#
Returnerar en enskild rapport som ett PDF‑dokument.
Slutpunkt
GET /security/report/pdf
Frågeparametrar
rt(krav): Rapporttyp.rv(krav): Rapportversion.- Rapportval‑parametrar: se Rapportval.
Exempel på förfrågan
curl "https://api.procurize.com/security/report/pdf?rt=CWE+Top+25&rv=2024&project=aspose-imaging-net&version=1.0" -o report.pdf
Svar
- Content‑Type:
application/pdf
Hämta rapport som ZIP#
Returnerar en enskild rapport som ett ZIP‑arkiv som innehåller både HTML‑ och PDF‑versionerna.
Slutpunkt
GET /security/report/zip
Frågeparametrar
rt(krav): Rapporttyp.rv(krav): Rapportversion.- Rapportval‑parametrar: se Rapportval.
Exempel på förfrågan
curl "https://api.procurize.com/security/report/zip?rt=CWE+Top+25&rv=2024&id=00000000-0000-0000-0000-000000000004&org=groupdocs" -o report.zip
Svar
- Content‑Type:
application/zip
Ladda ner alla rapporter för ett projekt#
Laddar ner ett ZIP‑arkiv som innehåller alla rapporter för det angivna projektet, i både HTML‑ och PDF‑format.
Slutpunkt
GET /security/report/project-files
Frågeparametrar
id(krav): Projekt‑ID. Alias stöds inte; skicka projekt‑UUID.rt(valfritt): Filtrera efter rapporttyp. Stödda värden ärOWASP Top 10ochCWE Top 25.rv(valfritt): Filtrera efter rapportversion (år).version(valfritt): Filtrera efter projektversion.
Om inga filter anges inkluderas alla projektets rapporter. Filterparametrar kan kombineras och tillämpas oberoende av varandra.
Exempel på förfrågan
curl "https://api.procurize.com/security/report/project-files?id=00000000-0000-0000-0000-000000000005" -o project-reports.zip
Svar
- Content‑Type:
application/zip
Ladda ner alla rapporter för en projektgrupp#
Laddar ner ett ZIP‑arkiv som innehåller rapporter för alla projekt i den angivna katalogen (projektgrupp), i både HTML‑ och PDF‑format.
Slutpunkt
GET /security/report/directory-files
Frågeparametrar
id(krav): Katalog‑ (projektgrupp)‑ID. Alias stöds inte; skicka katalog‑UUID.rt(valfritt): Filtrera efter rapporttyp. Stödda värden ärOWASP Top 10ochCWE Top 25.rv(valfritt): Filtrera efter rapportversion (år).version(valfritt): Filtrera efter projektversion.
Om inga filter anges inkluderas rapporter för alla projekt i katalogen. Filterparametrar kan kombineras och tillämpas oberoende av varandra.
Exempel på förfrågan
curl "https://api.procurize.com/security/report/directory-files?id=00000000-0000-0000-0000-000000000006" -o directory-reports.zip
Svar
- Content‑Type:
application/zip
Hämta rapporter från SonarQube#
Laddar upp den senaste säkerhetsrapportdatan för en produkt från en SonarQube‑tjänst till Procurize. Tjänsten hämtar den senaste ärendedatan från SonarQube, konverterar den till JSON‑representationer av de senaste versionerna av OWASP Top 10 och CWE Top 25‑rapporterna och returnerar dem i svaret.
Slutpunkt
POST /security/reports/fetch
Autentisering
Denna slutpunkt kräver en API‑token, skickad i X-API-Key‑headern. För detaljer om hur du skapar och använder tokens, se API‑tokens.
Frågeparametrar
SonarQube‑källan väljs på ett av två sätt:
- Via projekt — skicka
project(projekt‑ID eller alias — se Identifierare och Alias). Skicka inteurlellerkey. - Via SonarQube‑tjänst — skicka både
url(SonarQube‑tjänstens URL) ochkey(SonarQube‑projekt‑nyckel). Skicka inteproject.
Exempel på förfrågan
Hämta rapporten för ett projekt via dess alias:
curl -X POST "https://api.procurize.com/security/reports/fetch?project=aspose-imaging-net" \
-H "X-API-Key: YOUR_API_TOKEN"
Hämta rapporten direkt från en SonarQube‑tjänst:
curl -X POST "https://api.procurize.com/security/reports/fetch?url=https://sonarqube.example.com&key=my-project-key" \
-H "X-API-Key: YOUR_API_TOKEN"
Exempel på svar
{
"Owasp10_2025": {
"TOTAL_SECURITY_RATING": "A",
"TOTAL_COUNT": 0,
...
},
"Cwe25_2025": {
"TOTAL_SECURITY_RATING": "A",
"TOTAL_COUNT": 0,
...
}
}
Svaret är användbart i release‑byggpipelines för att avgöra om en byggprocess ska stoppas när sårbarheter upptäcks i de offentliga säkerhetsrapportformaten.
Anmärkningar
- Att ladda upp en rapport kräver personlig behörighet för den produkt som rapporterna tillhör. Om du saknar denna behörighet kan du ändå skicka förfrågan: plattformen returnerar
403 Forbiddenoch meddelar automatiskt plattformsadministratörerna, som granskar förfrågan och meddelar dig om beslutet. - Inte alla SonarQube‑tjänster är nödvändigtvis registrerade på Procurize‑plattformen. För att registrera en ny tjänst, kontakta din plattformsadministratör; en administratortoken för den tjänsten krävs.
Felhantering#
API‑et använder standard‑HTTP‑statuskoder.
200 OK: Förfrågan lyckades204 No Content: Rapporten finns inte400 Bad Request: Ogiltiga parametrar eller felaktig förfrågan401 Unauthorized: Saknad eller ogiltig API‑token403 Forbidden: Åtkomst nekad (t.ex. saknad behörighet för produkten)500 Internal Server Error: Oväntat serverfel
Felformulär innehåller en maskinläsbar felkod och ett mänskligt läsbart meddelande.
