提交图
18 次代码提交
作者 SHA1 备注 提交日期
wangsli 3cc3013d5a feat(server): OIDC 登录支持(F23)
- 引入 openid-client,新增 /api/auth/oidc/login + /api/auth/oidc/callback
- 通过 email 绑定既有员工账号,保留密码登录 fallback
- OIDC 状态存 cookie(HMAC) + PKCE + SameSite=lax 防 CSRF
- 更新 env/README 与 v3 CSV 状态推进
2026-02-09 21:01:36 +08:00
wangsli 1855a82011 feat(server): 敏感字段加密与脱敏(F25)
- 新增敏感字段加密服务(AES-256-GCM,FIELD_ENCRYPTION_KEY)
- users 详情返回银行卡/身份证脱敏字段;新增 /users/:id/sensitive 特权明文接口并写审计
- 权限新增 system.users_sensitive(hr/admin)
- 更新 env/README 与 v3 CSV 状态推进
2026-02-09 20:51:34 +08:00
wangsli c791e67b20 feat(server): MinIO/S3 对象存储兼容(F21)
- 新增 storage 抽象:local 与 s3: 前缀兼容(不改 schema)
- invoice-pool 上传/预览/ocr 读取适配 S3/MinIO
- trialrun compose 增加 minio profile + env 示例与 runbook 指引
- 更新 README 与 v3 CSV 状态推进
2026-02-09 20:42:53 +08:00
wangsli 6ecebf8ad6 feat(server): /metrics 可观测与日志上下文(F22)
- 新增 Prometheus 指标端点 /metrics(HTTP + DB + 作业统计)
- request.log 绑定 requestId/actorId,避免日志难追踪
- cron/pg-boss 作业增加 metrics 计数(runs/processed)
- 更新 env/runbook/README 与 v3 CSV 状态推进
2026-02-09 20:30:41 +08:00
wangsli 55924c8ff8 feat: Worker 进程拆分(F20)
- 新增 worker 进程入口(npm run worker)只跑作业不监听端口
- trialrun compose 增加 worker profile(server 可 JOBS_ENABLED=false)
- 更新 runbook/.env.example/README 说明与 v3 CSV 状态推进
2026-02-09 20:22:33 +08:00
wangsli dff1aabc26 feat(server): 完成 F19~F19d pg-boss 作业系统迁移\n\n- 引入 pg-boss(JOB_DRIVER=pgboss)并保留 cron 回滚\n- OCR/委派回收/超期归档改由 pg-boss schedule + work 执行\n- OCR_PROVIDER=off 自动 unschedule ocr.tick\n- 更新 trialrun env/compose/runbook 与 README,并推进 CSV 状态为 DONE 2026-02-09 20:05:01 +08:00
wangsli f233a0d5bc feat: 完成 F17 报表导出(CSV/XLSX)\n\n- 后端新增 /api/exports/* 导出接口(含权限与审计记录)\n- CSV 采用流式生成,XLSX 使用 exceljs\n- 前端在报销/票据/审计页加入导出入口(下载 Blob)\n- 更新 P5 蓝图 v3 中 F17 状态为 DONE 2026-02-09 19:35:51 +08:00
wangsli 2c58061ec7 feat: 完成 F18 审批规则维护(API+前端)\n\n- 新增 /api/approval-rules 管理接口(system.settings)并写审计\n- 前端新增审批规则页与菜单入口(system.settings)\n- 更新 P5 蓝图 v3 中 F18 状态为 DONE 2026-02-09 19:20:53 +08:00
wangsli 38b66b01a6 feat(server): 完成 F15 邮件通知(SMTP/Nodemailer)\n\n- 新增 email 服务(EMAIL_ENABLED + SMTP_* 配置)\n- 待办/审批/付款/密码重置触发可选邮件,失败降级不阻塞\n- 更新 server/README 邮件配置说明,并推进 CSV 状态为 DONE 2026-02-09 19:07:32 +08:00
wangsli c9ac18e2e2 feat(client): 完成 F34 票据中心增强\n\n- 补齐人工修正/手工归档/解绑/重试 OCR/判重例外等入口\n- 补充 data-testid 并与后端错误码映射保持一致\n- 更新 P5 蓝图 v3 中 F34 状态为 DONE 2026-02-09 18:55:46 +08:00
wangsli 00f23678ea chore(issues): 更新P5蓝图v3状态(F33)
- F33 标记 DONE(行政代提交/代上传入口验证通过)
2026-02-09 18:32:50 +08:00
wangsli 504ff02dd5 chore(issues): 更新P5蓝图v3状态(F32)
- F32 标记 DONE(部门管理与员工创建增强验证通过)
2026-02-09 18:24:25 +08:00
wangsli 1a5d3b1d52 chore(issues): 更新P5蓝图v3状态(F35,F38)
- F35/F38 标记 DONE(错误文案与改密守卫联动验证通过)
2026-02-09 18:16:32 +08:00
wangsli 7d50a85412 chore(issues): 更新P5蓝图v3状态(F16)
- F16 标记 DONE(通知中心与未读角标联动验证通过)
2026-02-09 18:01:39 +08:00
wangsli 589a248cc3 chore(issues): 更新P5蓝图v3状态(F6)
- F6 标记 DONE(报销明细编辑器联动验证通过)
2026-02-09 17:55:24 +08:00
wangsli 2bb804bc94 chore(issues): 更新P5蓝图v3状态快照(F14,F30,F42)
- F14/F30 标记 DONE(通知基础设施与触发)
- 追加 F42 架构文档修订条目并标记 DONE
2026-02-09 17:45:52 +08:00
wangsli 8bd068f2a3 feat(server): 票据增强闭环(F9/F10/F11/F12/F13/F28)
- /invoice-pool 新增 unbind、PATCH 修正、manual archive、OCR retry、判重例外 override(含 VALID_004/006/007)

- signed-url 签发/下载写入审计日志(脱敏 extra)

- 新增未绑定票据自动归档作业 + 一次性执行脚本

- 回归脚本增强:workflow-actions/dedup/audit/ocr 覆盖上述场景;v3 CSV 状态推进至 DONE
2026-02-09 17:09:34 +08:00
wangsli 3ae9e08692 chore(issues): 新增 P5 蓝图执行合同快照 v1-v3(F1)
- v3 修正通知依赖:F30 依赖 F14(不再被邮件阻塞)

- 提升关键项 Test_Method 为可复现 curl 步骤

- 新增回归脚本条目:F40/F41
2026-02-09 16:20:40 +08:00