Files
ProjectAGiPrompt/8-CMII-RMDC/1-rmdc-system/2-module-interaction-prompt.md
2026-01-21 16:15:49 +08:00

3.1 KiB
Raw Permalink Blame History

模块交互流程提示词

本文档描述RMDC系统各模块之间的交互流程帮助大模型理解数据流和调用关系。


模块调用关系

graph LR
    FE[Vue3 Frontend] --> Core[rmdc-core]
    Core --> Jenkins[jenkins-branch-dac]
    Core --> Project[project-management]
    Core --> Audit[audit-log]
    Core --> UserAuth[user-auth]
    Core --> ExHub[exchange-hub]
    
    ExHub <--> MQTT[(MQTT)]
    MQTT <--> WD[watchdog]
    WD <--> Node[watchdog-node]
    WD <--> Agent[watchdog-agent]

核心交互流程

1. 用户请求处理

sequenceDiagram
    participant FE as 前端
    participant Core as rmdc-core
    participant Auth as AuthMiddleware
    participant Perm as PermMiddleware
    participant Biz as 业务模块
    
    FE->>Core: HTTP Request (JWT)
    Core->>Auth: 验证Token
    Auth->>Perm: 权限校验
    Perm->>Biz: 处理业务
    Biz-->>FE: HTTP Response

2. Jenkins构建触发

sequenceDiagram
    participant User as 用户
    participant Handler as BuildHandler
    participant Service as BuildService
    participant Jenkins as Jenkins API
    participant Tracker as BuildTracker
    
    User->>Handler: POST /builds/trigger
    Handler->>Service: TriggerBuild()
    Service->>Jenkins: 触发构建
    Service->>Tracker: TrackBuild()
    Service-->>User: 返回构建号

3. 项目注册授权

sequenceDiagram
    participant PM as project-management
    participant ExHub as exchange-hub
    participant MQTT as MQTT Broker
    participant WD as watchdog
    
    Note over PM: 创建项目,生成密钥
    WD->>MQTT: 发送注册请求(TOTP)
    MQTT->>ExHub: 转发
    ExHub->>PM: 验证项目
    PM-->>ExHub: 返回结果
    ExHub->>MQTT: 发送挑战码
    MQTT->>WD: 推送
    WD->>MQTT: 回复挑战
    ExHub->>ExHub: 验证成功,项目上线

4. K8S指令执行

sequenceDiagram
    participant User as 用户
    participant API as rmdc-core
    participant ExHub as exchange-hub
    participant MQTT as MQTT
    participant WD as watchdog
    participant K8S as K8S API
    
    User->>API: 发起K8S操作
    API->>ExHub: 发送指令
    ExHub->>MQTT: 发布command
    MQTT->>WD: 推送指令
    WD->>K8S: 执行操作
    K8S-->>WD: 返回结果
    WD->>MQTT: 发布result
    MQTT->>ExHub: 接收结果
    ExHub->>API: 返回结果
    API->>User: 展示结果

数据流向

下行数据流

用户操作 → rmdc-core → 业务模块 → exchange-hub → MQTT → watchdog → 执行目标

上行数据流

执行目标 → watchdog → MQTT → exchange-hub → 业务模块 → 持久化/展示

接口契约

MQTT消息格式

{
    "message_id": "uuid",
    "type": "command|message",
    "project_id": "namespace_xxx",
    "command_type": "k8s_exec|host_exec|...",
    "timestamp": 1704501234567,
    "payload": {...},
    "signature": "hmac-sha256"
}

执行结果格式

{
    "command_id": "原指令ID",
    "status": "success|failure|timeout",
    "exit_code": 0,
    "output": "执行输出",
    "error": "",
    "duration": 1111
}