Skip to content

fix(mcp): recheck tenant ownership and theme scope for saved contracts - #65

Closed
BigDataDZ wants to merge 12 commits into
xiaour:mainfrom
BigDataDZ:codex/oct25-mcp-contract-authorization
Closed

BigDataDZ wants to merge 12 commits into
xiaour:mainfrom
BigDataDZ:codex/oct25-mcp-contract-authorization

Conversation

@BigDataDZ

@BigDataDZ BigDataDZ commented Oct 25, 2026 •

Copy link
Copy Markdown
Collaborator

本PR的原始功能修复已进入最新main87c2966:原始修复提交已通过git merge-base --is-ancestor验证,相关核心文件及回归测试已核对。后续MCP运行时调整保留了配置缓存及Origin校验。当前PR头多出的上游同步/基线冲突处理不构成尚未合入的独立功能,因此关闭,避免重复审阅;分支与提交保留。


原始说明:
Executing a persisted MCP query contract did not verify its tenant against the current API key or reapply the current theme scope. A saved contract could therefore bypass those restrictions even though resolve_query applies scope checks. Check tenant ownership and current tenantScope immediately after loading the record, before parsing, context resolution, compilation review or query execution. Rejections stay inside audit handling and return a generic forbidden error. Preserve existing expiry and query review behavior. Extract unchanged contract parsing/dataset request construction into contractExecution.js; execute_query shrinks from 127 to 93 lines, below its 119-line baseline. Four regression cases failed before the fix. Real SQLite persisted contracts and actual SDK handlers cover cross-tenant and narrowed-scope denial using synchronous and async-only storage, with zero downstream context/query calls on rejection. Same-tenant authorized execution and success/error audit outcomes remain covered. Focused 18/18; full suite 744 passed, 15 skipped, 0 failed; eval fixtures 14/14 (two judge results pending). Independent review approved. Architecture errors reduced 32 to 31; no upward baselines. Includes validated prerequisites through #64. Native MySQL persistence acceptance, PostgreSQL/browser acceptance and both Docker configurations passed in CI. The online unit step passed; the job remains red at the existing architecture guard and online eval is skipped. 本次邮件/审阅反馈核查后的更新:已合入当前main e19d784,解决上游合并#49–#54后产生的config/size-baseline.json冲突。冲突处理逐项取较低值,未提高任何已有基线;业务代码由Git自动合入。 当前head:276bc7c99e72db57da0bc8ac17115dd935bb17f1。本地定向验证:ℹ tests 51; ℹ pass 49; ℹ fail 0; ℹ skipped 2。跳过项未计为通过。远端CI已重新触发,结果以最新Checks为准,规模门禁尚未宣称全绿。 已再次对齐新发布的main5385ed3(V1.2.0/#76)。逐项保留较低基线,并修复上游基线JSON漏逗号(独立修复#77);未提高已有数值。当前head:cd3bfe74efbdb618c01bef2f0b9804c3c3f76b38。本地定向验证:ℹ tests 34; ℹ pass 33; ℹ fail 0; ℹ skipped 1。跳过项未计为通过。 新主分支全量诊断本身有5个失败;此前零失败结果不再代表当前上游。完整CI以最新Checks为准,未宣称全绿。

BigDataDZ added a commit to BigDataDZ/yolo-data that referenced this pull request Oct 26, 2026
BigDataDZ added a commit to BigDataDZ/yolo-data that referenced this pull request Oct 26, 2026
@BigDataDZ BigDataDZ closed this Oct 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant