Skip to content

feat(runtime): /keys /storage /ui 三域 handler 体抽出 — ADR-0076 D11 步骤③ PR-3 (#2462) - #3522

Merged
os-zhuang merged 1 commit into
mainfrom
feat/d11-step3-extract-keys-storage-ui
Jul 27, 2026
Merged

feat(runtime): /keys /storage /ui 三域 handler 体抽出 — ADR-0076 D11 步骤③ PR-3 (#2462)#3522
os-zhuang merged 1 commit into
mainfrom
feat/d11-step3-extract-keys-storage-ui

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

动机(#2462 D11 步骤③,系列第三刀)

复制 PR-2(#3507)模式的第三批:/keys/storage/ui 三个 handler 体从 dispatcher 抽到 domains/ 独立模块。

改动

  • domains/keys.ts:完整搬迁 sys_api_key 铸造的零容忍安全契约(user_id 钉死调用者、body 白名单、raw key 仅返回一次、hash 不进日志)。旧分支的 '/keys?' query-string 变体用第二条注册项精确复刻(segment 匹配 + /keys? prefix 两条)。
  • domains/storage.ts:删除严格冗余的 || this.kernel.services?.['file-storage'] 第二腿——论证:resolveService 的 fallback 链本就终于 services map;且当 services 为 Map 形态时索引访问恒 undefined(该腿本就是死的),object 形态时与 resolveService 末步重复。
  • domains/ui.ts:直搬。
  • DomainHandlerDeps 扩展 getObjectQL(env-scoped + registry 形状校验)——/keys 现用,/data /meta 迁移时必需。
  • dispatcher 删三个 if 分支 + 三个薄委托保留 + 清除 unused generateApiKey import。

验证

  • 接缝套件 25 测试(新增 6:keys 匿名 401 / 405 / segment 边界 / user_id 钉死+hash 不回显、storage 501/upload、ui 200/503)。
  • runtime 全量 630 绿;http-conformance 41 断言绿;25 包下游 --force 含 DTS 全绿。

关联 #2462(D11 步骤③ PR-3)。剩余域:/share-links /packages(小)、/automation /actions /auth /meta /data /mcp /ai(大头)。

🤖 Generated with Claude Code

…ADR-0076 D11 step ③ PR-3 (#2462)

Batch 3 of the per-domain decomposition, same pattern as PR-2:
- domains/keys.ts carries the zero-tolerance sys_api_key mint contract
  (user_id pinned, body whitelisted, raw key returned once); the legacy
  branch's '/keys?' query-string form is reproduced with a second
  registry entry next to the segment match.
- domains/storage.ts drops the strictly-redundant
  `|| this.kernel.services?.['file-storage']` leg: resolveService's
  fallback chain already ends at the services map, and under Map-shaped
  services the index access returned undefined anyway.
- domains/ui.ts is a straight move.
- DomainHandlerDeps grows getObjectQL (env-scoped, registry-shape
  checked) — needed by /keys now and /data /meta when they migrate.
- Unused generateApiKey import removed from the dispatcher.

Verified: seam suite 25 tests, runtime 630 green, http-conformance 41
cross-adapter assertions green, 25-package dependent closure builds with
DTS (--force).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Jul 27, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
spec Building Building Preview, Comment Jul 27, 2026 2:30am

Request Review

@github-actions github-actions Bot added documentation Improvements or additions to documentation tests tooling size/l labels Jul 27, 2026
@github-actions

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

This PR changes 1 package(s): @objectstack/runtime.

17 hand-written doc(s) reference the affected code and may need an implementation-accuracy re-verification:

  • content/docs/api/index.mdx (via @objectstack/runtime)
  • content/docs/api/wire-format.mdx (via @objectstack/runtime)
  • content/docs/automation/hook-bodies.mdx (via @objectstack/runtime)
  • content/docs/concepts/north-star.mdx (via packages/runtime)
  • content/docs/data-modeling/drivers.mdx (via @objectstack/runtime)
  • content/docs/deployment/index.mdx (via @objectstack/runtime)
  • content/docs/deployment/production-readiness.mdx (via @objectstack/runtime)
  • content/docs/deployment/single-project-mode.mdx (via @objectstack/runtime)
  • content/docs/deployment/vercel.mdx (via @objectstack/runtime)
  • content/docs/getting-started/your-first-project.mdx (via @objectstack/runtime)
  • content/docs/permissions/authentication.mdx (via @objectstack/runtime)
  • content/docs/permissions/authorization.mdx (via packages/runtime)
  • content/docs/plugins/packages.mdx (via @objectstack/runtime)
  • content/docs/protocol/kernel/http-protocol.mdx (via @objectstack/runtime)
  • content/docs/protocol/kernel/index.mdx (via @objectstack/runtime)
  • content/docs/protocol/kernel/lifecycle.mdx (via @objectstack/runtime)
  • content/docs/releases/implementation-status.mdx (via @objectstack/runtime)

Advisory only. To re-verify, run the docs-accuracy-audit workflow scoped to these files:
node scripts/docs-audit/affected-docs.mjs origin/main → pass the list as args.docs.

@os-zhuang
os-zhuang merged commit 21ca1d5 into main Jul 27, 2026
15 of 16 checks passed
@os-zhuang
os-zhuang deleted the feat/d11-step3-extract-keys-storage-ui branch July 27, 2026 02:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/l tests tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant