AgoraIO-Extensions / AgoraIO-Extensions/agent-infra

fix(connection): support current Codex DCR metadata

Abierto
#459 5 comentarios 0 reacciones 0 asignados Ver en GitHub
bug needs-triage ready-for-agent
Lenguaje dominante
TypeScript
Estrellas
0
Forks
0
Merge medio
8 h 51 min
PR fusionados (30 d)
99

Descripción

## 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

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.