Consult resource-level authorizer on all shared read paths #179

Merged
weichen merged 2 commits from feature/ext8-read-consumption into main 2026-10-12 12:09:51 +00:00
Owner

Why

方案 r1 U9 第二切片:EXT-8b 契约(#178)落地后读面仍走 V1 owner×project 布尔——下载/清单/建会话/SSE 订阅/检索过滤/动作矩阵 read 回落六处未消费资源粒度六要素。

Evidence

  • 红测:SetResourceAuthorizerV2 未定义(编译红);绿测三件全过:六要素查询断言(download=artifact×ID×Owner(受信元数据)×ProjectID;list/read/stream=project×pid)、V2 拒绝压过 V1 放行(保持 404 不泄露存在性)、V2 缺席回落 V1(RDM 现网行为不变);go test ./... 全绿

Impact

  • Server 增 ProjectAuthzV2 槽 + SetResourceAuthorizerV2 + authorizeSharedResource(受信构造六要素;字段缺失/出错一律 false);六处读路径改走资源级咨询;app.go 注入 authzSlot.AuthorizeResource
  • V2 未注册全回落 V1——零行为变化直到下游注册(RDM 升 pins 后续切片)

Refs

#178;方案 r1 U9/KTD2

## Why 方案 r1 U9 第二切片:EXT-8b 契约(#178)落地后读面仍走 V1 owner×project 布尔——下载/清单/建会话/SSE 订阅/检索过滤/动作矩阵 read 回落六处未消费资源粒度六要素。 ## Evidence - 红测:SetResourceAuthorizerV2 未定义(编译红);绿测三件全过:六要素查询断言(download=artifact×ID×Owner(受信元数据)×ProjectID;list/read/stream=project×pid)、V2 拒绝压过 V1 放行(保持 404 不泄露存在性)、V2 缺席回落 V1(RDM 现网行为不变);`go test ./...` 全绿 ## Impact - Server 增 ProjectAuthzV2 槽 + SetResourceAuthorizerV2 + authorizeSharedResource(受信构造六要素;字段缺失/出错一律 false);六处读路径改走资源级咨询;app.go 注入 authzSlot.AuthorizeResource - V2 未注册全回落 V1——零行为变化直到下游注册(RDM 升 pins 后续切片) ## Refs #178;方案 r1 U9/KTD2
weichen added 2 commits 2026-10-12 12:08:43 +00:00
Why: U9 第二切片——server 读面须按资源级六要素咨询 V2(红:SetResourceAuthorizerV2 未定义)。
Evidence: go vet 编译红(槽位/消费缺失);断言下载/list/建会话三路径查询要素、V2 拒绝压过 V1、V2 缺席回落 V1。
Impact: 仅测试。
Refs: Backend#178;方案 r1 U9
Consult resource-level authorizer on all shared read paths
ci / vet-and-test (pull_request) Successful in 46s
19d4e1ef0d
Why: 方案 r1 U9 第二切片——EXT-8b 契约落地后,读面(下载/清单/建会话/SSE 订阅/检索过滤/动作矩阵 read 回落)仍走 V1 owner×project 布尔,资源粒度与受信六要素未消费。
Evidence: 红测(SetResourceAuthorizerV2 未定义编译红,head 见任务收据);绿测三件:六要素查询断言(download=artifact×ID×Owner=alice×ProjectID、list/read=project×pid)、V2 拒绝压过 V1 放行(404 不泄露)、V2 缺席回落 V1(现行兼容);go test ./... 全绿。
Impact: Server 增 ProjectAuthzV2 槽与 SetResourceAuthorizerV2;authorizeSharedResource(六要素受信构造、字段缺失/出错一律 false)替换六处读路径的 V1 直调(artifactContent/getArtifact/sharedArtifactGet=listArtifacts/createConversation/SSE subscribe/检索 allow-fn/authorizeProjectAction read 回落);app.go 组合根注入 authzSlot.AuthorizeResource。V2 未注册时全部回落 V1,RDM 现网行为不变。
Refs: Backend#178;方案 r1 U9/KTD2
weichen merged commit 830fea3d3b into main 2026-10-12 12:09:51 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: weichen/Agent-System-Backend#179