表设计明细 · UI 界面介绍

RAGFlow 0.25.6 权限代理服务 —— proxy_db 字段级 DDL + 控制台界面原型
11 张代理表 字段级明细 8 个核心界面 界面原型图

A整体 ER 关系

proxy_db 11 张表的引用关系。虚线箭头 ┄► 表示「值引用」RAGFlow 原生 id(无外键约束);实线箭头 ──► 为 proxy_db 内部外键。

           ┌──────────────┐         ┌────────────────┐
           │  p_role      │         │  p_department  │◄─┐ parent_id (自引用树)
           │  (五级角色)   │         │  (部门树)       │──┘
           └──────┬───────┘         └───────┬────────┘
                  │ role_code               │ dept_id
                  ▼                          ▼
           ┌─────────────────────────────────────────┐
           │           p_user_profile                 │ ┄┄► ragflow.user.id
           │  (ragflow_user_id, role_code, dept_id)   │
           └───────────────┬─────────────────────────┘
                           │ user_id
        ┌──────────────────┼───────────────────┬──────────────────┐
        ▼                  ▼                   ▼                  ▼
 ┌─────────────┐   ┌──────────────┐    ┌──────────────┐   ┌──────────────┐
 │ p_kb_meta   │   │ p_kb_acl     │    │ p_quota      │   │ p_model_     │
 │ (KB共享元数据)│   │ (指定用户共享) │    │ _policy      │   │ whitelist    │
 │ ┄►ragflow.kb│   │ ┄►ragflow.kb │    │ (分级配额)    │   │ (模型白名单)  │
 └──────┬──────┘   └──────────────┘    └──────────────┘   └──────────────┘
        │ ragflow_kb_id
        ▼
 ┌──────────────┐   ┌──────────────┐    ┌──────────────────────────────┐
 │ p_kb_version │──►│ p_approval   │    │ p_service_app  ┄► ragflow.    │
 │ (版本状态机)  │   │ (审批单)      │    │ (系统应用)       api_token    │
 └──────────────┘   └──────────────┘    └──────────────────────────────┘
        ┌──────────────┐         ┌──────────────────────────────┐
        │ p_audit_log  │         │ p_token_broker ┄► ragflow.    │
        │ (全量审计)    │         │ (Token缓存)      user.access_  │
        └──────────────┘         │                  token        │
                                 └──────────────────────────────┘
💡 约定
所有 ragflow_*_id 字段是逻辑引用,仅存值不建 DB 外键,保证 proxy_db 与 RAGFlow 库物理解耦、可独立升级迁移。主键统一用 CHAR(32) 与 RAGFlow 风格对齐。

B1角色 / 用户 / 部门表

p_role五级角色定义

字段类型约束说明
idCHAR(32)PK角色 ID
codeVARCHAR(32)UNIQUENNSYSTEM_ADMIN / TEAM_ADMIN / EDITOR / RETRIEVER / SERVICE_APP
levelTINYINTNN1~5,数字越小权限越高
nameVARCHAR(64)NN中文显示名
permissionsJSON动作白名单,如 ["kb.create","doc.upload"]
is_builtinBOOLdefault 1内置角色不可删
create_timeBIGINT毫秒时间戳(对齐 RAGFlow 风格)

p_department部门树

字段类型约束说明
idCHAR(32)PK部门 ID
nameVARCHAR(128)NN部门名
parent_idCHAR(32)IDX上级部门(自引用,NULL=根)
pathVARCHAR(512)IDX物化路径 /root/研发/算法,加速继承查询
ragflow_tenant_idCHAR(32)REF绑定的「部门服务租户」(RAGFlow tenant.id)
admin_user_idCHAR(32)团队管理员
statusCHAR(1)default '1'1 有效 / 0 停用
⚠️ path 物化路径
部门自动共享(模式②)需要「上级部门可见下级 KB」的继承查询。用物化路径 path LIKE '/root/研发%' 一次命中整棵子树,避免递归 CTE。

p_user_profile用户-角色-部门绑定

字段类型约束说明
idCHAR(32)PK
ragflow_user_idCHAR(32)UNIQUEREFRAGFlow user.id
role_codeVARCHAR(32)FK→p_role所属角色
dept_idCHAR(32)FK→p_department所属部门
display_nameVARCHAR(64)姓名/工号
statusCHAR(1)default '1'账号启停

B2知识库共享 / ACL 表

p_kb_metaKB 共享元数据 + 影子映射

字段类型约束说明
idCHAR(32)PK逻辑 KB ID
nameVARCHAR(128)NN逻辑知识库名
owner_user_idCHAR(32)IDX创建者
dept_idCHAR(32)FKIDX归属部门
share_modeVARCHAR(16)NNPRIVATE / DEPT / USER / TEAM(四模式)
draft_kb_idCHAR(32)REFRAGFlow 草稿物理 KB id
published_kb_idCHAR(32)REFRAGFlow 发布物理 KB id
service_tenant_idCHAR(32)REF承载该 KB 的服务租户
current_versionINTdefault 0当前已发布版本号
create_timeBIGINT
💡 一逻辑 KB = 两物理 KB
draft_kb_id / published_kb_id 指向 RAGFlow 中两个真实 KB(均 permission=me)。代理对外只暴露 p_kb_meta.id 这一逻辑实体。

