SonarQube-rapporter API#
Denne artikel beskriver, hvordan du programmatisk får adgang til SonarQube‑sikkerhedsrapporter, der er gemt på Procurize‑platformen. Den dækker REST‑API‑et til at liste rapporter og downloade dem i HTML, PDF og ZIP‑formater.
Oversigt#
SonarQube‑rapporter‑undermodulet gør det muligt for organisationer at centralt gemme og administrere sikkerheds‑ og kodekvalitetsrapporter, der er genereret af SonarQube. Procurize‑platformen eksponerer disse data via et offentligt REST‑API, som giver dig mulighed for at:
- Liste rapportmetadata for en organisation, en projektgruppe eller et projekt
- Downloade en enkelt rapport i HTML, PDF eller ZIP‑format
- Downloade udvalgte rapporter som et ZIP‑arkiv
- Downloade alle rapporter for et projekt eller en projektgruppe som et ZIP‑arkiv
- Hente de seneste OWASP Top 10‑ og CWE Top 25‑rapporter direkte fra en SonarQube‑tjeneste
Disse funktioner muliggør integrationer med CI/CD‑pipelines, GRC‑systemer, interne dashboards og tredjeparts risikostyringsværktøjer.
Endepunkter#
| Endepunkt | Metode | Formål |
|---|---|---|
/security/report/list | GET | Liste rapportmetadata for den valgte omfang og version. |
/security/report/files | GET | Downloade de valgte rapporter som et ZIP‑arkiv. |
/security/report/html | GET | Hent en enkelt rapport som HTML. |
/security/report/pdf | GET | Hent en enkelt rapport som PDF. |
/security/report/zip | GET | Hent en enkelt rapport som et ZIP‑arkiv. |
/security/report/project-files | GET | Downloade alle rapporter for et projekt som et ZIP‑arkiv. |
/security/report/directory-files | GET | Downloade alle rapporter for en projektgruppe (directory) som et ZIP‑arkiv. |
/security/reports/fetch | POST | Hente de seneste rapporter fra en SonarQube‑tjeneste. |
Godkendelse og autorisation#
De rapport‑listnings‑ og download‑endepunkter, der beskrives i denne artikel, kræver ingen godkendelse.
Endepunktet POST /security/reports/fetch kræver godkendelse med en API‑token — se API‑tokens.
Organisations‑ID#
En organisations‑identifikator er påkrævet for de fleste anmodninger, der beskrives her. Du kan angive enten organisations‑ID (en UUID) eller dens alias — se Identifikatorer og aliaser.
Du kan finde den i organisationens indstillingspanel på https://dashboard.procurize.ai.
Bemærk, at adgang til indstillingspanelet kræver autorisation, og adgang til organisationens indstillingspanel kræver en brugerrolle på mindst Administrator i den pågældende organisation.

