Skip to content

EventX × CNB 集成方案(务实版)

CNB 做它擅长的:CI/CD、代码托管、NPC 协作、知识库 EventX 后端保持 CloudBase,不变


一、CNB 该做什么 vs 不该做什么

✅ CNB 擅长(用)          ❌ CNB 不擅长(不用)
─────────────────────    ─────────────────────
CI/CD 流水线              活动状态机
代码托管 & 版本管理        报名/支付/签到业务逻辑
PR 代码审查                自定义表单 & 数据查询
NPC AI 助手协作            用户画像 & 数据分析
知识库 RAG 检索            实时高并发签到
制品库(Docker 镜像等)    地理位置搜索 & 推荐
Issue 工单跟踪             活动模板市场

二、实际改动

1. .cnb.yml — 完整 CI/CD 流水线

从 26 行 NPC 壳 → 196 行全流程 CI/CD:

main push:    install → lint & build → docker push → deploy
PR:           install → typecheck & build
dev/* push:   install → typecheck
NPC 事件:     保留 Issue/PR 评论 AI 自动处理
  • Docker 镜像自动推送到 CNB 制品库
  • CloudBase 云函数自动部署
  • PR 自动类型检查

2. server/cnb/client.js — 轻量 API 客户端(~56 行)

不替换业务后端,只暴露 CNB 真正有用的端点:

方法用途
getUserInfo()NPC 协作时查询用户
listGroups()企业→CNB 组织映射(可选)
getBuildStatus()CI/CD 状态面板
queryKnowledgeBase()活动文档 RAG 检索

3. auth.js — 不动

保持 CloudBase 认证方案不动。CNB 不做用户认证。

三、架构图

┌──────────────────────────────────────────────────┐
│                    EventX                         │
│                                                   │
│  ┌──────────┐  ┌───────────┐  ┌──────────────┐   │
│  │ 参与者端  │  │ 主办方端   │  │  管理后台     │   │
│  │ React SPA│  │ React SPA │  │  Ant Design   │   │
│  └────┬─────┘  └─────┬─────┘  └──────┬───────┘   │
│       │              │               │            │
│       └──────────────┼───────────────┘            │
│                      │ /api/*                     │
│              ┌───────┴───────┐                    │
│              │ CloudBase     │  ← 后端不动        │
│              │ 云函数 (41个) │                    │
│              │ NoSQL 数据库  │                    │
│              └───────┬───────┘                    │
│                      │                            │
│        ┌─────────────┼─────────────┐              │
│        │              │             │              │
│   ┌────┴────┐   ┌────┴────┐  ┌────┴────┐         │
│   │ CNB     │   │ CNB     │  │ CNB     │         │
│   │ CI/CD   │   │ NPC     │  │ 知识库   │         │
│   │ 流水线  │   │ AI 协作  │  │ RAG     │         │
│   └─────────┘   └─────────┘  └─────────┘         │
│                                                   │
│   ◀── CNB 做辅助,不做后端 ──▶                    │
└──────────────────────────────────────────────────┘

四、部署步骤

bash
# 1. CNB 密钥仓库配置
CNB_TOKEN        = 访问令牌(CI/CD 用)
TCB_SECRET_ID    = CloudBase 密钥
TCB_SECRET_KEY   = CloudBase 密钥
CLOUDBASE_ENV_ID = CloudBase 环境 ID

# 2. 推送代码 → main 分支自动触发流水线
git push origin main
# → lint → build → docker push → deploy

# 3. 开发中 @npc 触发 AI 协作
# PR 评论: @npc/CodeWhale(CodeWhale-pro) review 代码
# Issue:   @npc/CodeWhale(CodeWhale-pro) 分析这个 Bug

五、不改的部分(理由)

部分理由
云函数后端PRD 已设计好 41 个接口,用 CloudBase 直接跑
NoSQL 数据库活动数据模型复杂,CNB API 无对应能力
用户认证CloudBase Auth,不绑定 CNB 账号体系
文件存储CloudBase Storage,比 CNB 制品库更适合用户上传场景
通知系统CloudBase DB,不需要映射成 Issue

由云锦鸿维护