Skip to Content
BackofficeSettingsActivity Logs

Activity Logs (Log Aktivitas)

CodeSET-LOG
ModuleSettings
TypeAudit log (read-only)
StatusImplemented
PriorityP1
ProcessAudit & kepatuhan
API[URL Postman]

1. Overview

Log Aktivitas mencatat setiap perubahan data di tenant: siapa melakukan apa, kapan, pada data apa, dan nilai apa yang berubah (sebelum → sesudah). Halaman Settings → Log Aktivitas menampilkan semua log lintas modul dalam satu timeline yang bisa disaring berdasarkan event, jenis log (modul/data), pelaku, dan rentang tanggal.

Setiap fitur juga punya panel log aktivitasnya sendiri (tombol “Log Aktivitas” di halaman daftar atau detail). Panel itu memakai komponen dan format data yang sama, tetapi terbatas pada data fitur tersebut.

Hasil yang diharapkan: owner dan auditor bisa menelusuri perubahan apa pun tanpa bantuan tim teknis.

2. Problem

  • Kesalahan data (harga, status, akses) sulit dilacak penyebabnya tanpa jejak perubahan.
  • Owner perlu memastikan tidak ada perubahan yang tidak sah pada pengaturan penting.
  • Satu aksi bisa mengubah beberapa data sekaligus; perubahan terkait perlu terlihat bersama.

3. Goals & Non-goals

Goals

  • Semua perubahan bisa ditelusuri. Indikator: setiap log memuat pelaku, waktu, event, dan detail perubahan field.
  • Log mudah disaring. Indikator: filter event, jenis log, pelaku, dan rentang tanggal.
  • Perubahan berantai terlihat. Indikator: log turunan (batch) ditampilkan di bawah log induknya.

Non-goals

  • Mengubah atau menghapus log dari UI
  • Ekspor log (CSV/PDF)
  • Notifikasi real-time berdasarkan log

4. User Scenarios

RoleScenario
OwnerMencari siapa yang mengubah harga beli produk minggu lalu
AuditorMenyaring semua perubahan yang dilakukan satu pengguna dalam rentang tanggal tertentu
OwnerMemeriksa perubahan peran dan hak akses setelah ada insiden
AdminMembagikan tautan hasil filter log ke rekan (filter tersimpan di URL)

5. User Flow

  1. Timeline — Log ditampilkan sesuai urutan dari BE, masing-masing menampilkan pelaku (nama dan avatar), pesan, jenis log, dan waktu (relatif maupun absolut).
  2. Filter — Panel filter di sisi halaman (drawer di layar kecil): event, jenis log, pelaku (pilihan dimuat dari BE), dan rentang tanggal. Filter disimpan di URL (?filter=) sehingga bisa dibagikan dan bertahan saat reload.
  3. Muat berikutnya — Tombol muat lebih banyak (berbasis cursor), disembunyikan bila tidak ada data lagi.
  4. Detail — Tabel perubahan field (nilai lama → nilai baru) dan akordeon “lihat perubahan terkait” untuk log batch.

Alternative paths

  • Log per fitur — dibuka dari tombol “Log Aktivitas” di halaman fitur (daftar untuk semua data fitur, detail untuk satu data); filter: event, pelaku, rentang tanggal.
  • Tidak ada hasil — tampil “Data tidak ditemukan”.

6. User Stories

Prioritas: P0 wajib untuk rilis, P1 penting, P2 kalau sempat.

US-01 — Melihat semua log aktivitas (P1)

Sebagai owner, saya ingin melihat semua perubahan data di tenant dalam satu tempat, agar mudah diaudit.

IDKriteria penerimaan
AC-01.1Halaman hanya bisa dibuka pengguna dengan izin list log aktivitas; lainnya diarahkan ke unauthorized.
AC-01.2Setiap log menampilkan pelaku, pesan, jenis log, event, dan waktu.
AC-01.3Log dimuat bertahap lewat tombol muat lebih banyak; tombol disembunyikan bila data habis.
AC-01.4Perubahan field ditampilkan sebagai tabel nilai lama → nilai baru; nilai kosong ditandai sebagai tidak ada nilai.
AC-01.5Log yang punya log turunan menampilkan akordeon “lihat perubahan terkait”.

US-02 — Menyaring log (P1)

Sebagai auditor, saya ingin menyaring log, agar cepat menemukan perubahan yang dicari.

IDKriteria penerimaan
AC-02.1Filter event, jenis log, dan pelaku berupa pilihan multi yang dimuat dari BE.
AC-02.2Filter rentang tanggal: satu tanggal atau rentang; dikirim sebagai start_date dan end_date (yyyy-MM-dd). Satu tanggal berarti start_date = end_date.
AC-02.3Filter tersimpan di URL dan dipulihkan saat halaman dibuka ulang.
AC-02.4Filter bisa direset ke kosong.

US-03 — Log per fitur (P1)

Sebagai admin, saya ingin melihat log langsung dari halaman fitur, agar tidak perlu menyaring manual.

IDKriteria penerimaan
AC-03.1Tombol Log Aktivitas di halaman daftar menampilkan log semua data fitur; di halaman detail menampilkan log data tersebut saja.
AC-03.2Panel memakai format tampilan yang sama dengan halaman global, dengan filter event, pelaku, dan rentang tanggal.

7. Document Structure

FieldRequiredDefaultNotes
id
log_nameJenis log / modul data
eventMisalnya created, updated, deleted
name, messageJudul dan pesan yang ditampilkan
actorid, name, email, avatar_file
subjecttype dan id data yang berubah
changes[]field, old, new (primitif, objek, atau array)
metaip_address, user_agent
created_at, created_at_humanWaktu absolut dan relatif
batch_logs[]Log turunan dengan struktur yang sama

Semua field read-only.

8. Status Lifecycle

Tidak berlaku. Log bersifat append-only dan tidak punya status.

9. Permissions & Actions

Permissions

ActionPermissionSyarat tambahan
Lihat halaman log aktivitas globalsettings:activity-log:list:any
Lihat panel log per fiturPermission list/view fitur terkaitMengikuti halaman tempat panel dibuka

10. Business Rules

Aturan bisnis adalah ketentuan yang berlaku di semua layar dan semua aksi, siapa pun yang melakukannya. FE memakainya sebagai validasi di form, BE memakainya sebagai sumber kebenaran; jika keduanya berbeda, perilaku BE yang dianggap benar dan FE menyesuaikan.

  • BR-01 Log bersifat append-only; tidak ada aksi ubah atau hapus log.
  • BR-02 Log dibuat oleh BE; FE hanya membaca.
  • BR-03 Perubahan yang terjadi dalam satu aksi dikelompokkan sebagai log induk dengan batch_logs.
  • BR-04 Log dimuat berbasis cursor; urutan ditentukan BE.
  • BR-05 Opsi filter (event, jenis log, pelaku) dimuat dari endpoint partial BE, bukan daftar tetap di FE.

11. Edge Cases

Edge case adalah kondisi yang jarang terjadi tetapi pasti muncul di operasional nyata. Perilaku yang diharapkan ditetapkan di sini agar tidak diputuskan sendiri-sendiri saat implementasi.

IDCaseExpected behavior
EC-01Pelaku sudah dihapusDitentukan BE; log tetap harus bisa ditampilkan
EC-02Nilai perubahan berupa objek atau arrayDitampilkan terstruktur, bukan teks mentah
EC-03URL berisi filter yang tidak validFilter kembali ke default kosong
EC-04Fitur tanpa log aktivitasPeran & Izin dan Pengelola File belum punya panel log di UI

12. API Contract

ActionMethodEndpointRef
Semua log (cursor, filter)GET/api/activity-logs/cursorUS-01, US-02
Opsi filter eventGET/api/activity-logs/partials/events/cursorAC-02.1
Opsi filter jenis logGET/api/activity-logs/partials/log-names/cursorAC-02.1
Opsi filter pelakuGET/api/activity-logs/partials/causers/cursorAC-02.1
Log per fitur (semua data)GET/api/<fitur>/activity-logs/cursorUS-03
Log per dataGET/api/<fitur>/:id/activity-logs/cursorUS-03

Parameter filter: event[], log_name[], causer_id[], start_date, end_date.

13. Dependencies

PRD terkait

  • Semua fitur yang diaudit (Appearance, Company, Stores, Entities, Employees, Users, Purchase Order, dan lainnya).
  • Users — pelaku log adalah pengguna.
Last updated on