Bỏ qua, đến nội dung

Cấu hình nâng cao

Template variables chi tiết

Trong options (url, headers, body), admin sử dụng cú pháp template để chèn biến động. Server resolve các biến này trước khi gửi request:

BiếnMô tảVí dụ
currentRecord.*Dữ liệu bản ghi hiện tạicurrentRecord.id, currentRecord.status
currentUser.*Thông tin user đang thao táccurrentUser.email, currentUser.nickname
$nForm.*Dữ liệu từ form hiện tại (nếu action trên form)$nForm.amount, $nForm.note

Cú pháp biến

Sử dụng backtick hoặc cú pháp template của hệ thống khi tham chiếu biến trong giao diện cấu hình. Tuyệt đối không dùng double curly brace — hệ thống parsing template sẽ tự resolve biến.

Ví dụ cấu hình body

json
{
  "orderId": "currentRecord.id",
  "approver": "currentUser.email",
  "amount": "$nForm.totalAmount"
}

Phân quyền theo role (Role-based access)

Mỗi request được gán cho một hoặc nhiều role qua bảng junction customRequestsRoles:

  • Chỉ user thuộc role đã gán mới nhìn thấykích hoạt được action.
  • Endpoint customRequests:listByCurrentRole tự động lọc danh sách theo role hiện tại.
  • Admin có thể gán nhiều role cho một request.

Proto path guard

Server kiểm tra URL đích để bảo vệ hệ thống:

Kiểm traMô tả
Internal URLNgăn request trỏ về localhost hoặc internal service
ProtocolChỉ cho phép http://https://
Prototype pollutionChặn path chứa __proto__, constructor, prototype

File logger

Mọi request gửi đi đều được ghi log vào file:

Thông tin logMô tả
TimestampThời điểm gửi request
UserUser thực hiện action
Request keyKhóa cấu hình request
URL + methodĐịa chỉ và phương thức đã resolve
Response statusHTTP status code từ hệ thống đích
ErrorChi tiết lỗi (nếu có)

Log file hữu ích cho việc debug và audit trail.

Bảo mật nâng cao

  • Không lưu sensitive data (API key, token) trực tiếp trong body — sử dụng biến môi trường hoặc vault.
  • Review danh sách request định kỳ, vô hiệu hóa request không còn sử dụng.
  • Giới hạn role assignment theo nguyên tắc least privilege.