SonarQube Rapporten API#
Dit artikel beschrijft hoe u programmatisch toegang krijgt tot SonarQube‑beveiligingsrapporten die zijn opgeslagen op het Procurize‑platform. Het behandelt de REST‑API voor het opsommen van rapporten en het downloaden ervan in HTML, PDF en ZIP‑formaten.
Overzicht#
De SonarQube‑rapporten‑submodule stelt organisaties in staat om beveiligings‑ en code‑kwaliteitsrapporten die door SonarQube zijn gegenereerd centraal op te slaan en te beheren. Het Procurize‑platform maakt deze gegevens beschikbaar via een openbare REST‑API waarmee u kunt:
- Rapportmetadata opsommen voor een organisatie, een projectgroep of een project
- Een enkel rapport downloaden in HTML, PDF of ZIP‑formaat
- Geselecteerde rapporten downloaden als een ZIP‑archief
- Alle rapporten van een project of een projectgroep downloaden als een ZIP‑archief
- De nieuwste OWASP Top 10‑ en CWE Top 25‑rapporten direct ophalen van een SonarQube‑service
Deze mogelijkheden maken integraties met CI/CD‑pijplijnen, GRC‑systemen, interne dashboards en tools voor risicobeheer van derden mogelijk.
Eindpunten#
| Endpoint | Methode | Doel |
|---|---|---|
/security/report/list | GET | Rapportmetadata opsommen voor de geselecteerde scope en versie. |
/security/report/files | GET | De geselecteerde rapporten downloaden als een ZIP‑archief. |
/security/report/html | GET | Een enkel rapport ophalen als HTML. |
/security/report/pdf | GET | Een enkel rapport ophalen als PDF. |
/security/report/zip | GET | Een enkel rapport ophalen als ZIP‑archief. |
/security/report/project-files | GET | Alle rapporten van een project downloaden als een ZIP‑archief. |
/security/report/directory-files | GET | Alle rapporten van een projectgroep (directory) downloaden als een ZIP‑archief. |
/security/reports/fetch | POST | De nieuwste rapporten ophalen van een SonarQube‑service. |
Authenticatie en autorisatie#
De eindpunten voor het opsommen en downloaden van rapporten die in dit artikel worden beschreven, vereisen geen authenticatie.
Het POST /security/reports/fetch‑eindpunt vereist authenticatie met een API‑token — zie API‑tokens.
Organisatie‑ID#
Voor de meeste verzoeken die hier worden beschreven is een organisatie‑identifier vereist. U kunt ofwel de organisatie‑ID (een UUID) of de alias gebruiken — zie Identifiers and Aliases.
U vindt deze in het instellingen‑paneel van de organisatie op https://dashboard.procurize.ai.
Let op: toegang tot het instellingen‑paneel vereist autorisatie, en toegang tot het instellingen‑paneel van een organisatie vereist een gebruikersrol van ten minste Administrator in die organisatie.

