Commit dfcd664
committed
docs(adr-0121): 声明式端点的路由归属与通道分工落档 —— 命名空间制 + actions/apis 按调用方分工 +
维护者 2026-08-04 三项裁决的持久记录。docs-only:不改任何代码或 schema,
执行体由 #5040 的 E 系列(E7 翻转 PR 落 publish 门)实施。
D1/D2 命名空间制:`ApiEndpointSchema.path` 今天只约束首字符为斜杠,应用元数据
因此可以合法认领 `/api/v1/data/…` 或与另一个已安装包互撞。路径收紧为
`<运行前缀>/apps/<命名空间>/<子路径>`——`apps` 是平台保留的唯一切出段(已实核:
domain registry 前缀集与 LEGACY_CHAIN_PREFIXES 中均无 `/apps`),命名空间段派生自
`manifest.namespace`(stack 上唯一同时 URL 安全、带实例内唯一性契约、且已作为每个
对象名前缀被强制的身份键;`App.apis` 已于 spec 17.0.0 退役并留墓碑,声明单位是
stack 不是 app)。撞内建域与跨应用互撞由此在构造上消失,#5040 设计 §1 的保留前缀
pin 清单与 spec/runtime 双端一致性测试整体作废。
D3 通道分工:调用方在平台内(会话、平台方言:UI 按钮、AI/MCP、SDK)→ actions;
调用方在平台外(第三方 webhook、合作方系统)→ apis。判据的维度是调用方在哪,
不是「做什么」——后者会退化成口味之争。
D4-D6 `type: flow` 保留,配三条纪律:判据入两侧 describe(spec 车道执行项)、
同管线红线(flow 端点纯委派 automation 服务,选错通道只是风格问题不是行为问题)、
匿名端点防呆门(`authRequired: false` 必须伴随 `rateLimit`)。签名验证明示为将来
词表候选,不预支。
替代方案按两轴收录 O1(自由路径 + 保留前缀门)与 O3(actions 全面替代 /
Dataverse 模式)及否决理由。
编号取 0121:0120 已被开放 PR #5054 占用(origin/main + 开放 PR 双查)。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EYGdmvWP1ieZSLqvAW6uydtype: flow 保留 (#5060)1 parent 94f7b6a commit dfcd664
2 files changed
Lines changed: 391 additions & 0 deletions
File tree
- .changeset
- docs/adr
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
0 commit comments