API pro zprávy SonarQube#

Tento článek popisuje, jak programaticky přistupovat k bezpečnostním zprávám SonarQube uloženým na platformě Procurize. Pokrývá REST API pro výpis zpráv a jejich stahování ve formátech HTML, PDF a ZIP.

Přehled#

Modul SonarQube Reports umožňuje organizacím centrálně ukládat a spravovat bezpečnostní a kvalitativní zprávy generované SonarQube. Platforma Procurize vystavuje tato data prostřednictvím veřejného REST API, které umožňuje:

  • Vypsat metadata zpráv pro organizaci, skupinu projektů nebo konkrétní projekt
  • Stáhnout jednu zprávu ve formátu HTML, PDF nebo ZIP
  • Stáhnout vybrané zprávy jako ZIP archiv
  • Stáhnout všechny zprávy projektu nebo skupiny projektů jako ZIP archiv
  • Načíst nejnovější zprávy OWASP Top 10 a CWE Top 25 přímo ze služby SonarQube

Tyto možnosti umožňují integraci s CI/CD pipeline, GRC systémy, interními dashboardy a nástroji pro řízení rizik třetích stran.

Koncové body#

Koncový bodMetodaÚčel
/security/report/listGETVypsat metadata zpráv pro vybraný rozsah a verzi.
/security/report/filesGETStáhnout vybrané zprávy jako ZIP archiv.
/security/report/htmlGETZískat jednu zprávu jako HTML.
/security/report/pdfGETZískat jednu zprávu jako PDF.
/security/report/zipGETZískat jednu zprávu jako ZIP archiv.
/security/report/project-filesGETStáhnout všechny zprávy projektu jako ZIP archiv.
/security/report/directory-filesGETStáhnout všechny zprávy skupiny projektů (adresáře) jako ZIP archiv.
/security/reports/fetchPOSTNačíst nejnovější zprávy ze služby SonarQube.

Autentizace a autorizace#

Koncové body pro výpis a stahování zpráv popsané v tomto článku nevyžadují autentizaci.

Koncový bod POST /security/reports/fetch vyžaduje autentizaci pomocí API tokenu — viz API Tokens.

ID organizace#

Identifikátor organizace je vyžadován pro většinu požadavků zde popsaných. Můžete předat buď ID organizace (UUID), nebo její alias — viz Identifikátory a aliasy.
Najdete jej v panelu nastavení organizace na https://dashboard.procurize.ai.
Upozorňujeme, že přístup k panelu nastavení vyžaduje oprávnění a přístup k panelu nastavení organizace vyžaduje uživatelskou roli alespoň Administrátor v dané organizaci.

Tlačítko Kopírovat ID

Identifikátory a aliasy#

Parametry rozsahu akceptují buď ID entity (UUID), nebo čitelný alias. Alias usnadňuje čitelnost požadavků a je stabilní napříč prostředími.

ParametrPřijímáPříklad aliasů
orgID organizace nebo aliasaspose, groupdocs
directoryID adresáře (skupiny projektů) nebo aliasaspose-imaging, groupdocs-annotation
projectID projektu nebo aliasaspose-imaging-net, groupdocs-annotation-java

Například následující dva požadavky jsou ekvivalentní:

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"

Poznámka: Alias není podporován pro parametr id u koncových bodů pro hromadné stahování. Předávejte UUID adresáře nebo projektu do GET /security/report/project-files a GET /security/report/directory-files.

Základní URL#

Všechny koncové body REST API jsou dostupné pod následující základní URL:

https://api.procurize.com

REST API pro zprávy SonarQube#

Vypsání zpráv#

Vrací bezpečnostní zprávy dostupné pro vybraný rozsah a verzi, bez jejich souborového obsahu. Použijte tento koncový bod k získání ID zpráv, která lze předat ke stažení.

Koncový bod

GET /security/report/list

Parametry dotazu

  • org (volitelné): ID organizace nebo alias (např. aspose nebo groupdocs). Nejširší rozsah.
  • directory (volitelné): ID adresáře (skupiny projektů) nebo alias (např. aspose-imaging nebo groupdocs-annotation). Užší rozsah.
  • project (volitelné): ID projektu nebo alias (např. aspose-imaging-net nebo groupdocs-annotation-java). Nejužší rozsah.
  • version (volitelné): Přesná verze projektu.
  • minver (volitelné): Minimální verze projektu.
  • maxver (volitelné): Maximální verze projektu.

Je vyžadován alespoň jeden z parametrů rozsahu org, directory nebo project. Priorita je následující: pokud je zadán project, hledá se jen tento projekt; jinak, pokud je zadán directory, hledá se celá skupina projektů; jinak se hledá celá organizace (org). Když je org zadáno společně s project nebo directory, cíl je navíc ověřen, že patří do dané organizace.

Je vyžadován alespoň jeden z parametrů version, minver nebo maxver. Pokud je zadán version, parametry minver a maxver se ignorují.

Příklad požadavku

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

Rozsah na skupinu projektů nebo projekt podle aliasu:

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"

Příklad odpovědi

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

Pole odpovědi

  • organizationId: Organizace, ke které zprávy patří.
  • reports[].id: Jedinečné ID zprávy. Předávejte tuto hodnotu ke koncovým bodům pro stažení.
  • reports[].projectName: Zobrazovaný název produktu.
  • reports[].projectVersion: Verze produktu.
  • reports[].reportType: Typ zprávy (OWASP Top 10 nebo CWE Top 25).
  • reports[].reportVersion: Verze (rok) standardu zprávy.
  • reports[].date: Datum vytvoření zprávy.
  • reports[].uploadDate: Datum nahrání zprávy do Procurize.
  • reports[].vulnerabilitiesCount: Počet nalezených zranitelností.
  • reports[].securityRating: Celkové hodnocení zabezpečení (A–E, kde A je nejlepší).

Stažení zpráv podle ID#

Stáhne ZIP archiv obsahující vybrané zprávy. Každá zpráva je zahrnuta ve formátech HTML i PDF.

Koncový bod

GET /security/report/files

Parametry dotazu

  • org (povinné): ID organizace nebo alias (např. aspose nebo groupdocs).
  • reports (povinné): ID zpráv, které mají být zahrnuty. Parametr lze opakovat pro více zpráv.

Příklad požadavku

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

Odpověď

  • Content-Type: application/zip
  • Tělo odpovědi obsahuje binární ZIP soubor.

Klienti by měli streamovat odpověď a uložit ji na disk.

Práce s jednou zprávou#

Koncové body /security/report/html, /security/report/pdf a /security/report/zip vrací konkrétní zprávu a sdílejí stejná pravidla výběru.

Výběr zprávy#

Typ a verze zprávy jsou vždy povinné:

  • rt (povinné): Typ zprávy. Podporované hodnoty jsou OWASP Top 10 a CWE Top 25.
  • rv (povinné): Verze zprávy — rok vydání standardu, např. 2025 pro OWASP Top 10 nebo 2024 pro CWE Top 25.

Konkrétní zpráva je pak vybrána jedním ze dvou způsobů:

  • Podle ID zprávy — předáte id (ID zprávy) spolu buď s project (ID nebo alias projektu) nebo org (ID nebo alias organizace). V tomto režimu nepředávejte version.
  • Podle verze projektu — předáte project (ID nebo alias projektu, např. aspose-imaging-net nebo groupdocs-annotation-java) a version (verze projektu). Parametr org se v tomto režimu nepoužívá.

Když jsou zadány oba parametry project i org, org se ignoruje.

Získání zprávy jako HTML#

Vykreslí jednu zprávu jako HTML stránku, nebo ji vrátí jako stahovatelný HTML soubor.

Koncový bod

GET /security/report/html

Parametry dotazu

  • rt (povinné): Typ zprávy.
  • rv (povinné): Verze zprávy.
  • Parametry výběru zprávy: viz Výběr zprávy.
  • download (volitelné): Nastavte na true, aby se HTML vrátilo jako soubor ke stažení (Content-Disposition: attachment). Pokud je vynecháno nebo false, zpráva se vrátí inline.

Příklad požadavku

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

Pro stažení HTML souboru místo inline vykreslení:

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

Odpověď

  • Content-Type: text/html

Získání zprávy jako PDF#

Vrací jednu zprávu jako PDF dokument.

Koncový bod

GET /security/report/pdf

Parametry dotazu

  • rt (povinné): Typ zprávy.
  • rv (povinné): Verze zprávy.
  • Parametry výběru zprávy: viz Výběr zprávy.

Příklad požadavku

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

Odpověď

  • Content-Type: application/pdf

Získání zprávy jako ZIP#

Vrací jednu zprávu jako ZIP archiv, který obsahuje jak HTML, tak PDF verze.

Koncový bod

GET /security/report/zip

Parametry dotazu

  • rt (povinné): Typ zprávy.
  • rv (povinné): Verze zprávy.
  • Parametry výběru zprávy: viz Výběr zprávy.

