Why: Preserve delegated project settings while keeping physical Host mutations owner-scoped. Evidence: User explicitly approved the independently reviewed amendment and repair plan; original amendment digest recorded in the contract. Impact: Clarify actual-actor authorization and audit, single-target owner projection, durable recovery and masked metadata; no provider implementation or deployment claim. Refs: IAM I1 host projection amendment r1; Documents PR 98; Dev policy/delivery.md affected stages 4-5.
25 KiB
IAM I1 权限边界与公开扩展合同 r1
负责人:weichen;编制:Codex;更新时间:2026-10-13。
依据:用户、职位角色与分层权限统一方案 r1
(Documents a088809,原文 SHA256 39b8e9a6e078dc509bd80118c1807ce6ed23e4466e5902b51f4bfa255d55c0a1)。
用户已批准该方案并授权 I1=U1–U2,原实施终点为本地人工评审;阶段 6、7 已分别获用户“批准”“确认”。当前按 Dev policy/delivery.md 进入智能体 Review、PR、CI 与合入,状态及固定对象见验收记录。迁移、部署、工作区清理及后续增量未授权。
本合同为 U1 产物,冻结已批准语义与提供者/消费者责任;新增公开接口仍须对应模块实现、固定版本及合同验证,不能据此宣称能力已提供。
源码、业务测试及运行验收结果以 I1 任务卡的工具收据为准;本文不复制测试结果。
1. 当前增量与最终目标
最新用户裁定取代旧“管理员拥有全部业务权限”“创建者不受职位 cap”“每人仅一个生效职位”的现行解释。
历史会议、原方案、旧批准记录和 .tmp 原件保留;旧结论只用于解释历史行为。
系统管理员管理系统与授权主数据;读取他人业务内容必须有具体项目和资源授权。
职位支持一职多人、一人多职,项目明确选用有效职位绑定;新任命不自动增加既有项目权限。
通用职位、绑定、默认/上限与系统授权迁至 Backend 是已批准设计;RDM 保留项目成员、项目选用绑定、项目覆盖、资源及文档职责/状态。
| 层 | I1 范围 | 后续范围 |
|---|---|---|
| 文档 U1 | 需求裁定、动作目录、角色 cap、隐私、公开扩展申请与验收合同 | 按固定公开版本补提供者/消费者验证 |
| 执行端 U2 | 在现有 RDM 单绑定和旧管理台账上收口可达越权路径;实际结果另见任务卡 | 账号有效态、受控目录及恢复能力 U3;通用职位与多绑定 U4;项目明确选用 U5 |
| UI/Agent/迁移 | 不以文档保存证明能力已就位 | 矩阵、统一工具、完整撤权与数据迁移分别按 U7–U9 授权实施 |
I1 的 legacy 单绑定适配不是最终多职模型:旧账号至多一个专业角色,项目尚无显式 bindingId 集合。
已有绑定必须先检查角色有效态、动作定义与 cap,再计算默认/项目覆盖;停用或失效不能回落为无绑定成员默认。
未绑定旧会员的关系默认只能作为已登记的 legacy 兼容来源,仍受平台 cap、项目关系和资源限制;不能伪装成新的职位绑定或最终模型的资格证明。
U4/U5 迁移后无有效选用绑定的业务动作默认拒绝;迁移差异须单独评审,不在 I1 静默改造数据。
旧 RDM 管理台账在 I1 仅为明确系统管理动作的兼容来源,不能生成项目成员关系、业务 grant 或资源 bypass;Host.IsAdmin() 同样不能代替业务授权。
I1 还将当前分发 Host 的平台管理员身份显式适配为上述四项受保护系统动作;必须同时满足认证 actor 与 Host.Owner 一致,不接受 body 的管理员声明,也不把该适配扩展到其他未知动作或业务动作。细粒度系统 grant 的通用权威仍属 U4。
2. 动作目录与配置主体
scope 由受信 ActionMeta/权限注册表确定,不接受请求自报 scope,不按字符串前缀推断。
系统动作只消费系统来源;项目动作限定实际项目;资源读取还须匹配实际资源、分类与读取动作。
下表为 I1 稳定动作合同。“后续”项仅冻结目录,当前尚未提供相关接口。
| actionId | scope | 配置/执行主体 | 附加边界 |
|---|---|---|---|
system.roles.manage |
system | 受保护系统管理者 | 角色创建/编辑/停用/读取;不能经项目覆盖获取 |
system.roles.assign |
system | 受保护任命者 | 任命在可委派上限内;不能间接授予受保护系统权限 |
system.policy.manage |
system | 受保护策略管理者 | 平台 cap 与权限政策;保护最后有效管理者 |
system.admin.transfer |
system | 当前有移交资格的系统管理者 | 明确移交目标;旧 rdm.perm.transfer 映射此门禁 |
project.create |
system | 有明确系统/职位建项 grant 的有效用户 | 创建者管理 cap 资格见 §3;不接受项目 allow |
project.archive |
project | 目标项目的合法管理者 | 保留稳定 ID;纠正旧目录误标的 system scope |
project.settings |
project | 目标项目创建者/委任管理者或合法获授者 | 仅本项目设置与覆盖;不能进入全局角色、cap 或管理员移交 |
member.manage |
project | 本项目合法管理者 | 成员及选用角色管理;不得替他人做本人受限重选 |
duty.assign |
project | 本项目合法分配者 | 候选有效成员+对应资格 cap+三权异人;分配不代签 |
stage.advance |
project | 有阶段推进 grant 的成员 | 阶段准入准出、当前状态 |
doc.read |
project | 有读取 grant 的成员 | 文档阶段范围+受控正文职责/明确资源授权 |
doc.write |
project | 有编制资格的指定编制人 | 具体文档、当前状态、冻结版本;不因管理权取得 |
doc.publish |
project | 有发布资格及对应职责的成员 | 固定整文版本及已批准状态,不替代批准签字 |
review.participate |
project | 有评审资格的指定审核/批准人 | 按具体职责决定可执行动作;只能批注及通过/驳回 |
trace.edit |
project | 有追溯编辑 grant 的成员 | 文档层/项目层裁定范围与状态分别检查 |
knowledge.publish |
project | 有发布 grant 的成员 | 明确提交/发布;不能借发布读取私人原件 |
audit.read |
project | 有明确业务审计 grant 的当前成员 | 独立于正文读取;当前角色动作 cap、平台 cap 与范围均满足 |
system.settings.read/system.settings.write及设置子项 |
system,后续目录 | 对应系统管理者 | 模型、插件、Agent、检索等设置分项授权 |
system.users.view/create/edit/disable、credential.recover |
system,后续目录 | 对应账号管理者/恢复提案者 | 编辑资料不能改管理员资格;恢复见 §6 |
permission.manage、knowledge.read、trace.read、document.read/export、业务审计导出 |
后续目录,project | 按注册元数据和当前业务关系 | 当前 doc.* 等 ID 不静默重命名;新增需公开版本映射 |
audit.read 是 I1 新独立项目动作:必须由合法项目管理者在上限内明确授予,或来自明确配置的角色默认 grant;管理身份本身不提供审计 grant。
非成员 admin、仅持 Host.IsAdmin() 的主体、无审计 grant 的创建者、cap 已收紧的旧获授者均拒绝。
系统安全日志只披露必要安全动作、结果及不透明对象标识,不能包含业务正文、文件名、项目名、内容摘要或完整业务差异;业务审计仍走 audit.read。
| 旧入口/元数据 | I1 兼容规则 |
|---|---|
rdm.role.create/action/disable/list |
命令 ID 保留,系统门禁改为 system.roles.manage |
rdm.role.assign |
命令 ID 保留,系统门禁改为 system.roles.assign |
rdm.perm.cap |
命令 ID 保留,系统门禁改为 system.policy.manage |
rdm.perm.transfer |
命令 ID 保留,系统门禁改为 system.admin.transfer |
旧 project.archive scope=system |
目录版本标记改为 project;具体项目重验;旧系统覆盖写法不继续接受 |
project.settings 作为全局门禁 |
不兼容保留;项目 grant 不被翻译成系统 grant |
未登记 ID、旧示例 admin.transfer/business-audit.read |
不是隐式别名;拒绝执行/写入,采用上表稳定 ID 或显式版本映射 |
3. cap、创建者资格与撤权
最终系统动作路径为:有效账号 ∩ 受信系统动作 ∩ 平台允许范围 ∩ 受保护规则 ∩ 明确系统 grant 或完整系统职位默认路径;项目覆盖不能参与。 最终项目动作对每个有效且本项目选用的 binding 建立完整路径:
有效成员/管理关系 ∩ 已定义动作 ∩ 平台 cap ∩ 本职位 cap(含范围) ∩ 项目覆盖/当前默认 ∩ 资源关系 ∩ 阶段/状态 ∩ 文档职责。
至少一条完整路径允许才放行,不拼接不同职位的 grant 与资源范围;平台禁止、项目明确 deny 和资源禁止对所有路径生效。
allow 只能替换默认 grant,不能创造未配置动作或越 cap;deny 阻断该成员该项目该动作的全部路径;inherit 使用当前默认。
停用、解绑、换岗、cap 收紧、账号停用和成员移除后重验当前资格;遗留 allow 不能复活旧权。
创建者关系只提供本项目管理默认,其有效角色 cap 与平台 cap 仍先验;A 创建者不能管理 B,不能读取私人资源或代签。
建项前校验创建者角色组合具备 project.settings、member.manage、duty.assign cap 资格;这些角色 default 可关闭,由创建者关系提供项目内管理默认。
最终创建项目、创建者成员关系及所选 binding 在同一领域事务落地;宿主绑定以可恢复状态和幂等对账处理。
已有项目遇 cap 收紧保留 createdBy 与历史归属,阻断受影响动作并说明等待重新任命;不能扩大 cap 恢复管理。
受限“重新选择本人项目职位”是后续独立动作,不复用 project.settings:仅当前有效负责人本人,从账号当前有效任命中明确选取具备管理 cap 的 binding,按项目当前版本确认。
仅此动作可使用尚未被本项目选用的任命;它不改变负责人、不恢复遗留 allow、不清除 deny、不授予资源读取或三权。
系统任命者不能代选;无合格任命时保持等待。项目内移除最后负责人须保护实际可操作管理资格;系统必要撤权不因这一保护而被阻止。
4. 资源、正文与审计读取合同
认证 actor、资源真实 owner/projectId/resourceId/分类来自执行端受信上下文;客户端标识只能定位对象,不能授予访问。
本人的私聊、私人原件和个人草稿属于私人资源;在当前账号有效且资源确属本人时按自有资源规则读取,不因放在项目下变为受控正文。
受控文档正文即使物理由本人生成,也须具体文档职责或明确资源授权、当前项目资格及当前 cap;真实 owner 相等不绕过受控规则。
审核/批准职责仅开放送审正文与明确关联材料,不开放未分享原件、私聊或私人草稿;分享只授予指定资源的只读能力,不授予编写或签字。
项目知识只由明确提交/发布产生;成员身份不意味着私人资源或所有受控正文全量可读。
历史签字、职责与事件保留;历史内容读取依旧使用当前授权,时间点重建不恢复当时权限。
读取、下载、列表、搜索、stream、模型上下文均遵循同一分类和当前判定;裁剪列表后再返回数量/分页,拒绝不得泄露存在性。
I1 现有项目聚合审计 DTO 含正文预览,故除 audit.read 外还必须具备当前完整项目 doc.read;阶段范围受限者不能通过全项目聚合审计取得范围外正文,按资源裁剪的细粒度审计由 U5 完善。具体文档导出检查该文档的 doc.read 和阶段范围,不把审计 grant 当成导出 grant。
I1 私人 pending/rejected 草稿仅提案人可读与决定;知道 proposalId、拥有项目管理权或文档职责都不能采纳/拒绝他人私稿。已采纳正文仍按当前文档读取授权逐项过滤。原件批次确认只限上传者本人,管理台账可披露经当前管理授权限定的业务元数据,不能因此读取或确认私人原件。
5. 公开扩展:现有能力与四要素申请
以下现有公开面是 I1 原合同的 Backend 0f192a481388184df39f81c28b0587a7e16ec3ca 快照,参考 pkg/extension/extension.go、host.go 与 surface.txt,不导入 Backend internal。
该快照的 SurfaceVersion=2.11.0-experimental 源码声明不是部署或消费者可用性证明,也不代表后续主干能力;同步后的组合必须重新核对提供者及消费者实际固定版本。
| 现有能力 | 提供者/消费者 | 足够性与边界 |
|---|---|---|
EXT-18 AdminProvider.IsAdmin()/Request.HostProjectID |
Backend 分发 Host → RDM | 平台管理身份与宿主项目定位;不能证明系统分项授权、账号有效态、RDM 项目关系或业务访问 |
EXT-19 AccountLister.ListAccounts(cursor, limit),AccountEntry{Owner,Valid} |
Backend → 授权目录消费者 | 最小身份目录,非资料页;不提供姓名、联系方式、多职绑定或写权;缺能力不允许新增产品路径无校验继续 |
EXT-8b ResourceAuthzQuery/ResourceAuthorizerV2/注册口 |
Backend 构造受信查询 → RDM 提供策略 → Backend 执行 | 现有六要素为 actor/action/resourceType/resourceId/owner/projectId;读取专用,V2 对域内读权威(含自有命中);未注册的 V1 回落不能替代 I1 必需的资源限制 |
以下是 U1 冻结的公开扩展申请四要素,符号为合同草案,I1 不新增导出实现、不更改 surface 版本。
| 申请 | 场景 | 希望的公开符号/路径 | 现有注册点为何不足 | 兼容方式 |
|---|---|---|---|---|
| IAM-P 政策与动作目录 | UI/命令/工具需查询 scope、cap、有效绑定、权限解释与版本;角色通用权威迁移后供 RDM 同源判定 | 可选 PermissionCatalogProvider、AuthorizationProvider;公开目录/判定/解释与授权管理预览提交服务 |
IsAdmin 只有布尔身份;ActionMeta 在 RDM 内部;EXT-8b 仅资源读,无法供系统管理或管理写入事务使用 |
新可选接口及版本化 DTO;旧 Host 不加必实现方法;RDM legacy 适配与新权威切换分别固定版本 |
| IAM-D 受控人员目录 | 项目选人需要稳定身份、有效态和最小辨识字段,系统资料管理需独立授权 | 可选 AccountDirectoryProvider 与版本化查询/投影 DTO;既有 EXT-19 保留 |
AccountEntry 仅 owner+valid,没有字段权限、搜索模式、可披露辨识资料及多职;私自扩展所有账号资料会扩大披露 |
新可选接口;旧 ListAccounts 不改变返回隐私范围;不得向旧消费者塞入联系方式 |
| IAM-R 资源与当前政策上下文 | 跨原件/草稿/正文/审计分类,查询当前 policy/duty epoch,撤权影响读面与后台提交 | 新版资源查询/决策 DTO 及可选政策上下文提供者;保留 ResourceAuthorizerV2 |
六要素无分类、职责/版本/epoch;bool 返回不能携带可披露原因与版本,读适配器不能承担写入事务 | 新版本资源接口或明确 DTO 增补;禁止未知字段零值放行,必需提供者缺失即拒绝;版本协商与双读仅作诊断 |
| IAM-C 账号本人恢复 | 管理者只能提出恢复,账号本人经独立证明才能取得可兑换设密能力 | 公开恢复提案/本人确认/兑换回执合同,隔离恢复凭据与业务会话 | IsAdmin、目录、资源授权均不提供本人证明或安全凭据交付,不能用个人资料代替 |
新路径/可选能力,不向普通管理员交付目标账户可兑换 Key;旧不满足证明的线上路径明确拒绝 |
| DTO | 必须冻结的字段与版本语义 |
|---|---|
PermissionDescriptor |
actionId、label、description、scope、resourceTypes、group、conditions、delegationLevel、risk、descriptorVersion;稳定 ID 不随改名变化,新增项默认拒绝 |
| 授权查询/解释 | 受信 actor、actionId、资源定位与实际归属、当前状态/版本、选用 binding;输出 allow/deny、可披露 reason、来源链、authorityEpoch;解释只限本人或有权管理对象 |
| 目录查询/投影 | 稳定 userId/owner、valid、获授权姓名/登录名/工号/职位投影、cursor/limit、精确/模糊模式及字段/状态过滤、directoryVersion;未授权字段不返回、不参与匹配;电话、邮箱、部门、备注只在独立授权资料面披露 |
| 管理 patch/预览 | 固定对象 ID、expectedVersion、authorityEpoch、patch 摘要、幂等键;预览不代替提交授权,非法对象/越 cap/冲突整体拒绝;跨模块写入不冒充单库事务 |
| 资源决策扩展 | 受信分类(私人/发布知识/受控正文/业务审计)、resourceVersion、policyVersion、dutyVersion、authorityEpoch 与决策原因;缺失或不认识分类拒绝,禁止请求自报归属 |
目录 r1 的 scope 修订不能只改显示标签;执行端必须同时拒绝错误作用域写入。公开版本须同时登记导出面快照、版本号、变更表、提供者/消费者合同及固定组合。
缺必需能力、未知动作/字段/状态、政策读取失败、归属不一致、过期版本、失效绑定均 fail-closed;不能用 Host.IsAdmin()、缓存 allow、V1 粗粒度授权或手填 owner 兜底。
通用迁移前 legacy 台账只在其声明范围使用;迁移时保留 userId/owner/roleId/projectId/createdBy,禁止双主写入,不生成旧管理员的永久业务 grant,回滚不复活旧越权。
5a. 当前公开能力缺口的 I1 处理
以下是 U2 收口所需的默认拒绝策略,不是后续能力已实现声明;本地候选的实际验证见 I1 评审记录。
- 未归属事件盘点、归属迁移、全量 outbox 队列必须另有 owner 批准的精确资源范围。I1 的
Runtime.SetLegacyAccessAuthorizer为实例内受信集成点,查询绑定 actor/action/project/seq;不存在用户自授命令,不持久化、不跨重启继承。无提供者或提供者失败即拒绝。迁移另检查目标knowledge.publish。 - 当前
Host.KnowledgeDelete仅能删当前 owner 的整个插件前缀,不能限定项目。rdm.knowledge.revoke先验证目标项目knowledge.publish,再明确拒绝执行,不能借 A 项目 grant 删除 B 项目索引。 rdm.init当前实现读服务器路径并写全量未归属域,公开命令拒绝;可信本地 CLI/bootstrap 仍需操作授权。本轮不另造公开目录读取和项目初始化能力。- Host↔RDM 绑定须证明两个项目的管理资格;旧映射行与请求中的 HostProjectID 都不是此证明。I1 的实例内受信 Host 项目授权集成点必须绑定 actor/action/两个实际项目,缺失即拒绝绑定、解绑及基于映射的共享访问。旧映射不自动升级成授权证明。
- 现 Backend
project/list授权成功后会返回项目下全部 owner 工件元数据,缺少逐资源 owner 裁剪,I1 拒绝此聚合共享。项目级 search 无发布分类证明时也拒绝跨 owner 检索;自有私人资源的具体读取路径保留。 - 项目聚合 DTO 尚无安全的按阶段裁剪投影时,要求当前完整
doc.read;章节/文档接口按实际对象检查阶段。业务审计另需显式audit.read。后续安全裁剪不得用 UI 隐藏代替执行端检查。 - 新 outbox 回执以事务内
rdm_audit_outbox_scope记录实际 project/owner,只送入对应 owner 的 Host;旧未知归属回执保持 pending,禁止按下一调用者猜测归属。该关联表为新增领域元数据,无历史自动归属,本轮未执行生产数据库变更。 - status/resume/cancel 按私人批次的真实 owner 判定;恢复另检查当前项目写权及生命周期,取消仅保留本人停止私人任务的能力。opID 重放必须绑定操作、项目、主体与实际资源,冲突不能返回另一资源回执。
| 扩展申请补充 | 场景 | 希望的公开符号/路径 | 现有注册点不足 | 兼容方式 |
|---|---|---|---|---|
| IAM-K 项目级知识撤销 | 合法 A 项目发布者仅撤销 A 已发布资源 | 可选项目/资源限定的知识撤销 DTO 与提供者;实际命名待模块评审 | EXT-9 whole-prefix 删除跨同一 owner 多项目;无可靠逐 ref 删除契约 | 新可选公开接口,旧缺失拒绝;固定提供者/消费者版本,不改 pins 猜测能力 |
| IAM-H 宿主项目管理证明与资源裁剪 | 绑定需双方管理证明,共享读取需当前项目授权与实际资源分类 | 受信 Host 项目授权查询/证明及逐件资源投影提供者;实际命名待模块评审 | EXT-18 仅给当前 actor 的管理员位与项目定位;EXT-8b project/list 是整面 bool,无逐件过滤 | 新可选契约、权威对象与版本;旧映射只作定位,缺失默认拒绝;RDM 私有受信适配不能冒充 Backend 公共实现 |
6. 账号恢复证明与交付
普通管理员仅发起恢复提案;本人须使用管理员不能单方改写或取得的既有有效会话确认,或预先建立的本人恢复证明,才取得可兑换设密能力。 姓名、电话、邮箱、工号均为可选资料,不自动成为恢复证明;新证明建立或更换不能由恢复提案管理员单独完成。 无独立本人验证条件时拒绝线上恢复,不向普通管理员签发可兑换的目标账户 Key;异常人工恢复由另行批准的 owner 操作处理。 恢复能力限制为一次消费、目标账号、设密用途与有效期,不生成业务会话;消费后本人使用正式凭证重新认证。 本合同不证明恢复实现已具备;U3须验证“管理员提出恢复后自行设密接管业务身份”负例,旧路径未收口前 R7 不得闭合。
7. 验收矩阵与证据边界
R1–R20 到 RDM 原 UR/SR 的映射由 RDM docs/proposals/2026-10-13-iam-i1-contract-adoption.md 维护,原需求 ID 不重新编号。
| 判据 | I1 文档核对 | 行为验收归属 |
|---|---|---|
系统动作不可由项目 override 或 project.settings 获取 |
§2逐动作 scope/旧命令映射 | U2:普通成员合法本项目设置成功,全局角色/cap/移交拒绝 |
| 创建者仍受有效角色 cap,遗留覆盖不越界 | §1/§3 | U2:创建者 cap=false、角色动作未定义、停用/换岗及旧 allow 负例 |
| 管理员无业务身份旁路,审计独立授权 | §2/§4 | U2:admin/Host.IsAdmin 非成员及无 audit grant 拒绝;合法成员 audit grant∩cap 正例 |
| 私人资源与受控正文分开 | §4/EXT-8b 消费边界 | U2 可达路径;U5/U6 统一资源及职责、当前版本完整验收 |
| 一职多人、一人多职、项目明确选用 | §1/§3/IAM-P | U4/U5:新任命不扩既有项目、解绑再任命不复活、完整路径不拼接 |
| 账号目录敏感投影与本人恢复 | §5/§6 | U3:未授权字段不匹配/不返回;管理员不能取得本人兑换凭据 |
| 冻结文档轮次、撤权与迟到事件 | §3/§4/IAM-R | U6/U8:当前职责与 cap 重验;旧卡/Surface/SSE/后台最终提交拒旧 |
| 单权威迁移、版本兼容、完整组合 | §1/§5 | U4/U9:旧→新差异、双主拒绝、当前固定提供者/消费者和制品验收 |
U1 只检查文档差异、链接、动作与 scope 一致性、R1–R20 追溯及原方案摘要保持;无行为变更,不运行业务测试。 本地检查来源为 SELF;审核与正式验收须按任务规则同步对象、独立重放并核验 GATE/REPLAY 身份及 SHA。 公开实现、业务测试、浏览器、真实模型、数据库迁移、服务运行、部署与正式验收均不能用本合同的保存结果代替。
8. I1 宿主改名投影的已批准修订(2026-10-13)
用户已批准委任改名契约修订与修复计划 r1,批准对象原文摘要为 3eee5714cce974ce13229b3e184bc3aa763a5e0819fdf7dcf088dafe68b1ed2a。正文维护在 RDM 一处;批准状态与实际实现、测试、Review、CI 和合入分开记录。
合法项目 project.settings 可以委任改名;现有 ProjectHost 的管理修改保持 owner-only。RDM 仅对这一动作建立受信的单目标投影适配:先以实际认证 actor 判定当前项目设置权及状态,再核对域/宿主绑定/物理项目的完整身份,只用受信创建者的 scoped Host 执行该 hostID 的改名。不借创建者身份重新授权,不把投影句柄返回或传入其他业务动作;无需额外 doc.read,私人读取和 Native work 不扩权。
首次改名要求 ready;失败恢复必须对应同事务持久的改名意图、同一主体/项目/host/创建者/目标与版本,并再次检查实际 actor 的当前资格。未知 failed/create 不恢复,未就绪时读/work 仍拒绝。该元数据只属于 RDM 项目投影,不修改旧账号或项目身份,不实施生产迁移,也不冒称完整跨库 epoch。
命令与 HTTP lifecycle 都使用原请求 Host 审计实际操作者。Backend 审计的 Actor=plugin:rdm 继续表示插件来源;业务 actor 由受信 Host.Owner 和审计 evidence.actor 记录。命令保留既有 DTO,HTTP 保留 core.Project 及公开元数据的脱敏设置;不得带出物理 owner 的原始管理设置。
本修订不新增 Backend 公开符号或放宽其 owner-only 管理规则。正式通过须覆盖合法委任及无读取权管理、cap/停用/非成员、实际归属变化、失败/重启/未知恢复、两入口审计和真实 HTTP;未通过当前组合验证时不能声称 I1 完成。