Bỏ qua, đến nội dung

@digiforce-nc/plugin-workflow-request-interceptor

Plugin đăng ký trigger chặn API request (interceptor), mở rộng plugin-workflow. Hoạt động như middleware chặn các request khớp điều kiện, chạy workflow xử lý, rồi quyết định cho phép tiếp tục hoặc trả lỗi.

Plugin này làm gì?

Request Interceptor đăng ký một middleware vào pipeline xử lý request. Khi request khớp điều kiện (collection, action), middleware sẽ chặn request, chạy workflow, và dựa trên kết quả workflow để quyết định tiếp tục xử lý request hay trả về response tùy chỉnh.

Interceptor hỗ trợ hai thời điểm can thiệp:

  • Pre-action: Chặn trước khi handler xử lý (validation, enrichment)
  • Post-action: Chặn sau khi handler xử lý (audit, notification)

Cấu hình

Tham sốKiểuMô tả
collectionstringCollection cần chặn request
actionstringAction cần chặn: create, update, destroy, list, get
globalbooleanChặn tất cả collection (bỏ qua filter collection)
onErrorstringHành vi khi workflow lỗi: continue hoặc reject

Input / Output

HướngDữ liệuMô tả
Inputrequest.paramsTham số request (filter, values, ...)
Inputrequest.actionTên action đang thực hiện
Inputrequest.bodyBody của HTTP request
InputuserThông tin người gửi request
Outputstatuspass (cho phép) hoặc reject (từ chối)
OutputmessageThông báo lỗi khi reject

Tính năng chính

#Tính năngChi tiết
1Middleware chặnChặn request trước khi handler xử lý
2Validation nâng caoDùng workflow để validate dữ liệu phức tạp
3Quyết định độngCho phép hoặc từ chối dựa trên logic workflow
4Response tùy chỉnhTrả message lỗi tùy chỉnh khi từ chối
5Pre-processingBiến đổi dữ liệu request trước khi handler nhận

Trường hợp sử dụng

#Kịch bảnMô tả
1Validation phức tạpKiểm tra đơn hàng vượt hạn mức tín dụng trước khi tạo
2Approval gateChặn update trạng thái nếu chưa đủ số lần phê duyệt
3Data enrichmentTự động bổ sung field (mã đơn, timestamp) trước khi lưu
4Rate limitingGiới hạn số lần tạo bản ghi mỗi user trong khoảng thời gian
5Audit loggingGhi log chi tiết mỗi request thay đổi dữ liệu quan trọng

Lưu ý quan trọng

  • Interceptor chạy đồng bộ - workflow phải hoàn thành trước khi request tiếp tục
  • Workflow trong interceptor nên chạy nhanh (dưới vài giây) để tránh timeout client
  • Cấu hình onError: "continue" để tránh block request khi workflow lỗi
  • Không nên dùng node delay hoặc manual bên trong workflow interceptor
  • Kiểm tra kỹ điều kiện match để tránh chặn nhầm request hệ thống

Dependencies

PackageVai trò
@digiforce-nc/plugin-workflowWorkflow engine (peer)
@digiforce-nc/serverServer framework - middleware pipeline (peer)
@digiforce-nc/databaseDatabase ORM (peer)

Mục lục chi tiết