FtpTool/current.md
2026-04-28 17:00:58 +08:00

73 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

当前架构
已从 开发 -> FTP -> 生产 改为 生产环境单 prod-agent -> 开发 Git / 生产 push-pull API
正式启动类是 GitDirectSyncToolApplication.java
已完成
Git -> PROD 主链路已可用
PROD -> Git 主链路已可用
生产真实接口已按 testapi.txt 适配
pushConfigPOST + JSON数组
pullConfigGET + JSON响应
login已支持 token 获取与缓存
ackSuc/ackFail已接入回传与本地落库
ConfigCryptoService已抽出当前默认透传实现后续只需替换该服务内算法
Git -> PROD已支持最小增量推送删除场景自动回退全量
Git -> PROD已改为先按 git.repo.scan-branch-pattern 批量扫描版本分支,再逐个按“版本分支 + 机场目录 + 模块目录”解析参数
PROD -> Git已按 airportId/appName/fileName 目录结构回写到动态 snapshot 分支
Git -> PRODsourceVersion/configVersion 已改为 Git 分支名,不再用 commit SHA
Git -> PRODbaseline 已按版本分支隔离
pullConfig已支持 configVersion/fileName 可选过滤参数
ackFail已支持按 airportId/appName/configVersion/fileName 定向重拉
ackFail失败记录已增加 retryCount/nextRetryAt/lastErrorMsg 元数据
管理接口已加:
GET /api/admin/sync/overview
GET /api/admin/sync/tasks/recent
GET /api/admin/sync/tasks/failed
docs 下设计文档和接口文档已同步更新到当前口径
Git 仓库约定
Git -> PROD
- 支持两种入口:
- git.repo.scan-branch只同步一个指定版本分支
- git.repo.scan-branch-pattern批量扫描所有匹配分支当前默认用于 R_XXX_.*
- 分支名本身就是 configVersion
- 分支内目录结构必须为airportId/appName/模块内文件
- pushConfig 参数映射:
- airportId = 路径第1段
- appName = 路径第2段
- fileName = 模块内相对路径
- configVersion = 当前分支名
PROD -> Git
- pullConfig 返回项会恢复为airportId/appName/fileName
- 当前提交目标分支为git.repo.snapshot-branch/<configVersion>
- 例如config-prod-snapshot/R_XXX_V3.0.3_XXX
- 若 pullConfig 返回缺少统一版本号,则按当前 result 的 sourceVersion 退化生成动态分支名
关键文件
生产接口适配ProdConfigApiService.java
加解密扩展点ConfigCryptoService.java
主协调器ProdSyncCoordinator.java
ACK 落库:
ProdPullAckRecord.java
ProdPullAckService.java
管理接口SyncManagementController.java
接口文档prod-api-v1.md
设计文档:
git-direct-sync-tool-design.md
ftp-sync-tool-design.md
ftp-sync-tool-detail-design.md
当前 TODO
configContent 推送前加密
configContent 拉取后解密
验证状态
mvn -s build-support/maven-settings.xml test 已通过
如果你是想让我继续下一步,最顺的就是:
把 ConfigCryptoService 的透传实现替换为正式加解密算法