80 Commits

Author SHA1 Message Date
xiangning
bdd1ad39bb fix: PlatformInfrastructureModule 补 UseSnakeCaseNamingConvention
根因:PlatformDbContext 注册时缺少 UseSnakeCaseNamingConvention,
导致 EF 查询用 PascalCase 列名("Id")但实际表是 snake_case("id"),
报 column u.Id does not exist。
2026-07-03 11:47:37 +08:00
xiangning
47c45bd15f refactor(im): 将 MongoDB 访问方式从原生驱动改为 MongoDB.Entities
- 移除 MongoDbContext 和 IMongoClient 依赖注入配置
- 引入 MongoDB.Entities 库替代原生 MongoDB 驱动
- 使用 DB.Default 静态方法进行数据库操作
- 更新消息文档模型继承 Entity 基类
- 修改索引创建方式为 MongoDB.Entities 格式
- 调整消息历史查询和撤回功能适配新 API
- 更新消息发送和 AI 消息处理的数据访问逻辑
2026-07-03 11:46:43 +08:00
xiangning
69593b2b5f fix: 统一 DesignTimeFactory + 补全 migration + MongoDB 版本对齐
- 5 个 DesignTimeFactory 统一硬编码连接串(不依赖旧 Api 路径)
- file/im Infrastructure 补 EFCore.NamingConventions 包
- IM.Tests MongoDB.Driver 3.4.0 → 3.8.1(与 Infrastructure 一致)
- workflow 删空 Migrations 目录(实际在 Persistence/Migrations/)
- platform/workflow 建表 SQL 已在服务器执行
- build 0/0
2026-07-03 11:18:55 +08:00
xiangning
f8677deeee refactor(workflow): 简化设计时数据库上下文工厂配置
- 移除对 Microsoft.Extensions.Configuration 的依赖
- 删除复杂的 appsettings.json 配置文件查找逻辑
- 将连接字符串改为硬编码方式
- 更新数据库端口为 15432 并修改密码为 dev
- 精简注释说明

feat(im): 添加 MongoDB Entities 包支持

- 引入 MongoDB.Entities 25.1.0 版本依赖
- 升级 MongoDB.Driver 从 3.4.
2026-07-03 11:14:23 +08:00
xiangning
d1d9eb4680 fix(config): 修正 MongoDB 连接账号/密码/authSource
原配置 mongodb://rag:CHANGE_ME@.../im_system?authSource=admin 三处错误:
- 账号 rag 不存在(实为 appuser)
- 密码 CHANGE_ME 是占位符(实为 Wk7mHd3xNp6fQr2tYc8vBs4j)
- authSource=admin(appuser 定义在 app 库,应为 authSource=app)

修正后连接串:
  mongodb://appuser:Wk7mHd3xNp6fQr2tYc8vBs4j@43.134.235.58:17017/im_system?authSource=app

配套权限调整(已远程执行):
  给 appuser 授予 im_system 库 readWrite 角色(原仅有 app 库权限)
  db.grantRolesToUser('appuser', [{role:'readWrite', db:'im_system'}])

验证:appuser 读写 im_system 库正常,IM 两个复合索引
  ({ConversationId,CreatedAt}) / ({ConversationId,_id}) 可正常创建。

注:端口 17017 在前序提交已从 27017 修正。
2026-07-03 10:57:49 +08:00
xiangning
204c4698ff fix(config): 修正 MongoDB 连接端口 27017→17017
原 appsettings.json 中 MongoDb 端口配为 27017,实际服务监听在 17017,
导致启动期 IM MongoDB 建索引始终失败(30s 超时)。
- 27017 不可达(Connection refused)
- 17017 可达

修正后 IM MongoDB 建索引可正常执行。
2026-07-03 10:46:55 +08:00
xiangning
8e9fcb1b10 feat(platform): 添加头像URL解析服务支持预签名头像访问
- 注册IAvatarUrlResolver服务实现头像objectKey到预签名URL的实时转换
- 在GetCurrentUserQueryHandler中集成头像URL解析功能
- 在UpdateProfileCommandHandler中添加头像URL转换逻辑
- 创建IAvatarUrlResolver接口定义头像引用解析契约
- 实现InProcessAvatarUrlResolver通过MediatR委托file模块生成预签名URL
- 修复Swagger UI单文档场景下的自动加载问题
2026-07-03 10:17:09 +08:00
xiangning
ade4beacdb fix(middleware): 解决Swagger文档无法正常显示的问题
- 添加 /swagger 路径到 ApiResponseMiddleware 的 PassthroughPrefixes 列表
- 确保 Swagger/OpenAPI 文档保持原始结构不被包裹成统一响应格式
- 避免 Swagger UI 无法识别 openapi 字段导致的文档加载失败
2026-07-03 09:42:38 +08:00
xiangning
bdde5b9b8a refactor(file): 重构文件删除逻辑确保S3与数据库同步清理
- 删除文件时先删S3对象再删FileMeta记录,防止出现孤儿文件或残留对象
- 在DeleteFileCommandHandler中注入FileDbContext以支持数据库操作
- 更新文件删除逻辑:精确匹配bucket+key删除对应的FileMeta记录
- 添加DatabaseInitializer类统一处理启动期数据库初始化流程
- 将原有的数据库迁移、种子数据等逻辑抽取到独立的初始化服务中
- 新增HostObjectAccessors类简化ABP与ASP.NET Core管线的双向访问配置
- 添加平台模块废弃权限清理功能,移除OrderManagement分组的残留权限
- 实现完整的单元测试覆盖文件删除的各种场景和边界情况
2026-07-03 09:42:05 +08:00
xiangning
d0650e200a feat(platform): 添加权限分组树查询功能
- 新增 GetPermissionTreeEndpoint 提供 /permission/tree 接口
- 实现 GetPermissionTreeQuery 查询权限分组树数据
- 创建 GetPermissionTreeQueryHandler 处理器进行数据聚合
- 添加 PermissionGroupNodeDto 数据传输对象定义
- 按 Group 字段聚合权限数据,空值归入"未分组"
- 需要 permission:read 权限访问此功能
2026-07-03 09:28:42 +08:00
xiangning
105c7e3348 fix: rag-coding-api 规范合规修复
- 48 个 Handler 的 CancellationToken cancellationToken → ct
- 拆分 4 个一文件多类型:
  - BaseEntity.cs 拆出 BaseEntityT.cs
  - IWorkflowTriggerService.cs 拆出 WorkflowTriggerResult.cs + WorkflowDefinitionSummary.cs
  - SeedData.cs 拆出 SeedPermission.cs + SeedUser.cs
