flexbiz-server-flow
v4.0.0
Published
FlexBiz Server — gói WORKFLOW (thương mại): FlowEngine, node đồ hoạ, webhook, lịch chạy, tự động hoá quy trình. Tự nối vào core qua điểm mở rộng khi được cài cùng flexbiz-server-core.
Maintainers
Readme
flexbiz-server-flow
Gói WORKFLOW (MIT) cho FlexBiz Server: FlowEngine, node đồ hoạ, webhook, lịch chạy, tự động hoá quy trình.
Là dependency của flexbiz-server-core nên tự cài & tự bật — không cần sửa cấu hình.
Cài đặt
npm i flexbiz-server-core # đã kéo theo flexbiz-server-flowMở rộng: gói khác cấp thêm NODE cho flow
Flow phơi một sổ đăng ký node toàn cục global.__flowNodes để gói bất kỳ đóng góp node mà không cần
flow phụ thuộc ngược. Trong register(core) của gói bạn:
module.exports = {
name: 'my-plugin', license: 'MIT',
register(core) {
const flow = global.__flowNodes; // flow tạo sẵn khi nó register()
if (flow) {
// Đăng ký HANDLER (lazy) + SPEC (schema/metadata do CHÍNH GÓI khai báo, không cố định ở flow/core).
flow.register(
'mynode',
(...args) => require('./src/flowNodes/myNode')(...args), // handler: nạp khi node CHẠY
require('./src/flowNodes/myNode.spec'), // spec: {type,label,category,description,metadata:[...]}
);
}
},
};- Handler node có chữ ký
(flowState, node, payload, abortSignal)(như các node built-in). - Spec (
{ type, label, category, description, inputDescription, metadata:[{name,label,type,required,default,...}] }) do gói khai báo → tự vào endpoint/api/flow/nodesvà AI agent tool.registerSpec(type, spec)để đăng ký riêng. register(type, handler[, spec])ghi đè;registerDefault(type, handler)chỉ đặt nếu chưa có.- Nếu flow chưa cài (
global.__flowNodesvắng) thì bỏ qua — không có workflow thì node cũng vô nghĩa. - Nếu một node được flow khai là của gói khác nhưng gói đó chưa cài, flow seed sẵn stub: chạy node
đó sẽ báo lỗi rõ
NODE_DEP_MISSING(các flow khác vẫn chạy bình thường).
Ví dụ trong repo: @pvtruong/server-agent cấp node aianalysis (AI); @pvtruong/server-marketing cấp
channelsendmessage / adssync / facebookpostinsights khi được cài.
Danh sách node ĐỘNG (theo gói đã cài)
Danh sách node hiển thị cho client/AI tự lọc theo gói đã cài — node của gói chưa cài không xuất hiện:
- Endpoint client:
GET /api/flow/nodes→{ ok, count, nodes:[{type,label,category,description,input,output}] }; thêm?full=1để kèmmetadata(các trường cấu hình) dùng dựng flow editor. - AI agent tool (
getWorkflowNodeSpecsTool) đọcflowUtils.getAvailableNodes()lúc chạy nên chỉ đề xuất node thực sự dùng được. - Hàm dùng chung:
require('flexbiz-server-flow/src/flow/utils').getAvailableNodes()/getAvailableNodeTypes().
License
MIT — xem LICENSE.
