AgoraIO-Extensions / AgoraIO-Extensions/agent-infra
fix(connection): support current Codex DCR metadata
- Ngôn ngữ chính
- TypeScript
- Star
- 0
- Fork
- 0
- Merge trung bình
- 8 giờ 51 phút
- Pull request đã merge (30 ngày)
- 99
Mô tả
## Problem
Connection HCI supervised pilot 的 connection-api:v0.0.7 对 OAuth Dynamic Client Registration metadata 使用固定字段白名单和精确值匹配。线上日志确认 codex-mcp-client/0.153.1 与 0.154.0 调用 POST /oauth/register 均返回 400 invalid_request: Invalid client metadata,而 0.150.0-alpha.8 可以完成 DCR、PKCE 登录和 token exchange。当前行为阻止升级后的 Codex CLI 接入。
## Scope
- 捕获并对照受影响 Codex CLI 提交的非敏感 DCR metadata,明确与当前校验的差异。
- 在 connection-api 的受限 DCR 校验入口兼容新版 Codex CLI 使用的标准 metadata;不接受任意 client、任意 redirect URI 或 confidential-client authentication。
- 保持 client identity 限定、单个 loopback redirect URI、Authorization Code + PKCE、response_type=code、scope=mcp、token_endpoint_auth_method=none 及注册生命周期边界。
- 对新增允许字段实施类型、值与 URL 边界校验;未知字段继续 fail closed。
- 补充旧版/新版合法请求与未知字段、非 loopback redirect、错误 client/auth/grant metadata 的负向测试。
- 本票不修改 LDAP、Provider Credential、Grant、PAT、数据库 schema、Connection Web 或部署配置,不发布或部署镜像。
## Acceptance criteria
- [ ] **AC-1:** 记录 0.153.1/0.154.0 与当前成功版本 DCR metadata 的非敏感差异,并由回归测试覆盖。
- [ ] **AC-2:** 当前批准的 Codex client metadata 和新版 Codex 合法 metadata 均返回 201,未知字段和越界 metadata 仍返回 400。
- [ ] **AC-3:** 只接受单个 127.0.0.1 loopback callback、native public client、Authorization Code + PKCE 所需 profile 和 mcp scope;安全门禁不降低。
- [ ] **AC-4:** Connection API focused tests、type/check、相关 OAuth integration test 与 git diff --check 通过。
- [ ] **AC-5:** 变更经独立 review 后才可合入;发布和 HCI 部署需要单独明确授权与可回滚发布记录。
## HLD mapping
- HLD 18.1:Direct MCP Client 使用 OAuth Authorization Code + PKCE,通过受限 DCR 获得 client identity。
- HLD 22.4:DCR 必须限制 redirect URI、software metadata 和注册生命周期,不能开放任意公共 client。
## Validation
- 用受影响 Codex CLI 版本复现 POST /oauth/register。
- 对 DCR validator 运行定向正负测试。
- 运行仓库要求的适用检查;完整验证中的环境性失败需单独记录。
## Blocked by
None
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Đánh giá
Issue này chưa được đánh giá.