Commit Graph

44 Commits

Author SHA1 Message Date
aiyimickey 90d65d3fb2 feat: add /api/internal/roles endpoint for OA integration + middleware publicPaths 2026-07-07 18:34:46 +08:00
aiyimickey b3b10cb162 fix: logout redirect uses OIDC_REDIRECT_URI instead of request headers (open redirect fix) 2026-07-07 17:24:49 +08:00
aiyimickey 67e8979362 fix: logout 302 redirect + .next volume mount for hot-deploy 2026-07-07 17:18:19 +08:00
aiyimickey 8137e3aec7 fix: 代码整洁度优化(M1/M2/M3)
- M1: login route LDAP 查询改为 dbQueryParams 参数化
- M2: callback 审计日志 import 统一为 @/lib/audit
- M3: users/[id] bcrypt.hash 改为异步版本
2026-07-03 14:22:16 +08:00
aiyimickey b6f22b1412 fix: localadmin 密码每次部署更新(INSERT/UPDATE 替代 INSERT OR IGNORE) 2026-07-03 14:13:24 +08:00
aiyimickey 81505b6c08 chore: .env.example 补齐 LDAP_BASE_DN 2026-07-03 14:06:08 +08:00
aiyimickey 8e07fbd1e2 chore: .env.example 统一为本地开发配置(JWT_SECRET/AUTHELIA_URL/COOKIE_DOMAIN) 2026-07-03 14:01:38 +08:00
aiyimickey 2658438c48 fix: LOW 问题修复(第四批)
- L1: bcrypt.compareSync 改为异步 bcrypt.compare
- L2: 登录速率限制(5次/15分钟,用户名+IP 维度)
- L4: 取消按钮在保存中禁用,防止用户丢失错误信息
- L5: localadmin INSERT OR IGNORE 添加设计决策注释
2026-07-03 14:01:33 +08:00
aiyimickey 38e97faf0c chore: 移除 callback route 未使用的 escapeSql 导入 2026-07-03 13:52:39 +08:00
aiyimickey 022bb5ad64 fix: 深度审查修复(第三批)
- H-新2/3/4: users/audit-logs/roles API 全部改为参数化查询
- H-新6: callback last_insert_rowid 跨进程问题修复
- H-新7: callback getUserinfo 添加 try-catch 错误处理
- M-新2: 密码长度服务端验证(8-128位)
- M-新3: 登出 cookie secure 改为动态判断
2026-07-03 13:50:36 +08:00
aiyimickey adbe1a877f fix: SQL 参数化查询 + bcrypt cost 12 + 密码长度改为 8 位
- admin users API 改用 dbQueryParams 参数化查询
- dbExec 支持可选 params 参数
- bcrypt cost factor 10 → 12
- 密码最小长度 6 → 8
2026-07-03 13:34:14 +08:00
aiyimickey 2afb98ff1d fix: LDAP 登录 cookie secure 属性 + role 白名单校验 2026-07-03 13:32:00 +08:00
aiyimickey 8625850781 fix: 审查问题修复
- C1: checkPermission 使用 verifyJwt 验证 JWT 签名(不再仅 base64 解码)
- C2: 登录 cookie secure 改为 process.env.NODE_ENV === 'production'
- M1: switch=1 时清除旧 tlyq_session 和 session cookie
- H1: 用户管理 API role 字段白名单校验
2026-07-03 13:24:01 +08:00
aiyimickey 5cc5e658ff fix: 端口映射修复 + 用户密码修改功能 + OIDC切换账号 + 生产配置模板
- docker-compose.yml: 端口映射 6181:6181 → 6181:3000
- 用户管理页面新增密码修改功能(弹窗编辑)
- OIDC 路由支持 ?switch=1 参数(prompt=login)
- 新增 config/.env.prod 生产环境配置模板
2026-07-03 12:12:16 +08:00
aiyimickey 1bfc2577c2 fix: 添加 docker-cli 依赖,修复 TLS 环境变量,支持容器健康检查 2026-07-02 11:34:18 +08:00
aiyimickey c876a69443 fix: localadmin displayName 从数据库读取;Sidebar 权限驱动导航(userRole prop) 2026-07-02 11:25:44 +08:00
aiyimickey b5b59f1c3b feat: 服务表单默认检查 + 至少保留一条 + CHANGELOG 更新 2026-07-02 10:09:19 +08:00
aiyimickey ba7f181501 style: 设计规范新增 cursor-pointer 规则 + 代码同步
- docs: tlyq-design-system.md 新增「光标系统」章节
- dashboard: 服务卡片添加 cursor-pointer
- settings: checkbox label 添加 cursor-pointer
- roles: 权限 checkbox label 添加 cursor-pointer
2026-07-02 09:41:56 +08:00
aiyimickey 0d83bcc19f fix: TypeScript 类型转换修复 2026-07-02 09:34:36 +08:00
aiyimickey 57174fd26a feat: 完善服务 CRUD 表单(添加/编辑/删除服务) 2026-07-02 09:32:07 +08:00
aiyimickey 51cfcab11e feat: #22 容器操作管理(重启/停止/查看日志)
- container-ops.ts: 通过 SSH 执行 Docker 命令
- /api/services/[id]/ops: 容器操作 API
- services/page.tsx: 操作按钮 + 日志查看
2026-07-02 09:21:48 +08:00
aiyimickey 2a14d3f4a2 fix: 添加 last_login_at 列到 users 表 2026-07-02 09:18:53 +08:00
aiyimickey 92228a3fdb docs: 更新 todolist + LESSONS-LEARNED #34-38 2026-07-01 23:51:09 +08:00
aiyimickey 25365b1626 feat: 补齐 admin 页面(用户管理/角色权限/审计日志)+ API 路由 2026-07-01 23:40:56 +08:00
aiyimickey de0116ddc8 feat: 仪表盘路径改为 /dashboard + Forbidden 权限修复 2026-07-01 23:05:27 +08:00
aiyimickey 5cd300bee8 fix: callback 所有重定向使用 baseUrl(LESSONS-LEARNED #16) 2026-07-01 22:33:34 +08:00
aiyimickey e6712a1e99 fix: callback 使用 OIDC_REDIRECT_URI 构造公共 URL(LESSONS-LEARNED #16) 2026-07-01 22:23:20 +08:00
aiyimickey 5af5ff7c0f fix: callback 使用 X-Forwarded-Host 构造公共 URL 2026-07-01 22:15:43 +08:00
aiyimickey 4e00279109 fix: runner 阶段安装 bcryptjs(standalone 未打包) 2026-07-01 22:00:19 +08:00
aiyimickey 09efbbda31 fix: Dockerfile 确保 bcryptjs 安装 2026-07-01 21:45:53 +08:00
aiyimickey e289aadd47 fix: Dockerfile 安装 sqlite3(API 和 Worker 依赖) 2026-07-01 21:27:20 +08:00
aiyimickey 88656b6076 fix: entrypoint worker 失败不阻塞启动 2026-07-01 19:57:38 +08:00
aiyimickey 496ce7b1a2 fix: Dockerfile 直接复制 tsconfig.json 到 runner 镜像 2026-07-01 19:43:57 +08:00
aiyimickey e5737352d5 fix: Dockerfile 全局安装 tsconfig-paths 2026-07-01 19:36:17 +08:00
aiyimickey 54b4639af2 fix: entrypoint 容忍 worker 失败,Next.js 独立运行 2026-07-01 19:32:14 +08:00
aiyimickey e47f2c18c0 fix: Dockerfile 复制 tsconfig.json 到 runner 镜像 2026-07-01 19:28:41 +08:00
aiyimickey da6077996d fix: 添加 tsconfig-paths 解析 @shared 路径别名 2026-07-01 19:20:04 +08:00
aiyimickey 13e5bfdbbf fix: Dockerfile 复制 src/lib + 部署脚本移除冗余 build 2026-07-01 19:16:22 +08:00
aiyimickey befefb91ac fix: channelType 联合类型修复 2026-07-01 19:11:38 +08:00
aiyimickey d5956b6cfd fix: monitor-worker TypeScript 类型转换修复 2026-07-01 19:07:58 +08:00
aiyimickey 3504837405 fix: 设计系统 CSS 内联到项目目录(修复 Docker 构建) 2026-07-01 19:04:20 +08:00
aiyimickey 2682232d85 fix: Dockerfile 构建上下文修复 + 部署脚本 SSH 别名 2026-07-01 18:55:09 +08:00
aiyimickey e63601b737 docs: 添加 README.md 2026-07-01 18:47:12 +08:00
aiyimickey 89acbe3bf6 feat: monitor-ai 告警监控中心完整实现
Phase 1: 共享库(auth/audit/wechat/alert)
Phase 2: 项目骨架(Next.js 15 + Tailwind v4 + 设计系统)
Phase 3: 认证系统(OIDC SSO + LDAP + localadmin + RBAC)
Phase 4: 服务管理 + MonitorWorker 后台引擎
Phase 5: 告警渠道 + WeChatPusher + AlertManager
Phase 6: 仪表盘 + 状态历史 + 告警历史
Phase 7: 部署脚本 + 文档
Phase 8: TopBar 布局对齐 + 暗色模式修复

独立审查通过(2 轮零 CRITICAL/HIGH 问题)
2026-07-01 18:41:46 +08:00