SonarQube-raportit API ja Webhookit

Tämä artikkeli kuvaa, miten ohjelmallisesti päästä SonarQube‑turvallisuusraportteihin, jotka on tallennettu Procurize‑alustalle. Se kattaa REST‑API:n raporttien listaamiseen ja noutamiseen, raporttiarkistojen lataamiseen sekä webhook‑ilmoitusten tilaamiseen, kun uusia raportteja otetaan käyttöön.

Yleiskatsaus

SonarQube‑raporttien alimoduuli mahdollistaa organisaatioille turvallisuus- ja koodinlaatu­raporttien keskitetyn tallennuksen ja hallinnan, jotka on luotu SonarQuben avulla. Procurize‑alusta tarjoaa nämä tiedot seuraavan kautta:

  • REST‑API, jonka avulla voi hakea tallennettujen raporttien metatiedot
  • Päätepiste raportti‑artefaktien lataamiseen ZIP‑arkistoina
  • Webhookit lähes reaaliaikaisten ilmoitusten saamiseksi, kun uusia raportteja tulee saataville

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

Tunnistautuminen ja valtuutus

Kaikki tässä artikkelissa kuvatut API‑pyynnöt eivät vaadi autentikointia.

Organisaatio-ID

Organisaatio‑ID on pakollinen kaikissa tässä kuvatuissa pyynnöissä. Löydät sen organisaation asetuspaneelista osoitteessa https://dashboard.procurize.ai.
Huomaa, että asetuspaneeliin pääsy vaatii valtuutuksen, ja organisaation asetuspaneeliin pääsee käyttäjäroolilla, jonka taso on vähintään Administrator kyseisessä organisaatiossa.

Kopioi ID -painike

Perus-URL

Kaikki REST‑API‑päätepisteet ovat käytettävissä seuraavan perus‑URL:n alla:

https://api.procurize.com

SonarQube-raporttien REST API

Listaa raportit

Palauttaa sivutetun luettelon SonarQube‑turvallisuusraporteista, jotka on tallennettu alustalle.

Endpoint

GET /security/report/list

Kyselyparametrit

  • org (pakollinen): Organisaatio‑ID.
  • version (valinnainen): Tuotteen tarkka versio Semantic Versioning -muodossa.
  • minver (valinnainen): Tuotteen minimiversio Semantic Versioning -muodossa.
  • maxver (valinnainen): Tuotteen maksimi­versio Semantic Versioning -muodossa.

Huomaa, että vähintään yksi parametreista version, minver tai maxver on pakollinen pyynnölle.

Request Example

curl "https://api.procurize.com/security/report/list?org=00000000-0000-0000-0000-000000000001&version=1.0"

Response Example

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

Lataa raporttiarkisto

Lataa ZIP‑arkisto, joka sisältää koko SonarQube‑raportin artefaktit. Arkisto sisältää HTML‑ ja PDF‑raportit.

Endpoint

GET /security/report/files
  • org (pakollinen): Organisaatio‑ID.
  • reports (pakollinen): Raportti‑ID‑taulukko.

Request Example

curl "https://api.procurize.com/security/report/files?org=00000000-0000-0000-0000-000000000001&reports=00000000-0000-0000-0000-000000000002&reports=00000000-0000-0000-0000-000000000003"

Response

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

Asiakkaiden tulisi suoratoistaa vastaus ja tallentaa se levylle.

Virheenkäsittely

API käyttää standardoituja HTTP‑statuskoodeja.

  • 200 OK: Pyyntö onnistui
  • 204 No Content: Raporttia ei ole olemassa
  • 400 Bad Request: Virheellisiä parametreja tai viallinen pyyntö
  • 500 Internal Server Error: Odottamaton palvelinvirhe

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

Webhookit

Procurizen webhookit mahdollistavat ulkoisille järjestelmille ilmoitusten vastaanottamisen, kun uusia SonarQube‑raportteja otetaan käyttöön tai niitä päivitetään.

Webhookien määritys

Webhookeja voidaan lisätä tai muokata organisaation asetuspaneelista, Security reports -osiossa osoitteessa https://dashboard.procurize.ai.
Huomaa, että asetuspaneeliin pääsy vaatii valtuutuksen, ja organisaation asetuspaneeliin pääsee käyttäjäroolilla, jonka taso on vähintään Administrator kyseisessä organisaatiossa.

Webhook-editori

Webhookien tarkistamiseen voit käyttää suosittuja online‑palveluita, kuten https://webhook-test.com

Webhook-payload

Webhook‑tapahtumat toimitetaan HTTP POST -pyyntönä JSON‑payloadina.

Esimerkkipayload

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

Webhook-turvallisuus

Autentikoinnin varmistamiseksi webhook‑pyynnöt sisältävät allekirjoitusotsikon, joka on luotu jaetulla salaisuudella.

  • Allekirjoitus lasketaan käyttäen HMAC‑SHA256‑algoritmia
  • Asiakkaiden tulee vahvistaa allekirjoitus ennen payloadin käsittelyä

Tämä estää luvattomat tai väärennetyt webhook‑toimitukset.

Toimitus ja uudelleenyrittäminen

  • Webhookeilla odotetaan 2xx‑vastausta, jotta toimitus katsotaan onnistuneeksi
  • Epäonnistuneet toimitukset yritetään automaattisesti uudelleen tunnin välein.
  • Tapahtumia voidaan toimittaa useammin kuin kerran; vastaanottajien tulee toteuttaa idempotentti käsittely

Tyypilliset käyttötapaukset

  • Automaattinen SonarQube‑löytöjen syöttäminen sisäisiin turvallisuus‑koontinäyttöihin
  • Laadunvalvontatyönkulkujen käynnistäminen, kun laatuportit epäonnistuvat
  • Raporttien arkistointi auditointeja ja toimittajariskien tarkastuksia varten
  • Kolmannen osapuolen järjestelmien synkronointi viimeisimpään koodin turvallisuusasemaan
Ylös
Valitse kieli