p_kb_acl指定用户共享名单(模式③)

字段类型约束说明
idCHAR(32)PK
kb_meta_idCHAR(32)FK→p_kb_metaIDX逻辑 KB
grantee_user_idCHAR(32)IDX被授权用户
grant_typeVARCHAR(8)default 'read'read / write
granted_byCHAR(32)授权人
expire_atBIGINTIDX到期时间(NULL=永久),金融场景常用临时授权

唯一索引建议 (kb_meta_id, grantee_user_id) 防重复授权。

B3配额 / 白名单表

p_quota_policy分级配额策略

字段类型约束说明
idCHAR(32)PK
scopeVARCHAR(16)NNGLOBAL / ROLE / DEPT / USER(解析优先级 USER>DEPT>ROLE>GLOBAL)
scope_idCHAR(32)IDX对应角色/部门/用户 id(GLOBAL 为空)
max_kbINTdefault -1KB 数量上限(-1 不限)
max_docINTdefault -1文档总数上限
max_file_sizeBIGINTdefault -1单文件字节上限
qpsINTdefault -1API 每秒调用上限
daily_call_limitINTdefault -1每日调用总量上限
priorityINTdefault 0同 scope 冲突时取大者

p_model_whitelist模型白名单

字段类型约束说明
idCHAR(32)PK
scopeVARCHAR(16)NNGLOBAL / ROLE / DEPT / USER / SERVICE_APP
scope_idCHAR(32)IDX
llm_idsJSONNN允许模型列表,如 ["qwen-max","deepseek-chat"]
allow_embeddingJSON允许的向量模型
⚠️ 频率计数不入库
qps/daily_call_limit 仅作为策略阈值存库;实时计数走 Redis(滑动窗口 Key=rl:{scope_id}:{api_group}),避免高频写库。

B4版本审批 / 审计表

p_kb_version版本状态机

字段类型约束说明
idCHAR(32)PK
kb_meta_idCHAR(32)FK→p_kb_metaIDX逻辑 KB
version_noINTNN递增版本号
statusVARCHAR(16)NNIDXDRAFT / PENDING / PUBLISHED / ARCHIVED
snapshotJSON文档清单快照(doc_id + hash),冻结审定内容
submitter_idCHAR(32)提交编辑者
submit_timeBIGINT
publish_timeBIGINT发布时间(NULL 未发布)

p_approval审批单

字段类型约束说明
idCHAR(32)PK
version_idCHAR(32)FK→p_kb_versionIDX关联版本
approver_idCHAR(32)IDX审批人(团队/系统管理员)
decisionVARCHAR(16)APPROVED / REJECTED / PENDING
commentTEXT审批意见(驳回原因)
decided_atBIGINT

p_audit_log全量审计(合规留痕)

字段类型约束说明
idCHAR(32)PK
actor_idCHAR(32)IDX操作主体
actionVARCHAR(64)IDX动作码,如 kb.publish
target_typeVARCHAR(32)KB / DOC / ROLE / QUOTA …
target_idCHAR(32)IDX目标对象 id
detailJSONbefore/after 变更快照
ipVARCHAR(45)来源 IP(IPv6 兼容)
tsBIGINTIDX毫秒时间戳

B5系统应用 / Token 表

p_service_app系统应用(API Key 主体)

字段类型约束说明
idCHAR(32)PK
nameVARCHAR(128)NN应用名
api_keyVARCHAR(255)UNIQUEIDX代理签发的 Key(对外)
ragflow_api_tokenVARCHAR(255)REF映射的 RAGFlow api_token(对内)
bound_kb_idsJSON允许访问的逻辑 KB 列表
dept_idCHAR(32)FK归属部门
qpsINTdefault -1专属频率上限
statusCHAR(1)default '1'启停(吊销 Key)
expire_atBIGINTKey 过期时间

p_token_broker原生 Token 缓存

字段类型约束说明
idCHAR(32)PK
ragflow_tenant_idCHAR(32)UNIQUE租户 id
access_tokenVARCHAR(255)缓存的 RAGFlow access_token
expire_atBIGINTIDX过期时间,到期重新换取
✅ 表设计总览
11 张表全部前缀 p_ 落于独立库;所有 RAGFlow 引用字段命名 ragflow_* 仅存值。统一 CHAR(32) 主键 + BIGINT 毫秒时间戳,与 RAGFlow 风格一致,便于运维。

C1控制台总览(Dashboard)

系统/团队管理员登录后的首页,聚合关键指标与待办(待审批、超配额预警)。

