SonarQube-Berichte API#
Dieser Artikel beschreibt, wie Sie programmgesteuert auf SonarQube‑Sicherheitsberichte zugreifen, die in der Procurize‑Plattform gespeichert sind. Er behandelt die REST‑API zum Auflisten von Berichten und zum Herunterladen im HTML‑, PDF‑ und ZIP‑Format.
Überblick#
Das SonarQube‑Berichte‑Submodul ermöglicht es Organisationen, Sicherheits‑ und Code‑Qualitätsberichte, die von SonarQube erzeugt wurden, zentral zu speichern und zu verwalten. Die Procurize‑Plattform stellt diese Daten über eine öffentliche REST‑API bereit, die Ihnen Folgendes ermöglicht:
- Metadaten von Berichten für eine Organisation, eine Projektgruppe oder ein Projekt auflisten
- Einen einzelnen Bericht im HTML‑, PDF‑ oder ZIP‑Format herunterladen
- Ausgewählte Berichte als ZIP‑Archiv herunterladen
- Alle Berichte eines Projekts oder einer Projektgruppe als ZIP‑Archiv herunterladen
- Die neuesten OWASP Top 10‑ und CWE Top 25‑Berichte direkt von einem SonarQube‑Dienst abrufen
Diese Funktionen ermöglichen Integrationen in CI/CD‑Pipelines, GRC‑Systeme, interne Dashboards und Tools für das Risikomanagement von Drittanbietern.
Endpunkte#
| Endpunkt | Methode | Zweck |
|---|---|---|
/security/report/list | GET | Metadaten von Berichten für den ausgewählten Geltungsbereich und die Version auflisten. |
/security/report/files | GET | Die ausgewählten Berichte als ZIP‑Archiv herunterladen. |
/security/report/html | GET | Einen einzelnen Bericht als HTML erhalten. |
/security/report/pdf | GET | Einen einzelnen Bericht als PDF erhalten. |
/security/report/zip | GET | Einen einzelnen Bericht als ZIP‑Archiv erhalten. |
/security/report/project-files | GET | Alle Berichte eines Projekts als ZIP‑Archiv herunterladen. |
/security/report/directory-files | GET | Alle Berichte einer Projektgruppe (Verzeichnis) als ZIP‑Archiv herunterladen. |
/security/reports/fetch | POST | Die neuesten Berichte von einem SonarQube‑Dienst abrufen. |
Authentifizierung und Autorisierung#
Die in diesem Artikel beschriebenen Endpunkte zum Auflisten und Herunterladen von Berichten erfordern keine Authentifizierung.
Der Endpunkt POST /security/reports/fetch erfordert eine Authentifizierung mit einem API‑Token – siehe API‑Tokens.
Organisations‑ID#
Für die meisten hier beschriebenen Anfragen ist eine Organisations‑Kennung erforderlich. Sie können entweder die Organisations‑ID (eine UUID) oder deren Alias übergeben – siehe Kennungen und Aliase.
Sie finden sie im Einstellungs‑Panel der Organisation unter https://dashboard.procurize.ai.
Bitte beachten Sie, dass der Zugriff auf das Einstellungs‑Panel eine Autorisierung erfordert und Sie mindestens die Rolle Administrator in dieser Organisation besitzen müssen.

