SonarQube aruannete API#

See artikkel kirjeldab, kuidas programmiliselt pääseda Procurize platvormil salvestatud SonarQube turvaraportidele. See hõlmab REST API-d aruannete loetlemiseks ja nende allalaadimiseks HTML-, PDF- ja ZIP-vormingus.

Ülevaade#

SonarQube aruannete alammoodul võimaldab organisatsioonidel keskne salvestada ja hallata SonarQube’i genereeritud turva- ja koodikvaliteedi aruandeid. Procurize platvorm avaldab need andmed avaliku REST API kaudu, mis võimaldab teil:

  • Loetleda aruannete metaandmeid organisatsiooni, projektigrupi või projekti tasandil
  • Laadida üksik aruande HTML-, PDF- või ZIP-vormingus
  • Laadida valitud aruanded ZIP-arhiivina
  • Laadida kõik projekti või projektigrupi aruanded ZIP-arhiivina
  • Tuua otse SonarQube’i teenusest uusimad OWASP Top 10 ja CWE Top 25 aruanded

Need võimalused võimaldavad integratsioone CI/CD torujuhtmetega, GRC süsteemidega, sisemiste armatuurlaudadega ja kolmandate osapoolte riskijuhtimise tööriistadega.

Lõpppunktid#

LõpppunktMeetodEesmärk
/security/report/listGETLoetleb aruannete metaandmeid valitud ulatuse ja versiooni kohta.
/security/report/filesGETLaadib valitud aruanded ZIP-arhiivina.
/security/report/htmlGETTagastab üksiku aruande HTML-ina.
/security/report/pdfGETTagastab üksiku aruande PDF-ina.
/security/report/zipGETTagastab üksiku aruande ZIP-arhiivina.
/security/report/project-filesGETLaadib projekti kõik aruanded ZIP-arhiivina.
/security/report/directory-filesGETLaadib projektigrupi (kataloogi) kõik aruanded ZIP-arhiivina.
/security/reports/fetchPOSTToob uusimad aruanded SonarQube’i teenusest.

Autentimine ja autoriseerimine#

Selles artiklis kirjeldatud aruannete loetelu- ja allalaadimis-lõpppunktid ei nõua autentimist.

POST /security/reports/fetch lõppunkt nõuab autentimist API võtmega — vt API võtmed.

Organisatsiooni ID#

Enamikus siin kirjeldatud päringutes on vajalik organisatsiooni identifikaator. Võite anda kas organisatsiooni ID (UUID) või selle aliase — vt Identifikaatorid ja aliased. Leiate selle organisatsiooni seadete paneelist aadressil https://dashboard.procurize.ai. Pange tähele, et seadete paneelile juurdepääs nõuab volitust ning organisatsiooni seadete paneelile juurdepääs vajab vähemalt administraatori rolli selles organisatsioonis.

Kopeeri ID nupp

Identifikaatorid ja aliased#

Ulatusparameetrid aktsepteerivad kas üksuse ID (UUID) või inimloetavat aliast. Aliased muudavad päringud loetavamaks ja on keskkondade vahel stabiilsed.

ParameeterAktsepteeribNäidisalias
orgOrganisatsiooni ID või aliasaspose, groupdocs
directoryKataloogi (projektigrupi) ID või aliasaspose-imaging, groupdocs-annotation
projectProjekti ID või aliasaspose-imaging-net, groupdocs-annotation-java

Näiteks järgmised kaks päringut on ekvivalentne:

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"

Märkus: Aliaseid ei toetata id parameetri puhul massilise allalaadimise lõpppunktides. Passige kataloogi või projekti UUID GET /security/report/project-files ja GET /security/report/directory-files lõpppunktidele.

Baas-URL#

Kõik REST API lõpppunktid asuvad järgmise baasi all:

https://api.procurize.com

SonarQube aruannete REST API#

Aruannete loetelu#

Tagastab valitud ulatuse ja versiooni jaoks saadaval olevad turuaruanded, ilma nende failisisu. Kasutage seda lõpppunkti, et leida aruande ID-sid, mida saab edasi allalaadimis-lõpppunktidele edastada.

Lõpppunkt

GET /security/report/list

Päringu parameetrid

  • org (valikuline): Organisatsiooni ID või alias (nt aspose või groupdocs). Kõige laiem ulatus.
  • directory (valikuline): Kataloogi (projektigrupi) ID või alias (nt aspose-imaging või groupdocs-annotation). Kitsam ulatus.
  • project (valikuline): Projekti ID või alias (nt aspose-imaging-net või groupdocs-annotation-java). Kitsaim ulatus.
  • version (valikuline): Täpne projekti versioon.
  • minver (valikuline): Minimaalne projekti versioon.
  • maxver (valikuline): Maksimaalne projekti versioon.

