From 06ad958d822f1e5939b3c76c2cf2341e9e22624f Mon Sep 17 00:00:00 2001 From: rbsetiawan Date: Wed, 1 Jul 2026 17:26:24 +0700 Subject: [PATCH] docs: session handover note + feedback feature docs + CHANGELOG v1.4.0 --- SESSION-HANDOVER.md | 234 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 234 insertions(+) create mode 100644 SESSION-HANDOVER.md diff --git a/SESSION-HANDOVER.md b/SESSION-HANDOVER.md new file mode 100644 index 0000000..d2efeb5 --- /dev/null +++ b/SESSION-HANDOVER.md @@ -0,0 +1,234 @@ +# Session Handover — Super Apps GIS Portal + +> **Dibuat:** 2026-07-01 +> **Untuk:** AI Agent / Developer yang melanjutkan pekerjaan +> **Status terakhir:** Feedback feature selesai, Zammad siap di-deploy + +--- + +## BACA INI DULU SEBELUM APAPUN + +1. Baca `Workspace-Context.md` → rules dan policy workspace +2. Baca `ARCHITECTURE.md` → 7 diagram Mermaid arsitektur lengkap +3. Baca `backlog.md` → roadmap semua fase + detail teknis tiap microservice +4. Baca `server-audit/host.md` → daftar server, SSH command, catatan ops +5. Baca `server-audit/deploy-log.md` → log semua deploy yang sudah dilakukan + +--- + +## Ringkasan Proyek + +**Super Apps GIS Portal** adalah employee portal internal berbasis PWA untuk organisasi GIS. + +| Komponen | URL | Stack | Status | +|----------|-----|-------|--------| +| Frontend PWA | `my.gisportal.id` | Next.js 16 + React 19 | ✅ Live | +| Backend API | `console.gisportal.id` | Laravel 11 | ✅ Live | +| Asset/Agent Service | `agent.gisportal.id` | FastAPI | ✅ Live | +| Storage | `file.gisportal.id` | QNAP OSS S3 | ✅ Live | +| Auth | `10.100.1.40` | Active Directory LDAP | ✅ Live | +| Ticketing | `ticket.gisportal.id` | Zammad | ⏳ Belum deploy | +| Mail | `mail.gisportal.id` | Mailcow | ⏳ Belum deploy | + +**Semua Docker di server `10.100.1.24`.** + +--- + +## Apa yang Sudah Selesai (sesi ini: 1 Jul 2026) + +### 1. Feature Feedback (Bug Report & Saran) +- **FE:** `FeedbackButton` + `FeedbackDialog` floating di semua halaman +- **Backend:** `POST/GET/PATCH /api/v1/feedback` di geonet-console +- **DB:** tabel `feedback` sudah ter-migrate di production +- **Docs:** `mysupperapps_FE_PWA/docs/features/feedback.md` +- **Catatan deploy:** container geonet-console tidak mount source dari host → wajib `docker cp` untuk update file tanpa rebuild + +### 2. Disk Cleanup Server 10.100.1.24 +- Disk sebelumnya: **98% penuh** (1.3 GB free) +- Root cause: Docker build cache 45.29 GB +- Tindakan: `docker builder prune -af` +- Hasil: **50% (26 GB free)** — cukup untuk deploy Zammad + +### 3. SSH Key Setup +- `10.100.1.51` (ArcGIS Base Dev) → passwordless via `id_ed25519_geonet_proxmox` +- `10.100.1.52` (ArcGIS DS Object) → passwordless via `id_ed25519_geonet_proxmox` +- `10.100.1.101` & `10.100.1.102` (Proxmox) → passwordless + +### 4. USB Passthrough Proxmox +- VM 103 di `10.100.1.102` → PCI controller `00:1a.0` (USB 2.0 bus 1) di-passthrough + +### 5. GeoNetAgent v0.1.12 +- Tambah scheduled task shutdown (`GeoNetAgent-Report-Shutdown`) +- Deploy ke `agent.gisportal.id/install/` + +--- + +## Yang Harus Dikerjakan Selanjutnya + +### PRIORITAS UTAMA: Deploy Zammad + +**Kenapa Zammad dulu?** +- Disk sudah cukup (26 GB free, Zammad butuh ~15 GB) +- RAM cukup (9.4 GB available) +- Feedback feature sudah live tapi belum ada yang handle tiket +- Permission `ticketing.*` sudah ada di sistem, tinggal diaktifkan +- Halaman `/ticket` di sidebar sudah ada, tinggal disambungkan + +**Langkah deploy Zammad:** +1. Hapus dangling images untuk tambah ruang: `docker image prune -f` (+7.9 GB) +2. Buat Docker stack di `/opt/stacks/zammad` +3. Setup domain `ticket.gisportal.id` di Nginx `10.100.1.24` +4. Konfigurasi Zammad: LDAP ke `10.100.1.40`, group mapping, SLA +5. Integrasi ke geonet-console: feedback → auto-create tiket Zammad +6. Buat halaman `/ticket` di FE + +**Detail teknis Zammad** → `backlog.md` section "Fase 3 — Ticketing" + +--- + +## Akses Server (SSH) + +```bash +# App server (semua app Docker) +ssh -m hmac-sha1 root@10.100.1.24 -p 22 + +# Database +ssh -m hmac-sha1 root@10.100.1.25 -p 22 + +# Active Directory / LDAP +ssh -m hmac-sha1 Administrator@10.100.1.40 -p 22 + +# Dev Proxmox +ssh root@10.100.1.101 + +# Opr Proxmox +ssh root@10.100.1.102 + +# ArcGIS Base (Dev) +ssh dev51-base # atau: ssh Administrator@10.100.1.51 -p 22 + +# ArcGIS DS Object +ssh dev13-object # atau: ssh Administrator@10.100.1.52 -p 22 + +# NAS QNAP +ssh -i "$env:USERPROFILE\.ssh\id_ed25519" -o IdentitiesOnly=yes admin@10.100.1.10 -p 22 +``` + +--- + +## Deploy ke Server (cara yang benar) + +Container geonet-console dan my-portal **tidak mount source dari host**. Ada 2 cara update: + +### Cara A — docker cp (cepat, tidak permanen) +```bash +# Copy file ke container +scp -o "MACs hmac-sha1" -P 22 root@10.100.1.24:/opt/stacks//path/ +ssh -m hmac-sha1 root@10.100.1.24 -p 22 "docker cp /opt/stacks//path/ :/var/www/html/path/" +ssh -m hmac-sha1 root@10.100.1.24 -p 22 "docker exec php artisan route:clear" +``` +> ⚠️ Perubahan hilang jika container di-recreate/rebuild + +### Cara B — rebuild image (permanen) +```bash +scp -o "MACs hmac-sha1" -P 22 root@10.100.1.24:/opt/stacks//path/ +ssh -m hmac-sha1 root@10.100.1.24 -p 22 "cd /opt/stacks/ && docker compose up -d --build" +``` + +--- + +## Struktur Repo Penting + +``` +app on git/ +├── ARCHITECTURE.md ← 7 diagram Mermaid (BACA INI) +├── backlog.md ← Roadmap + detail teknis semua fase +├── Workspace-Context.md ← Rules & policy untuk AI agent +├── SESSION-HANDOVER.md ← File ini +│ +├── server-audit/ +│ ├── host.md ← Daftar server + SSH commands +│ └── deploy-log.md ← Log semua deploy +│ +├── mysupperapps_FE_PWA/ ← Frontend Next.js (repo terpisah, .gitignored di root) +│ ├── context-index.md ← Entry point AI untuk FE +│ ├── CHANGELOG.md ← Changelog FE (terbaru: v1.4.0 feedback) +│ └── docs/ ← Dokumentasi lengkap FE +│ ├── features/feedback.md ← Docs feature feedback +│ └── ... +│ +└── server-connection/ + └── geonet-console/ ← Source code Laravel backend + ├── context-index.md ← Entry point AI untuk backend + ├── routes/api.php ← Semua API routes + ├── app/Models/Feedback.php + ├── app/Http/Controllers/Api/V1/FeedbackController.php + └── database/migrations/2026_07_01_000001_create_feedback_table.php +``` + +--- + +## Permission System (Ringkas) + +Permission dari LDAP group mapping di tabel `group_permissions`: + +| Group | Contoh Permission | +|-------|------------------| +| Domain Admins | Semua 17 permission | +| IT-Admin | 13 permission | +| IT-Staff | 11 permission | +| Management | 9 permission | +| Staff/HR | 6 permission | + +**Cara pakai di FE:** +```tsx +import { usePermission } from '@/lib/permissions' +const canManage = usePermission('ticketing.manage') +``` + +Permission tersedia: `profile.view`, `profile.edit`, `dashboard.view`, `cmdb.*`, `monitoring.view`, `ticketing.*`, `mail.view`, `asset_mgmt.*`, `geonet_agent.view`, `admin.*` + +--- + +## Catatan Teknis Penting + +### geonet-console +- Container name: `geonet-console` +- Path di server: `/opt/stacks/geonet-console/` +- Path di container: `/var/www/html/` +- **Build cache sudah dibersihkan** — rebuild pertama akan lebih lambat +- Migration terbaru: `2026_07_01_000001_create_feedback_table` (sudah run) + +### my-portal (Frontend) +- Container name: `my-portal` +- Path di server: `/opt/stacks/my-portal/` +- Port: `8092 → 3000` +- Build: Next.js standalone output di dalam Docker + +### QNAP OSS Storage +- Endpoint internal: `http://10.100.1.10:8010` +- Bucket: `super-apps` +- Public URL: `https://file.gisportal.id/super-apps/` +- Driver Laravel: `s3` dengan `use_path_style_endpoint=true` + +### Nginx Reverse Proxy +- Config path: `/etc/nginx/conf.d/` +- Reload: `nginx -s reload` + +--- + +## Roadmap Ringkas + +``` +✅ Auth + Profile + Asset Mgmt + Admin Permission +✅ GeoNet Agent v0.1.12 +✅ Feedback System (bug/saran) +⏳ Zammad (ticketing) ← NEXT +⏳ Content/Feed ← Bisa paralel +⏳ Mailcow (email server) +⏳ Push Notification +⏳ Mail UI +⏳ KPI Dashboard +``` + +Detail lengkap → `backlog.md`