yaml
sitemap: changefreq: yearly priority: 0.5 type: docs group: “Pelaporan Keamanan” g_num: 2 o_num: 0 title: “API Laporan SonarQube & Webhook | Dokumentasi Pengembang Procurize” description: “Akses dan otomatisasi laporan keamanan SonarQube dengan REST API Procurize. Pelajari cara menampilkan daftar laporan, mengunduh arsip ZIP, dan menerima notifikasi webhook untuk temuan keamanan baru.” breadcrumb: “API Laporan SonarQube” index_title: “API Laporan SonarQube & Webhook” brief: “Dokumentasi ini menjelaskan cara menggunakan REST API Laporan SonarQube Procurize dan webhook untuk secara programatis mengambil metadata laporan keamanan, mengunduh arsip laporan lengkap, dan menerima notifikasi real-time ketika laporan SonarQube baru diimpor ke platform.”
# API Laporan SonarQube & Webhook
Artikel ini menjelaskan cara mengakses laporan keamanan SonarQube yang disimpan di platform Procurize secara programatis. Ini mencakup REST API untuk menampilkan dan mengambil laporan, mengunduh arsip laporan, serta berlangganan notifikasi webhook ketika laporan baru diimpor.
## Ringkasan
Submodul Laporan SonarQube memungkinkan organisasi untuk menyimpan dan mengelola laporan keamanan serta kualitas kode yang dihasilkan oleh SonarQube secara terpusat. Platform Procurize mengekspos data ini melalui:
* REST API untuk mengambil metadata tentang laporan yang disimpan
* Endpoint untuk mengunduh artefak laporan sebagai arsip ZIP
* Webhook untuk notifikasi hampir real‑time ketika laporan baru tersedia
Fitur‑fitur ini memungkinkan integrasi dengan pipeline CI/CD, sistem GRC, dasbor internal, dan alat manajemen risiko pihak ketiga.
## Autentikasi dan Otorisasi
Semua permintaan API yang dijelaskan dalam artikel ini tidak memerlukan autentikasi.
## ID Organisasi
ID organisasi diperlukan untuk semua permintaan yang dijelaskan di sini.
Anda dapat menemukan ID tersebut di **panel pengaturan** Organisasi pada https://dashboard.procurize.ai.
Harap dicatat bahwa akses ke panel pengaturan memerlukan otorisasi, dan akses ke panel pengaturan organisasi memerlukan peran pengguna setidaknya Administrator dalam organisasi tersebut.

## Base URL
Semua endpoint REST API tersedia pada basis URL berikut:
## REST API Laporan SonarQube
### Daftar Laporan
Mengembalikan daftar laporan keamanan SonarQube yang dipaginasikan dan disimpan di platform.
**Endpoint**
GET /security/report/list
**Parameter Kueri**
* `org` (wajib): ID Organisasi.
* `version` (opsional): Versi tepat produk dalam format Semantic Versioning.
* `minver` (opsional): Versi minimum produk dalam format Semantic Versioning.
* `maxver` (opsional): Versi maksimum produk dalam format Semantic Versioning.
Catatan: setidaknya satu dari parameter `version`, `minver`, atau `maxver` wajib disertakan pada permintaan.
**Contoh Permintaan**
```bash
curl "https://api.procurize.com/security/report/list?org=00000000-0000-0000-0000-000000000001&version=1.0"
Contoh Respons
{
"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"
}
]
}
Unduh Arsip Laporan
Mengunduh arsip ZIP yang berisi seluruh artefak laporan SonarQube, termasuk laporan HTML dan PDF.
Endpoint
GET /security/report/files
org(wajib): ID Organisasi.reports(wajib): Array ID laporan.
Contoh Permintaan
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"
Respons
- Content-Type:
application/zip - Badan respons berisi file ZIP biner
Klien harus men-stream respons dan menyimpannya ke disk.
Penanganan Kesalahan
API menggunakan kode status HTTP standar.
200 OK: Permintaan berhasil204 No Content: Laporan tidak ada400 Bad Request: Parameter tidak valid atau permintaan buruk formatnya500 Internal Server Error: Kesalahan server yang tidak terduga
Respons kesalahan menyertakan kode error yang dapat dibaca mesin serta pesan yang dapat dibaca manusia.
Webhook
Webhook Procurize memungkinkan sistem eksternal menerima notifikasi ketika laporan SonarQube baru diimpor atau diperbarui.
Mengonfigurasi Webhook
Webhook dapat ditambahkan atau disunting di panel pengaturan Organisasi, bagian Laporan Keamanan pada https://dashboard.procurize.ai.
Harap dicatat bahwa akses ke panel pengaturan memerlukan otorisasi, dan akses ke panel pengaturan organisasi memerlukan peran pengguna setidaknya Administrator dalam organisasi tersebut.

Untuk menguji webhook, Anda dapat menggunakan layanan daring populer seperti https://webhook-test.com
Payload Webhook
Peristiwa webhook dikirim sebagai permintaan HTTP POST dengan payload JSON.
Contoh Payload
{
"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"
}
]
}
Keamanan Webhook
Untuk memastikan keaslian, permintaan webhook menyertakan header signature yang dibuat menggunakan rahasia bersama.
- Signature dihitung dengan HMAC‑SHA256
- Klien harus memverifikasi signature sebelum memproses payload
Hal ini mencegah pengiriman webhook yang tidak sah atau dipalsukan.
Pengiriman dan Percobaan Ulang
- Webhook dianggap berhasil jika menerima respons
2xx - Pengiriman yang gagal akan otomatis dicoba kembali setiap jam.
- Peristiwa mungkin dikirim lebih dari satu kali; konsumen harus menerapkan pemrosesan idempoten.
Kasus Penggunaan Umum
- Mengimpor temuan SonarQube secara otomatis ke dasbor keamanan internal
- Memicu alur kerja kepatuhan ketika gerbang kualitas gagal
- Mengarsipkan laporan keamanan untuk audit dan tinjauan risiko vendor
- Menjaga sistem pihak ketiga tetap sinkron dengan postur keamanan kode terbaru
