文档

组织角色与项目保护

通过四种角色控制组织访问,并保护关键项目不受 Editor 配置变更,同时不中断运行时流量或 Playground 测试。

ModelRiver 提供四种组织成员角色。这些角色与 users.role 相互独立;后者用于授予系统管理面板的访问权限。

能力OwnerAdminEditorViewer
查看组织中的项目
创建、更新、归档或删除项目
更改项目设置或保护状态
编辑项目资源所有项目所有项目仅未保护项目
在 Playground 中测试工作流所有项目所有项目所有项目
重试 Webhook 投递或删除会话所有项目所有项目仅未保护项目
修改受保护项目
管理成员、邀请和组织设置
管理账单和套餐

系统不使用项目级成员分配。Editor 可以编辑组织内所有未保护项目中的资源。

项目保护

projects.protected_at 可以为空。非空时间戳表示项目已受保护。只有组织 Owner 或 Admin 可以设置或清除该值。

对于 Editor,项目保护会阻止以下明确列出的控制台和控制平面变更:

  • API Key 和项目供应商凭证
  • 工作流和结构化输出
  • Webhook 配置和投递重试
  • 会话删除

即使项目受保护,Editor 仍可在 Playground 中测试工作流,并重新连接到已有的 Playground 运行。Viewer 在任何项目中都不能运行 Playground 测试。Playground 访问权限不会授予 Editor 保存工作流或项目变更的权限。

保护机制不会停止通过项目 API Key 认证的正常运行时执行,也不会停止内部工作进程。运行时会话更新、请求日志、用量与预算计算、回调以及其他运行状态会继续正常工作。使用 API Key 认证的 Webhook 配置端点属于控制平面 API,因此项目受保护时会拒绝变更。

角色管理

只有 Owner 可以邀请成员、重新发送或取消邀请、移除成员或更改角色。可分配的角色为 Admin、Editor 和 Viewer。不能通过成员 API 分配、更改或移除 Owner 角色。

团队成员管理功能仅在付费套餐中提供。免费套餐中的组织仅支持单成员。在控制台中,打开组织菜单并选择 Team members(团队成员),即可邀请成员或更改现有成员的角色。新邀请的默认角色为 Editor。

现有的 member 记录会迁移为 editor。为了支持滚动部署,应用授权逻辑会暂时识别旧值,但新邀请和角色变更无法再创建该值。

管理项目保护

Owner 或 Admin 可以打开项目,选择 Settings(设置),然后在 Project protection(项目保护) 区域中保护或取消保护项目。Editor 和 Viewer 不能更改保护状态或其他项目设置。

权限执行

服务端检查是最终的权限依据。项目响应包含用于 UI 展示的 permissions 对象,但客户端不能把隐藏控件当作授权机制。全局供应商和模型目录的变更需要独立的系统管理员角色(users.role == :admin)。