已知技术债
更新日期:2026-06-14
已闭环(✅)
- ✅ SSO Phase A1.1 — shared_auth schema + 数据迁移
- ✅ SSO Phase A1.2 — robovan + nempoi auth 切 shared_auth
- ✅ SSO Phase A2 — cookie session 跨子域共享
- ✅ SSO Phase A3 — 门户超管面板(7 子页全)
- ✅ P0b 根超管 owner 概念
- ✅ RBAC v2 schema + 矩阵 UI + 应用层(robovan)生效
- ✅ 跨 app 登录日志 / 操作日志 / 监控仪表盘聚合
- ✅ audit/2026-06-13 8 项安全修复
未做(待规划)
优先级 P1
- NEMPOI 应用层切到 RBAC v2:nempoi 的
require_role()还是字符串匹配,未读 shared_auth.role_permissions。实施类似 robovan permissionService 的loadGrants()+require_perm()helper,然后逐路由替换require_role()为require_perm()。涉及文件:auth.py/routes/admin.py/routes/superadmin.py/routes/pois.py等。 - 跨 IP 异地灾备:目前 pg_dump 仅本机滚动 14 份,丢机房就完。建议每周拉到 OSS / S3。
- 生产 PM2 用 root 跑:中等风险。建议建专属 user(
robovan/nem_poi)。
优先级 P2
- 监控仪表盘扩展:加 NEM 调用统计 / token invalid 状态 / 历史趋势图(目前是当前快照)。
- VitePress 自动从 PG schema 生成表文档:本文档手写,新表加 column 会忘更新。可写脚本读
information_schema自动出 markdown。 - 数据快照下载:UI 已展示但下载链接未挂(后端 fleet
/api/snapshots/:id/download已存在,UI 加按钮即可)。 - 登录日志可终止 session:UI 现仅展示,无 force-logout 按钮(后端 DELETE FROM sessions 已易做)。
优先级 P3 / 设计权衡
- SQLite WAL → PostgreSQL ✅ 已迁(SSO A1 期)
- NEMPOI 操作日志写入 shared_auth? 目前各 app 各自 audit_logs,跨 app 合并要前端并发调。如果把 audit 写 shared_auth 单一表,门户可一次拿;但需考虑写 → 跨库 vs 写本地 + 异步同步的取舍。
- 角色等级硬编码 ROLE_LEVEL vs RBAC matrix:robovan users.js 还有硬编码的等级表用于 audit/2026-06-13 修复(防 management 自我提权)。这套规则现在被 RBAC matrix 部分覆盖,可以考虑统一,但等级语义"严格高于"在 matrix 里没有原生表达。
后续 SSO Phase B 设想
- B1: 飞书登录在门户(目前只在 fleet 子域)
- B2: 客户飞书绑定(NEMPOI 客户也用飞书登录,简化)
- B3: 登录设备识别 + 异常登录提醒(IP 突变 / 新设备)
- B4: API key / 服务账号(给第三方系统调用)