Digital Transformation
Reporting API
TL;DR: Reporting API adalah mekanisme browser yang mengumpulkan laporan otomatis (CSP violation, deprecation warning, intervention, crash) dan mengirimkannya ke endpoint server yang ditentukan lewat header
Reporting-Endpoints. Tanpa perlu pasang JavaScript tracking tambahan, server bisa tahu kapan CSP (Content Security Policy) di-violate, kapan fitur deprecated tetap dipakai, atau kapan tab crash.
Apa itu Reporting API?
Reporting API adalah standard W3C yang memungkinkan browser memantau berbagai kondisi sisi klien dan mengirim laporan terstruktur ke endpoint backend. Sebelum API ini, developer harus pasang event listener manual (document.addEventListener("securitypolicyviolation", ...)) dan kirim sendiri ke server. Reporting API memindahkan beban itu ke browser.
Cara aktivasi: server pasang response header Reporting-Endpoints: csp-endpoint="/reports/csp" lalu fitur lain (CSP, Permissions Policy, HSTS) merujuk ke nama endpoint itu di header masing-masing.
Jenis Laporan
| Tipe | Sumber | Use Case |
|---|---|---|
| csp-violation | Violasi Content Security Policy | Audit script injeksi, monitor CSP rule |
| deprecation | API browser deprecated | Tahu kalau kode masih pakai API lawas |
| intervention | Browser memblokir perilaku tertentu | Misal heavy ad intervention |
| crash | Tab crash (OOM, dll) | Monitor stability di production |
| network-error | Network Error Logging (NEL) | Lacak fail request dari client |
Format laporan: JSON yang berisi type, url, body (detail), dan age (ms sejak kejadian). Browser membuffer dan mengirim batch lewat POST dengan Content-Type: application/reports+json.
Kenapa Penting
Untuk website bisnis yang sudah pasang CSP, Reporting API jadi cara paling murah untuk dapat visibility soal violation tanpa harus pasang Sentry atau Datadog. Berdasarkan pengalaman menangani client di proyek Vito Atmo, banyak CSP yang awalnya dipasang report-only baru bisa dinaikkan ke enforce setelah 2-4 minggu data Reporting API menunjukkan tidak ada false positive yang merusak fitur. Lihat referensi resmi di W3C Reporting API spec.
Pertanyaan Umum
Apakah Reporting API aktif di semua browser?
Chromium-based sudah full support sejak 2020. Firefox dan Safari support sebagian (CSP reporting, NEL), tapi tidak semua jenis. Untuk monitoring production, asumsi Chromium-only sudah cukup karena ia menguasai mayoritas market share di Indonesia.
Apakah perlu authentication di endpoint?
Tidak wajib, tapi sangat disarankan. Endpoint publik bisa di-spam request palsu. Praktik baku: pasang rate limiting plus validasi origin di backend.
Istilah Terkait