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äätepiste | Menetelmä | Tarkoitus |
|---|---|---|
/security/report/list | GET | Listaa raporttien metatiedot valitulle laajuudelle ja versiolle. |
/security/report/files | GET | Lataa valitut raportit ZIP‑arkistona. |
/security/report/html | GET | Hae yksi raportti HTML‑muodossa. |
/security/report/pdf | GET | Hae yksi raportti PDF‑muodossa. |
/security/report/zip | GET | Hae yksi raportti ZIP‑arkistona. |
/security/report/project-files | GET | Lataa kaikki projektin raportit ZIP‑arkistona. |
/security/report/directory-files | GET | Lataa kaikki projektiryhmän (hakemiston) raportit ZIP‑arkistona. |
/security/reports/fetch | POST | Hae 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.

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ä.
| Parametri | Hyväksyy | Esimerkkialiasit |
|---|---|---|
org | Organisaatio‑ID tai alias | aspose, groupdocs |
directory | Hakemisto (projektiryhmä) ID tai alias | aspose-imaging, groupdocs-annotation |
project | Projekti‑ID tai alias | aspose-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 UUIDGET /security/report/project-files‑ jaGET /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.asposetaigroupdocs). Laajin laajuus.directory(valinnainen): Hakemisto (projektiryhmä) ID tai alias (esim.aspose-imagingtaigroupdocs-annotation). Kapeampi laajuus.project(valinnainen): Projektin ID tai alias (esim.aspose-imaging-nettaigroupdocs-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 10taiCWE 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, jossaAon 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.asposetaigroupdocs).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 ovatOWASP Top 10jaCWE Top 25.rv(pakollinen): Raportin versio — standardin julkaisuvuosi, esim.2025OWASP Top 10:lle tai2024CWE Top 25:lle.
Itse raportti valitaan kahdella tavalla:
- Raportti‑ID:n perusteella — anna
id(raportti‑ID) yhdessä jokoproject(projektin ID tai alias) taiorg(organisaation ID tai alias) kanssa. Älä annaversion‑parametria tässä tilassa. - Projektin version perusteella — anna
project(projektin ID tai alias, esim.aspose-imaging-nettaigroupdocs-annotation-java) javersion(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): Asetatrue, jos haluat HTML:n tiedostolatauksena (Content-Disposition: attachment). Jos jätetään pois tai onfalse, 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 ovatOWASP Top 10jaCWE 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 ovatOWASP Top 10jaCWE 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ä annaurl‑ taikey‑parametreja. - SonarQube‑palvelun perusteella — anna
url(SonarQube‑palvelun URL) jakey(SonarQube‑projektin avain) yhdessä. Älä annaproject‑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 Forbiddenja 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ö onnistui204 No Content: Raporttia ei ole400 Bad Request: Virheelliset parametrit tai virheellinen pyyntö401 Unauthorized: Puuttuva tai virheellinen API‑avain403 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?
