FtpTool/current.md
dark 114bcf33d8 feat: 同步链路支持版本分支目录映射、动态快照分支和 ackFail 定向重拉
- Git -> PROD 改为按 branch 作为 configVersion
- 按 airportId/appName/fileName 目录结构解析 pushConfig 参数
- PROD -> Git 改为写入 snapshot-branch/<configVersion> 动态分支
- pullConfig 支持 configVersion/fileName 可选过滤
- 抽出 ConfigCryptoService,统一收口加解密扩展点
- ackFail 落库增加重试上下文,支持按 airportId/appName/configVersion/fileName 定向重拉
- 同步更新测试、接口文档和 current.md
2026-04-28 14:49:33 +08:00

71 lines
2.6 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已改为按“版本分支 + 机场目录 + 模块目录”解析参数
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 直接指向待同步版本分支
- 分支名本身就是 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 的透传实现替换为正式加解密算法