- 补全 36 处缺 /// summary 注释(file Endpoints + 各模块 Module 类)
- build 0/0
2026-07-03 09:21:08 +08:00
xiangning
0c654da0d7 feat: platform 模块添加 InitialCreate migration
- 生成 PlatformDbContext 的唯一 InitialCreate migration
- 含 users/roles/permissions/user_roles/role_permissions/refresh_tokens/menus/notifications 全部建表
- build 0/0
2026-07-03 08:51:11 +08:00
xiangning
ff895628e5 refactor: 拆分 platform 模块(Auth/Users/Roles/Permissions/Menus/Notifications 从 rag 独立)
- 新建 modules/platform 三层模块(Domain/Application/Infrastructure)
- 搬入 8 个实体(User/Role/Permission/UserRole/RolePermission/RefreshToken/Menu/Notification)
- 新建 PlatformDbContext(连 platform 库)+ 8 个 EF 配置 + SeedData
- 搬入 92 个 Application CQRS 文件 + 57 个 Host Endpoints
- RagDbContext 瘦身:只留 RAG 专属表(KnowledgeBase/Document/ChatMessage/Conversation)
- Handler 注入改为 PlatformDbContext
- appsettings 新增 DatabaseNames:Platform
- BuildFlowHostModule 注册 PlatformDbContext + DependsOn PlatformApplicationModule
- Conversation 实体去掉 User 导航(跨模块不直接引用实体)
- rag SeedData 清空(平台种子归 platform)
- 暂移除测 platform 功能的 Rag.Tests(后续建 platform 测试项目)
- build 0/0
2026-07-02 18:22:17 +08:00
xiangning
386280a4c4 chore: 完善 .gitignore + 清理 IDE/构建产物
- .gitignore 补充 .idea/.vscode/.vs/ 等 IDE 目录
- 从 git 移除已误提交的 .idea/ 目录
- 移除 bin/obj 缓存
2026-07-02 17:58:52 +08:00
xiangning
52383d83f3 style: 目录统一 PascalCase 驼峰
- build-flow.host → BuildFlow.Host(子目录也驼峰:Configuration/Endpoints/Hubs/Services)
- build-flow.shared → BuildFlow.Shared
- build-flow.slnx → BuildFlow.slnx
- 同步所有 slnx/ProjectReference/run-dev.sh/架构测试 路径
- 删 macOS 大小写残留重复目录(旧 BuildFlow.Host/BuildFlow.Shared 空壳)
- build 0/0
2026-07-02 17:52:39 +08:00
xiangning
21b344d954 style: BuildFlow.slnx → build-flow.slnx(文件名小写)
- 解决方案文件名改为小写
- 架构测试 FindRepoRoot 同步改文件名查找
2026-07-02 17:47:31 +08:00
xiangning
86582da974 style: Host 子目录统一小写(Configuration/Endpoints/Hubs/Services) 2026-07-02 17:44:29 +08:00
xiangning
6f8ff793c5 refactor: 目录名统一小写(BuildFlow.Host→build-flow.host,BuildFlow.Shared→build-flow.shared)
- src/BuildFlow.Host → src/build-flow.host
- src/shared/BuildFlow.Shared → src/shared/build-flow.shared
- 同步改 slnx/ProjectReference/run-dev.sh 路径
- csproj 文件名 + AssemblyName/RootNamespace 保持 PascalCase(.NET 规范)
- build 0/0
2026-07-02 17:41:57 +08:00
xiangning
0bb76f2a96 refactor: 删除 SSO 模块(认证改为 Host 本地签名)
- 删 src/modules/sso/(106 文件)+ tests/BuildFlow.SSO.Tests/
- 删 src/modules/order/(空目录)
- slnx 去掉 sso/order 项目
- 架构测试去掉 SSO 相关(IsSsoPath 排除 + SsoApi 测试)
- appsettings Jwt 去掉 Authority(不再依赖 SSO JWKS,用本地 SigningKey)
- Host 认证用 AddSharedJwtAuthentication(本地 HS256 签名,自洽)
- build 0/0
2026-07-02 17:32:27 +08:00
xiangning
95b6f17a3d style(file): 移除代码文件中的多余空行
- 移除 AbortMultipartCommand.cs 中的空行
- 移除 AbortMultipartCommandValidator.cs 中的空行
- 移除 AbortMultipartEndpoint.cs 中的空行
- 移除 AbortMultipartRequest.cs 中的空行
- 移除 CheckFileQueryValidator.cs 中的空行
- 移除 CompletedPart.cs 中的空行
- 移除 CompleteMultipartCommand.cs 中的空行
- 移除 CompleteMultipartCommandValidator.cs 中的空行
- 移除 CompleteMultipartEndpoint.cs 中的空行
- 移除 CompleteMultipartRequest.cs 中的空行
- 移除 CompleteMultipartResult.cs 中的空行
- 移除 CreateBucketCommand.cs 中的空行
- 移除 CreateBucketCommandHandler.cs 中的空行
- 移除 CreateBucketCommandValidator.cs 中的空行
- 移除 CreateBucketEndpoint.cs 中的空行
- 移除 CreateBucketRequest.cs 中的空行
- 移除 CreateFolderCommand.cs 中的空行
- 移除 CreateFolderCommandHandler.cs 中的空行
- 移除 CreateFolderCommandValidator.cs 中的空行
- 移除 CreateFolderEndpoint.cs 中的空行
- 移除 CreateFolderRequest.cs 中的空行
- 移除 CreateShareCommand.cs 中的空行
- 移除 CreateShareCommandHandler.cs 中的空行
- 移除 CreateShareCommandValidator.cs 中的空行
- 移除 CreateShareEndpoint.cs 中的空行
- 移除 CreateShareRequest.cs 中的空行
- 移除 DeleteBucketCommand.cs 中的空行
- 移除 DeleteBucketCommandHandler.cs 中的空行
- 移除 DeleteBucketCommandValidator.cs 中的空行
- 移除 DeleteBucketEndpoint.cs 中的空行
- 移除 DeleteBucketRequest.cs 中的空行
- 移除 DeleteFileCommand.cs 中的空行
- 移除 DeleteFileCommandHandler.cs 中的空行
- 移除 DeleteFileCommandValidator.cs 中的空行
- 移除 DeleteFileEndpoint.cs 中的空行
- 移除 DeleteFileRequest.cs 中的空行
- 移除 DeleteFolderCommand.cs 中的空行
- 移除 DeleteFolderCommandHandler.cs 中的空行
- 移除 DeleteFolderEndpoint.cs 中的空行
- 移除 DeleteFolderRequest.cs 中的空行
- 移除 DeleteShareCommand.cs 中的空行
- 移除 DeleteShareCommandHandler.cs 中的空行
- 移除 DeleteShareCommandValidator.cs 中的空行
- 移除 DeleteShareEndpoint.cs 中的空行
- 移除 DeleteShareRequest.cs 中的空行
- 移除 DownloadFileEndpoint.cs 中的空行
- 移除 DownloadFileQuery.cs 中的空行
- 移除 DownloadFileQueryHandler.cs 中的空行
- 移除 DownloadFileQueryValidator.cs 中的空行
- 移除 DownloadFileRequest.cs 中的空行
2026-07-02 15:36:06 +08:00
xiangning
9d2bd7e1a5 style(auth): 格式化验证器代码样式
- 在 LoginCommandValidator 中添加空行以改善代码可读性
- 在 RegisterCommandValidator 中添加空行以改善代码可读性
- 统一验证器代码格式规范
2026-07-02 14:55:23 +08:00
xiangning
17b7e9996e chore(dependencies): 移除未使用的 using 语句
- 从多个文件中移除未使用的 System.Linq.Dynamic.Core 引用
- 从多个文件中移除未使用的 Microsoft.EntityFrameworkCore 引用
- 从 IM 模块中移除未使用的 MongoDB.Driver.Linq 引用
- 清理 Handler 文件中的冗余命名空间引用
- 优化代码结构减少不必要的依赖引入
- 提高代码整洁性和编译效率
2026-07-02 14:53:56 +08:00
xiangning
2c68934925 docs(shared): 添加共享模块代码注释文档
- 为 AggregateExceptionHandler 添加聚合异常后置处理器功能说明
- 为 ApiResponse 添加统一成功响应信封的约定说明
- 为 BuildFlowHostModule 添加主 Host 模块依赖关系说明
- 为 CurrentUserContextExtensions 添加当前用户上下文扩展方法说明
- 为 ErrorResponse 更新统一错误响应信封的字段约定说明
- 为 ICurrentUserContext 添加用户上下文抽象接口功能说明
- 为 TimestampDateTimeConverter 添加日期时间 JSON 转换器说明
- 为 TimestampDateTimeOffsetConverter 添加带时区日期时间转换器说明
- 为 ValidationErrorResponse 添加校验失败响应信封说明
2026-07-02 14:52:01 +08:00
xiangning
5ee446603c refactor: PG 连接串从 4 条压成 1 条 Default
- appsettings: ConnectionStrings 只保留 1 条 Default(无 Database)
- 新增 DatabaseNames 配置段:Rag/File/Im/Workflow 各自库名
- 各模块从 Default + DatabaseNames 组合连接串
- 改 Host/Port/User/Password 只改 Default 一处
- build 0/0
2026-07-02 14:43:25 +08:00
xiangning
6649272772 refactor: 连接串全部回归 Host appsettings 管理,模块零拼接
- Host appsettings 配各模块完整连接串(Default/File/Im/Workflow)
- 模块 Infrastructure 只 GetConnectionString 读自己的 key,不做任何拼接
- 删除 baseConn/Database=xxx 拼接逻辑
- build 0/0
2026-07-02 14:25:03 +08:00
xiangning
44927e651e refactor: 统一 PG 连接串为一个 Default
- appsettings 的 ConnectionStrings 从 4 条 PG 连接串(Rag/File/Im/Workflow)
  合并为 1 条 Default(不含 Database)
