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 |