Příklad požadavku

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

Odpověď

  • Content-Type: application/zip

Stažení všech zpráv projektu#

Stáhne ZIP archiv obsahující všechny zprávy zadaného projektu, ve formátech HTML i PDF.

Koncový bod

GET /security/report/project-files

Parametry dotazu

  • id (povinné): ID projektu. Alias není podporován; předávejte UUID projektu.
  • rt (volitelné): Filtrace podle typu zprávy. Podporované hodnoty jsou OWASP Top 10 a CWE Top 25.
  • rv (volitelné): Filtrace podle verze zprávy (rok).
  • version (volitelné): Filtrace podle verze projektu.

Pokud nejsou zadány žádné filtry, zahrnou se všechny zprávy projektu. Filtrační parametry lze kombinovat a jsou aplikovány nezávisle.

Příklad požadavku

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

Odpověď

  • Content-Type: application/zip

Stažení všech zpráv skupiny projektů#

Stáhne ZIP archiv obsahující zprávy všech projektů v zadaném adresáři (skupině projektů), ve formátech HTML i PDF.

Koncový bod

GET /security/report/directory-files

Parametry dotazu

  • id (povinné): ID adresáře (skupiny projektů). Alias není podporován; předávejte UUID adresáře.
  • rt (volitelné): Filtrace podle typu zprávy. Podporované hodnoty jsou OWASP Top 10 a CWE Top 25.
  • rv (volitelné): Filtrace podle verze zprávy (rok).
  • version (volitelné): Filtrace podle verze projektu.

Pokud nejsou zadány žádné filtry, zahrnou se zprávy všech projektů v adresáři. Filtrační parametry lze kombinovat a jsou aplikovány nezávisle.

Příklad požadavku

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

Odpověď

  • Content-Type: application/zip

Načtení zpráv ze SonarQube#

Nahrává nejnovější data bezpečnostních zpráv pro produkt ze služby SonarQube do Procurize. Služba načte nejnovější data o problémech ze SonarQube, převede je do JSON reprezentací nejnovějších verzí OWASP Top 10 a CWE Top 25 zpráv a vrátí je v odpovědi.

Koncový bod

POST /security/reports/fetch

Autentizace

Tento koncový bod vyžaduje API token, předávaný v hlavičce X-API-Key. Podrobnosti o generování a používání tokenů najdete v API Tokens.

Parametry dotazu

Zdroj SonarQube se vybírá jedním ze dvou způsobů:

  • Podle projektu — předáte project (ID nebo alias projektu — viz Identifikátory a aliasy). Nepředávejte url ani key.
  • Podle služby SonarQube — předáte url (URL služby SonarQube) a key (klíč projektu v SonarQube) společně. Nepředávejte project.

Příklad požadavku

Načíst zprávu pro projekt podle jeho aliasu:

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

Načíst zprávu přímo ze služby SonarQube:

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"

Příklad odpovědi

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

Odpověď je užitečná v pipeline pro vydání, aby se rozhodlo, zda zastavit build při detekci zranitelností v veřejných formátech bezpečnostních zpráv.

Poznámky

  • Nahrání zprávy vyžaduje osobní oprávnění k produktu, ke kterému zprávy patří. Pokud toto oprávnění nemáte, požadavek přesto odešlete: platforma vrátí 403 Forbidden a automaticky upozorní administrátory platformy, kteří požadavek přezkoumají a informují vás o rozhodnutí.
  • Ne každá služba SonarQube může být registrována na platformě Procurize. Pro registraci nové služby kontaktujte svého administrátora platformy; je vyžadován administrátorský token pro tuto službu.

Zpracování chyb#

API používá standardní HTTP stavové kódy.

  • 200 OK: Požadavek úspěšný
  • 204 No Content: Zpráva neexistuje
  • 400 Bad Request: Neplatné parametry nebo špatně formátovaný požadavek
  • 401 Unauthorized: Chybějící nebo neplatný API token
  • 403 Forbidden: Přístup zamítnut (např. chybějící oprávnění k produktu)
  • 500 Internal Server Error: Neočekávaná chyba serveru

Chybové odpovědi obsahují strojově čitelný kód chyby a lidsky čitelnou zprávu.

Viz také:#

Související články#

Co jsou bezpečnostní zprávy?

Úložiště bezpečnostních zpráv

Jak konfigurovat bezpečnostní zprávy

nahoru
Vyberte jazyk