sequenceDiagram
participant Browser
participant FE as my-portal (Next.js)
participant Console as geonet-console
participant AD as Active Directory (LDAP)
Browser->>FE: POST /api/login {username, password}
FE->>Console: POST /api/v1/auth/login
Console->>AD: LDAP bind — verifikasi kredensial
AD-->>Console: OK + groups[]
Console->>Console: Resolve permissions dari group_permissions
Console-->>FE: {token, username, groups[], permissions[]}
FE-->>Browser: Set httpOnly cookie → redirect /dashboard
Browser->>FE: GET /dashboard
FE->>Console: GET /api/v1/me (Bearer token)
Console-->>FE: {username, display_name, groups[], permissions[]}
FE-->>Browser: Render sidebar/nav (filter by permissions)
4. Alur GeoNet Agent (PC Reporting)
sequenceDiagram
participant PC as Windows PC/Laptop
participant GPO as Group Policy (AD)
participant Agent as GeoNet Agent Script
participant Collector as geonet-collector
GPO->>PC: Startup/Shutdown Task trigger
PC->>Agent: Jalankan UserAgent.ps1
Agent->>Agent: Kumpulkan data hardware\n(CPU, RAM, Disk, GPU, Network, OS)
Agent->>Agent: Cek versi manifest.json\nauto-update jika ada versi baru
Agent->>Collector: POST /api/v1/agent/report\n{hostname, snapshot, ...}
Collector->>Collector: Simpan asset + snapshot
Collector-->>Agent: 200 OK
Note over PC,Agent: Task: GeoNetAgent-Report-Startup\nGeoNetAgent-Report-Logon\nGeoNetAgent-Report-Shutdown
sequenceDiagram
participant User as User (Browser)
participant FE as my-portal
participant Console as geonet-console
participant Zammad as Zammad ⏳
User->>FE: Klik tombol Feedback
FE->>FE: Tampilkan FeedbackDialog\n(form bug/saran + auto-capture page, user, timestamp)
User->>FE: Isi form & klik Kirim
FE->>Console: POST /api/v1/feedback\n{type, title, message, context}
Console->>Console: Simpan ke tabel feedback
Console-->>FE: {id, status: open}
Console-)Zammad: POST /api/v1/tickets ⏳\nauto-create tiket
FE-->>User: Tampilkan nomor tiket + pesan sukses
Arsitektur Sistem Saat Ini
Komponen yang Sudah Running
Infrastruktur Pendukung (Live)
Microservice yang Direncanakan
Halaman Frontend yang Sudah Ada (Backend Belum Dibangun)
/attendance/leave/wfh/business-trip/ticket/mail/monitoring/notificationRingkasan Arsitektur
✅ Layanan yang Sudah Live
🚧 Roadmap Pengembangan Berikutnya
Arsitektur Super Apps — GIS Portal (
my.gisportal.id)1. Arsitektur Keseluruhan (High-Level)
2. Arsitektur Backend Services
3. Alur Auth & Permission
4. Alur GeoNet Agent (PC Reporting)
5. Alur Feedback → Tiket (Rencana Integrasi Zammad)
6. Peta Halaman Frontend
7. Infrastruktur & Topologi Jaringan
Permission System
profile.view/profile.editdashboard.viewasset_mgmt.view/asset_mgmt.managecmdb.view/cmdb.manage/cmdb.assign_ownergeonet_agent.viewmonitoring.viewticketing.view/ticketing.create/ticketing.managemail.viewadmin.users/admin.groups/admin.permissionsDefault group mapping (seeder):
Environment Variables Penting
Frontend (
my-portal/ Next.js)Backend
geonet-console(Laravel,/opt/stacks/geonet-console)Backend
geonet-collector(FastAPI,/opt/stacks/geonetagent-collector)Lokasi Server & Deploy
/opt/stacks/my-portal/docker compose build && up -d/opt/stacks/geonet-console/docker compose up -d/opt/stacks/geonetagent-collector/docker compose build && up -d/etc/nginx/conf.d/nginx -s reloadSSH akses:
ssh -m hmac-sha1 root@10.100.1.24 -p 22Schema Key — Collector API
CollectorAsset(list item)CollectorSnapshotSummary(flat — root level, BUKAN nested .system)Microservice Yang Direncanakan (Belum Dibangun)
mail.gisportal.idzammad.gisportal.idcontent.gisportal.idpush.gisportal.idLihat
backlog.mduntuk detail tugas dan prioritas pengerjaan.