SonarQube-rapporter API#

Denne artikel beskriver, hvordan du programmatisk får adgang til SonarQube‑sikkerhedsrapporter, der er gemt på Procurize‑platformen. Den dækker REST‑API‑et til at liste rapporter og downloade dem i HTML, PDF og ZIP‑formater.

Oversigt#

SonarQube‑rapporter‑undermodulet gør det muligt for organisationer at centralt gemme og administrere sikkerheds‑ og kodekvalitetsrapporter, der er genereret af SonarQube. Procurize‑platformen eksponerer disse data via et offentligt REST‑API, som giver dig mulighed for at:

  • Liste rapportmetadata for en organisation, en projektgruppe eller et projekt
  • Downloade en enkelt rapport i HTML, PDF eller ZIP‑format
  • Downloade udvalgte rapporter som et ZIP‑arkiv
  • Downloade alle rapporter for et projekt eller en projektgruppe som et ZIP‑arkiv
  • Hente de seneste OWASP Top 10‑ og CWE Top 25‑rapporter direkte fra en SonarQube‑tjeneste

Disse funktioner muliggør integrationer med CI/CD‑pipelines, GRC‑systemer, interne dashboards og tredjeparts risikostyringsværktøjer.

Endepunkter#

EndepunktMetodeFormål
/security/report/listGETListe rapportmetadata for den valgte omfang og version.
/security/report/filesGETDownloade de valgte rapporter som et ZIP‑arkiv.
/security/report/htmlGETHent en enkelt rapport som HTML.
/security/report/pdfGETHent en enkelt rapport som PDF.
/security/report/zipGETHent en enkelt rapport som et ZIP‑arkiv.
/security/report/project-filesGETDownloade alle rapporter for et projekt som et ZIP‑arkiv.
/security/report/directory-filesGETDownloade alle rapporter for en projektgruppe (directory) som et ZIP‑arkiv.
/security/reports/fetchPOSTHente de seneste rapporter fra en SonarQube‑tjeneste.

Godkendelse og autorisation#

De rapport‑listnings‑ og download‑endepunkter, der beskrives i denne artikel, kræver ingen godkendelse.

Endepunktet POST /security/reports/fetch kræver godkendelse med en API‑token — se API‑tokens.

Organisations‑ID#

En organisations‑identifikator er påkrævet for de fleste anmodninger, der beskrives her. Du kan angive enten organisations‑ID (en UUID) eller dens alias — se Identifikatorer og aliaser.
Du kan finde den i organisationens indstillingspanel på https://dashboard.procurize.ai.
Bemærk, at adgang til indstillingspanelet kræver autorisation, og adgang til organisationens indstillingspanel kræver en brugerrolle på mindst Administrator i den pågældende organisation.

Kopier ID-knap

Identifikatorer og aliaser#

Omfangs‑parametre accepterer enten entitets‑ID (en UUID) eller et menneskelæsbart alias. Alias gør anmodninger lettere at læse og er stabile på tværs af miljøer.

ParameterAcceptererEksempel aliaser
orgOrganisations‑ID eller aliasaspose, groupdocs
directoryDirectory (projektgruppe)‑ID eller aliasaspose-imaging, groupdocs-annotation
projectProjekt‑ID eller aliasaspose-imaging-net, groupdocs-annotation-java

For eksempel er de følgende to anmodninger ækvivalente:

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"

Bemærk: Alias understøttes ikke for id‑parameteren på bulk‑download‑endepunkterne. Angiv directory‑ eller projekt‑UUID til GET /security/report/project-files og GET /security/report/directory-files.

Basis-URL#

Alle REST‑API‑endepunkter leveres under følgende basis‑URL:

https://api.procurize.com

SonarQube-rapporter REST API#

Liste over rapporter#

Returnerer de sikkerhedsrapporter, der er tilgængelige for det valgte omfang og version, uden deres filindhold. Brug dette endepunkt til at finde rapport‑ID‑er, som kan sendes til download‑endepunkterne.

Endepunkt

GET /security/report/list

Query‑parametre

  • org (valgfri): Organisations‑ID eller alias (fx aspose eller groupdocs). Bredeste omfang.
  • directory (valgfri): Directory (projektgruppe)‑ID eller alias (fx aspose-imaging eller groupdocs-annotation). Snævrere omfang.
  • project (valgfri): Projekt‑ID eller alias (fx aspose-imaging-net eller groupdocs-annotation-java). Smalleste omfang.
  • version (valgfri): Nøjagtig projekt‑version.
  • minver (valgfri): Minimum projekt‑version.
  • maxver (valgfri): Maksimum projekt‑version.

Mindst én af omfangs‑parametrene org, directory eller project er påkrævet. Prioriteringen er som følger: hvis project er angivet, søges kun i dette projekt; ellers, hvis directory er angivet, søges i hele projektgruppen; ellers søges i hele organisationen (org). Når org angives sammen med project eller directory, valideres målet yderligere for at sikre, at det tilhører den pågældende organisation.

Mindst én af version, minver eller maxver er påkrævet. Hvis version er angivet, ignoreres minver og maxver.

Anmodnings‑eksempel

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

Omfang til en projektgruppe eller et 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"

Svar‑eksempel

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

Svar‑felter

  • organizationId: Organisationen, som rapporterne tilhører.
  • reports[].id: Unik rapport‑ID. Send denne værdi til download‑endepunkterne.
  • reports[].projectName: Visningsnavn for produktet.
  • reports[].projectVersion: Produktets version.
  • reports[].reportType: Rapporttype (OWASP Top 10 eller CWE Top 25).
  • reports[].reportVersion: År for rapportstandarden.
  • reports[].date: Dato for, hvornår rapporten blev genereret.
  • reports[].uploadDate: Dato for, hvornår rapporten blev uploadet til Procurize.
  • reports[].vulnerabilitiesCount: Antal fundne sårbarheder.
  • reports[].securityRating: Overordnet sikkerhedsvurdering (A–E, hvor A er bedst).

Download rapporter efter ID#

Downloader et ZIP‑arkiv, der indeholder de valgte rapporter. Hver rapport medtages i både HTML‑ og PDF‑formater.

Endepunkt

GET /security/report/files

Query‑parametre

  • org (påkrævet): Organisations‑ID eller alias (fx aspose eller groupdocs).
  • reports (påkrævet): Rapport‑ID‑er, der skal inkluderes. Gentag parameteren for at inkludere flere rapporter.

Anmodnings‑eksempel

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
  • Svaret indeholder den binære ZIP‑fil.

Klienter bør streame svaret og gemme det på disk.

Arbejde med en enkelt rapport#

Endepunkterne /security/report/html, /security/report/pdf og /security/report/zip returnerer én specifik rapport og deler de samme udvælgelses‑regler.

Rapportvalg#

Rapporttype og -version er altid påkrævet:

  • rt (påkrævet): Rapporttype. Understøttede værdier er OWASP Top 10 og CWE Top 25.
  • rv (påkrævet): Rapportversion — året for standardudgaven, f.eks. 2025 for OWASP Top 10 eller 2024 for CWE Top 25.

Den præcise rapport vælges derefter på én af to måder:

  • Via rapport‑ID — angiv id (rapport‑ID) sammen med enten project (projekt‑ID eller alias) eller org (organisations‑ID eller alias). Send ikke version i denne tilstand.
  • Via projekt‑version — angiv project (projekt‑ID eller alias, f.eks. aspose-imaging-net eller groupdocs-annotation-java) og version (projekt‑version). org‑parameteren bruges ikke i denne tilstand.

Når både project og org er angivet, ignoreres org.

Hent rapport som HTML#

Render en enkelt rapport som en HTML‑side, eller returner den som en download‑fil.

Endepunkt

GET /security/report/html

Query‑parametre

  • rt (påkrævet): Rapporttype.
  • rv (påkrævet): Rapportversion.
  • Rapport‑udvælgelses‑parametre: se Rapportvalg.
  • download (valgfri): Sæt til true for at returnere HTML som en fil‑download (Content-Disposition: attachment). Når udeladt eller false, returneres rapporten inline.

Anmodnings‑eksempel

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

For at downloade HTML‑filen i stedet for at vise 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

Hent rapport som PDF#

Returnerer en enkelt rapport som et PDF‑dokument.

Endepunkt

GET /security/report/pdf

Query‑parametre

  • rt (påkrævet): Rapporttype.
  • rv (påkrævet): Rapportversion.
  • Rapport‑udvælgelses‑parametre: se Rapportvalg.

Anmodnings‑eksempel

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

Hent rapport som ZIP#

Returnerer en enkelt rapport som et ZIP‑arkiv, der indeholder både HTML‑ og PDF‑versionerne.

Endepunkt

GET /security/report/zip

Query‑parametre

  • rt (påkrævet): Rapporttype.
  • rv (påkrævet): Rapportversion.
  • Rapport‑udvælgelses‑parametre: se Rapportvalg.

