Giao diện
@digiforce-nc/plugin-workflow
Plugin tự động hoá quy trình nghiệp vụ — định nghĩa workflow dạng đồ thị node, kích hoạt bằng sự kiện hoặc lịch hẹn, thực thi jobs theo thứ tự.
Plugin này làm gì?
Hãy hình dung một dây chuyền sản xuất: mỗi workflow là một dây chuyền với các trạm (node) — trạm tính toán, trạm kiểm tra điều kiện, trạm ghi dữ liệu. Khi có sản phẩm (trigger event) đi vào, dây chuyền tự động chạy qua từng trạm cho đến khi hoàn thành.
Ba nhiệm vụ chính
| # | Nhiệm vụ | Chi tiết |
|---|---|---|
| 1 | Kích hoạt | Lắng nghe sự kiện collection (afterCreate, afterUpdate...) hoặc chạy theo lịch (cron) |
| 2 | Xử lý luồng | Duyệt đồ thị node: tính toán, rẽ nhánh điều kiện, CRUD dữ liệu, chờ duyệt |
| 3 | Quản lý thực thi | Ghi log execution, theo dõi trạng thái job, hỗ trợ resume/cancel |
Kiến trúc
Triggers (built-in)
| Trigger | Khi nào chạy | Ví dụ |
|---|---|---|
| CollectionTrigger | Sự kiện trên collection | Khi tạo đơn hàng mới → gửi email |
| ScheduleTrigger | Theo lịch cron | Mỗi ngày 8h sáng → tổng hợp báo cáo |
Instructions (built-in node types)
| Instruction | Chức năng |
|---|---|
calculation | Tính toán giá trị, gán biến |
condition | Rẽ nhánh theo điều kiện đơn (if/else) |
multi-conditions | Rẽ nhánh theo nhiều điều kiện |
create | Tạo bản ghi mới |
update | Cập nhật bản ghi |
destroy | Xóa bản ghi |
query | Truy vấn dữ liệu |
output | Xuất kết quả |
end | Kết thúc workflow |
Database — 7 bảng chính
| Bảng | Chứa gì |
|---|---|
workflows | Định nghĩa workflow (title, type, config, enabled) |
flow_nodes | Node trong workflow (type, config, upstreamId, branchIndex) |
executions | Lịch sử chạy workflow (status, context) |
jobs | Từng bước thực thi (nodeId, status, result) |
workflowTasks | Task chờ duyệt |
userWorkflowTasks | Gán task cho user cụ thể (stats: pending, all) |
workflowCategories | Phân loại workflow |
ACL — Phân quyền
| Resource | Quyền | Mô tả |
|---|---|---|
workflows:*, workflows.nodes:* | Admin (snippet) | Quản lý workflow và nodes |
executions:list/get/cancel/destroy | Admin (snippet) | Xem và quản lý execution |
flow_nodes:update/destroy/... | Admin (snippet) | Chỉnh sửa nodes |
workflowCategories:* | Admin (snippet) | Phân loại workflow |
workflows:list | ui.workflows | UI hiển thị danh sách |
userWorkflowTasks:listMine | loggedIn | User xem task của mình |
*:trigger | loggedIn | Kích hoạt workflow |
Dependencies
| Package | Vai trò |
|---|---|
@digiforce-nc/database | Database ORM |
@digiforce-nc/server | Server framework |
@digiforce-nc/evaluators | Đánh giá biểu thức trong node |
@digiforce-nc/logger | Ghi log execution riêng biệt |
nodejs-snowflake | Sinh ID duy nhất cho execution |
lru-cache | Cache logger instances |