GoWind 开源生态GoWind 开源生态
首页
框架
GoWind Admin
GoWind CMS
GoWind IM
GoWind UBA
GoWind IoT
GoWind Toolkit
GoWind Quant
GitHub
首页
框架
GoWind Admin
GoWind CMS
GoWind IM
GoWind UBA
GoWind IoT
GoWind Toolkit
GoWind Quant
GitHub
  • 介绍

    • GoWind UBA 产品介绍
  • 架构参考

    • UBA 系统架构
    • UBA 后端模块总览
    • UBA 后端 API 契约
    • UBA 前端架构
  • 开发者指南(二开)

    • UBA 安装指南
    • UBA 代码生成管线教程
    • 新增对外服务教程
    • 新增业务实体教程
    • 新增前端页面教程
  • 运维指南

    • UBA Docker 部署指南
    • UBA 配置详解与安全清单
    • UBA PM2 部署指南
    • UBA Superset BI 部署指南
  • 数据分析师指南

    • 数据分析师上手指南
    • 基础聚合

      • 事件趋势分析
      • 活跃用户分析
      • 维度分组聚合
    • 转化与路径

      • 漏斗分析
      • 留存分析
      • 热门转化路径
      • 行为序列分析
    • 用户深度

      • 归因分析
      • 分布分析
      • 用户分群圈选
      • 点击热力图
      • 间隔时间分析
    • 生命周期

      • 用户生命周期
      • 流失与回流分析
      • 新老用户对比
      • 矩阵象限分析
    • 营收与价值

      • 营收分析
      • 付费分层(鲸鱼分析)
      • 历史 LTV 分析
    • 会话与异常

      • 会话分析
      • 同比环比与异常检测
    • 游戏专属

      • 关卡分析(游戏)
      • 滚服留存(游戏)
      • 同时在线分析(游戏)
      • 经济系统分析(游戏)
    • OLAP 查询手册
  • SDK 接入

    • Web SDK 接入指南
    • C# SDK 接入指南(Unity / Godot / .NET)
  • 附录

    • UBA 附录:端口、术语、已知限制与 FAQ

UBA 后端模块总览

本文档梳理 GoWind UBA 后端的代码结构、三服务 service 层清单、公共包(pkg)以及目录速查,帮助二次开发者快速定位代码。


一、后端目录结构

backend/
├── api/                            # Protobuf API 定义与生成代码
│   ├── protos/                     # .proto 源文件(按领域分层)
│   │   ├── admin/service/v1/       # 管理后台 HTTP 网关 proto(生成 TS 客户端的唯一输入)
│   │   ├── uba/service/v1/         # UBA 领域消息 + gRPC 服务契约
│   │   └── <其他领域>/             # authentication / dict / permission / identity ...
│   └── gen/go/                     # buf 生成的 Go 代码
├── app/                            # 服务应用
│   ├── admin/service/              # Admin 服务(管理后台 BFF,薄转发)
│   ├── collector/service/          # Collector 服务(埋点采集 BFF)
│   └── core/service/               # Core 服务(核心业务逻辑)
│       └── internal/
│           ├── data/               # 数据层(ent repo / OLAP repo / client)
│           │   ├── ent/schema/     # ent 实体定义(改这里 → make ent)
│           │   ├── doris/          # Doris repo(含 schema/ 事实表定义)
│           │   └── clickhouse/     # ClickHouse repo(含 schema/ 事实表定义)
│           ├── service/            # 业务 service 实现
│           └── server/             # grpc / rest server 注册
├── pkg/                            # 公共包
├── sql/                            # 数据库脚本(clickhouse / doris / postgresql)
├── scripts/                        # 部署脚本(deploy / docker / env)
└── Makefile                        # 代码生成 / 构建命令

每个服务目录下都遵循 kratos 标准布局:cmd/server/(入口)+ configs/(YAML 配置)+ internal/{conf,data,server,service}/。


二、Core Service(核心业务)

目录:backend/app/core/service/internal/service/,承载几乎所有业务逻辑。按职责分组如下:

数据采集与事件

Service对应 proto职责
BehaviorEventServicebehavior_event.proto行为事件入库(Create/BatchCreate)、List/Get
SessionServicesession.proto会话事实表 CRUD
EventPathServiceevent_path.proto用户路径事实表 CRUD
EventSchemaServiceevent_schema.proto事件 Schema 管理(事件名/属性校验登记)
ObjectServiceobject.proto行为对象(object_type/object_id)管理
ApplicationServiceapplication.protoUBA 应用管理(生成 appId/appKey/appSecret)

