feat: 新增FTP部署插件 - #551
Open
AXmishell wants to merge 7 commits into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
功能概述
新增内置 FTP 部署插件,支持证书/私钥通过 FTP/FTPS 上传到远程服务器,覆盖完整加密体系:
github.com/jlaffaye/ftp(MIT 许可),补充 PORT/EPRT 主动数据连接(含 TLS 数据通道),修复原库不支持主动模式的问题/ssl/自动拼接默认文件名fullchain.pem/privkey.pem)或完整文件路径(/ssl/test.crt)改动文件
后端
backend/internal/cert/deploy/ftp.go(新增):FTP 插件核心(连接/TLS/mTLS/路径识别/上传/连通性测试)backend/internal/cert/deploy/deploy.go:部署分发注册ftpbackend/app/api/access.go:连通性测试接口注册ftpthird_party/jlaffaye-ftp/(新增):fork 库,增加主动模式(EPRT/PORT + 延迟 accept + TLS 数据连接)go.mod/go.sum:依赖github.com/jlaffaye/ftp(replace 至 fork)前端
config/data.tsx:授权类型新增 FTPtypes/access.d.ts:FtpAccessConfig类型authApiManage/useController.tsx:FTP 表单(TLS/mTLS 联动、端口自动匹配、星号控制)workflowView/lib/NodeFormConfig.tsx+node/deploy/model.tsx:部署节点 FTP 字段assets/icons/svg/resources/ftp.svg(新增):FTP 图标构建修复
frontend/package.json:workspaces 补充plugin/*(Linux 构建必需)测试
说明
*_test.go)按项目.gitignore不入库,位于本地