Identifiers and Aliases#
Scope‑parameters accepteren ofwel de entiteit‑ID (een UUID) of een mens‑leesbare alias. Aliassen maken verzoeken makkelijker leesbaar en zijn stabiel over omgevingen heen.
| Parameter | Accepteert | Voorbeeldaliassen |
|---|---|---|
org | Organisatie‑ID of alias | aspose, groupdocs |
directory | Directory (projectgroep) ID of alias | aspose-imaging, groupdocs-annotation |
project | Project‑ID of alias | aspose-imaging-net, groupdocs-annotation-java |
Bijvoorbeeld, de volgende twee verzoeken zijn equivalent:
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"
Opmerking: Aliassen worden niet ondersteund voor de
id‑parameter van de bulk‑download‑eindpunten. Geef de directory‑ of project‑UUID door aanGET /security/report/project-filesenGET /security/report/directory-files.
Basis‑URL#
Alle REST‑API‑eindpunten worden bediend onder de volgende basis‑URL:
https://api.procurize.com
SonarQube Rapporten REST API#
List Reports#
Retourneert de beveiligingsrapporten die beschikbaar zijn voor de geselecteerde scope en versie, zonder hun bestandsinhoud. Gebruik dit eindpunt om rapport‑ID’s te ontdekken die vervolgens aan de download‑eindpunten kunnen worden doorgegeven.
Eindpunt
GET /security/report/list
Queryparameters
org(optioneel): Organisatie‑ID of alias (bijv.asposeofgroupdocs). Breedste scope.directory(optioneel): Directory (projectgroep) ID of alias (bijv.aspose-imagingofgroupdocs-annotation). Smallere scope.project(optioneel): Project‑ID of alias (bijv.aspose-imaging-netofgroupdocs-annotation-java). Smalste scope.version(optioneel): Exacte projectversie.minver(optioneel): Minimum projectversie.maxver(optioneel): Maximum projectversie.
Minstens één van de scope‑parameters org, directory of project is vereist. De scopes hebben de volgende prioriteit: als project is opgegeven, wordt alleen dat project doorzocht; anders, als directory is opgegeven, wordt de volledige projectgroep doorzocht; anders wordt de volledige organisatie (org) doorzocht. Wanneer org wordt opgegeven samen met project of directory, wordt het doel bovendien gevalideerd op lidmaatschap van die organisatie.
Minstens één van version, minver of maxver is vereist. Als version is opgegeven, worden minver en maxver genegeerd.
Voorbeeldverzoek
curl "https://api.procurize.com/security/report/list?org=aspose&version=1.0"
Scoping naar een projectgroep of een project 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"
Voorbeelrespons
{
"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"
}
]
}
Responsvelden
organizationId: De organisatie waartoe de rapporten behoren.reports[].id: Unieke rapport‑ID. Geef deze waarde door aan de download‑eindpunten.reports[].projectName: Weergavenaam van het product.reports[].projectVersion: Versie van het product.reports[].reportType: Rapporttype (OWASP Top 10ofCWE Top 25).reports[].reportVersion: Versie (jaar) van de rapportstandaard.reports[].date: Datum waarop het rapport is gegenereerd.reports[].uploadDate: Datum waarop het rapport is geüpload naar Procurize.reports[].vulnerabilitiesCount: Aantal gevonden kwetsbaarheden.reports[].securityRating: Algemene beveiligingsscore (A–E, waarbijAhet beste is).
Download Reports by ID#
Downloadt een ZIP‑archief met de geselecteerde rapporten. Elk rapport wordt zowel in HTML‑ als PDF‑formaat opgenomen.
Eindpunt
GET /security/report/files
Queryparameters
org(verplicht): Organisatie‑ID of alias (bijv.asposeofgroupdocs).reports(verplicht): Rapport‑ID’s die moeten worden opgenomen. Herhaal de parameter om meerdere rapporten toe te voegen.
Voorbeeldverzoek
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
Respons
- Content‑Type:
application/zip - De respons‑body bevat het binaire ZIP‑bestand.
Clients moeten de respons streamen en opslaan op schijf.
Werken met een enkel rapport#
De eindpunten /security/report/html, /security/report/pdf en /security/report/zip retourneren één specifiek rapport en hanteren dezelfde selectie‑regels.
Rapportselectie#
Het rapporttype en de versie zijn altijd vereist:
rt(verplicht): Rapporttype. Ondersteunde waarden zijnOWASP Top 10enCWE Top 25.rv(verplicht): Rapportversie — het jaar van de standaardeditie, bijvoorbeeld2025voor OWASP Top 10 of2024voor CWE Top 25.
Het exacte rapport wordt vervolgens op één van twee manieren geselecteerd:
- Via rapport‑ID — geef
id(rapport‑ID) mee samen met ofwelproject(project‑ID of alias) oforg(organisatie‑ID of alias). Geefversionniet mee in deze modus. - Via projectversie — geef
project(project‑ID of alias, bijv.aspose-imaging-netofgroupdocs-annotation-java) enversion(projectversie) mee. Deorg‑parameter wordt in deze modus niet gebruikt.
Wanneer zowel project als org zijn opgegeven, wordt org genegeerd.
Get Report as HTML#
Rendert één rapport als een HTML‑pagina, of retourneert het als een downloadbaar HTML‑bestand.
Eindpunt
GET /security/report/html
Queryparameters
rt(verplicht): Rapporttype.rv(verplicht): Rapportversie.- Rapportselectie‑parameters: zie Rapportselectie.
download(optioneel): Zet optrueom de HTML als bestand te downloaden (Content‑Disposition: attachment). Wanneer weggelaten offalse, wordt het rapport inline geretourneerd.
Voorbeeldverzoek
curl "https://api.procurize.com/security/report/html?rt=OWASP+Top+10&rv=2025&id=00000000-0000-0000-0000-000000000004&project=aspose-imaging-net"
Om het HTML‑bestand te downloaden in plaats van inline weer te geven:
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
Respons
- Content‑Type:
text/html
Get Report as PDF#
Retourneert één rapport als een PDF‑document.
Eindpunt
GET /security/report/pdf
Queryparameters
rt(verplicht): Rapporttype.rv(verplicht): Rapportversie.- Rapportselectie‑parameters: zie Rapportselectie.
Voorbeeldverzoek
curl "https://api.procurize.com/security/report/pdf?rt=CWE+Top+25&rv=2024&project=aspose-imaging-net&version=1.0" -o report.pdf
Respons
- Content‑Type:
application/pdf
Get Report as ZIP#
Retourneert één rapport als een ZIP‑archief dat zowel de HTML‑ als de PDF‑versies bevat.
Eindpunt
GET /security/report/zip
Queryparameters
rt(verplicht): Rapporttype.rv(verplicht): Rapportversie.- Rapportselectie‑parameters: zie Rapportselectie.
Voorbeeldverzoek
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
Respons
- Content‑Type:
application/zip
Download alle rapporten van een project#
Downloadt een ZIP‑archief met alle rapporten van het opgegeven project, zowel in HTML‑ als PDF‑formaat.
Eindpunt
GET /security/report/project-files
Queryparameters
id(verplicht): Project‑ID. Aliassen worden niet ondersteund; geef de project‑UUID door.rt(optioneel): Filter op rapporttype. Ondersteunde waarden zijnOWASP Top 10enCWE Top 25.rv(optioneel): Filter op rapportversie (jaar).version(optioneel): Filter op projectversie.
Als er geen filters zijn opgegeven, worden alle rapporten van het project opgenomen. Filterparameters kunnen worden gecombineerd en worden onafhankelijk toegepast.
Voorbeeldverzoek
curl "https://api.procurize.com/security/report/project-files?id=00000000-0000-0000-0000-000000000005" -o project-reports.zip
Respons
- Content‑Type:
application/zip
Download alle rapporten van een projectgroep#
Downloadt een ZIP‑archief met rapporten van alle projecten in de opgegeven directory (projectgroep), zowel in HTML‑ als PDF‑formaat.
Eindpunt
GET /security/report/directory-files
Queryparameters
id(verplicht): Directory (projectgroep) ID. Aliassen worden niet ondersteund; geef de directory‑UUID door.rt(optioneel): Filter op rapporttype. Ondersteunde waarden zijnOWASP Top 10enCWE Top 25.rv(optioneel): Filter op rapportversie (jaar).version(optioneel): Filter op projectversie.
Als er geen filters zijn opgegeven, worden de rapporten van alle projecten in de directory opgenomen. Filterparameters kunnen worden gecombineerd en worden onafhankelijk toegepast.
Voorbeeldverzoek
curl "https://api.procurize.com/security/report/directory-files?id=00000000-0000-0000-0000-000000000006" -o directory-reports.zip
Respons
- Content‑Type:
application/zip
Raporten ophalen van SonarQube#
Uploadt de nieuwste beveiligingsrapportgegevens voor een product van een SonarQube‑service naar Procurize. De service haalt de nieuwste issue‑data op uit SonarQube, zet deze om in JSON‑representaties van de nieuwste versies van de OWASP Top 10‑ en CWE Top 25‑rapporten, en retourneert ze in de respons.
Eindpunt
POST /security/reports/fetch
Authenticatie
Dit eindpunt vereist een API‑token, meegegeven in de X-API-Key‑header. Voor details over het genereren en gebruiken van tokens, zie API‑tokens.
Queryparameters
De SonarQube‑bron wordt geselecteerd op één van twee manieren:
- Via project — geef
project(project‑ID of alias — zie Identifiers and Aliases) mee. Geef geenurlofkeymee. - Via SonarQube‑service — geef zowel
url(SonarQube‑service‑URL) alskey(SonarQube‑project‑key) mee. Geef geenprojectmee.
Voorbeeldverzoek
Rapport ophalen voor een project via alias:
curl -X POST "https://api.procurize.com/security/reports/fetch?project=aspose-imaging-net" \
-H "X-API-Key: YOUR_API_TOKEN"
Rapport direct ophalen van een SonarQube‑service:
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"
Voorbeelrespons
{
"Owasp10_2025": {
"TOTAL_SECURITY_RATING": "A",
"TOTAL_COUNT": 0,
...
},
"Cwe25_2025": {
"TOTAL_SECURITY_RATING": "A",
"TOTAL_COUNT": 0,
...
}
}
De respons is bruikbaar in release‑build‑pijplijnen om te bepalen of een build moet worden gestopt wanneer kwetsbaarheden worden gedetecteerd in de openbare beveiligingsrapportformaten.
Opmerkingen
- Het uploaden van een rapport vereist persoonlijke toestemming voor het product waartoe de rapporten behoren. Als u deze toestemming niet heeft, kunt u het verzoek toch indienen: het platform retourneert
403 Forbiddenen meldt dit automatisch aan de platform‑beheerders, die het verzoek beoordelen en u van een beslissing op de hoogte stellen. - Niet elke SonarQube‑service is mogelijk geregistreerd op het Procurize‑platform. Om een nieuwe service te registreren, neemt u contact op met uw platform‑beheerder; er is een beheerder‑token voor die service vereist.
Foutafhandeling#
De API maakt gebruik van standaard HTTP‑statuscodes.
200 OK: Verzoek geslaagd204 No Content: Rapport bestaat niet400 Bad Request: Ongeldige parameters of verkeerd gevormd verzoek401 Unauthorized: Ontbrekende of ongeldige API‑token403 Forbidden: Toegang geweigerd (bijvoorbeeld ontbrekende permissie voor het product)500 Internal Server Error: Onverwachte serverfout
Foutresponsen bevatten een machine‑leesbare foutcode en een mens‑leesbare boodschap.
Zie ook:#
Gerelateerde artikelen#
Wat zijn beveiligingsrapporten?
