UseConcepts
权限与成员
管理成员角色,控制项目、模块、日志和发布权限。
工作区成员可以拥有不同角色。角色会影响成员能否创建项目、安装 Bundle、配置由 Bundle 物化的模块、查看日志、配置渠道和发布应用。
常见权限
- 工作区访问权限:进入工作区并查看资产。
- 项目管理权限:编辑应用、网站、后端服务和智能体。
- Bundle 与模块配置权限:安装或升级 Bundle、修改其物化模块的属性和调用模块能力。
- 发布权限:发布正式版本并变更线上入口。
- 日志权限:查看运行时日志和任务执行记录。
Bundle 内资源的作者权限由 Bundle Service 统一检查。资源编辑或创建版本不逐服务重复检查同一份作者权限;项目源码归属、资源定义合法性、不可变版本与 Runtime 执行权限仍按各自合同校验。
开发者权限决策表
| 机制 | 身份与授权对象 | 作用范围及授权时机 | 撤销或变更语义 |
|---|---|---|---|
| 工作区与项目权限 | 当前成员;项目、Bundle 安装与配置等管理动作 | 工作区边界内,在执行管理操作时校验 | 移除成员或管理权限后,后续操作按当前权限拒绝;不凭旧安装记录继续授权 |
PERMISSION 与 ROLE | 业务用户或主体;权限 Locator 对应的方法,角色组合权限 | 权限、角色定义随 Bundle 交付;成员分配和直接授权属于目标工作区运行数据 | 取消分配、移除 grant 或撤销直接授权后,后续调用重新检查;安装定义不等于分配角色 |
| 平台应用能力与用户授权 | 应用身份及当前用户;明确的 Runtime 方法范围 | 应用绑定或更新授权时确认精确版本和能力,调用时仍检查用户权限 | 解绑、撤销会话或缩减能力范围后,旧声明不能继续扩大调用范围 |
| ServiceReference | 调用来源资源;其 Interface 属性路径及目标方法 | 配置模块属性时提交绑定意图;Runtime 校验来源、接口和有效绑定,调用时检查当前关系 | 清空或修改属性使旧属性路径的目标关系失效;资源来源身份与具体绑定关系分别管理 |
| 用户委托 | 当前同步请求中已验证的用户;下游业务调用 | Runtime 注入短期 Actor assertion;服务在当前请求内转发,由 Runtime 按跳验证和轮换 | 请求结束后不得复用或持久化;没有用户的后台任务不得借用安装人或固定管理员 |
| Bundle 管理器资源授权 | 已认证的 Bundle 管理器和该安装的本包资源 | 平台按当前来源关系、目标 Runtime、安装与资源归属校验读写和凭据操作 | 每次操作校验当前关系与资源归属。移除资源或卸载后,对应安装资源凭据撤销 |
| Hosted Service Consumer 授权 | 调用方服务;指定 Environment 的 Endpoint 与 scope | 后端部署和服务接入时独立配置,不由 Bundle 安装隐式创建 | 轮换或撤销对应凭据,后续后端请求按当前授权拒绝 |
跨 Bundle 调用先配置本包 Interface 属性,再使用 Runtime 交付的来源属性访问配置。服务来源认证不能
代替最终用户权限;需要用户的方法还要校验本次请求的用户委托。字段中携带 userId 或完整 Locator
都只表达数据或定位,不能自行授予权限。
新 Bundle 使用独立 PERMISSION、ROLE 资源;旧 PERMISSION_DEFINITION_SET、ROLE_TEMPLATE_SET
属于历史迁移边界,
顶层请求与提供权限字段不能用于新清单。权限与角色的定义、主体分配、服务凭据应分别维护。
详见ServiceReference、
用户委托和
平台应用授权。
Git 权限与 main 策略
项目 Git 写权限决定成员能否提交代码;main 写入策略决定有写权限的成员应当直推,还是必须先推个人分支再合并。两者不能互相替代:把成员加入工作区不会自动关闭分支保护,开启分支保护也不会给成员新增项目权限。
操作前应读取项目的实际策略。默认 DIRECT 允许有写权限的成员快进直推 main;项目显式切换为 PROTECTED 后,成员必须推个人分支并通过平台合并。完整规则见项目:Git main 写入策略。