feat: improve account deletion and Agent authorization review
This commit is contained in:
1 parent
5ad64460f7
commit
91365ee315
21 files changed
+2276
-713
No files matched your search
@@ -240,7 +240,7 @@
|
||||
{
|
||||
"TABLE_NAME": "agentgrant",
|
||||
"COLUMN_NAME": "refreshExpiresAt",
|
||||
"COLUMN_COMMENT": "刷新授权到期时间,UTC"
|
||||
"COLUMN_COMMENT": "刷新授权到期时间,UTC;空表示永久 OAuth 授权或个人令牌不适用"
|
||||
},
|
||||
{
|
||||
"TABLE_NAME": "agentgrant",
|
||||
|
||||
+6
-2
@@ -22,13 +22,13 @@ OAuth 使用发现元数据、动态注册的公开客户端、授权码、S256
|
||||
|
||||
敏感操作(密码/账号修改、清空、备份导出恢复、公开图标发布、安全设置变更)仅在网站进行,不存在 sensitive scope。汇率和参考报价可以查询,MCP 不能修改或主动刷新。贵金属仍可按克数创建、设置成本和重量,并用已有报价更新资产估值;估值历史与报价是不同业务。
|
||||
|
||||
个人访问令牌仅作为支持自定义 Bearer 头客户端的补充。在网站验证当前密码,选择权限和 1、3、7、30 天、365 天或永久。完整值仅创建时展示,数据库只存 SHA-256 摘要。永久令牌数据库到期日为空,每个请求仍重新检查撤销和资源;为兼容 SDK 中间件,每次认证上下文有有限期验证断言,不改变令牌期限。永久令牌内部业务会话按天续期。OAuth 访问令牌一小时、刷新授权三十天,刷新时轮换摘要;不支持永久 OAuth。
|
||||
个人访问令牌仅作为支持自定义 Bearer 头客户端的补充。在网站验证当前密码,选择权限和 1、3、7、30 天、365 天或永久。完整值仅创建时展示,数据库只存 SHA-256 摘要。永久令牌数据库到期日为空,每个请求仍重新检查撤销和资源;为兼容 SDK 中间件,每次认证上下文有有限期验证断言,不改变令牌期限。永久令牌内部业务会话按天续期。OAuth 授权页可选择 1、3、7、30、365 天或永久,默认 30 天。访问令牌最长一小时且不超过有限授权期限;刷新时轮换摘要,不延长原授权期限。永久授权仍可撤销,内部业务会话有界并在刷新时重建。
|
||||
|
||||
旧连接有 write 时,现在直接执行普通修改;旧全局策略不再阻止它。只想创建草稿时,撤销旧连接并重新授权 read draft。历史策略行保留但不参与任何权限判断;旧敏感工具草稿不可提交。
|
||||
|
||||
## 页面复制提示词配置
|
||||
|
||||
在「设置与备份 → 连接 Agent → 开始连接」选择申请权限(默认 read,draft),点击「复制 Codex 配置提示词」,发送给运行在本机、能够执行命令的 Codex。提示词明确授权它仅配置 worthpath 连接、使用 OAuth、保留其他配置并核对实际工具加载;命令由 Codex 执行,用户无需手动输入。用户仍须完成 WorthPath 网页登录和权限确认,当前会话无法加载新增工具时须重启客户端或新建会话。提示词不包含个人令牌,也不会修改账目。
|
||||
在「设置与备份 → 连接 Agent」复制实际 MCP 地址和“Agent 使用教程”。支持远程 OAuth 的客户端填写此地址,选择 Streamable HTTP;在 WorthPath 网页登录,审核客户端名称、回调地址、资源,并选择连接权限。网页会回到已注册的精确回调地址并保留 state。客户端自行验证 state。
|
||||
|
||||
权限选择只改变申请内容,不会立即改变现有连接授权;最终以网页确认和 connection_info 为准。这是可执行的配置指令,不是浏览器一键注册客户端;客户端缺少本机执行能力时需如实说明限制。
|
||||
|
||||
@@ -128,3 +128,7 @@ cd E:\WorthPath
|
||||
申请草稿模式时选择“草稿修改(网页确认)”,不勾选隐藏账户;最终将授予应显示 read,draft。授权后用 connection_info 核对实际 scopes 仅有两项、readHidden/writeHidden 均 false。不要仅因默认请求包含全部候选权限就停止登录,最终批准仍由用户完成。
|
||||
|
||||
新增可选真实客户端回归:apps/api/test/codex-oauth.test.ts。设置 CODEX_CLI 为本机官方 Codex 可执行文件路径,然后运行 pnpm --filter @worthpath/api test:mcp:codex。前置为可访问的开发 API/MySQL,支持 TEST_API_URL/MCP_PUBLIC_URL/WEB_ORIGIN。测试使用独立临时 CODEX_HOME 与账号,不使用真实客户端凭据;两个测试分别覆盖显式和默认请求,最终 grant 仅 read,draft、39 工具发现、隐藏权限关闭和普通修改返回 pending 且没有 position 入账。自动清理临时凭据、账号与注册。两项实际通过;没有验证用户真实桌面聊天内工具调用。
|
||||
|
||||
### 独立审核页面与草稿预览
|
||||
|
||||
OAuth 审核使用 /agent/authorize,草稿确认使用 /agent/operation;旧查询参数链接仍兼容。审核页显示申请范围、最终权限与授权期限。草稿按中文字段展示账户名称、金额、日期、备注及已有记录,用户确认后执行;过期或状态发生变化时不能提交。能力页面支持搜索,技术说明默认折叠。
|
||||
@@ -0,0 +1,20 @@
|
||||
# 账户删除与 Agent 连接更新(2026-10-04)
|
||||
|
||||
- 账户详情新增删除入口,先展示将删除的余额历史、资产关联数量,输入完整账户名称才允许删除。关联转账或计划时先处理关联记录,避免影响其他账户余额。删除校验用户归属和隐藏账户权限;独立资产、负债使用各自已有流程。
|
||||
- OAuth 授权与草稿确认使用独立页面,登录后保持待审核链接,旧链接继续兼容。
|
||||
- 草稿改为中文字段及账户名称,显示原记录与修改内容,保留金额精度、负债符号和跨币种单位;显示过期、取消、确认和执行结果。
|
||||
- Agent 页面分为连接助手、我的连接、草稿记录、能力权限;连接采用步骤向导,能力可搜索,技术内容折叠展示。
|
||||
- OAuth 期限支持 1、3、7、30、365 天和永久,默认 30 天。访问令牌最长一小时,有限授权到期后无法刷新或访问,刷新不延长授权。永久授权可撤销,刷新时重建有界业务会话。
|
||||
- 连接助手可申请隐藏账户读取、修改权限,默认关闭;修改必须同时允许读取,且不能用于只读模式。配置提示词携带申请范围,最终以网页审核及 connection_info 为准。
|
||||
|
||||
## 数据库
|
||||
|
||||
应用 20261004110000_oauth_duration_comment 迁移,更新 AgentGrant.refreshExpiresAt 注释;空值表示永久 OAuth 授权或个人令牌不适用。无需新增表和字段。
|
||||
|
||||
## 验证
|
||||
|
||||
完成类型检查、生产构建、单元测试、真实 MySQL 业务集成测试及 OAuth/MCP 测试。覆盖账户删除级联和关联保护、跨用户与隐藏权限、草稿引用隔离、所有固定期限、永久授权、刷新轮换、到期和撤销。浏览器验证独立审核、可读草稿确认、删除确认输入和隐藏权限配置;测试使用临时账户,未修改真实用户账目。
|
||||
|
||||
最终验证:39 项单元测试(含工作区已有的 Host 配置测试)、20 项真实 MySQL 集成测试、6 项 OAuth/MCP 测试通过;生产构建与类型检查通过,25 项数据库迁移全部应用。
|
||||
|
||||
复验时当前环境的非本机 HTTP MCP 地址触发既有 HTTPS 校验。验证临时使用 localhost,未修改 .env;使用该非本机地址前仍须配置 HTTPS。
|
||||
Reference in new issue
Block a user