Identifikatorer og aliaser#
Omfangs‑parametre accepterer enten entitets‑ID (en UUID) eller et menneskelæsbart alias. Alias gør anmodninger lettere at læse og er stabile på tværs af miljøer.
| Parameter | Accepterer | Eksempel aliaser |
|---|---|---|
org | Organisations‑ID eller alias | aspose, groupdocs |
directory | Directory (projektgruppe)‑ID eller alias | aspose-imaging, groupdocs-annotation |
project | Projekt‑ID eller alias | aspose-imaging-net, groupdocs-annotation-java |
For eksempel er de følgende to anmodninger ækvivalente:
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"
Bemærk: Alias understøttes ikke for
id‑parameteren på bulk‑download‑endepunkterne. Angiv directory‑ eller projekt‑UUID tilGET /security/report/project-filesogGET /security/report/directory-files.
Basis-URL#
Alle REST‑API‑endepunkter leveres under følgende basis‑URL:
https://api.procurize.com
SonarQube-rapporter REST API#
Liste over rapporter#
Returnerer de sikkerhedsrapporter, der er tilgængelige for det valgte omfang og version, uden deres filindhold. Brug dette endepunkt til at finde rapport‑ID‑er, som kan sendes til download‑endepunkterne.
Endepunkt
GET /security/report/list
Query‑parametre
org(valgfri): Organisations‑ID eller alias (fxasposeellergroupdocs). Bredeste omfang.directory(valgfri): Directory (projektgruppe)‑ID eller alias (fxaspose-imagingellergroupdocs-annotation). Snævrere omfang.project(valgfri): Projekt‑ID eller alias (fxaspose-imaging-netellergroupdocs-annotation-java). Smalleste omfang.version(valgfri): Nøjagtig projekt‑version.minver(valgfri): Minimum projekt‑version.maxver(valgfri): Maksimum projekt‑version.
Mindst én af omfangs‑parametrene org, directory eller project er påkrævet. Prioriteringen er som følger: hvis project er angivet, søges kun i dette projekt; ellers, hvis directory er angivet, søges i hele projektgruppen; ellers søges i hele organisationen (org). Når org angives sammen med project eller directory, valideres målet yderligere for at sikre, at det tilhører den pågældende organisation.
Mindst én af version, minver eller maxver er påkrævet. Hvis version er angivet, ignoreres minver og maxver.
Anmodnings‑eksempel
curl "https://api.procurize.com/security/report/list?org=aspose&version=1.0"
Omfang til en projektgruppe eller et 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"
Svar‑eksempel
{
"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"
}
]
}
Svar‑felter
organizationId: Organisationen, som rapporterne tilhører.reports[].id: Unik rapport‑ID. Send denne værdi til download‑endepunkterne.reports[].projectName: Visningsnavn for produktet.reports[].projectVersion: Produktets version.reports[].reportType: Rapporttype (OWASP Top 10ellerCWE Top 25).reports[].reportVersion: År for rapportstandarden.reports[].date: Dato for, hvornår rapporten blev genereret.reports[].uploadDate: Dato for, hvornår rapporten blev uploadet til Procurize.reports[].vulnerabilitiesCount: Antal fundne sårbarheder.reports[].securityRating: Overordnet sikkerhedsvurdering (A–E, hvorAer bedst).
Download rapporter efter ID#
Downloader et ZIP‑arkiv, der indeholder de valgte rapporter. Hver rapport medtages i både HTML‑ og PDF‑formater.
Endepunkt
GET /security/report/files
Query‑parametre
org(påkrævet): Organisations‑ID eller alias (fxasposeellergroupdocs).reports(påkrævet): Rapport‑ID‑er, der skal inkluderes. Gentag parameteren for at inkludere flere rapporter.
Anmodnings‑eksempel
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 - Svaret indeholder den binære ZIP‑fil.
Klienter bør streame svaret og gemme det på disk.
Arbejde med en enkelt rapport#
Endepunkterne /security/report/html, /security/report/pdf og /security/report/zip returnerer én specifik rapport og deler de samme udvælgelses‑regler.
Rapportvalg#
Rapporttype og -version er altid påkrævet:
rt(påkrævet): Rapporttype. Understøttede værdier erOWASP Top 10ogCWE Top 25.rv(påkrævet): Rapportversion — året for standardudgaven, f.eks.2025for OWASP Top 10 eller2024for CWE Top 25.
Den præcise rapport vælges derefter på én af to måder:
- Via rapport‑ID — angiv
id(rapport‑ID) sammen med entenproject(projekt‑ID eller alias) ellerorg(organisations‑ID eller alias). Send ikkeversioni denne tilstand. - Via projekt‑version — angiv
project(projekt‑ID eller alias, f.eks.aspose-imaging-netellergroupdocs-annotation-java) ogversion(projekt‑version).org‑parameteren bruges ikke i denne tilstand.
Når både project og org er angivet, ignoreres org.
Hent rapport som HTML#
Render en enkelt rapport som en HTML‑side, eller returner den som en download‑fil.
Endepunkt
GET /security/report/html
Query‑parametre
rt(påkrævet): Rapporttype.rv(påkrævet): Rapportversion.- Rapport‑udvælgelses‑parametre: se Rapportvalg.
download(valgfri): Sæt tiltruefor at returnere HTML som en fil‑download (Content-Disposition: attachment). Når udeladt ellerfalse, returneres rapporten inline.
Anmodnings‑eksempel
curl "https://api.procurize.com/security/report/html?rt=OWASP+Top+10&rv=2025&id=00000000-0000-0000-0000-000000000004&project=aspose-imaging-net"
For at downloade HTML‑filen i stedet for at vise 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
Hent rapport som PDF#
Returnerer en enkelt rapport som et PDF‑dokument.
Endepunkt
GET /security/report/pdf
Query‑parametre
rt(påkrævet): Rapporttype.rv(påkrævet): Rapportversion.- Rapport‑udvælgelses‑parametre: se Rapportvalg.
Anmodnings‑eksempel
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
Hent rapport som ZIP#
Returnerer en enkelt rapport som et ZIP‑arkiv, der indeholder både HTML‑ og PDF‑versionerne.
Endepunkt
GET /security/report/zip
Query‑parametre
rt(påkrævet): Rapporttype.rv(påkrævet): Rapportversion.- Rapport‑udvælgelses‑parametre: se Rapportvalg.
Anmodnings‑eksempel
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
Download alle rapporter for et projekt#
Downloader et ZIP‑arkiv, der indeholder alle rapporter for det angivne projekt, i både HTML‑ og PDF‑formater.
Endepunkt
GET /security/report/project-files
Query‑parametre
id(påkrævet): Projekt‑ID. Alias understøttes ikke; angiv projekt‑UUID.rt(valgfri): Filtrer efter rapporttype. Understøttede værdier erOWASP Top 10ogCWE Top 25.rv(valgfri): Filtrer efter rapportversion (år).version(valgfri): Filtrer efter projekt‑version.
Hvis ingen filtre angives, inkluderes alle rapporter for projektet. Filter‑parametre kan kombineres og anvendes uafhængigt.
Anmodnings‑eksempel
curl "https://api.procurize.com/security/report/project-files?id=00000000-0000-0000-0000-000000000005" -o project-reports.zip
Svar
- Content‑Type:
application/zip
Download alle rapporter for en projektgruppe#
Downloader et ZIP‑arkiv, der indeholder rapporter for alle projekter i den angivne directory (projektgruppe), i både HTML‑ og PDF‑formater.
Endepunkt
GET /security/report/directory-files
Query‑parametre
id(påkrævet): Directory (projektgruppe)‑ID. Alias understøttes ikke; angiv directory‑UUID.rt(valgfri): Filtrer efter rapporttype. Understøttede værdier erOWASP Top 10ogCWE Top 25.rv(valgfri): Filtrer efter rapportversion (år).version(valgfri): Filtrer efter projekt‑version.
Hvis ingen filtre angives, inkluderes rapporter for alle projekter i directory’en. Filter‑parametre kan kombineres og anvendes uafhængigt.
Anmodnings‑eksempel
curl "https://api.procurize.com/security/report/directory-files?id=00000000-0000-0000-0000-000000000006" -o directory-reports.zip
Svar
- Content‑Type:
application/zip
Hent rapporter fra SonarQube#
Uploader de seneste sikkerhedsrapport‑data for et produkt fra en SonarQube‑tjeneste til Procurize. Tjenesten henter de seneste issue‑data fra SonarQube, konverterer dem til JSON‑repræsentationer af de nyeste versioner af OWASP Top 10 og CWE Top 25‑rapporter, og returnerer dem i svaret.
Endepunkt
POST /security/reports/fetch
Godkendelse
Dette endepunkt kræver en API‑token, som sendes i headeren X-API-Key. For detaljer om oprettelse og brug af tokens, se API‑tokens.
Query‑parametre
SonarQube‑kilden vælges på én af to måder:
- Via projekt — angiv
project(projekt‑ID eller alias — se Identifikatorer og aliaser). Send ikkeurlellerkey. - Via SonarQube‑tjeneste — angiv både
url(SonarQube‑tjenestens URL) ogkey(SonarQube‑projekt‑nøgle). Send ikkeproject.
Anmodnings‑eksempel
Hent rapporten for et projekt via dets alias:
curl -X POST "https://api.procurize.com/security/reports/fetch?project=aspose-imaging-net" \
-H "X-API-Key: YOUR_API_TOKEN"
Hent rapporten direkte fra en SonarQube‑tjeneste:
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"
Svar‑eksempel
{
"Owasp10_2025": {
"TOTAL_SECURITY_RATING": "A",
"TOTAL_COUNT": 0,
...
},
"Cwe25_2025": {
"TOTAL_SECURITY_RATING": "A",
"TOTAL_COUNT": 0,
...
}
}
Svaret er nyttigt i release‑build‑pipelines for at beslutte, om bygningen skal stoppes, når sårbarheder opdages i de offentlige sikkerhedsrapport‑formater.
Bemærkninger
- Upload af en rapport kræver personlig tilladelse til det produkt, som rapporterne tilhører. Hvis du ikke har denne tilladelse, kan du stadig sende anmodningen: platformen returnerer
403 Forbiddenog underretter automatisk platform‑administratorerne, som gennemgår anmodningen og giver dig besked om beslutningen. - Ikke alle SonarQube‑tjenester er nødvendigvis registreret på Procurize‑platformen. For at registrere en ny tjeneste, kontakt din platform‑administrator; der kræves en administrator‑token for den pågældende tjeneste.
Fejlhåndtering#
API‑et bruger standard HTTP‑statuskoder.
200 OK: Anmodning lykkedes204 No Content: Rapporten findes ikke400 Bad Request: Ugyldige parametre eller forkert anmodning401 Unauthorized: Manglende eller ugyldig API‑token403 Forbidden: Adgang nægtet (fx manglende tilladelse til produktet)500 Internal Server Error: Uventet serverfejl
Fejlsvar indeholder en maskinlæselig fejlkode og en menneskelig læsbar besked.
