id, title, type, feature, scope, locale, aliases, related_tools, related_pages, prerequisites, negative, last_verified
| id |
title |
type |
feature |
scope |
locale |
aliases |
related_tools |
related_pages |
prerequisites |
negative |
last_verified |
| approve.plugin.concept |
审批插件架构 |
concept |
approve |
end-user |
zh |
| 审批是插件吗 |
| approve 插件是什么 |
| 审批中心怎么部署的 |
| 为什么审批要单独装 |
| 审批不在主程序里吗 |
|
|
|
|
| approve 不是主程序内置功能,必须先在应用市场安装插件才能用 |
| 审批数据存在独立的 `<前缀>approve_*` 数据表里,不在主程序业务表 |
| 卸载插件时若勾选「删除数据」会清空全部审批数据,无法恢复 |
|
v1.7.90 |
审批插件架构
定义
审批(approve)是 DooTask 的独立插件,由 kuaifan/dooapprove Docker 镜像提供一套独立的工作流引擎服务。主程序通过反向代理与之通信,所有审批的流程定义、实例、任务、历史都由插件维护,不在主程序业务表里。
关键属性
- 独立容器:插件作为 docker-compose 服务名
approve 启动,端口仅在内网暴露
- 独立数据库表:复用主库实例但表前缀为
<DB_PREFIX>approve_(如 pre_approve_*),与主程序业务表逻辑隔离
- HTTP 反代:主程序 nginx 把
/approve/ 转给插件容器;/approve/api/ 先经 /approveAuth 校验主程序 token 再放行
- 业务桥接:主程序
ApproveController 通过 http://approve 调用插件 REST 接口(路径前缀 /api/v1/workflow/...),把结果包成 Base::retSuccess 返回前端
- 通知桥接:审批状态变化通过
approval-alert 机器人在 DooTask 群聊中下发模板消息
与主程序的关系
- 主程序登录 token = 审批插件身份凭据(通过
verifyToken 接口校验)
- 主程序用户/部门/机器人是审批的"人员主数据",审批不复制用户表
- 用户感知不到容器分离:在 app-system.approve.howto 描述的「审批中心」页面内完成所有操作
不支持
- 主程序无法直接 SQL 查询审批数据,必须经插件 API
- 关闭/卸载插件后无法发起新审批:「应用 - 审批」入口在新发起处会报错(
Apps::isInstalledThrow)