9 Commits

Author SHA1 Message Date
xiangning
2f32b74687 feat(config): Consul ACL token 支持 + 8520 端口
- Program.cs 加 Consul:Token 配置(ACL 开启后 api 必须带 token)
- 默认端口改 8520(非标准,配合安全组+ACL 三重防护)
- token 通过环境变量注入(compose Consul__Token),不进代码
2026-07-17 17:34:13 +08:00
xiangning
f43e35a4b1 feat(config): 接入 Consul KV 配置中心 + IOptionsMonitor 热重载
配置中心:
- BuildFlow.Host.csproj 加 Winton.Extensions.Configuration.Consul 3.0.1
- Program.cs 注册 AddConsul(Optional=true 容错,ReloadOnChange=true 热重载)
- 配置优先级:appsettings.json → Secrets → Consul KV(最高,生产真相源)

热重载(IOptions<T> → IOptionsMonitor<T>):
- KkFileView/AiOptions/NotificationService:.Value → .CurrentValue,完全热重载
- 4 个 HostedService:业务参数热重载,timer 间隔启动时定一次(方案 A)
- S3StorageService:IOptionsMonitor + OnChange 回调重建 AmazonS3Client(volatile + lock)
- 测试全过(Rag 40 + Workflow Notification 21)

compose 加 Consul__Host 环境变量(api 容器注入 Consul 地址)

后续:Consul 部署在 middleware,KV 全量灌入 buildflow/* 前缀
2026-07-17 17:17:24 +08:00
xiangning
368dc0abf0 security: 敏感配置迁移至 appsettings.Secrets.json
- appsettings.json 敏感项(连接串/密钥/API Key)改为占位符
- 新增 appsettings.Secrets.json(本地,gitignore)+ .example.json(模板)
- Program.cs 与 3 个 design-time factory 加载 Secrets.json 覆盖
- 历史中的明文凭据已用 git filter-repo 清理(REDACTED)
2026-07-09 12:52:01 +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
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
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
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
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
d738166261 feat: BuildFlow 后端初始化(.NET 10 模块化单体) 2026-07-02 10:54:23 +08:00