Skip to content

Workflow Governance — Technical Map

Route / page map

SurfaceMain page / shell
Dashboard report permissionDashboardReportPermission.tsx
Approver matrixApproverPage.tsx + SettingApprover* wrappers
Custom permissionCustomPermission.tsx, CustomPermissionDetail.tsx
Task status / tag / group / subtaskTaskStatus.tsx, TaskTag.tsx, TaskTagGroup.tsx, SubTask.tsx
Project labelProjectLabel.tsx
Knowledge base questionKnowledgeQuestion.tsx
Complaint configComplaintSetting.tsx

Data model map

SurfaceModel chính
Custom permissionmodule, group_role, role_module
Report permissionreport, dashboard, report_role, role_module
Approver matrixrequest_approver
Task statusproject_workflow, project_workflow_status
Task tag / groupproject_task_tag, project_task_group_tag, tag_tour_money
Subtasksubtask, service_subtask
Project labelproject_label, project_label_user, relationship tables
Knowledge baseknowledge_question, knowledge_question_tag
Complaint configcomplaint GraphQL models từ module complaint

Boundary với module khác

ModuleBoundary kỹ thuật
projectsconsume workflow/tag/label trong create/edit task/project
reportconsume report_role và related permission rows
complaintconfig page dùng GraphQL của module complaint
ecommerceapprover request types và subtask/service_subtask models
crmknowledge base storage và trigger keywords

Rủi ro / Findings kỹ thuật

MứcFinding
CaoWrapper approver bị copy-paste sai name component ở nhiều request type, làm devtools/debug rất khó tin cậy.
Caorequest_approver đang drift schema giữa metadata ecommercehrm.
CaoDashboardReportPermission hardcode map report -> module và còn có biến tính ra nhưng không dùng.
Trung bìnhKnowledgeTable quyết định scope theo roles[0], không theo effective role set.
Trung bìnhTaskTagTable validate xóa bằng service_subtask nhưng wording/domain lại là “Tiền tour”; cột status cũng dùng field lệch disable.