- 各模块 Infrastructure 从 Default 派生连接串(拼接各自 Database 名)
  改一处连接信息,所有模块生效
- build 0/0
2026-07-02 14:10:41 +08:00
xiangning
ab6c6829c6 ci: add Jenkinsfile (build+push Harbor) 2026-07-02 13:51:07 +08:00
xiangning
02035a1574 ci: add Dockerfile for .NET 10 multi-stage build 2026-07-02 13:51:06 +08:00
xiangning
3a245ff0df refactor: 清理 Host 冗余文件 + 归类散文件
- 删 Grpc/Protos 空目录(gRPC 已弃用,Host 用 InProcess)
- 删 Error.cs/ErrorResponse.cs(旧 FastEndpoints 错误格式,已统一用 Shared)
- 删 ValidationErrorResponse.cs(重复,实际用 Shared 版)
- 删 _SharedKernelAliases.cs(异常别名改为 GlobalUsings 直接 using)
- 删 tools/ 迁移脚本(不属项目)
- InProcessFileStorageClient/InProcessUserInfoService 归入 Services/
- GlobalUsings 补 BuildFlow.Shared.Domain.Exceptions
- Host 根目录只剩 5 个核心文件:Program/Module/GlobalUsings/AggregateExceptionHandler/appsettings
- build 0 警告 0 错误
2026-07-02 11:25:27 +08:00
xiangning
d738166261 feat: BuildFlow 后端初始化(.NET 10 模块化单体) 2026-07-02 10:54:23 +08:00