SonarQube-raporttien API#

Tämä artikkeli kuvaa, miten ohjelmallisesti käyttää SonarQube‑turvallisuusraportteja, jotka on tallennettu Procurize‑alustalle. Se kattaa REST‑API:n raporttien listaamiseen ja niiden lataamiseen HTML-, PDF- ja ZIP-muodoissa.

Yleiskatsaus#

SonarQube‑raporttien alimoduuli mahdollistaa organisaatioille turvallisuus- ja koodinlaaturaporttien keskitetyn tallentamisen ja hallinnan, jotka on luotu SonarQuben avulla. Procurize‑alusta tarjoaa nämä tiedot julkisen REST‑API:n kautta, jonka avulla voit:

  • Listata raporttien metatiedot organisaatiolle, projektiryhmälle tai projektille
  • Ladata yhden raportin HTML-, PDF- tai ZIP-muodossa
  • Ladata valittuja raportteja ZIP‑arkistona
  • Ladata kaikki raportit projektista tai projektiryhmästä ZIP‑arkistona
  • Hakea uusimmat OWASP Top 10‑ ja CWE Top 25‑raportit suoraan SonarQube‑palvelusta

Nämä ominaisuudet mahdollistavat integraatiot CI/CD‑putkistoihin, GRC‑järjestelmiin, sisäisiin koontinäyttöihin ja kolmannen osapuolen riskienhallintatyökaluihin.

Päätepisteet#

PäätepisteMenetelmäTarkoitus
/security/report/listGETListaa raporttien metatiedot valitulle laajuudelle ja versiolle.
/security/report/filesGETLataa valitut raportit ZIP‑arkistona.
/security/report/htmlGETHae yksi raportti HTML‑muodossa.
/security/report/pdfGETHae yksi raportti PDF‑muodossa.
/security/report/zipGETHae yksi raportti ZIP‑arkistona.
/security/report/project-filesGETLataa kaikki projektin raportit ZIP‑arkistona.
/security/report/directory-filesGETLataa kaikki projektiryhmän (hakemiston) raportit ZIP‑arkistona.
/security/reports/fetchPOSTHae uusimmat raportit SonarQube‑palvelusta.

Tunnistautuminen ja valtuutus#

Tässä artikkelissa kuvattuihin raporttien listaamis- ja latauspisteisiin ei tarvita tunnistautumista.

POST /security/reports/fetch -päätepiste vaatii API‑avaimen tunnistautumisen — katso API‑avaimet.

Organisaatio‑ID#

Useimmat tässä kuvatut pyynnöt edellyttävät organisaatio‑tunnistetta. Voit antaa joko organisaatio‑ID:n (UUID) tai sen aliaksen — katso Tunnisteet ja aliakset. Löydät sen organisaation asetuspaneelista osoitteessa https://dashboard.procurize.ai. Huomaa, että asetuspaneelin käyttö vaatii valtuutuksen, ja organisaation asetuspaneelin käyttö edellyttää vähintään järjestelmänvalvojan roolia kyseisessä organisaatiossa.

Kopioi ID -painike

Tunnisteet ja aliakset#

Laajuusparametrit hyväksyvät joko entiteetin ID:n (UUID) tai ihmisen luettavan aliaksen. Aliakset tekevät pyynnöistä helpommin luettavia ja ne pysyvät samoina eri ympäristöissä.

ParametriHyväksyyEsimerkkialiasit
orgOrganisaatio‑ID tai aliasaspose, groupdocs
directoryHakemisto (projektiryhmä) ID tai aliasaspose-imaging, groupdocs-annotation
projectProjekti‑ID tai aliasaspose-imaging-net, groupdocs-annotation-java

Esimerkiksi seuraavat kaksi pyyntöä ovat ekvivalentteja:

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"

Huom: Aliakset eivät ole tuettuja id‑parametrille massalatauspisteissä. Anna hakemiston tai projektin UUID GET /security/report/project-files‑ ja GET /security/report/directory-files‑päätepisteille.

Perus‑URL#

Kaikki REST‑API‑päätepisteet sijaitsevat seuraavan perus‑URL:n alla:

https://api.procurize.com

SonarQube‑raporttien REST‑API#

Listaa raportit#

Palauttaa valitun laajuuden ja version saatavilla olevat turvallisuusraportit ilman niiden tiedostosisältöä. Käytä tätä päätepistettä löytääksesi raportti‑ID:t, jotka voidaan antaa latauspisteille.

Päätepiste

GET /security/report/list

Kyselyparametrit

  • org (valinnainen): Organisaatio‑ID tai alias (esim. aspose tai groupdocs). Laajin laajuus.
  • directory (valinnainen): Hakemisto (projektiryhmä) ID tai alias (esim. aspose-imaging tai groupdocs-annotation). Kapeampi laajuus.
  • project (valinnainen): Projektin ID tai alias (esim. aspose-imaging-net tai groupdocs-annotation-java). Kapein laajuus.
  • version (valinnainen): Tarkka projektin versio.
  • minver (valinnainen): Minimiprojektin versio.
  • maxver (valinnainen): Maksimiprojektin versio.

Vähintään yksi laajuusparametreista org, directory tai project on pakollinen. Laajuudet priorisoidaan seuraavasti: jos project on annettu, haetaan vain kyseinen projekti; muuten, jos directory on annettu, haetaan koko projektiryhmä; muuten haetaan koko organisaatio (org). Jos org annetaan yhdessä project‑ tai directory‑parametrin kanssa, kohde tarkistetaan myös kuuluvaksi kyseiseen organisaatioon.

Vähintään yksi parametreista version, minver tai maxver on pakollinen. Jos version on annettu, minver‑ ja maxver‑parametrit ohitetaan.

Pyyntöesimerkki

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

Laajuus projektiryhmään tai projektiin aliaksen avulla:

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"

Vastausesimerkki

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

Vastauskentät

  • organizationId: Organisaatio, johon raportit kuuluvat.
  • reports[].id: Yksilöllinen raportti‑ID. Anna tämä arvo latauspisteille.
  • reports[].projectName: Tuotteen näyttönimi.
  • reports[].projectVersion: Tuotteen versio.
  • reports[].reportType: Raportin tyyppi (OWASP Top 10 tai CWE Top 25).
  • reports[].reportVersion: Raporttistandardin versio (vuosi).
  • reports[].date: Raportin luontipäivä.
  • reports[].uploadDate: Raportin latauspäivä Procurize‑alustalle.
  • reports[].vulnerabilitiesCount: Havaittujen haavoittuvuuksien määrä.
  • reports[].securityRating: Kokonaisarvio (A–E, jossa A on paras).

Lataa raportit ID:n perusteella#

Lataa ZIP‑arkisto, joka sisältää valitut raportit. Jokainen raportti sisältyy sekä HTML‑ että PDF‑muodossa.

Päätepiste

GET /security/report/files

Kyselyparametrit

  • org (pakollinen): Organisaatio‑ID tai alias (esim. aspose tai groupdocs).
  • reports (pakollinen): Ladataan sisällytettävät raportti‑ID:t. Toista parametri useiden raporttien lisäämiseksi.

Pyyntöesimerkki

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

Vastaus

  • Content-Type: application/zip
  • Vastausrunko sisältää binäärisen ZIP‑tiedoston.

Asiakkaiden tulisi suoratoistaa vastaus ja tallentaa se levylle.

Työskentely yhden raportin kanssa#

/security/report/html, /security/report/pdf ja /security/report/zip -päätepisteet palauttavat yhden tietyn raportin ja noudattavat samoja valintasääntöjä.

Raportin valinta#

Raportin tyyppi ja versio ovat aina pakollisia:

  • rt (pakollinen): Raportin tyyppi. Tuetut arvot ovat OWASP Top 10 ja CWE Top 25.
  • rv (pakollinen): Raportin versio — standardin julkaisuvuosi, esim. 2025 OWASP Top 10:lle tai 2024 CWE Top 25:lle.

Itse raportti valitaan kahdella tavalla:

  • Raportti‑ID:n perusteella — anna id (raportti‑ID) yhdessä joko project (projektin ID tai alias) tai org (organisaation ID tai alias) kanssa. Älä anna version‑parametria tässä tilassa.
  • Projektin version perusteella — anna project (projektin ID tai alias, esim. aspose-imaging-net tai groupdocs-annotation-java) ja version (projektin versio). org‑parametria ei käytetä tässä tilassa.

Kun sekä project että org on annettu, org ohitetaan.

Hae raportti HTML‑muodossa#

Renderöi yksi raportti HTML‑sivuna tai palauttaa sen ladattavana HTML‑tiedostona.

Päätepiste

GET /security/report/html

Kyselyparametrit

  • rt (pakollinen): Raportin tyyppi.
  • rv (pakollinen): Raportin versio.
  • Raportin valintaparametrit: katso Raportin valinta.
  • download (valinnainen): Aseta true, jos haluat HTML:n tiedostolatauksena (Content-Disposition: attachment). Jos jätetään pois tai on false, raportti palautetaan sisällönä.

Pyyntöesimerkki

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

Lataa HTML‑tiedosto renderöinnin sijaan:

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

Vastaus

  • Content-Type: text/html

Hae raportti PDF‑muodossa#

Palauttaa yhden raportin PDF‑dokumenttina.

Päätepiste

GET /security/report/pdf

Kyselyparametrit

  • rt (pakollinen): Raportin tyyppi.
  • rv (pakollinen): Raportin versio.
  • Raportin valintaparametrit: katso Raportin valinta.

Pyyntöesimerkki

curl "https://api.procurize.com/security/report/pdf?rt=CWE+Top+25&rv=2024&project=aspose-imaging-net&version=1.0" -o report.pdf

Vastaus

  • Content-Type: application/pdf

Hae raportti ZIP‑muodossa#

Palauttaa yhden raportin ZIP‑arkistona, joka sisältää sekä HTML‑ että PDF‑versiot.

Päätepiste

GET /security/report/zip

Kyselyparametrit

  • rt (pakollinen): Raportin tyyppi.
  • rv (pakollinen): Raportin versio.
  • Raportin valintaparametrit: katso Raportin valinta.

Pyyntöesimerkki

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

Vastaus

  • Content-Type: application/zip

Lataa kaikki raportit projektista#

Lataa ZIP‑arkisto, joka sisältää kaikki määritetyn projektin raportit sekä HTML‑ että PDF‑muodoissa.

Päätepiste

GET /security/report/project-files

Kyselyparametrit

  • id (pakollinen): Projektin ID. Aliakset eivät ole tuettuja; anna projektin UUID.
  • rt (valinnainen): Suodata raporttityypin mukaan. Tuetut arvot ovat OWASP Top 10 ja CWE Top 25.
  • rv (valinnainen): Suodata raporttiversion (vuoden) mukaan.
  • version (valinnainen): Suodata projektin version mukaan.

Jos suodattimia ei ole määritetty, kaikki projektin raportit sisällytetään. Suodatinparametreja voi yhdistellä, ja ne vaikuttavat itsenäisesti.

Pyyntöesimerkki

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

Vastaus

  • Content-Type: application/zip

Lataa kaikki raportit projektiryhmästä#

Lataa ZIP‑arkisto, joka sisältää kaikki määritetyn hakemiston (projektiryhmän) projektien raportit sekä HTML‑ että PDF‑muodoissa.

Päätepiste

GET /security/report/directory-files

Kyselyparametrit

  • id (pakollinen): Hakemiston (projektiryhmän) ID. Aliakset eivät ole tuettuja; anna hakemiston UUID.
  • rt (valinnainen): Suodata raporttityypin mukaan. Tuetut arvot ovat OWASP Top 10 ja CWE Top 25.
  • rv (valinnainen): Suodata raporttiversion (vuoden) mukaan.
  • version (valinnainen): Suodata projektin version mukaan.

Jos suodattimia ei ole määritetty, kaikki hakemiston projektien raportit sisällytetään. Suodatinparametreja voi yhdistellä, ja ne vaikuttavat itsenäisesti.

Pyyntöesimerkki

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

Vastaus

  • Content-Type: application/zip

Hae raportit SonarQubesta#

Lataa uusimmat turvallisuusraporttien tiedot tuotteelle SonarQube‑palvelusta Procurize‑alustalle. Palvelu hakee uusimmat ongelmatiedot SonarQubesta, muuntaa ne JSON‑esityksiksi uusimmista OWASP Top 10‑ ja CWE Top 25 raporteista ja palauttaa ne vastauksessa.

Päätepiste

POST /security/reports/fetch

Tunnistautuminen

Tämä päätepiste vaatii API‑avaimen, joka annetaan X-API-Key‑otsikossa. Lisätietoja avainten luomisesta ja käytöstä löydät API‑avaimet.

Kyselyparametrit

SonarQube‑lähde valitaan kahdella tavalla:

  • Projektin perusteella — anna project (projektin ID tai alias — katso Tunnisteet ja aliakset). Älä anna url‑ tai key‑parametreja.
  • SonarQube‑palvelun perusteella — anna url (SonarQube‑palvelun URL) ja key (SonarQube‑projektin avain) yhdessä. Älä anna project‑parametria.

Pyyntöesimerkki

Hae raportti projektin aliaksen perusteella:

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

Hae raportti suoraan SonarQube‑palvelusta:

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"

Vastausesimerkki

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

Vastaus on hyödyllinen julkaisuputkistoissa, jotta voidaan päättää, keskeytetäänkö build, jos haavoittuvuuksia havaitaan julkisissa turvallisuusraporttimuodoissa.

Huomautuksia

  • Raportin lataaminen edellyttää henkilökohtaista oikeutta tuotteen, johon raportit kuuluvat, hallintaan. Jos sinulla ei ole tätä oikeutta, lähetä pyyntö silti: alusta palauttaa 403 Forbidden ja ilmoittaa automaattisesti alustan ylläpitäjille, jotka tarkistavat pyynnön ja ilmoittavat sinulle päätöksestä.
  • Kaikki SonarQube‑palvelut eivät välttämättä ole rekisteröityinä Procurize‑alustalle. Uuden palvelun rekisteröimiseksi ota yhteys alustan ylläpitäjään; palvelulle vaaditaan ylläpitäjän avain.

Virheenkäsittely#

API käyttää standardeja HTTP‑statuskoodeja.

  • 200 OK: Pyyntö onnistui
  • 204 No Content: Raporttia ei ole
  • 400 Bad Request: Virheelliset parametrit tai virheellinen pyyntö
  • 401 Unauthorized: Puuttuva tai virheellinen API‑avain
  • 403 Forbidden: Pääsy evätty (esim. puuttuva oikeus tuotteeseen)
  • 500 Internal Server Error: Odottamaton palvelinvirhe

Virhevastaukset sisältävät koneellisesti luettavan virhekoodin ja ihmisen luettavan viestin.

Katso myös:#

Liittyvät artikkelit#

Mitkä ovat turvallisuusraportit?

Turvallisuusraporttien arkisto

Miten määrittää turvallisuusraportit

Ylös
Valitse kieli