Problem Statement
Web Studio 在 Usage/Audit 不可用时,目前会把不同原因统一呈现为「Usage/Audit is not initialized, so live usage stats are unavailable.」。
这个提示在以下场景里容易让用户误判:后端 Usage/Audit 已经初始化,审计库也有数据,但当前 WebUI 连接没有配置 API Key,导致 /health 无法返回 role,前端把 connectionRole 判断为 unknown,于是不会请求 Console Usage/Audit 接口。
实际观察到的链路是:
- OpenViking Server 正常运行,
/health 返回 auth_mode: dev
- 不带
X-API-Key 请求 /health 时,不返回 role
- 带
X-API-Key: dev 请求 /health 时,返回 role: root
- WebUI localStorage 中
ov_console_connection.apiKey 为空时:
- Home 页不请求
/api/v1/console/dashboard/summary
- Home 页 Usage/Audit 面板全部显示
0
- 面板显示「Usage/Audit is not initialized...」
- 访问 Request Logs 会回到 Home,无法看到请求日志
- 给 WebUI 连接补上
API Key: dev 后:
- Home 页开始请求
/api/v1/console/dashboard/summary
- Request Logs 正常请求
/api/v1/console/audit
- 页面可以看到已有审计记录
从用户视角看,这不是 Usage/Audit 没有初始化,而是当前连接没有被识别为可访问 Console Usage/Audit 的角色。
Proposed Solution
建议 Web Studio 区分「Usage/Audit 未初始化」和「当前连接角色未知 / 无管理权限」两类状态。
例如:
- 当后端明确返回
enabled: false 时,继续显示 Usage/Audit 未初始化或未启用
- 当
connectionRole === "unknown" 时,显示更准确的提示:
当前连接未获取到 admin/root 权限,无法显示 Usage/Audit 数据。
请在 Connection & Identity 中配置具备权限的 API Key。
Request Logs 页面也可以避免静默跳回 Home,改为展示一个轻量提示页,说明当前连接无法访问请求日志,并引导用户去 Connection & Identity 配置 API Key。
Alternatives Considered
不建议放宽后端 Console Usage/Audit 的访问控制。Usage/Audit 和请求日志属于管理视图,继续要求 root/admin 角色是合理的。
也不建议在所有 dev 模式下自动注入 dev API Key,因为这可能和已有部署或用户显式配置冲突。
更稳妥的改进是只调整 WebUI 的状态判断和提示文案,让用户知道当前是连接身份问题,而不是后端审计能力未初始化。
Feature Area
Other / Web Studio / Console Usage-Audit
Use Case
本地开发或 dev auth mode 下,用户打开 Web Studio 后看到 Usage/Audit 面板全是 0,并且显示 Usage/Audit 未初始化。
如果用户同时能在后端或数据库里看到审计记录,就会误以为 Usage/Audit 初始化、审计写入或 account 隔离有问题。更准确的提示可以减少排查成本,并让用户直接去 Connection & Identity 配置 API Key。
Additional Context
验证环境:
- OpenViking version:
0.4.6
- Auth mode:
dev
- OS: Linux / WSL2
- Python:
3.14.3
直接接口验证:
curl -sS http://127.0.0.1:1933/api/v1/console/dashboard/summary
返回了非 0 数据,例如:
{
"status": "ok",
"result": {
"context_counts": {
"files": 2,
"skills": 2,
"memories": 2,
"total": 6
},
"today_tokens": {
"vlm_input": 169339,
"vlm_output": 156766,
"embedding_input": 1199,
"total": 327304
},
"today_retrievals": {
"find": 0,
"search": 0,
"total": 0
}
}
}
审计接口在配置 API Key 后也正常返回数据:
GET /api/v1/console/audit?page=1&page_size=10 => 200
WebUI 请求头对比:
# 未配置 API Key
GET /health
# 请求头没有 X-API-Key,响应没有 role
# 配置 API Key: dev 后
GET /health
x-api-key: dev
# 响应包含 role: root
因此建议将当前提示从「Usage/Audit 未初始化」细分为更明确的连接权限状态。
Problem Statement
Web Studio 在 Usage/Audit 不可用时,目前会把不同原因统一呈现为「Usage/Audit is not initialized, so live usage stats are unavailable.」。
这个提示在以下场景里容易让用户误判:后端 Usage/Audit 已经初始化,审计库也有数据,但当前 WebUI 连接没有配置 API Key,导致
/health无法返回role,前端把connectionRole判断为unknown,于是不会请求 Console Usage/Audit 接口。实际观察到的链路是:
/health返回auth_mode: devX-API-Key请求/health时,不返回roleX-API-Key: dev请求/health时,返回role: rootov_console_connection.apiKey为空时:/api/v1/console/dashboard/summary0API Key: dev后:/api/v1/console/dashboard/summary/api/v1/console/audit从用户视角看,这不是 Usage/Audit 没有初始化,而是当前连接没有被识别为可访问 Console Usage/Audit 的角色。
Proposed Solution
建议 Web Studio 区分「Usage/Audit 未初始化」和「当前连接角色未知 / 无管理权限」两类状态。
例如:
enabled: false时,继续显示 Usage/Audit 未初始化或未启用connectionRole === "unknown"时,显示更准确的提示:Request Logs 页面也可以避免静默跳回 Home,改为展示一个轻量提示页,说明当前连接无法访问请求日志,并引导用户去 Connection & Identity 配置 API Key。
Alternatives Considered
不建议放宽后端 Console Usage/Audit 的访问控制。Usage/Audit 和请求日志属于管理视图,继续要求
root/admin角色是合理的。也不建议在所有 dev 模式下自动注入
devAPI Key,因为这可能和已有部署或用户显式配置冲突。更稳妥的改进是只调整 WebUI 的状态判断和提示文案,让用户知道当前是连接身份问题,而不是后端审计能力未初始化。
Feature Area
Other / Web Studio / Console Usage-Audit
Use Case
本地开发或 dev auth mode 下,用户打开 Web Studio 后看到 Usage/Audit 面板全是
0,并且显示 Usage/Audit 未初始化。如果用户同时能在后端或数据库里看到审计记录,就会误以为 Usage/Audit 初始化、审计写入或 account 隔离有问题。更准确的提示可以减少排查成本,并让用户直接去 Connection & Identity 配置 API Key。
Additional Context
验证环境:
0.4.6dev3.14.3直接接口验证:
返回了非 0 数据,例如:
{ "status": "ok", "result": { "context_counts": { "files": 2, "skills": 2, "memories": 2, "total": 6 }, "today_tokens": { "vlm_input": 169339, "vlm_output": 156766, "embedding_input": 1199, "total": 327304 }, "today_retrievals": { "find": 0, "search": 0, "total": 0 } } }审计接口在配置 API Key 后也正常返回数据:
WebUI 请求头对比:
因此建议将当前提示从「Usage/Audit 未初始化」细分为更明确的连接权限状态。