# RMDC 详细设计说明书 (DDS)
**产品名称**: RMDC (Runtime Management & DevOps Center)
**版本**: v1.0
**编制日期**: 2026-01-06
---
## 1. 系统架构
### 1.1 整体架构图
```mermaid
graph TB
subgraph "前端层"
Portal[RMDC Portal
Vue3 + Vuetify3]
end
subgraph "网关层"
Core[rmdc-core
API Gateway + 鉴权]
end
subgraph "业务层"
Jenkins[rmdc-jenkins-branch-dac
构建管理]
Project[rmdc-project-management
项目管理]
Audit[rmdc-audit-log
审计日志]
UserAuth[rmdc-user-auth
用户权限]
ExHub[rmdc-exchange-hub
消息网关]
end
subgraph "通信层"
MQTT[(MQTT Broker)]
end
subgraph "边缘层"
WD[rmdc-watchdog
边缘代理]
Node[watchdog-node
主机代理]
Agent[watchdog-agent
业务启动器]
end
subgraph "外部服务"
JenkinsS[(Jenkins)]
MinIO[(MinIO)]
PG[(PostgreSQL)]
end
Portal --> Core
Core --> Jenkins & Project & Audit & UserAuth & ExHub
Jenkins --> JenkinsS & MinIO
Project & Jenkins & Audit --> PG
ExHub <--> MQTT
MQTT <-.公网.-> WD
WD <--> Node & Agent
```
### 1.2 技术栈
| 层级 | 技术 |
|------|------|
| 前端 | Vue3, TypeScript, Vuetify3 |
| 后端 | Go 1.21+, Gin, GORM |
| 数据库 | PostgreSQL 13+ |
| 消息 | MQTT (Eclipse Mosquitto) |
| 存储 | MinIO |
| 容器 | Docker, Kubernetes |
---
## 2. 模块职责
### 2.1 模块清单
| 模块 | 职责 | 关键能力 |
|------|------|----------|
| **rmdc-core** | API网关 | 路由、鉴权、限流 |
| **rmdc-jenkins-branch-dac** | Jenkins管理 | 分支权限、构建触发、DCU |
| **rmdc-project-management** | 项目管理 | CRUD、一级授权 |
| **rmdc-exchange-hub** | 消息网关 | MQTT中继、指令管理 |
| **rmdc-watchdog** | 边缘代理 | K8S操作、二级授权 |
| **rmdc-audit-log** | 审计日志 | 日志记录、查询导出 |
| **rmdc-user-auth** | 用户权限 | RBAC、权限分配 |
### 2.2 模块依赖关系
```mermaid
graph LR
Core[rmdc-core] --> Jenkins & Project & Audit & UserAuth & ExHub
Jenkins --> Common
Project --> Common
ExHub --> Common
UserAuth --> Common
Common[rmdc-common
公共接口]
```
---
## 3. 通信架构
### 3.1 MQTT Topic设计
| Topic | 方向 | 用途 |
|-------|------|------|
| `wdd/RDMC/command/up` | 上行 | Watchdog发送指令 |
| `wdd/RDMC/message/up` | 上行 | Watchdog发送数据 |
| `wdd/RDMC/command/down/{project_id}` | 下行 | 下发指令 |
| `wdd/RDMC/message/down/{project_id}` | 下行 | 下发数据 |
### 3.2 消息格式
```json
{
"message_id": "uuid",
"type": "command|message",
"project_id": "namespace_xxx",
"command_type": "k8s_exec|host_exec|register|...",
"timestamp": 1704501234567,
"version": "1.0",
"signature": "hmac-sha256",
"payload": {...}
}
```
---
## 4. 安全架构
### 4.1 认证授权
| 层级 | 机制 |
|------|------|
| 用户认证 | JWT Token |
| API授权 | RBAC + 资源ACL |
| MQTT认证 | 用户名密码 + TLS |
| 数据加密 | AES-256-GCM |
### 4.2 TOTP双层授权
```
一级授权: project-management ↔ watchdog
- 8位验证码
- 30分钟有效期
- SHA256算法
二级授权: watchdog ↔ agent/node
- 6位验证码
- 30秒有效期
- SHA1算法
```
---
## 5. 数据模型
### 5.1 核心实体
```mermaid
erDiagram
users ||--o{ user_permissions : has
projects ||--o{ auth_info : has
jenkins_organizations ||--o{ jenkins_repositories : contains
jenkins_repositories ||--o{ jenkins_branches : contains
jenkins_branches ||--o{ jenkins_builds : contains
users {
int64 id PK
string username UK
string password
string role
}
projects {
int64 id PK
string project_id UK
string name
string namespace UK
string status
}
jenkins_organizations {
int64 id PK
string name UK
}
```
---
## 6. API设计规范
### 6.1 设计原则
1. **使用POST + RequestBody**: 所有API优先使用POST
2. **避免PathVariables**: 资源标识放入RequestBody
3. **避免RequestParams**: 查询参数放入RequestBody
4. **统一响应格式**: `{code, message, data}`
### 6.2 接口命名规范
| 操作 | 后缀 | 示例 |
|------|------|------|
| 列表 | `/list` | `/api/projects/list` |
| 详情 | `/detail` | `/api/projects/detail` |
| 创建 | `/create` | `/api/projects/create` |
| 更新 | `/update` | `/api/projects/update` |
| 删除 | `/delete` | `/api/projects/delete` |
---
## 7. 部署架构
### 7.1 K8S部署
```yaml
# 核心服务
rmdc-core: Deployment (replicas: 2)
rmdc-jenkins-branch-dac: 集成在rmdc-core
rmdc-project-management: 集成在rmdc-core
rmdc-exchange-hub: Deployment (replicas: 1)
rmdc-frontend: Deployment (replicas: 2)
# 边缘服务
rmdc-watchdog: Deployment (replicas: 1, 每项目独立)
rmdc-watchdog-node: DaemonSet (每节点一个)
```
### 7.2 网络架构
```
内网 ←→ MQTT Broker (公网暴露) ←→ 边缘网络
```
---
## 8. 相关文档
| 文档 | 内容 |
|------|------|
| [1-rmdc-PRD.md](file:///c:/Users/wddsh/Documents/IdeaProjects/ProjectAGiPrompt/8-CMII-RMDC/1-rmdc-system/1-rmdc-PRD.md) | 产品需求文档 |
| [1-jenkins-branch-dac-DDS.md](file:///c:/Users/wddsh/Documents/IdeaProjects/ProjectAGiPrompt/8-CMII-RMDC/2-Jenkins模块/1-jenkins-branch-dac-DDS.md) | Jenkins模块DDS |
| [prompts/1-system-overview-prompt.md](file:///c:/Users/wddsh/Documents/IdeaProjects/ProjectAGiPrompt/8-CMII-RMDC/1-rmdc-system/prompts/1-system-overview-prompt.md) | 系统架构提示词 |
| [prompts/3-api-development-prompt.md](file:///c:/Users/wddsh/Documents/IdeaProjects/ProjectAGiPrompt/8-CMII-RMDC/1-rmdc-system/prompts/3-api-development-prompt.md) | API开发规范 |
| [prompts/4-postman-testing-prompt.md](file:///c:/Users/wddsh/Documents/IdeaProjects/ProjectAGiPrompt/8-CMII-RMDC/1-rmdc-system/prompts/4-postman-testing-prompt.md) | Postman测试用例 |