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#

EndpointMethodeDoel
/security/report/listGETRapportmetadata opsommen voor de geselecteerde scope en versie.
/security/report/filesGETDe geselecteerde rapporten downloaden als een ZIP‑archief.
/security/report/htmlGETEen enkel rapport ophalen als HTML.
/security/report/pdfGETEen enkel rapport ophalen als PDF.
/security/report/zipGETEen enkel rapport ophalen als ZIP‑archief.
/security/report/project-filesGETAlle rapporten van een project downloaden als een ZIP‑archief.
/security/report/directory-filesGETAlle rapporten van een projectgroep (directory) downloaden als een ZIP‑archief.
/security/reports/fetchPOSTDe 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.

Kopieer ID‑knop

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.

ParameterAccepteertVoorbeeldaliassen
orgOrganisatie‑ID of aliasaspose, groupdocs
directoryDirectory (projectgroep) ID of aliasaspose-imaging, groupdocs-annotation
projectProject‑ID of aliasaspose-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 aan GET /security/report/project-files en GET /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. aspose of groupdocs). Breedste scope.
  • directory (optioneel): Directory (projectgroep) ID of alias (bijv. aspose-imaging of groupdocs-annotation). Smallere scope.
  • project (optioneel): Project‑ID of alias (bijv. aspose-imaging-net of groupdocs-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 10 of CWE 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, waarbij A het 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. aspose of groupdocs).
  • 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 zijn OWASP Top 10 en CWE Top 25.
  • rv (verplicht): Rapportversie — het jaar van de standaardeditie, bijvoorbeeld 2025 voor OWASP Top 10 of 2024 voor CWE Top 25.

Het exacte rapport wordt vervolgens op één van twee manieren geselecteerd:

  • Via rapport‑ID — geef id (rapport‑ID) mee samen met ofwel project (project‑ID of alias) of org (organisatie‑ID of alias). Geef version niet mee in deze modus.
  • Via projectversie — geef project (project‑ID of alias, bijv. aspose-imaging-net of groupdocs-annotation-java) en version (projectversie) mee. De org‑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 op true om de HTML als bestand te downloaden (Content‑Disposition: attachment). Wanneer weggelaten of false, 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 zijn OWASP Top 10 en CWE 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 zijn OWASP Top 10 en CWE 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 geen url of key mee.
  • Via SonarQube‑service — geef zowel url (SonarQube‑service‑URL) als key (SonarQube‑project‑key) mee. Geef geen project mee.

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 Forbidden en 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 geslaagd
  • 204 No Content: Rapport bestaat niet
  • 400 Bad Request: Ongeldige parameters of verkeerd gevormd verzoek
  • 401 Unauthorized: Ontbrekende of ongeldige API‑token
  • 403 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?

Beveiligingsrapporten‑repository

Hoe beveiligingsrapporten configureren

Naar boven
Selecteer taal