https://auth-proxy.corp.internal/console/dashboard
控制台总览 导出报表
研发中心 · 团队管理员视角 · 数据截至 2026-06-11 16:00
42
知识库总数
▲ 本周 +5
128
成员数
编辑者 36 · 检索 92
3
待审批版本
需处理
17
系统应用
在线 15
待办事项类型提交人时间操作
风控知识库 v3 发布申请待审批张工10:21审批
反洗钱条款库 v7待审批李工09:48审批
信贷部 KB 配额超 90%配额预警系统08:30调整
界面要点:左侧固定导航按五级功能分区;「版本审批」带红色待办角标;卡片区按角色范围过滤(团队管理员只看本部门,系统管理员看全局)。

C2角色与成员管理

分配五级角色、归属部门,对应 p_user_profile / p_role / p_department

https://auth-proxy.corp.internal/console/members
成员管理 + 邀请成员
部门筛选:研发中心 / 算法组 ▾  |  角色筛选:全部 ▾
姓名/工号角色部门状态操作
王敏 · E1024系统管理员总部✅ 启用编辑
张涛 · E2087团队管理员研发中心✅ 启用编辑
李娜 · E3320编辑者算法组✅ 启用编辑
陈强 · E3355检索用户算法组✅ 启用编辑
风控查询服务系统应用风控部✅ 启用编辑
编辑成员 · 李娜
编辑者 (EDITOR)
研发中心 / 算法组
启用
界面要点:角色用色阶 chip 区分五级(红→绿);改角色即写 p_user_profile.role_code,代理立即按新动作白名单执行 RBAC,无需重登。

C3知识库权限配置

四种共享模式可视化配置,对应 p_kb_meta.share_mode + p_kb_acl

https://auth-proxy.corp.internal/console/kb/风控知识库/permission
风控知识库 · 权限设置 保存
创建者:张涛  |  归属:研发中心  |  当前发布版本 v3
共享模式

创建者私有

仅张涛可见可编辑

部门自动共享

研发中心全员自动可见

指定用户共享

仅授权名单可见

团队共享

全租户成员可见

指定用户名单(模式③启用时)
用户权限到期
陈强 · E3355只读2026-12-31移除
外部审计-王律师只读2026-07-01移除
界面要点:四模式卡片单选;选模式③展开 ACL 名单(含到期日,对应 p_kb_acl.expire_at)。底层始终保持 RAGFlow KB permission=me,由代理 Token Broker 实现精准授权——前端无感。

C4配额与白名单

分级配额可视化,对应 p_quota_policy / p_model_whitelist

https://auth-proxy.corp.internal/console/quota
配额策略 + 新建策略
解析优先级:用户 > 部门 > 角色 > 全局
作用域KB上限文档上限单文件QPS用量
角色:编辑者10500050MB
6/10
部门:信贷部3020000100MB
27/30
应用:风控查询50
20/50
模型白名单 · 部门:信贷部
qwen-max ✓ deepseek-chat ✓ gpt-4o ✗ 禁用 bge-large-zh (向量) ✓
界面要点:用量进度条颜色随阈值变红(≥90% 预警);白名单 chip 直观显示允许/禁用模型——代理在 chat 请求拦截 model 字段比对,非白名单直接 403。

C5版本审批中心

草稿→待审批→已发布→历史 状态机可视化,对应 p_kb_version / p_approval

https://auth-proxy.corp.internal/console/approval/v3
风控知识库 v3 · 发布审批
提交人:张涛  |  提交时间:2026-06-11 10:21
草稿
2待审批
3已发布
4历史
本次变更内容(草稿快照 diff)
文档变更状态
2026反洗钱新规.pdf+ 新增已解析
客户尽调标准_v2.docx~ 修改已解析
旧版风险评级.pdf- 删除
内容合规,同意发布到生产检索库。
✓ 批准发布✗ 驳回查看完整 diff
界面要点:状态步骤条直观呈现四态流转;批准时代理把 draft KB 审定文档同步进 published KB 并写 p_approval 留痕。未发布内容仅存于 draft KB,检索用户永不可见——满足金融「四眼原则 + 内容冻结」。

C6系统应用与 API Key

机器身份注册与 Key 管理,对应 p_service_app

https://auth-proxy.corp.internal/console/apps
系统应用 + 注册应用
每个应用一把独立 API Key,绑定 KB + 频率 + 模型白名单
应用名API Key绑定 KBQPS状态操作
风控查询服务rfk_a1b2****c3d4风控库 +250吊销
智能客服机器人rfk_e5f6****g7h8FAQ库100吊销
报表分析定时任务rfk_i9j0****k1l2财报库20⏸️ 停用启用
注册新应用
合规审查助手
风控部
风控库, 反洗钱条款库
30
90 天
界面要点:Key 脱敏显示(仅头尾),点击吊销即置 p_service_app.status=0,代理立即拒绝该 Key。底层映射到 RAGFlow api_token,走 _load_user 的 APIToken 路径(g.auth_via_api_token=True),系统应用流量与人工流量隔离计量。