72 lines
3.2 KiB
Markdown
72 lines
3.2 KiB
Markdown
|
|
# 项目交付状态一页纸
|
|||
|
|
|
|||
|
|
这份只看当前状态,不记录开发历史。更详细的背景和概念看 `项目总览.md`。
|
|||
|
|
|
|||
|
|
## 项目是什么
|
|||
|
|
|
|||
|
|
这是 SimCAE 自动升级、授权、版本发布和崩溃报告服务的一套客户端 SDK + 服务端后台。
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
update-client/ Launcher / Updater / Bootstrap、SDK 打包、客户端接入文档
|
|||
|
|
update-server/ FastAPI 后端、Vue 管理后台、Docker 离线部署包
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 当前可以交付什么
|
|||
|
|
|
|||
|
|
- Windows/Linux 客户端升级运行时:`Launcher`、`Updater`、`Bootstrap`。
|
|||
|
|
- 客户端 SDK 包:包含运行程序、配置模板、接入文档、最终客户端打包脚本。
|
|||
|
|
- 服务端 Docker 离线部署包:包含 API 镜像、管理后台、MinIO、compose 文件、配置模板和 Manifest 签名密钥。
|
|||
|
|
- 管理后台:基于 pure-admin-thin / Vue3 / Element Plus / TypeScript / Vite。
|
|||
|
|
- 后端:基于 FastAPI,已经按 routes / services / repositories / schemas / core 分层,并支持 JWT / RBAC。
|
|||
|
|
- 后端自动化测试:pytest,覆盖登录/JWT、License/设备、更新检查、发布和崩溃报告核心流程。
|
|||
|
|
|
|||
|
|
## 已完成的核心功能
|
|||
|
|
|
|||
|
|
- 应用、渠道、版本发布、策略管理。
|
|||
|
|
- License 授权、设备登记、设备数限制。
|
|||
|
|
- Manifest 生成、SHA-256 文件校验、私钥签名、公钥验签。
|
|||
|
|
- 客户端检查更新、下载、安装、健康检查、失败回滚。
|
|||
|
|
- 升级日志、下载日志、管理员审计日志。
|
|||
|
|
- 发布清单 `发布清单.txt` / `release_manifest.txt`,支持选择发布哪些文件、排除哪些文件。
|
|||
|
|
- 发布压缩包支持 zip、tar.gz、tgz、tar.bz2、tbz2、rar。
|
|||
|
|
- 发布任务后台化:上传完成后,服务端后台继续处理,页面轮询任务状态。
|
|||
|
|
- 崩溃报告上传、查询、文件下载和符号包上传接口。
|
|||
|
|
|
|||
|
|
## 当前要特别注意
|
|||
|
|
|
|||
|
|
- `keys/manifest_private_key.pem` 必须在真实服务端部署包里,但不能进 Git、不能给客户端、不能公开传播。
|
|||
|
|
- 客户端 SDK 里的 `manifest_public_key.pem` 必须和服务端私钥配套。
|
|||
|
|
- `config/server_config.json` 会编进客户端程序;改服务端地址后必须重新编译 Launcher / Updater / Bootstrap。
|
|||
|
|
- `app_config.json` 首次启动会导入当前用户配置区,非空配置导入后会清空为 `{}`。
|
|||
|
|
- Manifest 缓存和设备身份等运行态文件默认在当前用户数据目录,不再默认写安装目录。
|
|||
|
|
- 公网部署前仍建议改默认 token/password、配置 HTTPS、限制 MinIO 控制台暴露范围、收紧 CORS。
|
|||
|
|
|
|||
|
|
## 打包入口
|
|||
|
|
|
|||
|
|
客户端 SDK:
|
|||
|
|
|
|||
|
|
```powershell
|
|||
|
|
cd update-client
|
|||
|
|
.\scripts\package-sdk.ps1 -SourceDir .\out\bin\Release -OutputDir .\dist\UpdateClientSDK -ZipFile .\dist\UpdateClientSDK.zip -SdkVersion 0.1.0
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
服务端 Docker 离线包:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd update-server
|
|||
|
|
bash ./scripts/package-offline-server.sh --version 0.1.0 --output-dir ./dist/SimCAEServerDockerPackage
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
服务端自动化测试:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd update-server
|
|||
|
|
./venv/bin/python3 -m pytest -q
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 还不算完成的事情
|
|||
|
|
|
|||
|
|
- 真实 Linux 版 SimCAE 主程序还没有交付联调。
|
|||
|
|
- 公网生产级安全加固还未全部自动化,例如登录限流、HTTPS 自动化、默认密钥强制替换。
|
|||
|
|
- 数据库迁移仍是 `tables.sql` + 手写兼容逻辑,长期维护可考虑 Alembic。
|