refactor: restructure project to modern Python layout, separate src, tests, docs, examples
This commit is contained in:
50
docs/README.md
Normal file
50
docs/README.md
Normal file
@@ -0,0 +1,50 @@
|
||||
# Config-Man 文档
|
||||
|
||||
本目录包含 Config-Man 项目的所有文档。
|
||||
|
||||
## 文档结构
|
||||
|
||||
- `README.md` - 项目主文档
|
||||
- `USAGE.md` - 使用说明文档
|
||||
- `progress-tracker.md` - 进度跟踪文档
|
||||
- `requirements.md` - 需求文档
|
||||
- `workplan.md` - 工作计划文档
|
||||
|
||||
## 快速开始
|
||||
|
||||
1. 安装项目:
|
||||
```bash
|
||||
pip install -e .
|
||||
```
|
||||
|
||||
2. 查看帮助:
|
||||
```bash
|
||||
python main.py --help
|
||||
```
|
||||
|
||||
3. 使用查看功能:
|
||||
```bash
|
||||
python main.py view --version 0.30 --mock
|
||||
```
|
||||
|
||||
## 开发指南
|
||||
|
||||
1. 安装开发依赖:
|
||||
```bash
|
||||
pip install -e ".[dev]"
|
||||
```
|
||||
|
||||
2. 运行测试:
|
||||
```bash
|
||||
pytest
|
||||
```
|
||||
|
||||
3. 代码格式化:
|
||||
```bash
|
||||
black src/ tests/
|
||||
```
|
||||
|
||||
4. 类型检查:
|
||||
```bash
|
||||
mypy src/
|
||||
```
|
||||
221
docs/USAGE.md
Normal file
221
docs/USAGE.md
Normal file
@@ -0,0 +1,221 @@
|
||||
# Config-Man 查看功能使用说明
|
||||
|
||||
## 功能概述
|
||||
|
||||
Config-Man 的查看功能允许您对比显示对象存储和CDN中的配置内容,支持Android和iOS平台。
|
||||
|
||||
## 安装依赖
|
||||
|
||||
首先安装项目依赖:
|
||||
|
||||
```bash
|
||||
pip install -e .
|
||||
```
|
||||
|
||||
## 基本用法
|
||||
|
||||
### 1. 查看配置文件
|
||||
|
||||
```bash
|
||||
# 查看版本 0.30 的配置文件
|
||||
python main.py view --version 0.30
|
||||
|
||||
# 以JSON格式输出
|
||||
python main.py view --version 0.30 --json
|
||||
|
||||
# 使用模拟环境进行测试
|
||||
python main.py view --version 0.30 --mock
|
||||
```
|
||||
|
||||
### 2. 查看帮助信息
|
||||
|
||||
```bash
|
||||
# 查看主命令帮助
|
||||
python main.py --help
|
||||
|
||||
# 查看view命令帮助
|
||||
python main.py view --help
|
||||
```
|
||||
|
||||
## 参数说明
|
||||
|
||||
### view 命令参数
|
||||
|
||||
- `--version`: 版本号,格式为 0.29, 0.30, 0.31 等(必需)
|
||||
- `--json`: 以JSON格式输出(可选)
|
||||
- `--storage-path`: 对象存储路径前缀,默认为 'ab'(可选)
|
||||
- `--cdn-url`: CDN基础URL(可选)
|
||||
- `--mock`: 使用模拟环境进行测试(可选)
|
||||
|
||||
## 输出格式
|
||||
|
||||
### 表格格式(默认)
|
||||
|
||||
```
|
||||
版本: 0.30 | 平台: Android
|
||||
┌─────────────────┬─────────────────────┬─────────────────────┬──────────┐
|
||||
│ 配置项 │ 对象存储内容 │ CDN内容 │ 状态 │
|
||||
├─────────────────┼─────────────────────┼─────────────────────┼──────────┤
|
||||
│ Ver │ 0.30.2ghi789 │ 0.30.2ghi789 │ ✅ 一致 │
|
||||
│ EventApiURL │ https://n3backend. │ https://n3backend. │ ✅ 一致 │
|
||||
│ NewFeature │ enabled │ N/A │ ❌ 不同 │
|
||||
│ ... │ ... │ ... │ ... │
|
||||
└─────────────────┴─────────────────────┴─────────────────────┴──────────┘
|
||||
```
|
||||
|
||||
### JSON格式
|
||||
|
||||
```json
|
||||
{
|
||||
"version": "0.30",
|
||||
"platform": "android",
|
||||
"storage_config": {
|
||||
"EventApiURL": "https://n3backend.azurewebsites.net/",
|
||||
"Ver": "0.30.2ghi789",
|
||||
"NewFeature": "enabled"
|
||||
},
|
||||
"cdn_config": {
|
||||
"EventApiURL": "https://n3backend.azurewebsites.net/",
|
||||
"Ver": "0.30.2ghi789"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 模拟环境测试
|
||||
|
||||
为了方便测试,项目提供了模拟环境:
|
||||
|
||||
```bash
|
||||
# 使用模拟环境测试
|
||||
python main.py view --version 0.30 --mock
|
||||
```
|
||||
|
||||
模拟环境会:
|
||||
1. 自动创建测试配置文件
|
||||
2. 模拟rclone命令
|
||||
3. 提供完整的测试数据
|
||||
|
||||
## 错误处理
|
||||
|
||||
### 常见错误
|
||||
|
||||
1. **版本号格式错误**
|
||||
```
|
||||
错误: 无效的版本号格式: 1.2.3
|
||||
```
|
||||
|
||||
2. **rclone未安装**
|
||||
```
|
||||
错误: rclone 未安装或不可用。请先安装 rclone。
|
||||
```
|
||||
|
||||
3. **文件不存在**
|
||||
```
|
||||
警告: 无法从对象存储下载 ab/0_30/androidconfig.json: 文件不存在
|
||||
```
|
||||
|
||||
4. **网络连接失败**
|
||||
```
|
||||
警告: 无法从CDN获取 https://cdn.example.com/ab/0_30/androidconfig.json
|
||||
```
|
||||
|
||||
## 配置说明
|
||||
|
||||
### 配置文件结构
|
||||
|
||||
配置文件包含以下主要字段:
|
||||
|
||||
- **EventApiURL**: API端点URL
|
||||
- **Ver**: 版本信息
|
||||
- **PlayFabTitle**: PlayFab标题
|
||||
- **Google_Play_URL**: Google Play商店链接
|
||||
- **APP_Store_URL**: App Store链接
|
||||
- **HeartBeat**: 心跳间隔
|
||||
- **RTMPid**: RTM进程ID
|
||||
- **RTMServerEndpoint**: RTM服务器端点
|
||||
- **RTMHmacSecret**: RTM HMAC密钥
|
||||
- **FuncUrl**: 功能URL
|
||||
- **FuncKey**: 功能密钥
|
||||
|
||||
### 版本号转换
|
||||
|
||||
版本号会自动转换为存储路径格式:
|
||||
- `0.29` → `0_29`
|
||||
- `0.30` → `0_30`
|
||||
- `1.00` → `1_00`
|
||||
|
||||
## 高级用法
|
||||
|
||||
### 自定义存储路径
|
||||
|
||||
```bash
|
||||
python main.py view --version 0.30 --storage-path custom_path
|
||||
```
|
||||
|
||||
### 指定CDN URL
|
||||
|
||||
```bash
|
||||
python main.py view --version 0.30 --cdn-url https://cdn.example.com
|
||||
```
|
||||
|
||||
### 组合使用
|
||||
|
||||
```bash
|
||||
python main.py view --version 0.30 --json --mock --storage-path test_data/ab
|
||||
```
|
||||
|
||||
## 故障排除
|
||||
|
||||
### 1. 安装问题
|
||||
|
||||
确保安装了所有依赖:
|
||||
```bash
|
||||
pip install click pycryptodome tabulate requests rich
|
||||
```
|
||||
|
||||
### 2. rclone配置
|
||||
|
||||
如果使用真实环境,需要配置rclone:
|
||||
```bash
|
||||
rclone config
|
||||
```
|
||||
|
||||
### 3. 权限问题
|
||||
|
||||
确保有足够的权限访问对象存储和CDN。
|
||||
|
||||
### 4. 网络问题
|
||||
|
||||
检查网络连接和防火墙设置。
|
||||
|
||||
## 开发说明
|
||||
|
||||
### 项目结构
|
||||
|
||||
```
|
||||
config-man/
|
||||
├── main.py # 主程序入口
|
||||
├── appconfig_tool.py # 加密解密工具
|
||||
├── config_manager.py # 配置管理器
|
||||
├── display_manager.py # 显示管理器
|
||||
├── view_command.py # 查看命令处理器
|
||||
├── mock_rclone.py # 模拟rclone环境
|
||||
└── test_configs.py # 测试配置生成器
|
||||
```
|
||||
|
||||
### 扩展功能
|
||||
|
||||
要添加新的查看功能,可以:
|
||||
|
||||
1. 在 `config_manager.py` 中添加新的方法
|
||||
2. 在 `display_manager.py` 中添加新的显示格式
|
||||
3. 在 `view_command.py` 中添加新的处理逻辑
|
||||
4. 在 `main.py` 中添加新的CLI命令
|
||||
|
||||
## 联系支持
|
||||
|
||||
如果遇到问题,请检查:
|
||||
1. 版本号格式是否正确
|
||||
2. 网络连接是否正常
|
||||
3. rclone配置是否正确
|
||||
4. 依赖是否完整安装
|
||||
284
docs/progress-tracker.md
Normal file
284
docs/progress-tracker.md
Normal file
@@ -0,0 +1,284 @@
|
||||
# Config-Man CLI 工具进度追踪
|
||||
|
||||
## 项目状态概览
|
||||
|
||||
- **项目名称**: Config-Man CLI 工具
|
||||
- **当前阶段**: 项目初始化
|
||||
- **开始日期**: [待定]
|
||||
- **预计结束日期**: [待定]
|
||||
- **实际进度**: 0%
|
||||
- **剩余时间**: [待定]
|
||||
|
||||
## 阶段进度追踪
|
||||
|
||||
### 阶段1: 项目初始化 (1-2天)
|
||||
**状态**: 🔄 进行中
|
||||
**进度**: 0%
|
||||
**开始时间**: [待定]
|
||||
**预计完成**: [待定]
|
||||
|
||||
#### 任务1.1: 环境搭建
|
||||
- [ ] 创建Python虚拟环境
|
||||
- [ ] 安装项目依赖
|
||||
- [ ] 配置开发环境
|
||||
- [ ] 设置代码仓库
|
||||
- **状态**: ⏳ 待开始
|
||||
- **负责人**: [待定]
|
||||
- **预计时间**: 0.5天
|
||||
- **实际时间**: [待定]
|
||||
|
||||
#### 任务1.2: 项目结构设计
|
||||
- [ ] 设计项目目录结构
|
||||
- [ ] 创建基础模块
|
||||
- [ ] 配置CLI框架
|
||||
- [ ] 设置配置文件管理
|
||||
- **状态**: ⏳ 待开始
|
||||
- **负责人**: [待定]
|
||||
- **预计时间**: 0.5天
|
||||
- **实际时间**: [待定]
|
||||
|
||||
#### 任务1.3: 配置文件管理
|
||||
- [ ] 实现配置文件加密/解密功能
|
||||
- [ ] 实现对象存储连接
|
||||
- [ ] 实现rclone集成
|
||||
- [ ] 实现基础文件操作
|
||||
- **状态**: ⏳ 待开始
|
||||
- **负责人**: [待定]
|
||||
- **预计时间**: 1天
|
||||
- **实际时间**: [待定]
|
||||
|
||||
### 阶段2: 核心功能开发 (3-4天)
|
||||
**状态**: ⏳ 待开始
|
||||
**进度**: 0%
|
||||
**开始时间**: [待定]
|
||||
**预计完成**: [待定]
|
||||
|
||||
#### 任务2.1: 查看配置文件功能
|
||||
- [ ] 实现版本号转换逻辑 (0.29 → 0_29)
|
||||
- [ ] 实现文件下载和解密
|
||||
- [ ] 实现CDN内容获取
|
||||
- [ ] 实现配置对比显示
|
||||
- [ ] 实现格式化输出 (表格格式)
|
||||
- [ ] 实现Android和iOS平台同时显示
|
||||
- **状态**: ⏳ 待开始
|
||||
- **负责人**: [待定]
|
||||
- **预计时间**: 1.5天
|
||||
- **实际时间**: [待定]
|
||||
|
||||
#### 任务2.2: 建议更新功能
|
||||
- [ ] 实现配置文件读取和解析
|
||||
- [ ] 实现Ver_New属性添加逻辑
|
||||
- [ ] 实现文件加密和上传
|
||||
- [ ] 实现CDN缓存刷新
|
||||
- [ ] 实现错误处理和回滚
|
||||
- **状态**: ⏳ 待开始
|
||||
- **负责人**: [待定]
|
||||
- **预计时间**: 1天
|
||||
- **实际时间**: [待定]
|
||||
|
||||
#### 任务2.3: 强制更新功能
|
||||
- [ ] 实现Ver属性更新逻辑
|
||||
- [ ] 实现文件加密和上传
|
||||
- [ ] 实现CDN缓存刷新
|
||||
- [ ] 实现错误处理和回滚
|
||||
- [ ] 实现安全确认机制
|
||||
- **状态**: ⏳ 待开始
|
||||
- **负责人**: [待定]
|
||||
- **预计时间**: 1天
|
||||
- **实际时间**: [待定]
|
||||
|
||||
#### 任务2.4: CLI框架完善
|
||||
- [ ] 实现命令行参数解析
|
||||
- [ ] 实现帮助信息
|
||||
- [ ] 实现错误提示
|
||||
- [ ] 实现日志记录
|
||||
- **状态**: ⏳ 待开始
|
||||
- **负责人**: [待定]
|
||||
- **预计时间**: 0.5天
|
||||
- **实际时间**: [待定]
|
||||
|
||||
### 阶段3: 集成测试 (2-3天)
|
||||
**状态**: ⏳ 待开始
|
||||
**进度**: 0%
|
||||
**开始时间**: [待定]
|
||||
**预计完成**: [待定]
|
||||
|
||||
#### 任务3.1: 单元测试
|
||||
- [ ] 编写配置文件处理测试
|
||||
- [ ] 编写加密解密测试
|
||||
- [ ] 编写CLI命令测试
|
||||
- [ ] 编写版本号转换测试
|
||||
- [ ] 编写JSON处理测试
|
||||
- **状态**: ⏳ 待开始
|
||||
- **负责人**: [待定]
|
||||
- **预计时间**: 1天
|
||||
- **实际时间**: [待定]
|
||||
|
||||
#### 任务3.2: 集成测试
|
||||
- [ ] 测试对象存储连接
|
||||
- [ ] 测试CDN缓存刷新
|
||||
- [ ] 测试完整工作流程
|
||||
- [ ] 测试多版本场景
|
||||
- [ ] 测试多平台场景
|
||||
- **状态**: ⏳ 待开始
|
||||
- **负责人**: [待定]
|
||||
- **预计时间**: 1天
|
||||
- **实际时间**: [待定]
|
||||
|
||||
#### 任务3.3: 错误处理测试
|
||||
- [ ] 测试网络错误处理
|
||||
- [ ] 测试文件不存在错误
|
||||
- [ ] 测试参数验证错误
|
||||
- [ ] 测试加密解密错误
|
||||
- [ ] 测试CDN刷新错误
|
||||
- **状态**: ⏳ 待开始
|
||||
- **负责人**: [待定]
|
||||
- **预计时间**: 1天
|
||||
- **实际时间**: [待定]
|
||||
|
||||
### 阶段4: 文档和部署 (1-2天)
|
||||
**状态**: ⏳ 待开始
|
||||
**进度**: 0%
|
||||
**开始时间**: [待定]
|
||||
**预计完成**: [待定]
|
||||
|
||||
#### 任务4.1: 文档编写
|
||||
- [ ] 编写用户使用手册
|
||||
- [ ] 编写API文档
|
||||
- [ ] 编写部署指南
|
||||
- [ ] 编写故障排除指南
|
||||
- [ ] 更新README文档
|
||||
- **状态**: ⏳ 待开始
|
||||
- **负责人**: [待定]
|
||||
- **预计时间**: 1天
|
||||
- **实际时间**: [待定]
|
||||
|
||||
#### 任务4.2: 部署准备
|
||||
- [ ] 创建安装脚本
|
||||
- [ ] 配置CI/CD流程
|
||||
- [ ] 准备发布包
|
||||
- [ ] 创建配置文件模板
|
||||
- [ ] 设置环境变量配置
|
||||
- **状态**: ⏳ 待开始
|
||||
- **负责人**: [待定]
|
||||
- **预计时间**: 1天
|
||||
- **实际时间**: [待定]
|
||||
|
||||
### 阶段5: 验收测试 (1天)
|
||||
**状态**: ⏳ 待开始
|
||||
**进度**: 0%
|
||||
**开始时间**: [待定]
|
||||
**预计完成**: [待定]
|
||||
|
||||
#### 任务5.1: 功能验收
|
||||
- [ ] 验证所有CLI命令
|
||||
- [ ] 验证配置文件管理
|
||||
- [ ] 验证CDN缓存刷新
|
||||
- [ ] 验证错误处理
|
||||
- [ ] 验证文档完整性
|
||||
- **状态**: ⏳ 待开始
|
||||
- **负责人**: [待定]
|
||||
- **预计时间**: 0.5天
|
||||
- **实际时间**: [待定]
|
||||
|
||||
#### 任务5.2: 性能验收
|
||||
- [ ] 测试响应时间
|
||||
- [ ] 测试并发处理
|
||||
- [ ] 测试错误恢复
|
||||
- [ ] 测试内存使用
|
||||
- [ ] 测试CPU使用
|
||||
- **状态**: ⏳ 待开始
|
||||
- **负责人**: [待定]
|
||||
- **预计时间**: 0.5天
|
||||
- **实际时间**: [待定]
|
||||
|
||||
## 里程碑追踪
|
||||
|
||||
### 里程碑1: 项目初始化完成
|
||||
- **状态**: ⏳ 待开始
|
||||
- **计划时间**: 第2天
|
||||
- **实际时间**: [待定]
|
||||
- **交付物**: 基础框架和配置文件管理功能
|
||||
- **验收标准**: 可以成功操作加密的配置文件
|
||||
|
||||
### 里程碑2: 核心功能完成
|
||||
- **状态**: ⏳ 待开始
|
||||
- **计划时间**: 第6天
|
||||
- **实际时间**: [待定]
|
||||
- **交付物**: 三个主要CLI功能
|
||||
- **验收标准**: 所有命令正常工作
|
||||
|
||||
### 里程碑3: 测试完成
|
||||
- **状态**: ⏳ 待开始
|
||||
- **计划时间**: 第9天
|
||||
- **实际时间**: [待定]
|
||||
- **交付物**: 测试报告和修复的问题
|
||||
- **验收标准**: 测试覆盖率 > 80%,无严重bug
|
||||
|
||||
### 里程碑4: 项目交付
|
||||
- **状态**: ⏳ 待开始
|
||||
- **计划时间**: 第12天
|
||||
- **实际时间**: [待定]
|
||||
- **交付物**: 完整的CLI工具和文档
|
||||
- **验收标准**: 满足所有需求,可以投入使用
|
||||
|
||||
## 问题追踪
|
||||
|
||||
### 已解决问题
|
||||
| 问题ID | 问题描述 | 解决方案 | 解决时间 | 负责人 |
|
||||
|--------|----------|----------|----------|--------|
|
||||
| - | - | - | - | - |
|
||||
|
||||
### 待解决问题
|
||||
| 问题ID | 问题描述 | 优先级 | 状态 | 负责人 | 预计解决时间 |
|
||||
|--------|----------|--------|------|--------|--------------|
|
||||
| - | - | - | - | - | - |
|
||||
|
||||
### 风险追踪
|
||||
| 风险ID | 风险描述 | 影响程度 | 缓解措施 | 状态 | 负责人 |
|
||||
|--------|----------|----------|----------|------|--------|
|
||||
| R001 | 对象存储API集成复杂性 | 高 | 使用rclone作为统一接口 | 监控中 | [待定] |
|
||||
| R002 | CDN缓存刷新API限制 | 中 | 实现重试机制和错误处理 | 监控中 | [待定] |
|
||||
| R003 | CLI框架学习成本 | 低 | 选择文档完善的框架 | 监控中 | [待定] |
|
||||
|
||||
## 团队工作负载
|
||||
|
||||
### 本周工作负载
|
||||
| 团队成员 | 当前任务 | 预计完成时间 | 工作负载 | 备注 |
|
||||
|----------|----------|--------------|----------|------|
|
||||
| [待定] | - | - | - | - |
|
||||
|
||||
### 下周工作计划
|
||||
| 团队成员 | 计划任务 | 预计开始时间 | 预计完成时间 | 备注 |
|
||||
|----------|----------|--------------|--------------|------|
|
||||
| [待定] | - | - | - | - |
|
||||
|
||||
## 质量指标
|
||||
|
||||
### 代码质量
|
||||
- **测试覆盖率**: 0% (目标: >80%)
|
||||
- **代码审查**: 0% (目标: 100%)
|
||||
- **静态分析**: 0% (目标: 100%)
|
||||
|
||||
### 性能指标
|
||||
- **配置文件查看响应时间**: [待测试] (目标: <3秒)
|
||||
- **配置文件修改响应时间**: [待测试] (目标: <5秒)
|
||||
- **CDN缓存刷新响应时间**: [待测试] (目标: <10秒)
|
||||
|
||||
### 文档质量
|
||||
- **用户手册**: 0% (目标: 100%)
|
||||
- **API文档**: 0% (目标: 100%)
|
||||
- **部署指南**: 0% (目标: 100%)
|
||||
|
||||
## 更新日志
|
||||
|
||||
### 2024年[待定]
|
||||
- 创建项目进度追踪文档
|
||||
- 初始化所有任务状态为待开始
|
||||
- 设置里程碑和验收标准
|
||||
|
||||
---
|
||||
|
||||
**最后更新**: [待定]
|
||||
**更新人**: [待定]
|
||||
**下次更新**: [待定]
|
||||
232
docs/requirements.md
Normal file
232
docs/requirements.md
Normal file
@@ -0,0 +1,232 @@
|
||||
# Config-Man CLI 工具需求文档
|
||||
|
||||
## 1. 项目概述
|
||||
|
||||
### 1.1 项目背景
|
||||
开发一个Python CLI工具,用于管理存储在对象存储中的加密静态资源配置文件。该工具支持多版本管理,通过Cloudflare CDN进行分发,主要用于游戏应用的配置管理。
|
||||
|
||||
### 1.2 项目目标
|
||||
- 简化多版本配置文件的查看和管理
|
||||
- 支持版本升级策略(建议更新和强制更新)
|
||||
- 确保配置文件的加密存储和CDN缓存同步
|
||||
- 提供直观的配置对比功能
|
||||
|
||||
## 2. 系统架构
|
||||
|
||||
### 2.1 存储架构
|
||||
```
|
||||
对象存储服务器
|
||||
├── ab/
|
||||
│ ├── 0_29/
|
||||
│ │ ├── androidconfig.json (加密)
|
||||
│ │ └── iosconfig.json (加密)
|
||||
│ ├── 0_30/
|
||||
│ │ ├── androidconfig.json (加密)
|
||||
│ │ └── iosconfig.json (加密)
|
||||
│ └── 1_00/
|
||||
│ ├── androidconfig.json (加密)
|
||||
│ └── iosconfig.json (加密)
|
||||
```
|
||||
|
||||
### 2.2 技术栈
|
||||
- **开发语言**: Python 3.13+
|
||||
- **CLI框架**: Click 或 Typer
|
||||
- **存储同步**: rclone
|
||||
- **CDN服务**: Cloudflare
|
||||
- **文件加密**: AES-256
|
||||
- **配置格式**: JSON
|
||||
|
||||
## 3. 功能需求
|
||||
|
||||
### 3.1 功能1: 查看配置文件
|
||||
|
||||
#### 3.1.1 功能描述
|
||||
对比显示对象存储和CDN中的配置内容,支持Android和iOS平台。
|
||||
|
||||
#### 3.1.2 命令行格式
|
||||
```bash
|
||||
config-man view --version <版本号>
|
||||
```
|
||||
|
||||
#### 3.1.3 参数说明
|
||||
- `--version`: 版本号,格式为 0.29, 0.30, 0.31 等
|
||||
|
||||
#### 3.1.4 功能特性
|
||||
- 同时显示Android和iOS平台的配置文件
|
||||
- 对比对象存储中的内容和CDN中的内容
|
||||
- 使用表格格式漂亮地展示配置差异
|
||||
- 支持JSON格式化输出
|
||||
|
||||
#### 3.1.5 输出示例
|
||||
```
|
||||
版本: 0.30
|
||||
平台: Android
|
||||
┌─────────────────┬─────────────────────┬─────────────────────┐
|
||||
│ 配置项 │ 对象存储内容 │ CDN内容 │
|
||||
├─────────────────┼─────────────────────┼─────────────────────┤
|
||||
│ Ver │ 0.30.1abc123 │ 0.30.1abc123 │
|
||||
│ EventApiURL │ https://... │ https://... │
|
||||
│ PlayFabTitle │ B066F │ B066F │
|
||||
│ ... │ ... │ ... │
|
||||
└─────────────────┴─────────────────────┴─────────────────────┘
|
||||
|
||||
平台: iOS
|
||||
┌─────────────────┬─────────────────────┬─────────────────────┐
|
||||
│ 配置项 │ 对象存储内容 │ CDN内容 │
|
||||
├─────────────────┼─────────────────────┼─────────────────────┤
|
||||
│ Ver │ 0.30.1def456 │ 0.30.1def456 │
|
||||
│ ... │ ... │ ... │
|
||||
└─────────────────┴─────────────────────┴─────────────────────┘
|
||||
```
|
||||
|
||||
### 3.2 功能2: 建议更新
|
||||
|
||||
#### 3.2.1 功能描述
|
||||
在目标版本的配置文件中添加 `Ver_New` 属性,提示用户有新版本可用。
|
||||
|
||||
#### 3.2.2 命令行格式
|
||||
```bash
|
||||
config-man suggest-update --platform <平台> --target-version <目标版本> --update-version <更新版本>
|
||||
```
|
||||
|
||||
#### 3.2.3 参数说明
|
||||
- `--platform`: 平台类型,支持 android 或 ios
|
||||
- `--target-version`: 目标版本号,如 0.29
|
||||
- `--update-version`: 更新版本号,如 0.30
|
||||
|
||||
#### 3.2.4 功能特性
|
||||
- 在目标版本配置中添加 `Ver_New` 属性
|
||||
- `Ver_New` 的值设为更新版本的 `Ver` 属性值
|
||||
- 自动加密并上传到对象存储
|
||||
- 自动刷新CDN缓存
|
||||
|
||||
#### 3.2.5 配置变更示例
|
||||
```json
|
||||
// 修改前
|
||||
{
|
||||
"Ver": "0.29.1abc123",
|
||||
"EventApiURL": "https://n3backend.azurewebsites.net/",
|
||||
"PlayFabTitle": "B066F"
|
||||
}
|
||||
|
||||
// 修改后
|
||||
{
|
||||
"Ver": "0.29.1abc123",
|
||||
"Ver_New": "0.30.1def456",
|
||||
"EventApiURL": "https://n3backend.azurewebsites.net/",
|
||||
"PlayFabTitle": "B066F"
|
||||
}
|
||||
```
|
||||
|
||||
### 3.3 功能3: 强制更新
|
||||
|
||||
#### 3.3.1 功能描述
|
||||
直接更新目标版本的 `Ver` 属性,强制用户升级到新版本。
|
||||
|
||||
#### 3.3.2 命令行格式
|
||||
```bash
|
||||
config-man force-update --platform <平台> --target-version <目标版本> --update-version <更新版本>
|
||||
```
|
||||
|
||||
#### 3.3.3 参数说明
|
||||
- `--platform`: 平台类型,支持 android 或 ios
|
||||
- `--target-version`: 目标版本号,如 0.29
|
||||
- `--update-version`: 更新版本号,如 0.30
|
||||
|
||||
#### 3.3.4 功能特性
|
||||
- 将目标版本的 `Ver` 属性值改为更新版本的 `Ver` 属性值
|
||||
- 自动加密并上传到对象存储
|
||||
- 自动刷新CDN缓存
|
||||
|
||||
#### 3.3.5 配置变更示例
|
||||
```json
|
||||
// 修改前
|
||||
{
|
||||
"Ver": "0.29.1abc123",
|
||||
"EventApiURL": "https://n3backend.azurewebsites.net/",
|
||||
"PlayFabTitle": "B066F"
|
||||
}
|
||||
|
||||
// 修改后
|
||||
{
|
||||
"Ver": "0.30.1def456",
|
||||
"EventApiURL": "https://n3backend.azurewebsites.net/",
|
||||
"PlayFabTitle": "B066F"
|
||||
}
|
||||
```
|
||||
|
||||
## 4. 配置文件结构
|
||||
|
||||
### 4.1 配置项说明
|
||||
```json
|
||||
{
|
||||
"EventApiURL": "https://n3backend.azurewebsites.net/",
|
||||
"Ver": "0.28.2ece920695",
|
||||
"PlayFabTitle": "B066F",
|
||||
"Google_Play_URL": "https://play.google.com/store/apps/details?id=com.arkgame.ft",
|
||||
"APP_Store_URL": "https://apps.apple.com/us/app/id6505145935",
|
||||
"HeartBeat": "60",
|
||||
"RTMPid": "80000586",
|
||||
"RTMServerEndpoint": "rtm-intl-frontgate.ilivedata.com:13321",
|
||||
"RTMHmacSecret": "57047697437f4f2c97a835e8d9a53358",
|
||||
"FuncUrl": "https://leaderboardcreate.azurewebsites.net",
|
||||
"FuncKey": "R5kU45fNBRd52Eqp3tEqfpZqrbFw53uSSEo7wraUSqIfAzFuRmLm_w=="
|
||||
}
|
||||
```
|
||||
|
||||
### 4.2 配置项分类
|
||||
- **API端点**: EventApiURL, FuncUrl
|
||||
- **版本信息**: Ver, Ver_New
|
||||
- **应用商店链接**: Google_Play_URL, APP_Store_URL
|
||||
- **实时通信**: RTMPid, RTMServerEndpoint, RTMHmacSecret
|
||||
- **功能配置**: PlayFabTitle, HeartBeat, FuncKey
|
||||
|
||||
## 5. 技术要求
|
||||
|
||||
### 5.1 安全要求
|
||||
- 配置文件在对象存储中加密存储
|
||||
- 支持AES-256加密算法
|
||||
- 加密密钥安全管理
|
||||
- 操作日志记录
|
||||
|
||||
### 5.2 性能要求
|
||||
- 配置文件查看响应时间 < 3秒
|
||||
- 配置文件修改响应时间 < 5秒
|
||||
- CDN缓存刷新响应时间 < 10秒
|
||||
|
||||
### 5.3 兼容性要求
|
||||
- 支持Python 3.13+
|
||||
- 支持Windows、macOS、Linux
|
||||
- 支持rclone命令行工具
|
||||
|
||||
## 6. 错误处理
|
||||
|
||||
### 6.1 常见错误场景
|
||||
- 版本号不存在
|
||||
- 平台类型错误
|
||||
- 网络连接失败
|
||||
- 文件加密/解密失败
|
||||
- CDN刷新失败
|
||||
|
||||
### 6.2 错误处理策略
|
||||
- 提供清晰的错误信息
|
||||
- 支持重试机制
|
||||
- 记录详细的操作日志
|
||||
- 提供回滚功能
|
||||
|
||||
## 7. 非功能性需求
|
||||
|
||||
### 7.1 可用性
|
||||
- 提供清晰的命令行帮助信息
|
||||
- 支持命令自动补全
|
||||
- 提供详细的错误提示
|
||||
|
||||
### 7.2 可维护性
|
||||
- 模块化设计
|
||||
- 完善的日志记录
|
||||
- 清晰的代码注释
|
||||
|
||||
### 7.3 可扩展性
|
||||
- 支持新的配置文件格式
|
||||
- 支持新的存储后端
|
||||
- 支持新的CDN服务商
|
||||
246
docs/workplan.md
Normal file
246
docs/workplan.md
Normal file
@@ -0,0 +1,246 @@
|
||||
# Config-Man CLI 工具工作计划
|
||||
|
||||
## 项目概览
|
||||
|
||||
- **项目名称**: Config-Man CLI 工具
|
||||
- **预计工期**: 8-12天
|
||||
- **开始日期**: [待定]
|
||||
- **结束日期**: [待定]
|
||||
- **项目经理**: [待定]
|
||||
|
||||
## 阶段1: 项目初始化 (1-2天)
|
||||
|
||||
### 任务1.1: 环境搭建
|
||||
- [ ] 创建Python虚拟环境
|
||||
- [ ] 安装项目依赖
|
||||
- [ ] 配置开发环境
|
||||
- [ ] 设置代码仓库
|
||||
- **负责人**: [待定]
|
||||
- **预计时间**: 0.5天
|
||||
- **完成标准**: 开发环境可以正常运行
|
||||
|
||||
### 任务1.2: 项目结构设计
|
||||
- [ ] 设计项目目录结构
|
||||
- [ ] 创建基础模块
|
||||
- [ ] 配置CLI框架
|
||||
- [ ] 设置配置文件管理
|
||||
- **负责人**: [待定]
|
||||
- **预计时间**: 0.5天
|
||||
- **完成标准**: 项目结构清晰,基础框架可用
|
||||
|
||||
### 任务1.3: 配置文件管理
|
||||
- [ ] 实现配置文件加密/解密功能
|
||||
- [ ] 实现对象存储连接
|
||||
- [ ] 实现rclone集成
|
||||
- [ ] 实现基础文件操作
|
||||
- **负责人**: [待定]
|
||||
- **预计时间**: 1天
|
||||
- **完成标准**: 可以成功下载、解密、加密、上传配置文件
|
||||
|
||||
## 阶段2: 核心功能开发 (3-4天)
|
||||
|
||||
### 任务2.1: 查看配置文件功能
|
||||
- [ ] 实现版本号转换逻辑 (0.29 → 0_29)
|
||||
- [ ] 实现文件下载和解密
|
||||
- [ ] 实现CDN内容获取
|
||||
- [ ] 实现配置对比显示
|
||||
- [ ] 实现格式化输出 (表格格式)
|
||||
- [ ] 实现Android和iOS平台同时显示
|
||||
- **负责人**: [待定]
|
||||
- **预计时间**: 1.5天
|
||||
- **完成标准**: `config-man view --version 0.30` 命令正常工作
|
||||
|
||||
### 任务2.2: 建议更新功能
|
||||
- [ ] 实现配置文件读取和解析
|
||||
- [ ] 实现Ver_New属性添加逻辑
|
||||
- [ ] 实现文件加密和上传
|
||||
- [ ] 实现CDN缓存刷新
|
||||
- [ ] 实现错误处理和回滚
|
||||
- **负责人**: [待定]
|
||||
- **预计时间**: 1天
|
||||
- **完成标准**: `config-man suggest-update` 命令正常工作
|
||||
|
||||
### 任务2.3: 强制更新功能
|
||||
- [ ] 实现Ver属性更新逻辑
|
||||
- [ ] 实现文件加密和上传
|
||||
- [ ] 实现CDN缓存刷新
|
||||
- [ ] 实现错误处理和回滚
|
||||
- [ ] 实现安全确认机制
|
||||
- **负责人**: [待定]
|
||||
- **预计时间**: 1天
|
||||
- **完成标准**: `config-man force-update` 命令正常工作
|
||||
|
||||
### 任务2.4: CLI框架完善
|
||||
- [ ] 实现命令行参数解析
|
||||
- [ ] 实现帮助信息
|
||||
- [ ] 实现错误提示
|
||||
- [ ] 实现日志记录
|
||||
- **负责人**: [待定]
|
||||
- **预计时间**: 0.5天
|
||||
- **完成标准**: CLI界面友好,错误提示清晰
|
||||
|
||||
## 阶段3: 集成测试 (2-3天)
|
||||
|
||||
### 任务3.1: 单元测试
|
||||
- [ ] 编写配置文件处理测试
|
||||
- [ ] 编写加密解密测试
|
||||
- [ ] 编写CLI命令测试
|
||||
- [ ] 编写版本号转换测试
|
||||
- [ ] 编写JSON处理测试
|
||||
- **负责人**: [待定]
|
||||
- **预计时间**: 1天
|
||||
- **完成标准**: 测试覆盖率 > 80%
|
||||
|
||||
### 任务3.2: 集成测试
|
||||
- [ ] 测试对象存储连接
|
||||
- [ ] 测试CDN缓存刷新
|
||||
- [ ] 测试完整工作流程
|
||||
- [ ] 测试多版本场景
|
||||
- [ ] 测试多平台场景
|
||||
- **负责人**: [待定]
|
||||
- **预计时间**: 1天
|
||||
- **完成标准**: 所有功能在真实环境中正常工作
|
||||
|
||||
### 任务3.3: 错误处理测试
|
||||
- [ ] 测试网络错误处理
|
||||
- [ ] 测试文件不存在错误
|
||||
- [ ] 测试参数验证错误
|
||||
- [ ] 测试加密解密错误
|
||||
- [ ] 测试CDN刷新错误
|
||||
- **负责人**: [待定]
|
||||
- **预计时间**: 1天
|
||||
- **完成标准**: 错误处理完善,用户体验良好
|
||||
|
||||
## 阶段4: 文档和部署 (1-2天)
|
||||
|
||||
### 任务4.1: 文档编写
|
||||
- [ ] 编写用户使用手册
|
||||
- [ ] 编写API文档
|
||||
- [ ] 编写部署指南
|
||||
- [ ] 编写故障排除指南
|
||||
- [ ] 更新README文档
|
||||
- **负责人**: [待定]
|
||||
- **预计时间**: 1天
|
||||
- **完成标准**: 文档完整,易于理解
|
||||
|
||||
### 任务4.2: 部署准备
|
||||
- [ ] 创建安装脚本
|
||||
- [ ] 配置CI/CD流程
|
||||
- [ ] 准备发布包
|
||||
- [ ] 创建配置文件模板
|
||||
- [ ] 设置环境变量配置
|
||||
- **负责人**: [待定]
|
||||
- **预计时间**: 1天
|
||||
- **完成标准**: 可以一键部署和安装
|
||||
|
||||
## 阶段5: 验收测试 (1天)
|
||||
|
||||
### 任务5.1: 功能验收
|
||||
- [ ] 验证所有CLI命令
|
||||
- [ ] 验证配置文件管理
|
||||
- [ ] 验证CDN缓存刷新
|
||||
- [ ] 验证错误处理
|
||||
- [ ] 验证文档完整性
|
||||
- **负责人**: [待定]
|
||||
- **预计时间**: 0.5天
|
||||
- **完成标准**: 所有功能按需求正常工作
|
||||
|
||||
### 任务5.2: 性能验收
|
||||
- [ ] 测试响应时间
|
||||
- [ ] 测试并发处理
|
||||
- [ ] 测试错误恢复
|
||||
- [ ] 测试内存使用
|
||||
- [ ] 测试CPU使用
|
||||
- **负责人**: [待定]
|
||||
- **预计时间**: 0.5天
|
||||
- **完成标准**: 性能指标达到要求
|
||||
|
||||
## 关键里程碑
|
||||
|
||||
### 里程碑1: 项目初始化完成
|
||||
- **时间**: 第2天
|
||||
- **交付物**: 基础框架和配置文件管理功能
|
||||
- **验收标准**: 可以成功操作加密的配置文件
|
||||
|
||||
### 里程碑2: 核心功能完成
|
||||
- **时间**: 第6天
|
||||
- **交付物**: 三个主要CLI功能
|
||||
- **验收标准**: 所有命令正常工作
|
||||
|
||||
### 里程碑3: 测试完成
|
||||
- **时间**: 第9天
|
||||
- **交付物**: 测试报告和修复的问题
|
||||
- **验收标准**: 测试覆盖率 > 80%,无严重bug
|
||||
|
||||
### 里程碑4: 项目交付
|
||||
- **时间**: 第12天
|
||||
- **交付物**: 完整的CLI工具和文档
|
||||
- **验收标准**: 满足所有需求,可以投入使用
|
||||
|
||||
## 风险评估
|
||||
|
||||
### 高风险
|
||||
- **对象存储API集成复杂性**
|
||||
- 风险描述: 不同对象存储服务商的API差异较大
|
||||
- 缓解措施: 使用rclone作为统一接口,降低集成复杂度
|
||||
- 影响: 可能延长开发时间1-2天
|
||||
|
||||
### 中风险
|
||||
- **CDN缓存刷新API限制**
|
||||
- 风险描述: Cloudflare API可能有调用频率限制
|
||||
- 缓解措施: 实现重试机制和错误处理
|
||||
- 影响: 可能影响用户体验
|
||||
|
||||
### 低风险
|
||||
- **CLI框架学习成本**
|
||||
- 风险描述: 团队成员可能需要学习Click或Typer框架
|
||||
- 缓解措施: 选择文档完善的框架,提供学习资源
|
||||
- 影响: 轻微影响开发进度
|
||||
|
||||
## 成功标准
|
||||
|
||||
### 功能标准
|
||||
- [ ] 所有三个CLI功能正常工作
|
||||
- [ ] 配置文件正确加密存储
|
||||
- [ ] CDN缓存正确刷新
|
||||
- [ ] 错误处理完善
|
||||
- [ ] 文档完整清晰
|
||||
|
||||
### 性能标准
|
||||
- [ ] 配置文件查看响应时间 < 3秒
|
||||
- [ ] 配置文件修改响应时间 < 5秒
|
||||
- [ ] CDN缓存刷新响应时间 < 10秒
|
||||
- [ ] 内存使用 < 100MB
|
||||
- [ ] CPU使用 < 10%
|
||||
|
||||
### 质量标准
|
||||
- [ ] 代码测试覆盖率 > 80%
|
||||
- [ ] 无严重bug
|
||||
- [ ] 代码注释完整
|
||||
- [ ] 符合Python编码规范
|
||||
|
||||
## 团队分工
|
||||
|
||||
### 开发团队
|
||||
- **主开发**: [待定] - 负责核心功能开发
|
||||
- **测试工程师**: [待定] - 负责测试和验收
|
||||
- **文档工程师**: [待定] - 负责文档编写
|
||||
|
||||
### 支持团队
|
||||
- **项目经理**: [待定] - 负责项目管理和进度跟踪
|
||||
- **技术顾问**: [待定] - 负责技术指导和问题解决
|
||||
|
||||
## 沟通计划
|
||||
|
||||
### 日常沟通
|
||||
- **每日站会**: 每天上午9:00,15分钟
|
||||
- **周报**: 每周五下午,总结本周进展和下周计划
|
||||
|
||||
### 里程碑沟通
|
||||
- **里程碑评审**: 每个里程碑完成后进行评审
|
||||
- **风险汇报**: 发现风险时立即汇报
|
||||
|
||||
### 文档更新
|
||||
- **进度更新**: 每周更新工作计划进度
|
||||
- **问题记录**: 及时记录和跟踪问题
|
||||
- **经验总结**: 项目结束后进行经验总结
|
||||
Reference in New Issue
Block a user