Kennungen und Aliase#
Scope‑Parameter akzeptieren entweder die Entitäts‑ID (eine UUID) oder einen menschenlesbaren Alias. Aliase machen Anfragen leichter lesbar und sind über Umgebungen hinweg stabil.
| Parameter | Akzeptiert | Beispiel‑Aliase |
|---|---|---|
org | Organisations‑ID oder Alias | aspose, groupdocs |
directory | Verzeichnis‑ (Projektgruppen‑)ID oder Alias | aspose-imaging, groupdocs-annotation |
project | Projekt‑ID oder Alias | aspose-imaging-net, groupdocs-annotation-java |
Beispiel: Die folgenden beiden Anfragen sind äquivalent:
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"
Hinweis: Aliase werden für den
id‑Parameter der Bulk‑Download‑Endpunkte nicht unterstützt. Übergeben Sie die Verzeichnis‑ oder Projekt‑UUID anGET /security/report/project-filesbzw.GET /security/report/directory-files.
Basis‑URL#
Alle REST‑API‑Endpunkte werden unter der folgenden Basis‑URL bereitgestellt:
https://api.procurize.com
SonarQube‑Berichte REST‑API#
Berichte auflisten#
Gibt die Sicherheitsberichte zurück, die für den ausgewählten Geltungsbereich und die Version verfügbar sind, jedoch ohne deren Dateiinhalte. Verwenden Sie diesen Endpunkt, um Bericht‑IDs zu ermitteln, die an die Download‑Endpunkte übergeben werden können.
Endpunkt
GET /security/report/list
Abfrage‑Parameter
org(optional): Organisations‑ID oder Alias (z. B.asposeodergroupdocs). Größter Geltungsbereich.directory(optional): Verzeichnis‑ (Projektgruppen‑)ID oder Alias (z. B.aspose-imagingodergroupdocs-annotation). Engerer Geltungsbereich.project(optional): Projekt‑ID oder Alias (z. B.aspose-imaging-netodergroupdocs-annotation-java). Engster Geltungsbereich.version(optional): Exakte Projekt‑Version.minver(optional): Mindest‑Projekt‑Version.maxver(optional): Höchst‑Projekt‑Version.
Mindestens einer der Scope‑Parameter org, directory oder project ist erforderlich. Die Priorität ist wie folgt: Wenn project angegeben ist, wird nur dieses Projekt durchsucht; andernfalls, wenn directory angegeben ist, wird die gesamte Projektgruppe durchsucht; sonst wird die gesamte Organisation (org) durchsucht. Wird org zusammen mit project oder directory angegeben, wird zusätzlich geprüft, ob das Ziel zur angegebenen Organisation gehört.
Mindestens einer der Parameter version, minver oder maxver ist erforderlich. Ist version angegeben, werden minver und maxver ignoriert.
Beispiel‑Anfrage
curl "https://api.procurize.com/security/report/list?org=aspose&version=1.0"
Scoping zu einer Projektgruppe oder einem Projekt per 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"
Beispiel‑Antwort
{
"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"
}
]
}
Antwort‑Felder
organizationId: Die Organisation, zu der die Berichte gehören.reports[].id: Eindeutige Bericht‑ID. Dieser Wert wird an die Download‑Endpunkte übergeben.reports[].projectName: Anzeigename des Produkts.reports[].projectVersion: Version des Produkts.reports[].reportType: Berichtstyp (OWASP Top 10oderCWE Top 25).reports[].reportVersion: Versionsjahr des Bericht‑Standards.reports[].date: Erstellungsdatum des Berichts.reports[].uploadDate: Upload‑Datum des Berichts zu Procurize.reports[].vulnerabilitiesCount: Anzahl gefundener Schwachstellen.reports[].securityRating: Gesamtsicherheitsbewertung (A–E, wobeiAdie beste ist).
Berichte per ID herunterladen#
Lädt ein ZIP‑Archiv mit den ausgewählten Berichten herunter. Jeder Bericht ist sowohl im HTML‑ als auch im PDF‑Format enthalten.
Endpunkt
GET /security/report/files
Abfrage‑Parameter
org(erforderlich): Organisations‑ID oder Alias (z. B.asposeodergroupdocs).reports(erforderlich): Bericht‑IDs, die eingeschlossen werden sollen. Wiederholen Sie den Parameter, um mehrere Berichte anzugeben.
Beispiel‑Anfrage
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
Antwort
- Content‑Type:
application/zip - Der Antwort‑Body enthält die binäre ZIP‑Datei.
Clients sollten die Antwort streamen und auf Festplatte speichern.
Arbeiten mit einem einzelnen Bericht#
Die Endpunkte /security/report/html, /security/report/pdf und /security/report/zip geben jeweils einen spezifischen Bericht zurück und teilen dieselben Auswahlregeln.
Berichtsauswahl#
Der Berichtstyp und die Version sind immer erforderlich:
rt(erforderlich): Berichtstyp. Unterstützte Werte:OWASP Top 10undCWE Top 25.rv(erforderlich): Berichtsversion – das Jahr der Standardausgabe, z. B.2025für OWASP Top 10 oder2024für CWE Top 25.
Der konkrete Bericht wird dann auf eine von zwei Arten ausgewählt:
- Nach Bericht‑ID – übergeben Sie
id(Bericht‑ID) zusammen mit entwederproject(Projekt‑ID oder Alias) oderorg(Organisations‑ID oder Alias). Übergeben Sie in diesem Modus nichtversion. - Nach Projekt‑Version – übergeben Sie
project(Projekt‑ID oder Alias, z. B.aspose-imaging-netodergroupdocs-annotation-java) undversion(Projekt‑Version). Der Parameterorgwird in diesem Modus nicht verwendet.
Sind sowohl project als auch org angegeben, wird org ignoriert.
Bericht als HTML erhalten#
Rendert einen einzelnen Bericht als HTML‑Seite oder liefert ihn als herunterladbare HTML‑Datei.
Endpunkt
GET /security/report/html
Abfrage‑Parameter
rt(erforderlich): Berichtstyp.rv(erforderlich): Berichtsversion.- Auswahl‑Parameter: siehe Berichtsauswahl.
download(optional): Auftruesetzen, um das HTML als Datei‑Download zurückzugeben (Content-Disposition: attachment). Wird der Parameter weggelassen oder auffalsegesetzt, wird der Bericht inline zurückgegeben.
Beispiel‑Anfrage
curl "https://api.procurize.com/security/report/html?rt=OWASP+Top+10&rv=2025&id=00000000-0000-0000-0000-000000000004&project=aspose-imaging-net"
Um die HTML‑Datei statt einer Inline‑Darstellung herunterzuladen:
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
Antwort
- Content‑Type:
text/html
Bericht als PDF erhalten#
Gibt einen einzelnen Bericht als PDF‑Dokument zurück.
Endpunkt
GET /security/report/pdf
Abfrage‑Parameter
rt(erforderlich): Berichtstyp.rv(erforderlich): Berichtsversion.- Auswahl‑Parameter: siehe Berichtsauswahl.
Beispiel‑Anfrage
curl "https://api.procurize.com/security/report/pdf?rt=CWE+Top+25&rv=2024&project=aspose-imaging-net&version=1.0" -o report.pdf
Antwort
- Content‑Type:
application/pdf
Bericht als ZIP erhalten#
Gibt einen einzelnen Bericht als ZIP‑Archiv zurück, das sowohl die HTML‑ als auch die PDF‑Version enthält.
Endpunkt
GET /security/report/zip
Abfrage‑Parameter
rt(erforderlich): Berichtstyp.rv(erforderlich): Berichtsversion.- Auswahl‑Parameter: siehe Berichtsauswahl.
Beispiel‑Anfrage
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
Antwort
- Content‑Type:
application/zip
Alle Berichte eines Projekts herunterladen#
Lädt ein ZIP‑Archiv mit allen Berichten des angegebenen Projekts, sowohl im HTML‑ als auch im PDF‑Format, herunter.
Endpunkt
GET /security/report/project-files
Abfrage‑Parameter
id(erforderlich): Projekt‑ID. Aliase werden nicht unterstützt; übergeben Sie die Projekt‑UUID.rt(optional): Filter nach Berichtstyp. Unterstützte Werte:OWASP Top 10undCWE Top 25.rv(optional): Filter nach Berichtsversion (Jahr).version(optional): Filter nach Projekt‑Version.
Sind keine Filter angegeben, werden alle Berichte des Projekts eingeschlossen. Filter‑Parameter können kombiniert werden und werden unabhängig voneinander angewendet.
Beispiel‑Anfrage
curl "https://api.procurize.com/security/report/project-files?id=00000000-0000-0000-0000-000000000005" -o project-reports.zip
Antwort
- Content‑Type:
application/zip
Alle Berichte einer Projektgruppe herunterladen#
Lädt ein ZIP‑Archiv mit den Berichten aller Projekte in dem angegebenen Verzeichnis (Projektgruppe) herunter, sowohl im HTML‑ als auch im PDF‑Format.
Endpunkt
GET /security/report/directory-files
Abfrage‑Parameter
id(erforderlich): Verzeichnis‑ (Projektgruppen‑)ID. Aliase werden nicht unterstützt; übergeben Sie die Verzeichnis‑UUID.rt(optional): Filter nach Berichtstyp. Unterstützte Werte:OWASP Top 10undCWE Top 25.rv(optional): Filter nach Berichtsversion (Jahr).version(optional): Filter nach Projekt‑Version.
Sind keine Filter angegeben, werden die Berichte aller Projekte im Verzeichnis eingeschlossen. Filter‑Parameter können kombiniert werden und werden unabhängig voneinander angewendet.
Beispiel‑Anfrage
curl "https://api.procurize.com/security/report/directory-files?id=00000000-0000-0000-0000-000000000006" -o directory-reports.zip
Antwort
- Content‑Type:
application/zip
Berichte von SonarQube abrufen#
Lädt die neuesten Sicherheitsberichtsdaten für ein Produkt von einem SonarQube‑Dienst in Procurize hoch. Der Dienst ruft die neuesten Issue‑Daten von SonarQube ab, konvertiert sie in JSON‑Darstellungen der neuesten Versionen der OWASP Top 10‑ und CWE Top 25‑Berichte und gibt sie in der Antwort zurück.
Endpunkt
POST /security/reports/fetch
Authentifizierung
Dieser Endpunkt erfordert einen API‑Token, der im Header X-API-Key übergeben wird. Details zur Erzeugung und Verwendung von Tokens finden Sie unter API‑Tokens.
Abfrage‑Parameter
Die SonarQube‑Quelle wird auf eine von zwei Arten ausgewählt:
- Nach Projekt – übergeben Sie
project(Projekt‑ID oder Alias – siehe Kennungen und Aliase). Übergeben Sie nichturloderkey. - Nach SonarQube‑Dienst – übergeben Sie
url(URL des SonarQube‑Dienstes) undkey(SonarQube‑Projekt‑Key) zusammen. Übergeben Sie nichtproject.
Beispiel‑Anfrage
Bericht für ein Projekt per Alias abrufen:
curl -X POST "https://api.procurize.com/security/reports/fetch?project=aspose-imaging-net" \
-H "X-API-Key: YOUR_API_TOKEN"
Bericht direkt von einem SonarQube‑Dienst abrufen:
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"
Beispiel‑Antwort
{
"Owasp10_2025": {
"TOTAL_SECURITY_RATING": "A",
"TOTAL_COUNT": 0,
...
},
"Cwe25_2025": {
"TOTAL_SECURITY_RATING": "A",
"TOTAL_COUNT": 0,
...
}
}
Die Antwort ist in Release‑Build‑Pipelines nützlich, um zu entscheiden, ob ein Build gestoppt werden soll, wenn Schwachstellen in den öffentlichen Sicherheitsbericht‑Formaten entdeckt werden.
Hinweise
- Das Hochladen eines Berichts erfordert persönliche Berechtigung für das Produkt, zu dem die Berichte gehören. Haben Sie diese Berechtigung nicht, senden Sie die Anfrage trotzdem: Die Plattform liefert
403 Forbiddenund benachrichtigt automatisch die Plattform‑Administratoren, die die Anfrage prüfen und Ihnen die Entscheidung mitteilen. - Nicht jeder SonarQube‑Dienst ist möglicherweise bereits auf der Procurize‑Plattform registriert. Um einen neuen Dienst zu registrieren, kontaktieren Sie Ihren Plattform‑Administrator; ein Administrator‑Token für diesen Dienst ist erforderlich.
Fehlerbehandlung#
Die API verwendet standardisierte HTTP‑Statuscodes.
200 OK: Anfrage erfolgreich204 No Content: Bericht existiert nicht400 Bad Request: Ungültige Parameter oder fehlerhafte Anfrage401 Unauthorized: Fehlender oder ungültiger API‑Token403 Forbidden: Zugriff verweigert (z. B. fehlende Berechtigung für das Produkt)500 Internal Server Error: Unerwarteter Serverfehler
Fehlerantworten enthalten einen maschinenlesbaren Fehlercode und eine menschenlesbare Meldung.
