Files
Deep-Package-Inspection/docs/log/2026-07-28-1305-n.md
T

33 lines
2.6 KiB
Markdown

# Iteration Log: Company-Based User Roles & Multi-Agent Model
- **Iterasi**: `n` (Next Enhancement execution)
- **Tanggal**: 2026-07-28 13:05
---
## Yang Diminta
* Implementasikan pemisahan akun operasional/teknikal dari akun pengguna/perusahaan.
* Buat 3 role pengguna/perusahaan (`COMPANY_ADMIN`, `COMPANY_OPERATOR`, `COMPANY_VIEWER`).
* Buat tab halaman baru "User Account" yang menampilkan daftar user dikelompokkan per perusahaan (grouped card layout).
* Batasi kuota maksimum 5 akun untuk setiap perusahaan.
* Implementasikan pemilihan multi-agent (checklist / checkbox list) saat mendaftarkan operator/viewer.
## Langkah yang Diambil
1. **Backend - Model Update**: Menambahkan `company_name` dan `agent_uuids` (array of strings) ke model `User.js` serta enum role yang baru.
2. **Backend - getBaseFilter Update**: Mengubah helper kueri agar menyaring traffic data menggunakan `$in: agent_uuids` jika role adalah company user.
3. **Backend - Route Authorization**: Mengupdate `users.js`, `viewAs.js`, dan `deviceLabeling.js` agar mendukung hak akses delegasi user tingkat 1, 2, dan 3.
4. **Backend - 5-Account Limit**: Menambahkan pengecekan `countDocuments` di route pendaftaran user agar menolak pendaftaran jika perusahaan sudah memiliki 5 akun aktif.
5. **Frontend - User Accounts Page**: Membuat halaman baru `/user-accounts` yang merender Card per perusahaan, menampilkan status kuota (X/5), dan memetakan tombol tambah user langsung ke konteks perusahaan tersebut.
6. **Frontend - Multi-Select Checklist**: Mengupdate `ExternalAccountModal.tsx` agar memuat checklist checkbox untuk agen ketika role yang dipilih bertipe company operator/admin.
7. **Frontend - Sidebar Navigation**: Memperbarui link dan visibilitas menu sidebar berdasarkan hak akses role baru.
8. **TDD Verification**: Menulis test script `test_base_filter.js` untuk menguji isolasi database query. Unit test berhasil dilewati dengan sukses (100% Passed).
9. **Build & Deploy**: Menjalankan compiler check (tsc: 0 errors), melakukan full production build Next.js, dan mendeploy file ke server production `demoplace.my.id` via SFTP.
## Hasil & Status Codebase saat Ini
* Halaman `/user-accounts` sudah live di `https://demoplace.my.id`.
* Semua backend validation (kuota 5 akun & delegasi subset agent) dan frontend component (checklist & pre-selected modal) berfungsi penuh.
* Verifikasi build integrity aman. PM2 reload sukses di server.
## Pertimbangan untuk Iterasi Berikutnya
* Saat ini list agent di checklist UI modal memuat UUID secara langsung. Ke depan, kita bisa me-resolve UUID tersebut menjadi label agent yang lebih user-friendly (misal: "IFG LT.18") di client.