SonarQube‑rapporter API#

Denna artikel beskriver hur du programatiskt kan komma åt SonarQube‑säkerhetsrapporter som lagras i Procurize‑plattformen. Den täcker REST‑API‑et för att lista rapporter och ladda ner dem i HTML, PDF och ZIP‑format.

Översikt#

SonarQube‑rapporter‑submodulen gör det möjligt för organisationer att centralt lagra och hantera säkerhets‑ och kodkvalitetsrapporter som genereras av SonarQube. Procurize‑plattformen exponerar dessa data via ett offentligt REST‑API som låter dig:

  • Lista rapportmetadata för en organisation, en projektgrupp eller ett projekt
  • Ladda ner en enskild rapport i HTML, PDF eller ZIP‑format
  • Ladda ner valda rapporter som ett ZIP‑arkiv
  • Ladda ner alla rapporter för ett projekt eller en projektgrupp som ett ZIP‑arkiv
  • Hämta de senaste OWASP Top 10‑ och CWE Top 25‑rapporterna direkt från en SonarQube‑tjänst

Dessa funktioner möjliggör integrationer med CI/CD‑pipelines, GRC‑system, interna instrumentpaneler och tredjepartsverktyg för riskhantering.

Slutpunkter#

SlutpunktMetodSyfte
/security/report/listGETLista rapportmetadata för den valda omfattningen och versionen.
/security/report/filesGETLadda ner de valda rapporterna som ett ZIP‑arkiv.
/security/report/htmlGETHämta en enskild rapport som HTML.
/security/report/pdfGETHämta en enskild rapport som PDF.
/security/report/zipGETHämta en enskild rapport som ett ZIP‑arkiv.
/security/report/project-filesGETLadda ner alla rapporter för ett projekt som ett ZIP‑arkiv.
/security/report/directory-filesGETLadda ner alla rapporter för en projektgrupp (katalog) som ett ZIP‑arkiv.
/security/reports/fetchPOSTHämta de senaste rapporterna från en SonarQube‑tjänst.

Autentisering och Auktorisation#

Rapportlistnings‑ och nedladdnings‑slutpunkterna som beskrivs i den här artikeln kräver ingen autentisering.

Slutpunkten POST /security/reports/fetch kräver autentisering med en API‑token — se API‑tokens.

Organisations‑ID#

Ett organisations‑identifierare krävs för de flesta förfrågningar som beskrivs här. Du kan ange antingen organisations‑ID (en UUID) eller dess alias — se Identifierare och Alias.
Du hittar den i organisationens inställningspanel på https://dashboard.procurize.ai.
Observera att åtkomst till inställningspanelen kräver behörighet, och åtkomst till organisationens inställningspanel kräver en användarroll på minst Administratör i den organisationen.

Kopiera ID‑knapp

Identifierare och Alias#

Omfattningsparametrar accepterar antingen enhetens ID (en UUID) eller ett mänskligt läsbart alias. Alias gör förfrågningarna enklare att läsa och är stabila över miljöer.

ParameterAccepterarExempel‑alias
orgOrganisations‑ID eller aliasaspose, groupdocs
directoryKatalog‑ (projektgrupp)‑ID eller aliasaspose-imaging, groupdocs-annotation
projectProjekt‑ID eller aliasaspose-imaging-net, groupdocs-annotation-java

Till exempel är följande två förfrågningar ekvivalenta:

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"

Obs: Alias stöds inte för id‑parametern i bulk‑nedladdnings‑slutpunkterna. Ange katalog‑ eller projekt‑UUID till GET /security/report/project-files och GET /security/report/directory-files.

Bas‑URL#

Alla REST‑API‑slutpunkter levereras under följande bas‑URL:

https://api.procurize.com

SonarQube‑rapporter REST API#

Lista Rapporter#

Returnerar de säkerhetsrapporter som finns tillgängliga för den valda omfattningen och versionen, utan deras filinnehåll. Använd denna slutpunkt för att upptäcka rapport‑ID:n som kan skickas till nedladdnings‑slutpunkterna.

Slutpunkt

GET /security/report/list

Frågeparametrar

  • org (valfritt): Organisations‑ID eller alias (t.ex. aspose eller groupdocs). Bredaste omfattning.
  • directory (valfritt): Katalog‑ (projektgrupp)‑ID eller alias (t.ex. aspose-imaging eller groupdocs-annotation). Smalare omfattning.
  • project (valfritt): Projekt‑ID eller alias (t.ex. aspose-imaging-net eller groupdocs-annotation-java). Smalast möjliga omfattning.
  • version (valfritt): Exakt projektversion.
  • minver (valfritt): Minimum projektversion.
  • maxver (valfritt): Maximum projektversion.

Minst en av omfattningsparametrarna org, directory eller project krävs. Prioriteringen är: om project anges söks endast det projektet; annars, om directory anges, söks hela projektgruppen; annars söks hela organisationen (org). När org anges tillsammans med project eller directory valideras målet dessutom att tillhöra den organisationen.

Minst en av version, minver eller maxver krävs. Om version anges ignoreras minver och maxver.

Exempel på förfrågan

curl "https://api.procurize.com/security/report/list?org=aspose&version=1.0"

Omfång till en projektgrupp eller ett 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"

Exempel på svar

{
  "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"
    }
  ]
}

Svarsfält

  • organizationId: Organisationen som rapporterna tillhör.
  • reports[].id: Unikt rapport‑ID. Skicka detta värde till nedladdnings‑slutpunkterna.
  • reports[].projectName: Visningsnamn på produkten.
  • reports[].projectVersion: Produktens version.
  • reports[].reportType: Rapporttyp (OWASP Top 10 eller CWE Top 25).
  • reports[].reportVersion: År för rapportstandarden.
  • reports[].date: Datum då rapporten genererades.
  • reports[].uploadDate: Datum då rapporten laddades upp till Procurize.
  • reports[].vulnerabilitiesCount: Antal funna sårbarheter.
  • reports[].securityRating: Övergripande säkerhetsbetyg (A–E, där A är bäst).

Ladda ner rapporter efter ID#

Laddar ner ett ZIP‑arkiv som innehåller de valda rapporterna. Varje rapport inkluderas i både HTML‑ och PDF‑format.

Slutpunkt

GET /security/report/files

Frågeparametrar

  • org (krav): Organisations‑ID eller alias (t.ex. aspose eller groupdocs).
  • reports (krav): Rapport‑ID:n att inkludera. Upprepa parametern för att inkludera flera rapporter.

Exempel på förfrågan

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
  • Svarskroppen innehåller den binära ZIP‑filen.

Klienter bör strömma svaret och spara det till disk.

Arbeta med en enskild rapport#

Slutpunkterna /security/report/html, /security/report/pdf och /security/report/zip returnerar en specifik rapport och delar samma urvalskriterier.

Rapportval#

Rapporttyp och version krävs alltid:

  • rt (krav): Rapporttyp. Stödda värden är OWASP Top 10 och CWE Top 25.
  • rv (krav): Rapportversion — året för standardutgåvan, t.ex. 2025 för OWASP Top 10 eller 2024 för CWE Top 25.

Den exakta rapporten väljs sedan på ett av två sätt:

  • Via rapport‑ID — skicka id (rapport‑ID) tillsammans med antingen project (projekt‑ID eller alias) eller org (organisations‑ID eller alias). Skicka inte version i detta läge.
  • Via projektversion — skicka project (projekt‑ID eller alias, t.ex. aspose-imaging-net eller groupdocs-annotation-java) och version (projektversion). Parametern org används inte i detta läge.

När både project och org anges ignoreras org.

Hämta rapport som HTML#

Renderar en enskild rapport som en HTML‑sida, eller returnerar den som en nedladdningsbar HTML‑fil.

Slutpunkt

GET /security/report/html

Frågeparametrar

  • rt (krav): Rapporttyp.
  • rv (krav): Rapportversion.
  • Rapportval‑parametrar: se Rapportval.
  • download (valfritt): Sätt till true för att returnera HTML som en filnedladdning (Content-Disposition: attachment). Om utelämnad eller false returneras rapporten inline.

Exempel på förfrågan

curl "https://api.procurize.com/security/report/html?rt=OWASP+Top+10&rv=2025&id=00000000-0000-0000-0000-000000000004&project=aspose-imaging-net"

För att ladda ner HTML‑filen istället för att rendera 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

Hämta rapport som PDF#

Returnerar en enskild rapport som ett PDF‑dokument.

Slutpunkt

GET /security/report/pdf

Frågeparametrar

  • rt (krav): Rapporttyp.
  • rv (krav): Rapportversion.
  • Rapportval‑parametrar: se Rapportval.

Exempel på förfrågan

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

Hämta rapport som ZIP#

Returnerar en enskild rapport som ett ZIP‑arkiv som innehåller både HTML‑ och PDF‑versionerna.

Slutpunkt

GET /security/report/zip

Frågeparametrar

  • rt (krav): Rapporttyp.
  • rv (krav): Rapportversion.
  • Rapportval‑parametrar: se Rapportval.

Exempel på förfrågan

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

Ladda ner alla rapporter för ett projekt#

Laddar ner ett ZIP‑arkiv som innehåller alla rapporter för det angivna projektet, i både HTML‑ och PDF‑format.

Slutpunkt

GET /security/report/project-files

Frågeparametrar

  • id (krav): Projekt‑ID. Alias stöds inte; skicka projekt‑UUID.
  • rt (valfritt): Filtrera efter rapporttyp. Stödda värden är OWASP Top 10 och CWE Top 25.
  • rv (valfritt): Filtrera efter rapportversion (år).
  • version (valfritt): Filtrera efter projektversion.

Om inga filter anges inkluderas alla projektets rapporter. Filterparametrar kan kombineras och tillämpas oberoende av varandra.

Exempel på förfrågan

curl "https://api.procurize.com/security/report/project-files?id=00000000-0000-0000-0000-000000000005" -o project-reports.zip

Svar

  • Content‑Type: application/zip

Ladda ner alla rapporter för en projektgrupp#

Laddar ner ett ZIP‑arkiv som innehåller rapporter för alla projekt i den angivna katalogen (projektgrupp), i både HTML‑ och PDF‑format.

Slutpunkt

GET /security/report/directory-files

Frågeparametrar

  • id (krav): Katalog‑ (projektgrupp)‑ID. Alias stöds inte; skicka katalog‑UUID.
  • rt (valfritt): Filtrera efter rapporttyp. Stödda värden är OWASP Top 10 och CWE Top 25.
  • rv (valfritt): Filtrera efter rapportversion (år).
  • version (valfritt): Filtrera efter projektversion.

Om inga filter anges inkluderas rapporter för alla projekt i katalogen. Filterparametrar kan kombineras och tillämpas oberoende av varandra.

Exempel på förfrågan

curl "https://api.procurize.com/security/report/directory-files?id=00000000-0000-0000-0000-000000000006" -o directory-reports.zip

Svar

  • Content‑Type: application/zip

Hämta rapporter från SonarQube#

Laddar upp den senaste säkerhetsrapportdatan för en produkt från en SonarQube‑tjänst till Procurize. Tjänsten hämtar den senaste ärendedatan från SonarQube, konverterar den till JSON‑representationer av de senaste versionerna av OWASP Top 10 och CWE Top 25‑rapporterna och returnerar dem i svaret.

Slutpunkt

POST /security/reports/fetch

Autentisering

Denna slutpunkt kräver en API‑token, skickad i X-API-Key‑headern. För detaljer om hur du skapar och använder tokens, se API‑tokens.

Frågeparametrar

SonarQube‑källan väljs på ett av två sätt:

  • Via projekt — skicka project (projekt‑ID eller alias — se Identifierare och Alias). Skicka inte url eller key.
  • Via SonarQube‑tjänst — skicka både url (SonarQube‑tjänstens URL) och key (SonarQube‑projekt‑nyckel). Skicka inte project.

Exempel på förfrågan

Hämta rapporten för ett projekt via dess alias:

curl -X POST "https://api.procurize.com/security/reports/fetch?project=aspose-imaging-net" \
  -H "X-API-Key: YOUR_API_TOKEN"

Hämta rapporten direkt från en SonarQube‑tjänst:

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"

Exempel på svar

{
  "Owasp10_2025": {
    "TOTAL_SECURITY_RATING": "A",
    "TOTAL_COUNT": 0,
    ...
  },
  "Cwe25_2025": {
    "TOTAL_SECURITY_RATING": "A",
    "TOTAL_COUNT": 0,
    ...
  }
}

Svaret är användbart i release‑byggpipelines för att avgöra om en byggprocess ska stoppas när sårbarheter upptäcks i de offentliga säkerhetsrapportformaten.

Anmärkningar

  • Att ladda upp en rapport kräver personlig behörighet för den produkt som rapporterna tillhör. Om du saknar denna behörighet kan du ändå skicka förfrågan: plattformen returnerar 403 Forbidden och meddelar automatiskt plattformsadministratörerna, som granskar förfrågan och meddelar dig om beslutet.
  • Inte alla SonarQube‑tjänster är nödvändigtvis registrerade på Procurize‑plattformen. För att registrera en ny tjänst, kontakta din plattformsadministratör; en administratortoken för den tjänsten krävs.

Felhantering#

API‑et använder standard‑HTTP‑statuskoder.

  • 200 OK: Förfrågan lyckades
  • 204 No Content: Rapporten finns inte
  • 400 Bad Request: Ogiltiga parametrar eller felaktig förfrågan
  • 401 Unauthorized: Saknad eller ogiltig API‑token
  • 403 Forbidden: Åtkomst nekad (t.ex. saknad behörighet för produkten)
  • 500 Internal Server Error: Oväntat serverfel

Felformulär innehåller en maskinläsbar felkod och ett mänskligt läsbart meddelande.

Se även:#

Relaterade artiklar#

Vad är säkerhetsrapporter?

Säkerhetsrapporter‑arkiv

Hur man konfigurerar säkerhetsrapporter

till toppen
Välj språk