Apps Script untuk menarik data ingestion throughput dari 11 instance
Google SecOps (Chronicle) milik masing-masing client, lalu menuliskannya
otomatis ke tab "Data Weekly" dan "Data Month" pada Google Sheets
laporan (Report_Weekly_*.xlsx / spreadsheet live-nya), menggantikan
pengisian manual yang sebelumnya dilakukan.
Proyek ini melengkapi menu "JIRA Sync" yang sudah ada di spreadsheet tersebut, dengan menu baru "SecOps Sync".
- Setiap client punya 1 GCP Project ID (tempat instance Chronicle-nya
berjalan). Throughput ingestion Chronicle diekspos sebagai metric Cloud
Monitoring
chronicle.googleapis.com/ingestion/log/bytes_countpada project tersebut — inilah yang menjadi sumber angka "Throughput (GB)" yang sama seperti di dashboard "Data Ingestion and Health". - Sebuah service account (satu untuk semua client, atau satu per client)
diberi role
roles/monitoring.viewerdi project GCP tiap client. - Apps Script menandatangani JWT dari key service account tsb untuk
mendapat access token (
SecOpsAuth.js), lalu memanggil Cloud Monitoring API (SecOpsIngestion.js) untuk rentang tanggal minggu/bulan yang diminta. - Baris client & kolom bulan/minggu tujuan di sheet dicari berdasarkan
nama (bukan koordinat sel yang di-hardcode), karena urutan baris
client berbeda antara tab "Data Weekly" dan "Data Month" pada file
aslinya (
SheetLookup.js). - Perhitungan tanggal awal/akhir setiap "W1".."W5" mengikuti pola kalender
minggu (Senin-Minggu, dikelompokkan ke bulan dengan mayoritas hari) yang
sudah dipakai di tab "Weeks" pada spreadsheet — dihitung ulang secara
deterministik (
WeekCalendar.js), bukan dengan mem-parsing teks tanggal yang sudah ada (yang formatnya tidak konsisten/rusak di beberapa sel).
src/ Source Apps Script (di-push ke project terikat Sheet via clasp)
Constants.js Semua konstanta yang bisa disesuaikan
WeekCalendar.js Logika kalender minggu (murni, teruji)
DateRange.js Konversi tanggal lokal -> interval UTC (murni, teruji)
SheetLookup.js Cari baris/kolom di sheet berdasarkan label (murni, teruji)
SecOpsAuth.js Auth service account (JWT) -> access token
SecOpsIngestion.js Query Cloud Monitoring API, jumlahkan bytes
SecOpsSync.js Orkestrasi: baca config, tarik data, tulis ke sheet
Menu.js Menu "SecOps Sync" + dialog setup kredensial
Triggers.js Pasang/lepas trigger terjadwal
SetupCredentialDialog.html
appsscript.json Manifest Apps Script
test/ Unit test (Node, `npm test`) untuk semua logika murni di atas
docs/SETUP_SECOPS.md Panduan setup lengkap (GCP IAM, kredensial, clasp, trigger)
npm test
Test ini memverifikasi logika kalender minggu, pencarian sel, dan
pembentukan request Cloud Monitoring API — tanpa butuh kredensial GCP
maupun akses internet. Bagian yang benar-benar memanggil Google Sheets /
Cloud Monitoring (SecOpsAuth.js, SecOpsSync.js, sebagian
SecOpsIngestion.js) hanya bisa dijalankan di dalam Apps Script — lihat
docs/SETUP_SECOPS.md untuk cara memasang & memvalidasinya di spreadsheet
sungguhan.
Lihat docs/SETUP_SECOPS.md untuk langkah
lengkap: menyiapkan akses GCP, mengisi konfigurasi client, clasp push ke
project Apps Script yang terikat ke spreadsheet, dan memasang trigger
otomatis.