API Rapoarte SonarQube#
Acest articol descrie cum să accesați programatic rapoartele de securitate SonarQube stocate pe platforma Procurize. Acoperă API-ul REST pentru listarea rapoartelor și descărcarea lor în formatele HTML, PDF și ZIP.
Prezentare generală#
Submodulul SonarQube Reports permite organizațiilor să stocheze și să gestioneze centralizat rapoartele de securitate și calitate a codului generate de SonarQube. Platforma Procurize expune aceste date printr-un API REST public care vă permite să:
- Listați metadatele rapoartelor pentru o organizație, un grup de proiecte sau un proiect
- Descărcați un singur raport în format HTML, PDF sau ZIP
- Descărcați rapoarte selectate ca arhivă ZIP
- Descărcați toate rapoartele unui proiect sau ale unui grup de proiecte ca arhivă ZIP
- Preluați cele mai recente rapoarte OWASP Top 10 și CWE Top 25 direct dintr-un serviciu SonarQube
Aceste capabilități permit integrarea cu pipeline‑uri CI/CD, sisteme GRC, tablouri de bord interne și instrumente terțe de management al riscurilor.
Puncte finale#
| Punct final | Metodă | Scop |
|---|---|---|
/security/report/list | GET | Listează metadatele rapoartelor pentru domeniul și versiunea selectate. |
/security/report/files | GET | Descarcă rapoartele selectate ca arhivă ZIP. |
/security/report/html | GET | Obține un singur raport în format HTML. |
/security/report/pdf | GET | Obține un singur raport în format PDF. |
/security/report/zip | GET | Obține un singur raport ca arhivă ZIP. |
/security/report/project-files | GET | Descarcă toate rapoartele unui proiect ca arhivă ZIP. |
/security/report/directory-files | GET | Descarcă toate rapoartele unui grup de proiecte (director) ca arhivă ZIP. |
/security/reports/fetch | POST | Preia cele mai recente rapoarte dintr-un serviciu SonarQube. |
Autentificare și autorizare#
Punctele finale de listare și descărcare a rapoartelor descrise în acest articol nu necesită autentificare.
Punctul final POST /security/reports/fetch necesită autentificare cu un token API — vezi API Tokens.
ID organizație#
Un identificator de organizație este necesar pentru majoritatea cererilor descrise aici. Puteți furniza fie ID‑ul organizației (un UUID), fie aliasul acesteia — vezi Identificatori și aliasuri.
Îl puteți găsi în panoul de setări al organizației la https://dashboard.procurize.ai.
Rețineți că accesul la panoul de setări necesită autorizare, iar accesul la panoul de setări al organizației necesită un rol de utilizator de cel puțin Administrator în acea organizație.

