Bỏ qua, đến nội dung

Cài đặt và sử dụng — Audit Logger

Tổng quan

Plugin cung cấp engine ghi nhật ký kiểm toán phía server. Đây là phần backend (không có giao diện) — ghi lại mọi thao tác dữ liệu (create, update, delete) vào database. Sử dụng kết hợp với plugin-audit-logs để xem log qua giao diện.

Yêu cầu hệ thống

  • Server Digiforce đang chạy
  • Database PostgreSQL hoặc MySQL (để lưu audit logs)

Bước 1: Kích hoạt plugin

Vào Settings → Plugin Manager, tìm plugin-audit-logger và bật. Khởi động lại server.

TIP

Nếu bạn muốn xem log qua giao diện, cần bật thêm plugin-audit-logs. Audit Logger chỉ là engine ghi log, không có UI.

Bước 2: Tự động hoạt động

Sau khi bật, plugin tự động đăng ký middleware ghi lại các thao tác dữ liệu:

Thao tácDữ liệu ghi lạiVí dụ
CreateBản ghi mới và tất cả giá trịTạo đơn hàng mới
UpdateGiá trị cũ (before) và mới (after) cho mỗi field thay đổiSửa trạng thái đơn hàng
DeleteToàn bộ bản ghi bị xoáXoá khách hàng

Cơ chế ghi log

Cấu hình

Tham sốMặc địnhMô tả
EnabledtrueBật/tắt ghi log toàn cục
Collections* (tất cả)Danh sách collections cần ghi — dùng * để ghi tất cả
Exclude Fieldspassword, tokenCác field không bao giờ ghi vào log (dữ liệu nhạy cảm)

Bảo mật

Field nhạy cảm như password, token, apiKey tự động bị loại khỏi log. Nếu collection có thêm field nhạy cảm khác (ví dụ: creditCardNumber), hãy thêm vào danh sách Exclude Fields.

Tích hợp vào plugin riêng

Plugin khác có thể gọi audit logger để ghi log cho hành động tuỳ chỉnh:

typescript
const auditLogger = this.app.pm.get('audit-logger');

auditLogger.log({
  action: 'approve-order',
  userId: ctx.state.currentUser.id,
  collectionName: 'orders',
  recordId: orderId,
  changes: {
    status: { from: 'pending', to: 'approved' },
    approvedBy: { from: null, to: currentUser.name },
  },
});

Ghi log cho thao tác batch

Plugin hỗ trợ ghi log cho cả thao tác hàng loạt:

typescript
auditLogger.log({
  action: 'bulk-update',
  userId: ctx.state.currentUser.id,
  collectionName: 'products',
  recordIds: [1, 2, 3, 4, 5],
  changes: {
    status: { from: 'draft', to: 'published' },
  },
});

Mối quan hệ với plugin-audit-logs

PluginVai tròCó giao diện?
plugin-audit-loggerEngine ghi log (backend middleware)Không
plugin-audit-logsGiao diện xem và quản lý log

Hai plugin bổ trợ nhau — audit-logger ghi dữ liệu, audit-logs hiển thị dữ liệu.

Dữ liệu audit log entry

Mỗi log entry chứa thông tin theo mô hình 5W:

Câu hỏiFieldVí dụ
Who (Ai?)userId, usernameUser ID 5, "admin"
What (Làm gì?)action, changesupdate, { status: pending → approved }
When (Khi nào?)createdAt2024-03-15T10:30:00Z
Where (Ở đâu?)collectionName, recordIdorders, ID 1234
How (Bằng cách nào?)ip, userAgent192.168.1.100, Chrome

Lưu ý quan trọng

  • Plugin này là engine ghi log — không có giao diện xem. Dùng kết hợp với plugin-audit-logs
  • Trường nhạy cảm (password, token) tự động bị loại khỏi log
  • Hỗ trợ ghi log cho cả thao tác batch (bulk update/delete)
  • Audit log chiếm dung lượng database — cấu hình retention và cleanup job phù hợp
  • Thao tác trực tiếp trên database (SQL query) không được ghi log — chỉ ghi log cho thao tác qua API