Skip to content

♻️ 重构管理后台冗余逻辑与优化数据持久化模式 - #5

Merged
UE-DND merged 12 commits into
masterfrom
feat/manage-refine-antd
Jul 14, 2026
Merged

♻️ 重构管理后台冗余逻辑与优化数据持久化模式#5
UE-DND merged 12 commits into
masterfrom
feat/manage-refine-antd

Conversation

@UE-DND

@UE-DND UE-DND commented Jul 14, 2026

Copy link
Copy Markdown
Member

PR 标题

♻️ 重构管理后台冗余逻辑与优化数据持久化模式

关联 Issue

Closes # (如果适用)

简要概述 (Summary)

本项目对 CQUT-Auth 系统的多个模块进行了彻底的去冗余(DRY)重构与架构调整,核心关注点为基础工具库精简身份认证流程解耦数据持久化事务模板消减,以及管理台管理员开通体验提升

全部修改已被拆分为 6 个清晰的、职责独立的 Git Commits。


变更类型 (Type of Change)

  • 重构 (Refactor)
  • 新功能 (Feature)
  • 测试 (Test)

详细变更清单 (Detailed Changes)

1. 基础编解码与公共工具库 (src/utils.ts, src/crypto.ts)

  • Node 原生替代:将手动实现且存在多处冗余的 Base64Url 编解码替换为 Node.js 原生的 Buffer.toString("base64url"),提高处理效率及可维护性。
  • 配置与序列化解析器:提取公用解析器 parseCommaKeyValuePairs,整合 scrypt 加密参数以及统一校验解析逻辑。

2. 身份认证与 Provider 模块 (src/identity/)

  • 物理冗余消除:完全删除多余的 src/identity/utils.ts 文件,全部引用收拢至主 src/utils.ts
  • Subject 业务合并:在 subject-profile.service.ts 中抽取私有 updateProfile 统一整合 setEmailsetVerifiedEmail 的流程。
  • CQUT CAS 重试与延时:引入原生 node:timers/promisessetTimeout 异步等待,替代自定义 Promise 延时器。

3. 持久化存储层 (src/persistence/)

  • 清理 SQL 复用:在 contracts.ts 中抽离出 buildArtifactCleanupSql 动态 SQL 生成器,消除 artifact-cleanup.scheduler.tsoidc-artifact.repository.ts 中重复的 CTE 删除语句。
  • 核心事务模版精简:在 oidc-client.repository.ts 实现通用的 transaction(pool, fn) 回调包装器,隔离 BEGIN / COMMIT / ROLLBACK 模版代码,使写入操作更健壮。

4. 易用性与管理员配置优化 (web/src/components/layout/)

  • Subject ID 显示与复制:在管理后台页头直接显示登录用户的 Subject ID 并接入一键复制,彻底解决之前用户配置 OIDC_ADMIN_SUBJECT_IDS 时难以查阅自身 ID 的痛点。

验证与测试 (Verification & Testing)

  1. 构建验证
    • 运行 pnpm buildpnpm lint 全程无类型或格式问题。
  2. 测试结果
    • 执行 pnpm test,所有 151 个服务端单元测试 以及 3 个 Refine 前端测试 全部高分通过(无任何失败用例)。

@UE-DND
UE-DND merged commit 9bffdca into master Jul 14, 2026
5 checks passed
@UE-DND
UE-DND deleted the feat/manage-refine-antd branch July 14, 2026 09:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant