Skip to content

feat(web): 在原始交换存储页提供全局捕获开关 #37

Description

@faithleysath

提交前必读(请勿删除本节)

  • 文档:https://docs.newapi.ai/
  • 使用问题先看或先问:https://deepwiki.com/QuantumNous/new-api
  • 开启透传后的转发相关反馈不接受 issue;透传模式会直接转发请求,请自行确认上游行为。
  • 不接受 Coding Plan、逆向渠道、第三方封装接口,以及将 Codex 接口反代为通用 API 后产生的兼容性问题;Codex API 自身特有的协议或行为也不应被当作标准 OpenAI API 行为,相关问题请先向渠道或接口提供方确认。
  • 警告:删除本模板、删除小节标题或随意清空内容的 issue,可能会被直接关闭;重复恶意提交者可能会被 block。

您当前的 newapi 版本

v1.0.0-rc.22-nexus.4

提交确认

  • 非重复 issue: 我已搜索现有 Issues,确认目前没有类似 issue。
  • 提交前必读: 我已完整阅读上方“提交前必读”,并已查看文档、项目 README 且向 AI 提问,确认这不是使用、配置或接入类问题,且现有版本无法满足需求。
  • 模板完整: 我未删除此模板中的任何引导内容或小节标题,并已按要求完整填写。
  • 维护成本: 我理解项目维护者精力有限,不遵循模板要求的 issue 可能会被无视或直接关闭。

功能描述

后端已经提供全局配置 raw_exchange.enabled,但当前前端的 系统设置 → Operations → Raw Exchange Storage 页面只展示 Capture: enabled/disabled 状态、存储统计和清理工具,没有可操作的全局开关。管理员必须直接调用 PUT /api/option/ 才能修改该配置,页面状态与配置入口不闭环。

建议在 /system-settings/operations/raw-exchanges 的存储概览区域加入二元 Toggle/Switch:

  • 仅 Root 用户可修改;普通 Admin 保持只读状态展示。
  • 从当前 option 或管理统计接口初始化 raw_exchange.enabled,保存后回读确认。
  • 开启前要求 storage_ready=true;存储未就绪时禁用开启操作,并展示后端返回的 storage_error
  • 开启时明确提示原始请求和响应可能包含敏感内容,需要确认后提交。
  • 关闭后只停止新的捕获,不删除既有归档,也不重写各 API Key 的 raw_exchange_capture_mode
  • 再次开启时保留并恢复既有逐 Key 模式的原有语义,确认文案应说明这一点。
  • API 写入失败时恢复 UI 状态并显示可操作错误,不进行乐观状态漂移。
  • 所有新增用户可见文本补齐现有全部 locale,并增加组件行为测试。

验收条件:

  • Root 可在 Raw Exchange Storage 页面查看并切换全局捕获状态。
  • 非 Root Admin 只能查看状态,不能触发写操作。
  • storage_ready=false 时无法开启,并显示具体存储错误。
  • 开启/关闭通过现有 option API 持久化,刷新页面后状态一致。
  • 关闭不删除归档、不改变逐 Key 模式;重新开启的语义有明确确认文案。
  • 成功和失败状态均有 i18n 反馈,相关前端测试通过。

应用场景

运维人员在首次部署 raw-exchange、切换本地/S3 存储、处理容量或加密故障、进行紧急停采以及灰度启用逐 Key 捕获时,需要在同一个维护页面完成“存储 readiness → 全局门禁 → 逐 Key 模式”的判断。目前页面只能看到结果,无法控制全局门禁,容易导致管理员误以为页面遗漏配置、直接操作 API,或者在存储尚未就绪时尝试启用 Token 捕获。

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions