# RMDC系统架构提示词

> 本文档为大模型(AI助手)提供RMDC系统的全面上下文，帮助AI理解系统架构并协助开发工作。

---

## 系统定位

**RMDC (Runtime Management & DevOps Center)** 是一个以项目(K8s Namespace)为核心维度的统一运维与交付平台。通过"边缘代理(Watchdog) + 消息总线(Exchange-Hub)"架构打通内外网，提供从代码构建、分支权限控制、自动化部署到实时监控日志的全生命周期管理。

---

## 核心模块清单

| 模块 | 职责 | 关键技术 |
|------|------|----------|
| **rmdc-core** | API Gateway、鉴权、路由 | Go + Gin |
| **rmdc-jenkins-branch-dac** | Jenkins分支权限(DAC)、构建管理 | Jenkins API, MinIO |
| **rmdc-exchange-hub** | MQTT消息网关、指令生命周期 | MQTT, PostgreSQL |
| **rmdc-watchdog** | 边缘代理、K8S操作、二级授权 | K8S API, TOTP |
| **rmdc-project-management** | 项目管理、一级授权中心 | PostgreSQL |
| **rmdc-audit-log** | 审计日志 | PostgreSQL |
| **rmdc-user-auth** | 用户认证、权限管理 | JWT, RBAC |

---

## 系统架构图

```mermaid
graph TB
    subgraph "RMDC平台 (内网)"
        Portal[前端门户<br/>Vue3+Vuetify3]
        Core[rmdc-core<br/>API Gateway]
        
        subgraph "业务模块"
            Jenkins[jenkins-branch-dac]
            Project[project-management]
            Audit[audit-log]
            UserAuth[user-auth]
        end
        
        ExHub[exchange-hub<br/>消息网关]
        MQTT[(MQTT Broker)]
    end
    
    subgraph "外部项目环境"
        WD[rmdc-watchdog<br/>边缘代理]
        Node[watchdog-node]
        Agent[watchdog-agent]
    end
    
    Portal --> Core --> Jenkins & Project & Audit & UserAuth
    Project --> ExHub <--> MQTT <-.公网.-> WD <--> Node & Agent
```

---

## 通信架构

### 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}` | 下发数据 |

### 安全机制

```
一级授权: rmdc-project-management ↔ rmdc-watchdog (8位码, 30分钟有效)
二级授权: rmdc-watchdog ↔ watchdog-agent/node (6位码, 30秒有效)
```

---

## API设计规范

> **重要**: RMDC API遵循以下规范

1. **RESTful风格**：使用标准HTTP方法语义
2. **优先POST+RequestBody**：复杂查询和所有写操作使用POST
3. **避免PathVariables**：资源标识放入RequestBody
4. **避免RequestParams**：查询参数放入RequestBody
5. **统一响应格式**：
```json
{
    "code": 0,
    "message": "success",
    "data": {...}
}
```

---

## 开发规范

### 后端规范(Go)

```
项目结构:
├── cmd/            # 入口
├── configs/        # 配置
├── internal/
│   ├── config/     # 配置结构
│   ├── dao/        # 数据访问层
│   ├── handler/    # HTTP处理器
│   ├── model/
│   │   ├── dto/    # 请求/响应DTO
│   │   └── entity/ # 数据库实体
│   └── service/    # 业务逻辑层
└── pkg/            # 公共包
```

**关键约束**:
- 禁止在Handler层写业务逻辑
- 所有SQL在DAO层
- 使用GORM进行ORM操作

### 前端规范(Vue3)

- 技术栈: Vue3 + TypeScript + Vuetify3
- 使用Composition API
- 组件销毁时断开WebSocket连接

---

## 核心业务流程

### 项目注册流程

```
1. project-management创建项目 → 生成密钥
2. 部署watchdog(携带配置文件)
3. watchdog连接MQTT → 发送注册请求(含TOTP)
4. exchange-hub验证 → 发送挑战码
5. watchdog回复挑战码 → 注册成功
```

### 构建触发流程

```
1. 用户调用 POST /builds/trigger
2. jenkins-branch-dac 调用 Jenkins API
3. BuildTracker开始追踪构建状态
4. 前端轮询构建详情
5. 构建完成 → 可触发DCU打包镜像
```

---

## 文档索引

| 文档路径 | 内容 |
|----------|------|
| `1-基本框架/2-rmdc-DDS.md` | 系统PRD/DDS |
| `2-Jenkins模块/1-jenkins-branch-dac-DDS.md` | Jenkins模块DDS |
| `3-rmdc-exchange-hub/1-rmdc-exchange-hub-DDS.md` | Exchange-Hub DDS |
| `4-rmdc-project-management/1-rmdc-project-management-DDS.md` | 项目管理DDS |
| `6-rmdc-watchdog/1-rmdc-watchdog-DDS.md` | Watchdog DDS |

---

## 如何使用本提示词

1. **理解系统**: 阅读架构说明和业务流程
2. **定位模块**: 确定涉及的模块
3. **查阅详细文档**: 参考模块DDS
4. **遵循规范**: 按照API和开发规范编码