Vähemalt üks ulatusparameetritest org, directory või project on kohustuslik. Ulatused prioriseeritakse järgmiselt: kui on määratud project, otsitakse ainult seda projekti; muul juhul, kui on määratud directory, otsitakse kogu projektigrupist; muul juhul otsitakse kogu organisatsioonist (org). Kui org on määratud koos project või directory parameetriga, kontrollitakse täiendavalt, et siht kuuluks antud organisatsiooni.

Vähemalt üks parameetritest version, minver või maxver on kohustuslik. Kui on määratud version, ignoreeritakse minver ja maxver.

Päringu näide

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

Ulatus projektigrupile või projektile aliasiga:

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"

Vastuse näide

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

Vastuse väljad

  • organizationId: Organisatsioon, millele aruanded kuuluvad.
  • reports[].id: Unikaalne aruande ID. Passige see väärtus allalaadimis-lõpppunktidele.
  • reports[].projectName: Toote kuvatav nimi.
  • reports[].projectVersion: Toote versioon.
  • reports[].reportType: Aruande tüüp (OWASP Top 10 või CWE Top 25).
  • reports[].reportVersion: Aruande standardi versioon (aasta).
  • reports[].date: Kuupäev, mil aruanne genereeriti.
  • reports[].uploadDate: Kuupäev, mil aruanne laaditi üles Procurize’ile.
  • reports[].vulnerabilitiesCount: Leitud haavatavuste arv.
  • reports[].securityRating: Üldine turvarating (A–E, kus A on parim).

Aruannete allalaadimine ID järgi#

Laadib ZIP-arhiivi, mis sisaldab valitud aruandeid. Iga aruanne on kaasatud nii HTML- kui PDF-vormingus.

Lõpppunkt

GET /security/report/files

Päringu parameetrid

  • org (kohustuslik): Organisatsiooni ID või alias (nt aspose või groupdocs).
  • reports (kohustuslik): Lisatavad aruande ID-d. Parameetrit võib korrata, et lisada mitu aruannet.

Päringu näide

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

Vastus

  • Sisu tüüp: application/zip
  • Vastuse keha sisaldab binaarset ZIP-faili.

Kliendid peaksid voogesitama vastuse ja salvestama selle kettale.

Ühe aruande töötlemine#

Lõppunktid /security/report/html, /security/report/pdf ja /security/report/zip tagastavad ühe konkreetse aruande ning jagavad samu valikureegleid.

Aruande valik#

Aruande tüüp ja versioon on alati nõutavad:

  • rt (kohustuslik): Aruande tüüp. Toetatud väärtused on OWASP Top 10 ja CWE Top 25.
  • rv (kohustuslik): Aruande versioon — standardi aasta, näiteks 2025 OWASP Top 10 või 2024 CWE Top 25.

Konkreetne aruanne valitakse seejärel ühe kahest viisist:

  • Aruande ID järgi — passige id (aruande ID) koos kas project (projekti ID või alias) või org (organisatsiooni ID või alias) parameetriga. Ärge passige version selles režiimis.
  • Projekti versiooni järgi — passige project (projekti ID või alias, nt aspose-imaging-net või groupdocs-annotation-java) ja version (projekti versioon). Parameetrit org selles režiimis ei kasutata.

Kui on määratud nii project kui ka org, ignoreeritakse org.

Hangi aruanne HTML-ina#

Renderdab ühe aruande HTML-leheküljena või tagastab selle allalaaditava HTML-failina.

Lõpppunkt

GET /security/report/html

Päringu parameetrid

  • rt (kohustuslik): Aruande tüüp.
  • rv (kohustuslik): Aruande versioon.
  • Aruande valiku parameetrid: vt Aruande valik.
  • download (valikuline): Määra true, et tagastada HTML failina (Content-Disposition: attachment). Kui parameeter on puudu või false, tagastatakse aruanne sisemiselt.

Päringu näide

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

HTML-faili allalaadimiseks, mitte sisemiselt renderdamiseks:

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

Vastus

  • Sisu tüüp: text/html

Hangi aruanne PDF-ina#

Tagastab ühe aruande PDF-dokumendina.

Lõpppunkt

GET /security/report/pdf

Päringu parameetrid

  • rt (kohustuslik): Aruande tüüp.
  • rv (kohustuslik): Aruande versioon.
  • Aruande valiku parameetrid: vt Aruande valik.

Päringu näide

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

Vastus

  • Sisu tüüp: application/pdf

Hangi aruanne ZIP-ina#

Tagastab ühe aruande ZIP-arhiivina, mis sisaldab nii HTML- kui PDF-versioone.

Lõpppunkt

GET /security/report/zip

