现象
私有部署版本V4.12.1商业版的FastGPT中,存在两类异常问题。第一类是在插件规划页面导入工作流导出的JSON文件后,生成的插件类型显示为插件,但包含流程开始、流程结束节点,可添加插件输入、输出节点且无法删除流程开始、流程结束节点。第二类是该插件的创建者可正常使用该插件,但将其发布为公共插件后,其他用户在工作流中使用时会触发报错。
可能原因
当前系统未实现两项校验逻辑。一是未对导入的JSON文件进行类型区分,导致工作流导出的配置文件被误导入为插件。二是插件保存环节未校验是否包含合法的插件输入、输出节点,同时未限制流程开始、流程结束节点的删除操作,导致插件配置不符合标准要求。
排查步骤
- 确认导入的JSON文件来源,区分工作流导出文件与插件导出文件。
- 检查目标插件的配置节点,确认是否存在流程开始、流程结束节点,以及是否正确配置了插件输入、输出节点。
- 确认其他用户的账号权限,是否具备使用公共插件的权限。
- 查看系统后台的报错日志,获取具体的报错文本信息。
解决与验证
- 为导入功能增加文件类型校验逻辑,仅允许导入对应类型的JSON文件,拦截工作流配置文件导入为插件的操作。
- 为插件保存环节增加校验规则,强制要求插件必须包含合法的插件输入、输出节点,同时限制流程开始、流程结束节点的删除权限。
- 重新导入符合要求的插件JSON文件,验证系统会拦截工作流导出的JSON文件导入。
- 重新创建符合校验规则的插件并发布,确认其他用户可正常使用该公共插件。