Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

Automation Data Ingestion

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".

Cara kerja singkat

  1. 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_count pada project tersebut — inilah yang menjadi sumber angka "Throughput (GB)" yang sama seperti di dashboard "Data Ingestion and Health".
  2. Sebuah service account (satu untuk semua client, atau satu per client) diberi role roles/monitoring.viewer di project GCP tiap client.
  3. 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.
  4. 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).
  5. 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).

Struktur repo

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)

Menjalankan test

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.

Setup

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.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages