- 移除未使用的TabPane组件 - 修复类型定义和导入方式 - 优化mock数据源的环境变量判断逻辑 - 更新文档结构并归档旧文件 - 添加新的UI组件和Memo组件 - 调整API路径和响应处理
4.5 KiB
4.5 KiB
安全规则
入口: _index.md
1. RBAC模型
1.1 预设角色
| 角色 | 权限范围 | 说明 |
|---|---|---|
| ADMIN | 全部 | 系统管理员 |
| MANAGER | 部门级 | 运营主管 |
| OPERATOR | 个人级 | 运营专员 |
| FINANCE | 财务级 | 财务主管 |
| SOURCING | 采购级 | 采购专家 |
| LOGISTICS | 物流级 | 物流专家 |
| ANALYST | 只读 | 数据分析师 |
1.2 角色权限矩阵
| 操作类型 | OPERATOR | MANAGER | FINANCE | ADMIN |
|---|---|---|---|---|
| 查看数据 | ✅ 自己 | ✅ 部门 | ✅ 财务 | ✅ 全部 |
| 创建数据 | ✅ | ✅ | ✅ | ✅ |
| 修改数据 | ✅ 自己 | ✅ 部门 | ✅ 财务 | ✅ 全部 |
| 删除数据 | ❌ | ✅ 部门 | ✅ 财务 | ✅ 全部 |
| 审批操作 | ❌ | ✅ 低风险 | ✅ 中风险 | ✅ 全部 |
| 系统配置 | ❌ | ❌ | ❌ | ✅ |
2. 数据隔离
2.1 隔离层级
租户隔离 (Tenant)
└── 组织隔离 (Organization)
└── 部门隔离 (Department)
└── 团队隔离 (Team)
└── 个人隔离 (Self)
2.2 数据范围类型
| 范围 | 英文 | 说明 |
|---|---|---|
| 仅自己 | SELF | 只看自己创建的数据 |
| 本团队 | TEAM | 看自己团队的数据 |
| 本部门 | DEPT | 看自己部门的数据 |
| 本组织 | ORG | 看整个公司的数据 |
| 全平台 | ALL | 超管,看所有租户数据 |
2.3 查询过滤实现
// Service层实现数据隔离
async listOrders(ctx: Context, params: ListParams) {
const { tenantId, dataScope, parentId } = ctx.state.user;
const query = db('cf_order').where('tenant_id', tenantId);
switch (dataScope) {
case 'SELF':
query.where('created_by', ctx.state.user.id);
break;
case 'TEAM':
query.where('team_id', parentId);
break;
case 'DEPT':
query.where('dept_id', parentId);
break;
case 'ORG':
// 已通过 tenant_id 过滤
break;
case 'ALL':
// 超管,不过滤
break;
}
return query;
}
3. 操作风险等级
3.1 风险分级
| 等级 | 操作类型 | 最低审核权限 | 自动执行 |
|---|---|---|---|
| 低风险 | 库存预警、数据同步 | OPERATOR | ✅ 允许 |
| 中风险 | 定价调整、广告投放 | MANAGER | ✅ 高置信度允许 |
| 高风险 | 退款审批、合同签订 | FINANCE | ❌ 禁止 |
| 极高风险 | 大额转账、系统配置 | ADMIN | ❌ 禁止 |
3.2 AI决策权限
interface AIDecisionPermission {
module: string;
action: string;
riskLevel: 'low' | 'medium' | 'high' | 'critical';
minReviewerRole: 'OPERATOR' | 'MANAGER' | 'FINANCE' | 'ADMIN';
autoExecute: boolean;
autoExecuteConfidence: number; // 0.0 - 1.0
requireDualApproval: boolean;
}
4. 决策流程门禁
4.1 状态流转
SUGGESTED → PENDING_REVIEW → EXECUTED/REJECTED
4.2 强制规则
| 规则 | 说明 |
|---|---|
| 禁止 | Agent 直接修改核心业务数据 |
| 必须 | 人工在 Console 端确认后方可执行 |
| 必须 | 所有决策记录审计日志 |
4.3 核心业务数据
- 价格调整
- 退款审批
- 订单创建
- 合同签订
- 大额转账
5. 审计日志
5.1 必须记录
| 字段 | 说明 |
|---|---|
operator_id |
操作人ID |
operator_role |
操作人角色 |
action |
操作类型 |
target_type |
目标类型 |
target_id |
目标ID |
before_value |
操作前值 |
after_value |
操作后值 |
trace_id |
链路追踪ID |
created_at |
操作时间 |
5.2 日志保留
| 日志类型 | 保留期限 |
|---|---|
| 登录日志 | 90天 |
| 操作日志 | 180天 |
| 审计日志 | 365天 |
| 异常日志 | 30天 |
6. 敏感数据处理
6.1 敏感字段
| 字段类型 | 处理方式 |
|---|---|
| 密码 | 加密存储,禁止明文 |
| 手机号 | 脱敏显示 138****1234 |
| 银行卡 | 脱敏显示 **** **** **** 1234 |
| 身份证 | 脱敏显示 110***********1234 |
| API密钥 | 加密存储,禁止日志输出 |
6.2 禁止行为
// ❌ 禁止
console.log('API Key:', apiKey);
logger.info('User password:', password);
ctx.body = { password: user.password };
// ✅ 正确
logger.info('API Key: ***');
ctx.body = { password: '***' };
最后更新: 2026-03-22