Anmodnings‑eksempel

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

Download alle rapporter for et projekt#

Downloader et ZIP‑arkiv, der indeholder alle rapporter for det angivne projekt, i både HTML‑ og PDF‑formater.

Endepunkt

GET /security/report/project-files

Query‑parametre

  • id (påkrævet): Projekt‑ID. Alias understøttes ikke; angiv projekt‑UUID.
  • rt (valgfri): Filtrer efter rapporttype. Understøttede værdier er OWASP Top 10 og CWE Top 25.
  • rv (valgfri): Filtrer efter rapportversion (år).
  • version (valgfri): Filtrer efter projekt‑version.

Hvis ingen filtre angives, inkluderes alle rapporter for projektet. Filter‑parametre kan kombineres og anvendes uafhængigt.

Anmodnings‑eksempel

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

Svar

  • Content‑Type: application/zip

Download alle rapporter for en projektgruppe#

Downloader et ZIP‑arkiv, der indeholder rapporter for alle projekter i den angivne directory (projektgruppe), i både HTML‑ og PDF‑formater.

Endepunkt

GET /security/report/directory-files

Query‑parametre

  • id (påkrævet): Directory (projektgruppe)‑ID. Alias understøttes ikke; angiv directory‑UUID.
  • rt (valgfri): Filtrer efter rapporttype. Understøttede værdier er OWASP Top 10 og CWE Top 25.
  • rv (valgfri): Filtrer efter rapportversion (år).
  • version (valgfri): Filtrer efter projekt‑version.

Hvis ingen filtre angives, inkluderes rapporter for alle projekter i directory’en. Filter‑parametre kan kombineres og anvendes uafhængigt.

Anmodnings‑eksempel

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

Svar

  • Content‑Type: application/zip

Hent rapporter fra SonarQube#

Uploader de seneste sikkerhedsrapport‑data for et produkt fra en SonarQube‑tjeneste til Procurize. Tjenesten henter de seneste issue‑data fra SonarQube, konverterer dem til JSON‑repræsentationer af de nyeste versioner af OWASP Top 10 og CWE Top 25‑rapporter, og returnerer dem i svaret.

Endepunkt

POST /security/reports/fetch

Godkendelse

Dette endepunkt kræver en API‑token, som sendes i headeren X-API-Key. For detaljer om oprettelse og brug af tokens, se API‑tokens.

Query‑parametre

SonarQube‑kilden vælges på én af to måder:

  • Via projekt — angiv project (projekt‑ID eller alias — se Identifikatorer og aliaser). Send ikke url eller key.
  • Via SonarQube‑tjeneste — angiv både url (SonarQube‑tjenestens URL) og key (SonarQube‑projekt‑nøgle). Send ikke project.

Anmodnings‑eksempel

Hent rapporten for et projekt via dets alias:

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

Hent rapporten direkte fra en SonarQube‑tjeneste:

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"

Svar‑eksempel

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

Svaret er nyttigt i release‑build‑pipelines for at beslutte, om bygningen skal stoppes, når sårbarheder opdages i de offentlige sikkerhedsrapport‑formater.

Bemærkninger

  • Upload af en rapport kræver personlig tilladelse til det produkt, som rapporterne tilhører. Hvis du ikke har denne tilladelse, kan du stadig sende anmodningen: platformen returnerer 403 Forbidden og underretter automatisk platform‑administratorerne, som gennemgår anmodningen og giver dig besked om beslutningen.
  • Ikke alle SonarQube‑tjenester er nødvendigvis registreret på Procurize‑platformen. For at registrere en ny tjeneste, kontakt din platform‑administrator; der kræves en administrator‑token for den pågældende tjeneste.

Fejlhåndtering#

API‑et bruger standard HTTP‑statuskoder.

  • 200 OK: Anmodning lykkedes
  • 204 No Content: Rapporten findes ikke
  • 400 Bad Request: Ugyldige parametre eller forkert anmodning
  • 401 Unauthorized: Manglende eller ugyldig API‑token
  • 403 Forbidden: Adgang nægtet (fx manglende tilladelse til produktet)
  • 500 Internal Server Error: Uventet serverfejl

Fejlsvar indeholder en maskinlæselig fejlkode og en menneskelig læsbar besked.

Se også:#

Relaterede artikler#

Hvad er sikkerhedsrapporter?

Sikkerhedsrapport‑lager

Sådan konfigureres sikkerhedsrapporter

til toppen
Vælg sprog