feat: 初始化项目结构
This commit is contained in:
1 parent
5082bfcb8f
commit
5f39264dbc
11 files changed
+362
-1
No files matched your search
@@ -0,0 +1,165 @@
|
||||
# 软件授权管理平台需求规格说明书
|
||||
|
||||
## 1. 项目概述
|
||||
|
||||
### 1.1 项目背景
|
||||
为了保护软件知识产权,规范软件使用权限,需要开发一个独立的软件授权管理平台,为IoT平台等软件系统提供授权码生成、分发、验证和管理服务。
|
||||
|
||||
### 1.2 项目目标
|
||||
- 建立统一的软件授权管理系统
|
||||
- 实现基于硬件绑定的授权机制
|
||||
- 提供在线和离线两种授权模式
|
||||
- 支持授权状态实时监控和管理
|
||||
- 提供完整的客户管理功能
|
||||
|
||||
### 1.3 系统定位
|
||||
本系统作为独立的授权管理平台,通过Web管理界面和RESTful API为其他软件系统提供授权服务。
|
||||
|
||||
## 2. 系统功能需求
|
||||
|
||||
### 2.1 客户管理模块
|
||||
- 支持客户基本信息的增删改查(姓名、公司、联系人、邮箱、电话、地址、状态、描述)
|
||||
- 支持客户状态管理(激活/停用)
|
||||
- 提供客户列表查看、详情查看和JSON API接口
|
||||
|
||||
### 2.2 授权生成模块
|
||||
|
||||
#### 2.2.1 授权类型支持
|
||||
- **在线授权码模式**:生成授权码,客户端激活时绑定硬件信息
|
||||
- **离线许可证模式**:直接生成绑定硬件信息的软件许可证
|
||||
|
||||
#### 2.2.2 授权生成功能
|
||||
- 支持为指定客户生成授权码或软件许可证
|
||||
- 硬件指纹基于机器序列号、MAC地址、CPU ID生成
|
||||
- 支持自定义有效期(1-36500天,预设选项:30天、90天、365天、永久)
|
||||
- 支持功能列表配置和部署模式选择(在线/离线)
|
||||
- 使用HMAC-SHA256签名和Base64编码保证安全性
|
||||
- 可扩展额外功能,软件系统可以从生成的license里解析出来,比如{"device_number":20}
|
||||
|
||||
### 2.3 授权管理模块
|
||||
- 显示所有授权记录列表,支持按客户筛选
|
||||
- 授权状态监控(激活、过期、吊销),支持手动吊销和删除
|
||||
- 提供授权详细信息查看(客户信息、硬件信息、过期时间、最后心跳时间)
|
||||
- 实时显示授权过期和激活状态
|
||||
|
||||
### 2.4 部署包生成模块
|
||||
- 为每个授权自动生成ZIP格式部署包
|
||||
- 包含配置文件(config.yaml)、安装脚本(install.sh)、部署文档等
|
||||
- 根据客户和授权信息自动命名
|
||||
|
||||
### 2.5 在线验证模块
|
||||
- **授权验证API**:验证授权码和软件许可证,支持硬件指纹验证
|
||||
- **授权激活API**:支持授权码激活为软件许可证,防止重复激活
|
||||
- **心跳监控API**:记录客户端活跃时间,提供在线状态统计
|
||||
- **授权信息查询API**:返回脱敏的授权信息,支持状态和过期检查
|
||||
|
||||
### 2.6 系统管理模块
|
||||
- **用户认证**:管理员登录、状态保持、安全退出
|
||||
- **权限控制**:Web界面需要认证,API接口独立于管理界面
|
||||
- **系统监控**:运行状态仪表盘、授权统计信息、资源监控
|
||||
|
||||
### 2.7 工具支持模块
|
||||
- 提供Windows和Linux平台的硬件信息获取工具
|
||||
- 支持获取机器序列号、MAC地址、CPU ID
|
||||
- 提供工具下载接口
|
||||
|
||||
## 3. 系统非功能性需求
|
||||
|
||||
### 3.1 性能需求
|
||||
- 支持并发用户数不少于100个
|
||||
- API响应时间不超过2秒
|
||||
- 数据库连接池管理和查询性能优化
|
||||
|
||||
### 3.2 安全需求
|
||||
- 授权码和软件许可证使用HMAC-SHA256签名
|
||||
- 硬件指纹绑定防止盗用
|
||||
- 敏感信息保护和HTTPS传输加密
|
||||
|
||||
### 3.3 可靠性需求
|
||||
- 系统可用性达到99.9%
|
||||
- 数据备份恢复、异常优雅降级
|
||||
- 完善的错误处理和日志记录
|
||||
|
||||
### 3.4 可扩展性需求
|
||||
- 支持水平扩展和模块化设计
|
||||
- 支持多种数据库(当前使用PostgreSQL)
|
||||
- RESTful API设计便于集成
|
||||
|
||||
### 3.5 兼容性需求
|
||||
- 支持Windows、Linux、macOS操作系统
|
||||
- 支持主流浏览器和跨平台客户端工具
|
||||
|
||||
## 4. 系统架构需求
|
||||
|
||||
### 4.1 技术架构
|
||||
- **架构模式**:B/S架构
|
||||
- **后端技术**:Go 1.23+,Gorilla Mux路由,Logrus日志
|
||||
- **数据库**:PostgreSQL 12+,mysql12+
|
||||
- **前端**:Vue.js 3+ 配合Vite,响应式UI组件
|
||||
- **配置**:YAML格式配置文件
|
||||
|
||||
### 4.2 部署要求
|
||||
- 支持单机部署、Docker容器化部署
|
||||
- 支持系统服务形式运行
|
||||
- 提供启动脚本和配置模板
|
||||
|
||||
## 5. 数据需求
|
||||
|
||||
### 5.1 数据模型
|
||||
- **客户数据表**:基本信息、状态、创建时间,支持软删除和审计
|
||||
- **授权数据表**:授权码/许可证信息、客户关联、硬件信息、状态时间、功能列表
|
||||
|
||||
### 5.2 数据管理
|
||||
- 支持定期数据备份和导入导出功能
|
||||
- 提供数据迁移工具
|
||||
|
||||
## 6. 接口需求
|
||||
|
||||
### 6.1 Web管理界面
|
||||
- 客户管理、授权生成、授权列表和详情页面
|
||||
- 系统仪表盘、用户登录页面
|
||||
|
||||
### 6.2 RESTful API接口
|
||||
- `POST /api/validate` - 授权验证
|
||||
- `POST /api/activate` - 授权激活
|
||||
- `POST /api/heartbeat` - 心跳上报
|
||||
- `GET /api/license/{code}` - 授权信息查询
|
||||
- `GET /api/customers` - 客户列表API
|
||||
- `GET /tools/{tool}` - 工具下载
|
||||
|
||||
### 6.3 数据格式
|
||||
- 统一JSON格式数据交换
|
||||
- 统一错误响应格式
|
||||
- 支持数据分页和筛选
|
||||
|
||||
## 7. 项目交付物
|
||||
|
||||
### 7.1 软件交付
|
||||
- 完整源代码(前后端)
|
||||
- 编译后的可执行文件
|
||||
- Docker镜像文件
|
||||
- 数据库初始化脚本
|
||||
|
||||
### 7.2 文档交付
|
||||
- 部署安装文档
|
||||
- API接口文档
|
||||
- 用户操作手册
|
||||
- 系统架构文档
|
||||
|
||||
### 7.3 工具交付
|
||||
- 硬件信息获取工具(Windows/Linux)
|
||||
- 客户端SDK示例
|
||||
- 配置文件模板
|
||||
|
||||
## 8. 开发计划
|
||||
|
||||
### 8.1 开发阶段
|
||||
1. **架构设计**(1周):技术选型、数据库设计、API设计
|
||||
2. **核心功能**(3周):客户管理、授权生成、验证API
|
||||
3. **Web界面**(2周):前端页面开发、交互逻辑
|
||||
4. **测试部署**(1周):功能测试、性能测试、部署验证
|
||||
|
||||
### 8.2 质量保证
|
||||
- 单元测试覆盖率 > 80%
|
||||
- 接口测试和性能测试
|
||||
- 安全性测试和代码审查
|
||||
Reference in new issue
Block a user