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

2.6 KiB

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.