分析建模

Service对应 proto职责
AnalyticsServiceanalytics.proto25 个分析模型:覆盖基础聚合、转化路径、用户深度、生命周期、营收价值、会话异常、游戏专属七大场景(详见 后端 API · 分析聚合服务)。按 UseClickHouse 编译期常量分支选 Doris / ClickHouse repo

风险与标签

Service对应 proto职责
RiskEventServicerisk_event.proto风险事件结果存取(Create/BatchCreate/List)
RiskRuleServicerisk_rule.proto风险规则定义 CRUD
TagDefinitionServicetag_definition.proto标签定义 CRUD
UserTagServiceuser_tag.proto用户标签关联
IdMappingServiceid_mapping.proto跨平台 ID 映射(身份图)
UserBehaviorProfileServiceuser_behavior_profile.proto用户行为画像事实表 CRUD
WebhookServicewebhook.protoWebhook 配置(风险告警推送)

组织与权限

Service职责
TenantService多租户管理
UserService / UserCredentialService用户全生命周期、登录凭据
RoleService / PermissionService / PermissionGroupService角色、权限、权限组
OrgUnitService / PositionService组织架构、岗位
MenuService菜单节点
DictTypeService / DictEntryService数据字典
LanguageService多语言
LoginPolicyService登录策略
ApiServiceAPI 元数据登记

系统运维

Service职责
AuthenticationService登录认证、令牌签发
FileService / FileTransferService文件存储(MinIO)、文件传输
InternalMessageService(+ Category / Recipient)站内消息
TaskService异步任务(Asynq)
审计日志(5 类)LoginAuditLogService / OperationAuditLogService / ApiAuditLogService / PermissionAuditLogService / DataAccessAuditLogService / PolicyEvaluationLogService

完整 proto 契约见 后端 API 契约。


三、Admin Service(管理后台 BFF)

目录:backend/app/admin/service/internal/service/。全部是薄转发实现:实现 adminV1.XxxHTTPServer,方法体内调用对应的 Core gRPC client(ubaV1.XxxClient),不含业务逻辑。

Admin service 与 Core service 一一对应:analytics_service.go、application_service.go、behavior_event_service.go、risk_event_service.go、user_service.go、role_service.go 等约 40+ 转发实现。

新增对外 HTTP 能力的完整步骤见 新增对外服务教程。


四、Collector Service(采集 BFF)

目录:backend/app/collector/service/。职责单一:接收 POST /uba/v1/report,做应用鉴权、字段校验补全,然后 Publish 到 Kafka。本身无业务 service 层,逻辑集中在 transport 层与 pkg/topic(Kafka topic 管理)。


五、公共包(pkg)

目录:backend/pkg/,被三服务共享:

包职责
authorizer鉴权引擎封装(Casbin / OPA)
constants常量定义
crypto加密工具(AES-GCM 等)
jwtJWT 工具(签发/校验)
metadata请求元数据管理(tenantId 注入等)
middleware中间件(鉴权/日志/Ent/元数据)
oss对象存储(MinIO / S3 兼容)
serviceid服务标识
task异步任务(Asynq 封装)
topicKafka Topic 管理(uba_events_raw / uba_risk_events)
utils通用工具
entgoEnt 扩展(go-crud Repository 泛型封装、mixin 等)

六、数据层要点

PostgreSQL(Ent)

  • 实体定义在 app/core/service/internal/data/ent/schema/,表名通过 entsql.Annotation{Table: ...} 声明。
  • 没有手写的 schema.sql——表结构由 make ent 生成;sql/postgresql/ 下仅有字典种子数据(default-data.sql)与演示数据。
  • 业务表前缀:sys_(系统/RBAC/i18n/字典)、uba_(UBA 业务)、其余如 files、internal_messages。

OLAP(Doris / ClickHouse)

  • 事实表 schema 在 app/core/service/internal/data/{clickhouse,doris}/schema/ 镜像定义,与 sql/{clickhouse,doris}/ 脚本一致。
  • 主要事实表:events_fact、sessions_fact、risk_events、path_features;维度表:users_dim、objects_dim、id_mapping、user_tags。
  • 聚合查询走原生 SQL(不用 Ent);维度字段走白名单,metric 走 switch,数值强转后拼接以防注入。

七、相关文档

  • 系统架构
  • 后端 API 契约
  • 前端架构
  • 代码生成管线
Edit this page
Last Updated:: 6/29/26, 3:57 PM
Contributors: Bobo
Prev
UBA 系统架构
Next
UBA 后端 API 契约