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ý bod | Metoda | Účel |
|---|---|---|
/security/report/list | GET | Vypsat metadata zpráv pro vybraný rozsah a verzi. |
/security/report/files | GET | Stáhnout vybrané zprávy jako ZIP archiv. |
/security/report/html | GET | Získat jednu zprávu jako HTML. |
/security/report/pdf | GET | Získat jednu zprávu jako PDF. |
/security/report/zip | GET | Získat jednu zprávu jako ZIP archiv. |
/security/report/project-files | GET | Stáhnout všechny zprávy projektu jako ZIP archiv. |
/security/report/directory-files | GET | Stáhnout všechny zprávy skupiny projektů (adresáře) jako ZIP archiv. |
/security/reports/fetch | POST | Načí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.

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.
| Parametr | Přijímá | Příklad aliasů |
|---|---|---|
org | ID organizace nebo alias | aspose, groupdocs |
directory | ID adresáře (skupiny projektů) nebo alias | aspose-imaging, groupdocs-annotation |
project | ID projektu nebo alias | aspose-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
idu koncových bodů pro hromadné stahování. Předávejte UUID adresáře nebo projektu doGET /security/report/project-filesaGET /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ř.asposenebogroupdocs). Nejširší rozsah.directory(volitelné): ID adresáře (skupiny projektů) nebo alias (např.aspose-imagingnebogroupdocs-annotation). Užší rozsah.project(volitelné): ID projektu nebo alias (např.aspose-imaging-netnebogroupdocs-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 10neboCWE 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, kdeAje 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ř.asposenebogroupdocs).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 jsouOWASP Top 10aCWE Top 25.rv(povinné): Verze zprávy — rok vydání standardu, např.2025pro OWASP Top 10 nebo2024pro 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ď sproject(ID nebo alias projektu) neboorg(ID nebo alias organizace). V tomto režimu nepředávejteversion. - Podle verze projektu — předáte
project(ID nebo alias projektu, např.aspose-imaging-netnebogroupdocs-annotation-java) aversion(verze projektu). Parametrorgse 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 natrue, aby se HTML vrátilo jako soubor ke stažení (Content-Disposition: attachment). Pokud je vynecháno nebofalse, 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 jsouOWASP Top 10aCWE 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 jsouOWASP Top 10aCWE 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ávejteurlanikey. - Podle služby SonarQube — předáte
url(URL služby SonarQube) akey(klíč projektu v SonarQube) společně. Nepředávejteproject.
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 Forbiddena 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 neexistuje400 Bad Request: Neplatné parametry nebo špatně formátovaný požadavek401 Unauthorized: Chybějící nebo neplatný API token403 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.
