SemestaRobot SID Core Β· Automation
🏠 Semesta πŸ“˜ Panduan ℹ️ Tentang

ℹ️ Tentang Robot Semesta

Penjelasan teknis di balik Semesta (Robot SID Core) Β· robot.product-sid.us/semesta
Terakhir diperbarui: 22 September 2026
Ringkas: Semesta adalah portal web untuk menjalankan otomasi SID Core (rename akun resign, buat/ubah role, voucher/diskon, export data, dll) tanpa lewat Telegram. Semua logic-nya bukan aplikasi baru β€” ini cuma "wajah kedua" dari kumpulan script sid-core-automation yang sama persis dipakai bot @sobatproductbot.

1. Apa itu Robot Semesta

Semesta (nama produk yang tampil di UI, judul tab browser: "Semesta β€” Robot SID Core") adalah web UI internal buat tim yang perlu menjalankan otomasi administratif ke core.sid.id β€” misalnya bersihkan akun karyawan resign, bikin/ubah role & permission, kelola voucher/diskon, atau export data (organisasi, role, program, lokasi belajar) ke Google Sheets β€” tanpa harus chat lewat bot Telegram.

Ini bukan sistem baru yang ditulis dari nol untuk web. Semesta cuma menambahkan lapisan UI browser di atas kumpulan script Node.js yang sudah ada (sid-core-automation), dengan safety rail (dry-run wajib, konfirmasi, riwayat) yang sama seperti versi bot.

2. Arsitektur β€” 2 pintu, 1 mesin

Ada dua "pintu masuk" berbeda ke mesin otomasi yang sama:

PintuLokasiUntuk siapa
πŸ€– Bot Telegram@sobatproductbot (repo sobatproduct, sidcoreCommands.js)Tim yang biasa kerja lewat Telegram (mis. /resign, /role, /editrole)
πŸ–₯️ Web β€” Robot Semestarobot.product-sid.us/semesta (repo sidops-web)Tim yang gak pakai/gak mau Telegram, butuh tampilan lebih visual (console log, riwayat, banner env)

Keduanya cuma menjalankan file .js yang sama persis di folder /home/product/sid-core-automation (VPS Contabo) sebagai child process β€” bukan duplikasi logic. Kalau ada bug/perbaikan di script-nya, otomatis kepakai di kedua pintu.

3. Stack teknis

Mesin otomasi (sid-core-automation)

Web UI (sidops-web)

4. Kenapa bukan Playwright / browser automation

Login ke core.sid.id dilindungi Cloudflare Turnstile. Semua tool yang meng-attach browser lewat CDP (Chrome DevTools Protocol) β€” Playwright, Puppeteer, chrome-devtools MCP, dan sejenisnya β€” secara otomatis men-set navigator.webdriver = true di halaman yang dibuka. Turnstile mendeteksi flag ini dan langsung memblokir verifikasi, walaupun yang mengetik password adalah manusia beneran, bukan bot.

Karena itu, pendekatan "login otomatis via browser lalu klik-klik UI" tidak dipakai di project ini. Kalau ada kebutuhan baru yang kepikiran solusinya "buka browser headless terus login", itu kemungkinan besar akan mental duluan di Turnstile.

Solusi yang dipakai: script memanggil REST API asli (api.sid.id) secara langsung memakai Bearer token JWT yang diambil manual dari tab Network DevTools milik sesi browser yang sudah login (session manusia asli) β€” tidak ada proses "login" yang disimulasikan sama sekali oleh script.

5. Auth & token

6. Deploy & isolasi VPS

HalDetail
Lokasi mesin otomasi/home/product/sid-core-automation
Lokasi web UI/home/product/sidops-web
Ownerproduct:product (bukan project personal β€” dipakai/di-maintain bareng tim)
ProsesPM2 sidops-web (port 3180, localhost-only) + bot @sobatproductbot jalan di container Docker terpisah (repo sobatproduct), memount folder sid-core-automation secara read-only
Reverse proxyCaddy, config di /etc/caddy/conf.d/robot.caddy

7. Gotcha yang perlu diketahui

Permission folder sidops-web: user ican (anggota grup product) bisa overwrite file yang sudah ada, tapi tidak bisa membuat file baru di folder itu (izin grup cuma r-x, bukan rwx) β€” termasuk git commit (butuh menulis .git/index.lock). File baru harus lewat staging + sudo tee (ada rule NOPASSWD khusus untuk folder public/), atau dikerjakan dari sesi user product langsung.
Local dev copy jauh tertinggal. Salinan lokal di Mac (~/projects/sid-core-automation) tidak pernah disinkron β€” semua kerja dilakukan langsung di VPS (tidak ada git remote). Jangan percaya daftar script di dokumentasi lama; cek langsung ls /home/product/sid-core-automation/*.js di VPS untuk daftar terbaru.