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#

EndpunktMethodeZweck
/security/report/listGETMetadaten von Berichten für den ausgewählten Geltungsbereich und die Version auflisten.
/security/report/filesGETDie ausgewählten Berichte als ZIP‑Archiv herunterladen.
/security/report/htmlGETEinen einzelnen Bericht als HTML erhalten.
/security/report/pdfGETEinen einzelnen Bericht als PDF erhalten.
/security/report/zipGETEinen einzelnen Bericht als ZIP‑Archiv erhalten.
/security/report/project-filesGETAlle Berichte eines Projekts als ZIP‑Archiv herunterladen.
/security/report/directory-filesGETAlle Berichte einer Projektgruppe (Verzeichnis) als ZIP‑Archiv herunterladen.
/security/reports/fetchPOSTDie 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.

ID kopieren Schaltfläche

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.

ParameterAkzeptiertBeispiel‑Aliase
orgOrganisations‑ID oder Aliasaspose, groupdocs
directoryVerzeichnis‑ (Projektgruppen‑)ID oder Aliasaspose-imaging, groupdocs-annotation
projectProjekt‑ID oder Aliasaspose-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 an GET /security/report/project-files bzw. 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. aspose oder groupdocs). Größter Geltungsbereich.
  • directory (optional): Verzeichnis‑ (Projektgruppen‑)ID oder Alias (z. B. aspose-imaging oder groupdocs-annotation). Engerer Geltungsbereich.
  • project (optional): Projekt‑ID oder Alias (z. B. aspose-imaging-net oder groupdocs-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 10 oder CWE 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, wobei A die 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. aspose oder groupdocs).
  • 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 10 und CWE Top 25.
  • rv (erforderlich): Berichtsversion – das Jahr der Standardausgabe, z. B. 2025 für OWASP Top 10 oder 2024 fü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 entweder project (Projekt‑ID oder Alias) oder org (Organisations‑ID oder Alias). Übergeben Sie in diesem Modus nicht version.
  • Nach Projekt‑Version – übergeben Sie project (Projekt‑ID oder Alias, z. B. aspose-imaging-net oder groupdocs-annotation-java) und version (Projekt‑Version). Der Parameter org wird 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): Auf true setzen, um das HTML als Datei‑Download zurückzugeben (Content-Disposition: attachment). Wird der Parameter weggelassen oder auf false gesetzt, 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 10 und CWE 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 10 und CWE 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 nicht url oder key.
  • Nach SonarQube‑Dienst – übergeben Sie url (URL des SonarQube‑Dienstes) und key (SonarQube‑Projekt‑Key) zusammen. Übergeben Sie nicht project.

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 Forbidden und 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 erfolgreich
  • 204 No Content: Bericht existiert nicht
  • 400 Bad Request: Ungültige Parameter oder fehlerhafte Anfrage
  • 401 Unauthorized: Fehlender oder ungültiger API‑Token
  • 403 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.

Siehe auch:#

Verwandte Artikel#

Was sind Sicherheitsberichte?

Sicherheitsberichte‑Repository

Wie man Sicherheitsberichte konfiguriert

nach oben
Sprache auswählen