2025 年 11 月

  • 访问控制更严:主页需登录才能访问,系统测试改为先登录用户,并在公网 IP 时阻断用户名密码登录并提示。
  • 内网识别强化:引入 IPAddr 判断,扩充/调整内网网段(含 10.3.x/16、172.16/17/26/30/31 等及武汉范围),提升内外网判定准确度。
  • 依赖升级:Rails 升级到 7.1.6;mail 升级到 2.9.0,移除自定义 STARTTLS 补丁,降低维护成本。
  • 开发者文档新增:补充 CLAUDE.md 与 GEMINI.md,集中说明项目概览、栈、运行与开发规范,便于协作与上手。

2025 年 09 月

  • 完成企业微信 OAuth 登录体系:新增企业微信入口按钮、限制公网用户仅能走企微登录、补齐回调流程中 JWT 下发与登录历史记录,并修复 DoubleRenderError。
  • 强化安全合规:启用并细化 CSP(含指定 iframe 白名单)、移除旧 X-Frame-Options、补充 OmniAuth CSRF 防护与公众网拦截提示,Nginx 与系统信息页增补全部请求头用于排障。
  • 优化账号与目录同步:登录时持久化 Windows SID、改进 pre_sso_id 回填、批量预建并同步 YxtPosition、针对历史账号做特例映射,确保下游系统数据一致性。
  • 提升运维可观测性:引入 rorvswild 应用性能监控,新增管理员 System Info 面板(含请求头总览),并将部署 Ruby 版本迭代到 3.3.7/3.3.8。
  • 严控依赖与运行环境:多轮 gem/yarn 升级及版本锁定(nokogiri、css-tree、cookie、mime-db、ws、ffi、selenium 等),必要时回退以保持 CI 与生产兼容。
  • 打造开发者体验:新增 AGENTS.md 与 Cursor 规则库、扩充忽略列表,引入 Ruby LSP 适配 VS Code/Cursor,并调整 CI/Bundler配置保障一致的本地与流水线环境。

2024 年 10 月

  • 在 Open ID Connection 规范的 profile 请求中添加 first_name 和 last_name,信息内容为用户名和中文名,以支持 Open Project 新版本的单点登录
  • 和绩效管理类似,添加 high five 新应用的用户数据自动上传
  • Rails 版本升级到 7.1.5,同时锁定 rack 版本,发现 rack 的 3.0 版本会改变 Authorization header 头的大小写,导致 client 登录失败,所以必须保留 2 的行为
  • 天华定制版本也升级到了 7.1,因为 Oracle DB Adapter 终于发布的新的支持 Rails 7.1 的版本
  • 正式去除 IE 11 的支持
  • Ruby 版本升级到 3.3.5
  • @babel/core 版本升级到 7.26.0

2024 年 04 月

  • 锁定 Ruby 3.2.3 版本,尝试升级到 3.2.4 版本,发现 JWT 登陆接口无法登陆,尚未仔细检查
  • 升级到 Rails 7.1.3.2
  • 锁定 sqlite3 1.7,新的 2.0 版本 Rails 尚未支持
  • 手动升级 inherits 和 merge-descriptors JS 模块版本

2024 年 01 月

  • 添加分组管理功能,现在允许根据用户的部门和岗位允许可以访问的 App
  • 更新了用户管理界面,现在和部门、岗位管理界面一样,都支持模态对话框修改了
  • 添加新的 ALLOW_ADMIN_GRANT_ADMIN,当为 true 允许在 UI 中提升用户为管理员
  • 添加的授权 app 访问的核心逻辑测试
  • oauth2id_issuer 现在是一个配置项了
  • 添加了关于 UI 设计文档的访问方法
  • Cookie 目前改为严格访问模式了
  • 开源版本升级到 Rails 7.1.3
  • 升级到 Ruby 2.2.3

2023 年 11 月

  • 添加 Dockerfile 打包支持
    • 分阶段构建减小体积
    • 使用 github actions 自动打包
    • 修正 rootless 打包中的权限问题
    • 提供 x86 和 arm 两种指令集的镜像
  • 支持自动将第一个用户变成 admin,方便 docker 用户使用
  • 升级 Circle CI 集成测试到最新版本
  • 升级前端编译到 babel 7.23.5,同时支持 IE 11
  • 测试系统升级到 Rails 7.1.2
  • 云学堂和 gitlab 的同步 token 刷新