Päringu parameetrid

  • rt (kohustuslik): Aruande tüüp.
  • rv (kohustuslik): Aruande versioon.
  • Aruande valiku parameetrid: vt Aruande valik.

Päringu näide

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

Vastus

  • Sisu tüüp: application/zip

Kõikide aruannete allalaadimine projektist#

Laadib ZIP-arhiivi, mis sisaldab kõiki määratud projekti aruandeid, nii HTML- kui PDF-vormingus.

Lõpppunkt

GET /security/report/project-files

Päringu parameetrid

  • id (kohustuslik): Projekti ID. Aliaseid ei toetata; passige projekti UUID.
  • rt (valikuline): Filtreeri aruande tüübi järgi. Toetatud väärtused on OWASP Top 10 ja CWE Top 25.
  • rv (valikuline): Filtreeri aruande versiooni (aasta) järgi.
  • version (valikuline): Filtreeri projekti versiooni järgi.

Kui filtreid ei ole määratud, kaasatakse projekti kõik aruanded. Filtreid saab kombineerida ja need rakendatakse sõltumatult.

Päringu näide

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

Vastus

  • Sisu tüüp: application/zip

Kõikide aruannete allalaadimine projektigrupist#

Laadib ZIP-arhiivi, mis sisaldab kõigi projektide aruandeid määratud kataloogis (projektigrupis), nii HTML- kui PDF-vormingus.

Lõpppunkt

GET /security/report/directory-files

Päringu parameetrid

  • id (kohustuslik): Kataloogi (projektigrupi) ID. Aliaseid ei toetata; passige kataloogi UUID.
  • rt (valikuline): Filtreeri aruande tüübi järgi. Toetatud väärtused on OWASP Top 10 ja CWE Top 25.
  • rv (valikuline): Filtreeri aruande versiooni (aasta) järgi.
  • version (valikuline): Filtreeri projekti versiooni järgi.

Kui filtreid ei ole määratud, kaasatakse kataloogi (projektigrupi) kõik aruanded. Filtreid saab kombineerida ja need rakendatakse sõltumatult.

Päringu näide

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

Vastus

  • Sisu tüüp: application/zip

Aruannete toomine SonarQube’ist#

Laadib SonarQube’i teenusest toote uusimad turuaruande andmed Procurize’ile. Teenus võtab SonarQube’ist uusimad probleemid, teisendab need JSON-representatsioonideks OWASP Top 10 ja CWE Top 25 aruannete uusimatest versioonidest ning tagastab need vastuses.

Lõpppunkt

POST /security/reports/fetch

Autentimine

See lõpppunkt nõuab API võtit, mis edastatakse päises X-API-Key. Võtmete loomise ja kasutamise üksikasjad on kirjeldatud API võtmed.

Päringu parameetrid

SonarQube’i allikas valitakse ühelt kahest viisist:

  • Projekti järgi — passige project (projekti ID või alias — vt Identifikaatorid ja aliased). Ärge passige url ega key.
  • SonarQube’i teenuse järgi — passige url (SonarQube’i teenuse URL) ja key (SonarQube’i projekti võti) koos. Ärge passige project.

Päringu näide

Tooge aruanne projekti aliasi järgi:

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

Tooge aruanne otse SonarQube’i teenusest:

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"

Vastuse näide

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

Vastus on kasulik vabastuse ehitusliinides, et otsustada, kas peatada ehitus, kui haavatavusi on tuvastatud avalikes turuaruande vormingutes.

Märkused

  • Aruande üleslaadimine nõuab isiklikku luba tootele, millele aruanded kuuluvad. Kui teil seda luba pole, saatke siiski päring: platvorm tagastab 403 Forbidden ja teavitab automaatselt platvormi administraatoreid, kes taotluse läbi vaatavad ja teavitavad teid otsusest.
  • Mitte iga SonarQube’i teenus ei pruugi olla registreeritud Procurize platvormil. Uue teenuse registreerimiseks võtke ühendust oma platvormi administraatoriga; selle teenuse jaoks on vajalik administraatori token.

Vigade käsitlemine#

API kasutab standardseid HTTP staatuskoode.

  • 200 OK: Päring edukas
  • 204 No Content: Aruannet ei eksisteeri
  • 400 Bad Request: Vigased parameetrid või valesti vormistatud päring
  • 401 Unauthorized: Puuduv või kehtetu API võti
  • 403 Forbidden: Juurdepääs keelatud (nt puudub luba tootele)
  • 500 Internal Server Error: Ootamatu serveri viga

Vigaste vastuste puhul on kaasatud masinloetav veakood ja inimloetav sõnum.

Vaata ka:#

Seotud artiklid#

Mis on turvaraportid?

Turvaraportite repositoorium

Kuidas konfigureerida turvaraporte

Üles
Vali keel