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.

![Tombol Salin ID](/images/docs/org-settings-panel-copy-id.webp)

## Base URL

Semua endpoint REST API tersedia pada basis URL berikut:

https://api.procurize.com


## 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 berhasil
  • 204 No Content: Laporan tidak ada
  • 400 Bad Request: Parameter tidak valid atau permintaan buruk formatnya
  • 500 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.

Editor Webhook

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
ke atas
Pilih bahasa