Identificatori și aliasuri#
Parametrii de domeniu acceptă fie ID‑ul entității (un UUID), fie un alias ușor de citit. Aliasurile fac cererile mai ușor de înțeles și sunt stabile între medii.
| Parametru | Acceptă | Aliasuri exemplu |
|---|---|---|
org | ID organizație sau alias | aspose, groupdocs |
directory | ID director (grup de proiecte) sau alias | aspose-imaging, groupdocs-annotation |
project | ID proiect sau alias | aspose-imaging-net, groupdocs-annotation-java |
De exemplu, următoarele două cereri sunt echivalente:
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"
Notă: Aliasurile nu sunt suportate pentru parametrul
idal punctelor finale de descărcare în bloc. Trebuie să furnizați UUID‑ul directorului sau al proiectului pentruGET /security/report/project-filesșiGET /security/report/directory-files.
URL de bază#
Toate punctele finale ale API‑ului REST sunt servite sub următorul URL de bază:
https://api.procurize.com
API REST Rapoarte SonarQube#
Listarea rapoartelor#
Returnează rapoartele de securitate disponibile pentru domeniul și versiunea selectate, fără conținutul fișierelor. Utilizați acest punct final pentru a descoperi ID‑urile rapoartelor care pot fi transmise punctelor finale de descărcare.
Endpoint
GET /security/report/list
Parametri de interogare
org(opțional): ID organizație sau alias (de exemplu,asposesaugroupdocs). Cel mai larg domeniu.directory(opțional): ID director (grup de proiecte) sau alias (de exemplu,aspose-imagingsaugroupdocs-annotation). Domeniu mai restrâns.project(opțional): ID proiect sau alias (de exemplu,aspose-imaging-netsaugroupdocs-annotation-java). Cel mai restrâns domeniu.version(opțional): Versiunea exactă a proiectului.minver(opțional): Versiunea minimă a proiectului.maxver(opțional): Versiunea maximă a proiectului.
Este necesar cel puțin unul dintre parametrii de domeniu org, directory sau project. Prioritatea este: dacă este specificat project, se caută doar acel proiect; altfel, dacă este specificat directory, se caută întreg grupul de proiecte; altfel, se caută întreaga organizație (org). Când org este specificat împreună cu project sau directory, ținta este validată suplimentar pentru a aparține acelei organizații.
Este necesar cel puțin unul dintre version, minver sau maxver. Dacă este specificat version, minver și maxver sunt ignorate.
Exemplu de cerere
curl "https://api.procurize.com/security/report/list?org=aspose&version=1.0"
Scoparea către un grup de proiecte sau un proiect prin alias:
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"
Exemplu de răspuns
{
"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"
}
]
}
Câmpuri din răspuns
organizationId: Organizația căreia îi aparțin rapoartele.reports[].id: ID unic al raportului. Transmiteți această valoare către punctele finale de descărcare.reports[].projectName: Numele afișat al produsului.reports[].projectVersion: Versiunea produsului.reports[].reportType: Tipul raportului (OWASP Top 10sauCWE Top 25).reports[].reportVersion: Versiunea (anul) standardului raportului.reports[].date: Data generării raportului.reports[].uploadDate: Data încărcării raportului în Procurize.reports[].vulnerabilitiesCount: Numărul de vulnerabilități găsite.reports[].securityRating: Evaluarea globală de securitate (A–E, undeAeste cea mai bună).
Descărcarea rapoartelor prin ID#
Descarcă o arhivă ZIP care conține rapoartele selectate. Fiecare raport este inclus atât în format HTML, cât și PDF.
Endpoint
GET /security/report/files
Parametri de interogare
org(obligatoriu): ID organizație sau alias (de exemplu,asposesaugroupdocs).reports(obligatoriu): ID‑urile rapoartelor de inclus. Repetați parametrul pentru a include mai multe rapoarte.
Exemplu de cerere
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
Răspuns
- Content-Type:
application/zip - Corpul răspunsului conține fișierul ZIP binar.
Clienții ar trebui să transmită fluxul răspunsului și să îl salveze pe disc.
Lucrul cu un singur raport#
Punctele finale /security/report/html, /security/report/pdf și /security/report/zip returnează un raport specific și împărtășesc aceleași reguli de selecție.
Selecția raportului#
Tipul și versiunea raportului sunt întotdeauna obligatorii:
rt(obligatoriu): Tipul raportului. Valorile suportate suntOWASP Top 10șiCWE Top 25.rv(obligatoriu): Versiunea raportului — anul ediției standardului, de exemplu2025pentru OWASP Top 10 sau2024pentru CWE Top 25.
Raportul exact este apoi selectat în una dintre cele două moduri:
- Prin ID raport — furnizați
id(ID raport) împreună cu fieproject(ID proiect sau alias), fieorg(ID organizație sau alias). Nu furnizațiversionîn acest mod. - Prin versiunea proiectului — furnizați
project(ID proiect sau alias, de exempluaspose-imaging-netsaugroupdocs-annotation-java) șiversion(versiunea proiectului). Parametrulorgnu este utilizat în acest mod.
Când project și org sunt ambele specificate, org este ignorat.
Obține raportul ca HTML#
Redă un singur raport ca pagină HTML sau îl returnează ca fișier HTML descărcabil.
Endpoint
GET /security/report/html
Parametri de interogare
rt(obligatoriu): Tipul raportului.rv(obligatoriu): Versiunea raportului.- Parametrii de selecție a raportului: vezi Selecția raportului.
download(opțional): Setează latruepentru a returna HTML‑ul ca descărcare de fișier (Content-Disposition: attachment). Dacă este omis saufalse, raportul este returnat inline.
Exemplu de cerere
curl "https://api.procurize.com/security/report/html?rt=OWASP+Top+10&rv=2025&id=00000000-0000-0000-0000-000000000004&project=aspose-imaging-net"
Pentru a descărca fișierul HTML în loc să fie redat inline:
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
Răspuns
- Content-Type:
text/html
Obține raportul ca PDF#
Returnează un singur raport ca document PDF.
Endpoint
GET /security/report/pdf
Parametri de interogare
rt(obligatoriu): Tipul raportului.rv(obligatoriu): Versiunea raportului.- Parametrii de selecție a raportului: vezi Selecția raportului.
Exemplu de cerere
curl "https://api.procurize.com/security/report/pdf?rt=CWE+Top+25&rv=2024&project=aspose-imaging-net&version=1.0" -o report.pdf
Răspuns
- Content-Type:
application/pdf
Obține raportul ca ZIP#
Returnează un singur raport ca arhivă ZIP care conține atât versiunea HTML, cât și cea PDF.
Endpoint
GET /security/report/zip
Parametri de interogare
rt(obligatoriu): Tipul raportului.rv(obligatoriu): Versiunea raportului.- Parametrii de selecție a raportului: vezi Selecția raportului.
Exemplu de cerere
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
Răspuns
- Content-Type:
application/zip
Descărcarea tuturor rapoartelor unui proiect#
Descarcă o arhivă ZIP care conține toate rapoartele proiectului specificat, în formatele HTML și PDF.
Endpoint
GET /security/report/project-files
Parametri de interogare
id(obligatoriu): ID proiect. Aliasurile nu sunt suportate; furnizați UUID‑ul proiectului.rt(opțional): Filtrează după tipul raportului. Valorile suportate suntOWASP Top 10șiCWE Top 25.rv(opțional): Filtrează după versiunea raportului (anul).version(opțional): Filtrează după versiunea proiectului.
Dacă nu sunt specificate filtre, toate rapoartele proiectului sunt incluse. Parametrii de filtrare pot fi combinați și sunt aplicați independent.
Exemplu de cerere
curl "https://api.procurize.com/security/report/project-files?id=00000000-0000-0000-0000-000000000005" -o project-reports.zip
Răspuns
- Content-Type:
application/zip
Descărcarea tuturor rapoartelor unui grup de proiecte#
Descarcă o arhivă ZIP care conține rapoartele tuturor proiectelor din directorul (grupul de proiecte) specificat, în formatele HTML și PDF.
Endpoint
GET /security/report/directory-files
Parametri de interogare
id(obligatoriu): ID director (grup de proiecte). Aliasurile nu sunt suportate; furnizați UUID‑ul directorului.rt(opțional): Filtrează după tipul raportului. Valorile suportate suntOWASP Top 10șiCWE Top 25.rv(opțional): Filtrează după versiunea raportului (anul).version(opțional): Filtrează după versiunea proiectului.
Dacă nu sunt specificate filtre, rapoartele tuturor proiectelor din director sunt incluse. Parametrii de filtrare pot fi combinați și sunt aplicați independent.
Exemplu de cerere
curl "https://api.procurize.com/security/report/directory-files?id=00000000-0000-0000-0000-000000000006" -o directory-reports.zip
Răspuns
- Content-Type:
application/zip
Preluarea rapoartelor din SonarQube#
Încarcă cele mai recente date de raport de securitate pentru un produs dintr-un serviciu SonarQube în Procurize. Serviciul preia ultimele date de issue din SonarQube, le convertește în reprezentări JSON ale celor mai noi versiuni ale rapoartelor OWASP Top 10 și CWE Top 25 și le returnează în răspuns.
Endpoint
POST /security/reports/fetch
Autentificare
Acest punct final necesită un token API, transmis în antetul X-API-Key. Pentru detalii despre generarea și utilizarea token‑urilor, vezi API Tokens.
Parametri de interogare
Sursa SonarQube este selectată în una dintre cele două moduri:
- Prin proiect — furnizați
project(ID proiect sau alias — vezi Identificatori și aliasuri). Nu furnizațiurlsaukey. - Prin serviciu SonarQube — furnizați
url(URL serviciu SonarQube) șikey(cheia proiectului SonarQube) împreună. Nu furnizațiproject.
Exemplu de cerere
Preluarea raportului pentru un proiect prin alias:
curl -X POST "https://api.procurize.com/security/reports/fetch?project=aspose-imaging-net" \
-H "X-API-Key: YOUR_API_TOKEN"
Preluarea raportului direct dintr-un serviciu 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"
Exemplu de răspuns
{
"Owasp10_2025": {
"TOTAL_SECURITY_RATING": "A",
"TOTAL_COUNT": 0,
...
},
"Cwe25_2025": {
"TOTAL_SECURITY_RATING": "A",
"TOTAL_COUNT": 0,
...
}
}
Răspunsul este util în pipeline‑urile de construire pentru a decide dacă se oprește o construcție atunci când vulnerabilitățile sunt detectate în formatele publice de rapoarte de securitate.
Observații
- Încărcarea unui raport necesită permisiune personală pentru produsul căruia îi aparțin rapoartele. Dacă nu aveți această permisiune, trimiteți totuși cererea: platforma va returna
403 Forbiddenși va notifica automat administratorii platformei, care vor revizui cererea și vă vor comunica decizia. - Nu toate serviciile SonarQube pot fi înregistrate pe platforma Procurize. Pentru a înregistra un nou serviciu, contactați administratorul platformei; este necesar un token de administrator pentru acel serviciu.
Gestionarea erorilor#
API‑ul folosește coduri de stare HTTP standard.
200 OK: Cerere cu succes204 No Content: Raportul nu există400 Bad Request: Parametri invalizi sau cerere malformată401 Unauthorized: Lipsește sau este invalid token‑ul API403 Forbidden: Acces refuzat (de exemplu, lipsă permisiune pentru produs)500 Internal Server Error: Eroare neașteptată a serverului
Răspunsurile de eroare includ un cod de eroare mașină și un mesaj pentru oameni.
Vezi și:#
Articole conexe#
Ce sunt rapoartele de securitate?
