Skip to content

Releases: mudtools/MudFeishu

2.1.0

01 May 15:23

Choose a tag to compare

✨ Added

  • 日历管理: 新增飞书日历管理模块支持
    • 添加飞书日历 V4 接口定义
    • 添加日历创建相关数据模型和接口
    • 添加主日历查询接口及相关数据模型
    • 添加批量获取主日历信息功能
    • 添加获取日历信息的接口方法
    • 添加批量查询日历信息接口
    • 添加更新日历接口及数据模型
    • 增加查询日历列表接口及默认分页大小调整
    • 添加删除共享日历接口
    • 添加搜索日历接口
    • 添加日历订阅和取消订阅接口
  • 日历 ACL: 新增日历访问控制列表功能
    • 添加飞书日历 ACL 接口定义
    • 添加日历访问控制列表功能并重构相关类
    • 添加日历 ACL 创建和删除事件支持
  • 日历日程: 新增日历日程管理功能
    • 添加日历日程相关数据模型和接口
    • 添加获取日程接口及相关数据模型
    • 添加获取日程分页列表功能
    • 添加日历日程搜索功能及相关模型
    • 添加更新日程功能并重构响应模型
    • 添加租户和用户日历事件接口
    • 添加回复日程接口及请求模型
    • 添加取消订阅日程变更事件接口
    • 添加获取重复日程实例接口及响应模型
    • 添加获取日程实例视图相关数据模型和接口
  • 日程参与人: 新增日程参与人管理功能
    • 添加日程参与人相关功能接口及数据模型
    • 添加获取日程参与人列表接口
    • 添加获取日程参与群成员列表接口
  • 会议群: 新增会议群管理功能
    • 添加创建会议群接口及响应模型
    • 添加解绑会议群接口方法
    • 添加创建会议纪要和会议群响应模型及接口
  • 请假日程: 新增请假日程管理功能
    • 添加创建请假日程接口及模型
    • 添加删除请假日程接口
  • 会议室: 新增会议室相关功能
    • 添加会议室忙闲查询功能及相关数据模型
    • 添加会议室日程查询相关数据模型和接口
    • 添加会议室日程实例回复接口
    • 新增查询日历忙闲信息接口
    • 添加批量查询日历忙闲信息接口
  • Exchange 集成: 新增 Exchange 账户绑定功能
    • 添加 CalDAV 配置生成功能
    • 添加 Exchange 账户绑定到飞书账户功能
    • 添加删除 Exchange 绑定接口
  • 日历事件回调: 新增日历相关事件回调支持
    • 添加日历变更事件类型和处理类
    • 添加日程变更事件支持
    • 添加第三方会议室日程变动事件支持
    • 添加会议室状态变更事件支持
  • 多维表格: 添加飞书多维表格工作流接口定义

🔧 Changed

  • 日历模块重构: 重构日历模块文件结构,将数据模型按功能分类整理
  • Exchange 重构: 重命名 Exchange 绑定响应模型并添加查询接口
  • 云文档重构: 重命名评论接口以匹配驱动模块命名规范

📦 Build & Config

  • 更新所有 demo 项目中的 Mud.Feishu 相关包至 2.1.0 版本
  • 更新项目版本号至 2.1.0

📝 Docs

  • 新增多维表格、电子表格和画板模块文档
  • 添加飞书云文档相关接口文档
  • 更新多个 README 文档,完善功能说明和配置示例

2.0.9

24 Apr 03:46

Choose a tag to compare

✨ Added

  • 云文档权限管理: 新增飞书云文档权限管理功能
    • 添加云文档协作者权限相关模型和接口
    • 添加批量增加协作者权限接口
    • 添加删除云文档协作者权限接口
    • 添加云文档所有者转移功能
    • 添加判断用户云文档权限接口
    • 添加获取云文档权限设置接口
  • 云文档密码: 新增云文档密码功能支持
    • 添加云文档密码设置功能
    • 添加云文档密码刷新和停用接口
  • 云文档订阅: 新增云文档文件订阅功能
    • 添加文件订阅功能相关接口和模型
    • 添加更新文件订阅状态的接口
    • 更新用户订阅接口
  • 云文档评论: 新增飞书云文档评论功能
    • 添加飞书文档评论相关数据模型和接口
    • 支持批量获取评论
    • 添加解决/恢复评论接口
    • 添加文件评论表情回复支持
    • 添加全文评论接口及模型
    • 添加创建文件评论回复的接口
    • 添加更新和删除文件评论回复的接口
    • 添加评论表情回应接口
  • 画板 (Board): 新增飞书画板功能模块
    • 添加画板主题接口及相关数据模型
    • 添加画板缩略图下载和语法解析接口
    • 添加创建画板节点接口及响应模型
    • 添加画板 V1 租户和用户接口
  • 事件回调: 更新事件处理器以使用新的事件回调模块

🔧 Changed

  • 画板重构: 重构画板相关数据模型和接口,优化模型文件结构
  • 评论重构: 统一云文档评论响应模型类名以 Result 结尾,重构评论接口支持批量获取
  • 去重器重构: 重构缓存清理逻辑并添加异步清空方法

🐛 Fixed

  • 修复 RedisFeishuSeqIDDeduplicator 同步方法阻塞问题

📦 Build & Config

  • 更新多个演示项目的依赖包版本至 2.0.8
  • 更新项目版本号至 2.0.9

📝 Docs

  • 更新云文档评论接口文档,添加分页获取回复方法和租户/用户实现说明

2.0.8

18 Apr 08:25

Choose a tag to compare

✨ Added

  • EventCallback 项目: 新增独立的事件回调处理项目
    • 重构数据模型结构,将原有抽象层的数据模型迁移至 EventCallback 项目
    • 添加项目文档说明
  • 飞书 V2 事件头支持: 添加对飞书 v2.0 事件 Header 的强类型支持
    • 支持飞书 V2 事件头解析
    • 统一事件处理器默认 Header 类型
  • 云文档事件订阅: 新增飞书云文档事件订阅功能
    • 添加云文档事件订阅接口
    • 添加云文档事件订阅状态查询功能
    • 添加取消用户云文档事件订阅接口
    • 添加查询用户云文档事件订阅状态功能
  • 云文档事件回调: 新增云文档相关事件支持
    • 添加文件已读和文件编辑事件支持
    • 添加文件协作者权限申请和添加事件支持
    • 添加文档协作者移除事件支持
    • 添加文件删除和回收站事件支持
    • 添加文件评论新增事件支持
  • 多维表格自动化流程: 新增自动化流程相关功能
    • 添加自动化流程相关接口及数据模型
    • 添加更新自动化流程状态接口支持
    • 添加获取工作流列表接口
    • 添加多维表格字段和记录变更事件支持
  • 审批订阅: 添加飞书 V4 审批订阅接口
  • 多应用隔离: 实现多应用隔离的事件处理机制
  • 配置验证: 添加配置选项验证器并集成到 DI 容器
  • WebSocket 增强:
    • 添加配置验证器并优化消息处理性能
    • 添加心跳超时事件并优化连接管理
    • 重构 WebSocket 客户端并添加心跳管理和消息队列功能
  • 中间件: 添加请求耗时日志记录并优化签名验证配置

🔧 Changed

  • 命名空间重构: 重构命名空间结构并更新发布脚本
    • 重命名事件处理命名空间并迁移事件类型常量
    • 更新 HandlerNamespace 路径
  • 事件处理器重构:
    • 更新事件处理类并迁移 EventData 文件
    • 更新事件结果类的 HeaderType 配置
    • 更新事件处理类并修正文档链接
    • 移除冗余构造函数
  • Webhook 重构:
    • 重构签名验证逻辑并扩展应用配置选项
    • 重构多应用键上下文传播机制
    • 移除 ISetAppKeyAware 接口及相关实现
  • 配置验证重构: 重构配置验证逻辑并移除数据注解
  • Drive 重构: 重构云文档订阅相关模型文件路径
  • 代码清理: 清理冗余代码,移除未使用的命名空间引用

🐛 Fixed

  • 修复并发测试中的变量捕获问题并简化 .gitignore

🧪 Tests

  • 添加 FeishuWebhook 配置验证的集成测试和单元测试
  • 调整重试延迟测试范围以适应 CI 环境

📦 Build & Config

  • 更新依赖包版本至 1.7.0 并调整项目引用结构
  • 更新 Mud.HttpUtils 依赖至 1.6.6 版本
  • 删除 appsettings.example.json 配置文件

📝 Docs

  • 添加类和方法注释以提升代码可读性
  • 更新接口文档链接

2.0.7

07 Apr 07:42

Choose a tag to compare

✨ Added

  • WebSocket 增强: 全面增强 WebSocket 连接管理和错误处理
    • 新增消息处理状态跟踪功能
    • 添加重连状态重置功能
    • 实现重连协调器,优化重连逻辑和心跳间隔
    • 增强连接管理,支持更完善的错误处理机制
  • Webhook 增强: 新增异步验证方法和 IP 白名单支持
    • 添加异步验证方法以提升性能
    • 支持 IP 白名单配置,增强安全性
  • 分布式去重服务重构: 重构分布式去重服务,支持状态机和事件处理生命周期
    • 实现状态机模式,支持 Processing → Completed 状态转换
    • 添加事件处理超时和回滚机制
    • 支持处理状态跟踪和异常恢复
  • 指标收集优化: 使用并发集合优化指标收集性能
    • 采用 ConcurrentDictionary 替代传统锁机制
    • 提升高并发场景下的性能表现
  • 工具类扩展: 添加 HttpClient 扩展方法用于 JSON 序列化配置
    • 新增 ConfigureJsonSerializerOptions 扩展方法
    • 简化 JSON 序列化配置流程

🔧 Changed

  • Token 管理重构: 将令牌格式化逻辑提取到 TokenUtils 工具类
    • 统一 FormatBearerTokenRemoveBearerPrefix 方法
    • 消除代码重复,提升代码可维护性
  • 签名验证优化: 移除废弃方法并优化签名验证逻辑
    • 清理过时的验证方法
    • 简化验证流程,提升性能
  • WebSocket 重构: 重构 WebSocket 相关类的命名空间
    • 统一命名空间结构
    • 优化代码组织
  • 测试重构: 重构订阅验证测试以使用加密密钥提供者
    • 更新测试用例以适配新的验证器架构
    • 提升测试覆盖率和代码质量

🐛 Fixed

  • 修复大量空引用警告,提升代码健壮性
  • 修复 FeishuWebhookService 异步方法未等待的问题
  • 修复重连逻辑中的心跳间隔问题

🧪 Tests

  • 新增 WebSocket 核心功能测试
    • 添加 Bug 修复验证测试
    • 新增指数退避重连策略测试
    • 添加重连协调器测试
  • 新增去重服务测试
    • 添加统一去重中间件测试
    • 新增配置选项测试
    • 添加降级告警服务测试
  • 新增指标收集测试
    • 优化并发性能测试用例

📦 Build & Config

  • CI/CD 增强: 增强发布流程并支持多版本 .NET 构建
    • 支持 .NET 6.0、8.0、10.0 多版本并行构建
    • 优化构建和测试配置

2.0.6

05 Apr 14:07

Choose a tag to compare

✨ Added

  • 多维表格高级权限: 新增飞书多维表格高级权限管理功能
    • 新增高级权限接口及相关数据模型
    • 添加角色成员管理相关接口及模型
    • 新增批量添加协作者接口及请求模型
    • 添加自定义角色查询、更新和删除接口
  • 多维表格仪表盘: 新增飞书多维表格仪表盘功能
    • 新增仪表盘接口定义
    • 添加仪表盘复制功能及相关数据模型和接口
  • 多维表格表单: 新增表单管理功能
    • 添加表单字段更新相关模型和接口
    • 新增更新表单元数据接口及相关模型
    • 添加表单升级接口及相关数据模型
  • 多维表格字段: 新增字段管理功能
    • 添加创建字段编组功能接口及模型
    • 新增删除字段接口及响应模型
    • 添加更新字段接口
  • 多维表格记录: 新增记录批量操作功能
    • 添加批量新增记录接口及相关数据模型
    • 新增批量获取记录接口及相关模型
    • 添加批量删除记录接口及相关模型
    • 新增删除记录接口及响应模型
  • 用户认证: 添加飞书用户认证中间件及相关服务配置

🔧 Changed

  • 授权机制重构: 统一使用Token属性声明授权方式
    • 将Token属性从TokenType枚举改为字符串类型
    • 移除接口中的Header属性,统一使用Token属性设置授权
  • 多维表格重构: 优化模型和接口结构
    • 重构角色相关请求模型文件结构
    • 重构表单字段相关接口及模型
    • 重构字段操作请求模型并优化目录结构
    • 重构记录操作请求模型并更新接口
  • 文档接口: 将文档块接口移动到主命名空间
  • 演示项目: 将演示项目从NuGet包引用改为本地项目引用

🐛 Fixed

  • 修正Bitable注册方法名称
  • 更新依赖版本并添加请求体加密方法

📚 Documentation

  • 更新NuGet包下载量徽章样式

🧪 Tests

  • 添加多维表格接口的单元测试

📦 Build & Config

  • 更新项目版本至2.0.6并调整token管理器参数
  • 更新演示项目依赖项,添加飞书认证包

2.0.5

28 Mar 06:46

Choose a tag to compare

✨ Added

  • 电子表格: 新增飞书电子表格管理模块支持
    • 工作表管理:创建、查询、更新、删除工作表
    • 行列操作:插入、更新、移动、删除行列
    • 单元格功能:合并、查找、样式设置、数据读写
    • 筛选功能:筛选视图创建与管理、筛选条件设置
    • 数据保护:保护范围设置与管理
    • 数据验证:验证规则设置与管理
    • 条件格式:格式规则创建与管理
    • 浮动图片:图片插入、查询、删除
  • 多维表格: 新增飞书多维表格管理模块支持
    • 多维表格元数据获取与更新
  • 用户认证: 新增飞书用户认证模块
    • 用户认证中间件和上下文服务
    • 用户认证测试项目
  • 演示项目: 新增飞书任务管理演示项目

🔧 Changed

  • 电子表格重构: 重构飞书电子表格相关模型和接口
    • 重构飞书表格相关模型和接口
    • 调整飞书电子表格接口命名空间并新增租户和用户接口
    • 重构单元格操作相关模型和接口
    • 重命名单元格相关类以更准确描述功能
    • 重构筛选条件相关模型和接口
    • 统一筛选视图响应模型并添加获取接口
    • 重构飞书电子表格数据验证接口
  • 认证重构: 重构用户令牌管理器和依赖项
    • 将token格式化方法移至TokenUtils工具类
  • Webhook重构: 重构验证器基类与工具类
    • 使用环境服务替代直接环境变量访问
  • 测试优化: 使用环境服务模拟替换环境变量设置
  • 项目优化: 移除冗余的EnsureUserContext调用并调整项目引用

�📚 Documentation

  • 更新 README 文档说明
  • 更新依赖项文档和版本说明
  • 更新接口文档注释并添加数据保护相关模型
  • 完善xml注释

📦 Build & Config

  • 更新前端依赖版本
  • 更新依赖包版本至10.0.5并添加认证测试

2.0.4

19 Mar 02:21

Choose a tag to compare

✨ Added

  • 文档管理: 新增飞书文档管理模块支持
    • 添加飞书文档接口及数据模型
    • 新增文档块模型及接口支持
    • 添加获取和批量更新文档块接口及模型
    • 新增获取文档块子块分页列表接口
    • 添加批量删除块功能及相关模型
    • 新增内容转换功能支持
  • 知识库: 新增知识库管理功能
    • 添加知识空间和节点管理接口
    • 新增节点标题更新和复制功能
    • 添加节点管理接口和测试
    • 新增移动云文档至知识空间功能
  • 云盘管理: 新增飞书云盘管理 API 服务支持
    • 添加云空间文件夹相关接口及数据模型
    • 新增云空间文件接口及元数据模型
    • 添加文件版本管理功能
    • 新增文件上传功能支持
    • 添加文件导入导出任务相关数据模型和接口
    • 新增创建文件快捷方式相关模型和接口
    • 添加搜索云文档功能及相关数据模型
    • 新增获取云文档点赞者列表接口
  • 任务模块: 添加任务和卡片模块并重构服务注册逻辑
  • 认证增强: 为 FeishuAuthenticationException 添加可恢复标志构造函数
  • 枚举配置: 将枚举和配置类提取到独立文件

🔧 Changed

  • 项目重构: 重构请求和响应模型的文件结构
    • 重构文档块模型文件结构,将块模型移动到 Common 目录并删除原 Blocks 目录
    • 重构文件操作接口及模型命名
    • 重构代码以优化文件上传请求模型和 HTTP 客户端
  • 测试优化: 统一测试中数据模型命名空间并优化测试代码
  • 数据库优化: 为收藏节点添加索引优化查询性能

🐛 Fixed

  • 消息发送: 修复发送 Multipart/form-data 请求时 request.Content 的值问题
  • Webhook: 修复飞书回调配置通不过的问题,在 FeishuEventDecryptor 中指定 EventType

📦 Build & Config

  • 依赖更新: 更新多个项目的依赖版本

🧪 Tests

  • 新增测试: 添加飞书 Webhook 模块的单元测试

2.0.3

26 Feb 13:15

Choose a tag to compare

✨ Added

  • 考勤管理: 新增完整的考勤管理功能
    • 休假发放记录相关数据模型和接口
    • 打卡流水记录相关模型和接口
    • 考勤归档报表相关接口及数据模型
    • 补卡相关数据模型和接口
    • 用户人脸照片上传接口
    • 用户设置查询接口
    • 考勤审批相关数据模型及接口
    • 审批状态更新接口及数据模型
    • 审批结果写入功能及数据模型
    • 考勤统计相关数据模型和接口
    • 查询统计数据相关模型和接口
    • 查询统计表头接口及请求模型
    • 用户人脸识别信息管理相关接口和模型
    • 考勤组相关接口及数据模型
  • 审批功能: 重构审批实例预览功能
  • 卡片功能: 更新卡片元素请求字段名
  • 任务功能: 飞书任务自定义字段更新接口返回类型

🔧 Changed

  • 项目结构: 重构项目结构,调整命名空间和文件位置
  • 接口规范: 统一接口方法命名规范
  • 考勤接口: 重构考勤组接口继承结构,重命名考勤用户管理接口并添加下载功能
  • 令牌管理: 重构令牌管理模块并更新依赖版本
  • 国际化: 重构国际化资源模型并更新相关引用
  • 测试结构: 重构测试文件目录结构,将相关测试文件移动到对应功能模块目录下
  • Demo项目: 更新demo项目以使用包引用而非项目引用
  • 响应模型: 重构响应模型

🐛 Fixed

  • 用户组成员: 修正类名拼写错误并更新相关引用
  • 测试用例: 修复测试用例并完善测试数据
  • 活动订阅: 修正活动订阅接口返回类型并完善测试用例

📚 Documentation

  • 代码注释: 为测试类和缓存方法添加XML注释
  • README: 更新README文档结构和内容

📦 Build & Config

  • 依赖更新: 更新 Mud.HttpUtils 依赖至 1.5.3 版本
  • 构建配置: 忽略测试项目的构建输出目录

🧪 Tests

  • 完善测试用例: 为多个模块添加和完善测试用例
    • 聊天群组和标签页测试
    • 飞书任务单元测试
    • 飞书用户和用户组接口测试
    • 飞书职位和职级接口测试
    • 员工类型相关接口测试
    • 飞书部门接口测试
    • 任务板块相关测试
    • 任务列表接口测试
    • 飞书任务附件和评论测试
    • 群公告相关接口测试
    • 卡片接口测试
    • 飞书审批任务相关测试
    • 审批查询接口测试
    • 审批评论相关测试
    • 飞书审批相关接口测试
    • 审批消息接口测试

2.0.2

30 Jan 03:09

Choose a tag to compare

✨ Added

  • 性能指标监控: 添加完整的性能指标收集功能
    • 新增 MeterExtensions、FeishuMetrics 和 FeishuMetricsHelper 类
    • 在 TokenManager、HttpClientUtils 等关键组件中添加指标记录
  • WebSocket 和 Webhook 指标: 为 WebSocket 和 Webhook 添加专项指标监控
    • WebSocket 连接数统计和认证/事件处理指标
    • Webhook 签名验证、事件解密和处理指标
    • 事件去重命中指标
    • 支持 WebSocketConnectionCountProvider 获取实时连接数
  • 调试日志增强: 增加响应内容调试日志和错误处理
    • 添加调试日志记录原始响应内容
    • 在 JSON 反序列化失败时提供更详细的错误信息
  • 测试控制器: 新增日志测试控制器和网络测试控制器

🔧 Changed

  • 依赖更新: 更新 Mud.HttpUtils 依赖至 1.5.2 版本
  • HTTP 客户端优化:
    • 增强异常处理和日志记录
    • 改进安全配置和连接池设置
  • 认证优化: 优化令牌获取逻辑并移除冗余指标记录
    • 改为直接从缓存获取令牌时记录指标
  • 配置简化: 移除断路器功能及相关代码
    • 移除断路器配置项和文档说明
    • 简化代码结构和 Webhook 服务
  • 时间戳验证: 优化时间戳验证逻辑,优先使用应用特定配置
  • Demo 项目: 调整 Demo 项目的配置和依赖

🐛 Fixed

  • JobLevel 接口: 将 JobLevel 接口的 name 参数改为可空类型
  • JobFamilies 接口: 允许 GetJobFamilesListAsync 的 name 参数为 null

📚 Documentation

  • 更新 README 文档说明指标使用方式
  • 添加日志测试相关文档

📦 Build & Config

  • 更新项目版本至 2.0.2

2.0.1

27 Jan 13:29

Choose a tag to compare

🚨 BREAKING CHANGE

  • 移除 FeishuOptions 类 - 完全移除旧的配置类,所有场景统一使用 FeishuAppConfig
  • 多应用架构支持 - API 签名和配置方式发生变化,需要迁移
  • 配置系统重构 - 重试机制和 Token 管理配置方式改变

✨ Added

  • 多应用支持: 支持配置和管理多个飞书应用
  • 应用上下文切换: 新增 IFeishuAppContextSwitcher 接口支持运行时切换应用
  • 自动推断默认应用: 三种自动推断规则简化配置
  • 应用级 Token 缓存隔离: 每个应用拥有独立的 Token 缓存
  • 新配置参数: 新增 RetryDelayMsTokenRefreshThreshold 配置
  • 文档: 新增配置迁移指南和多应用配置文档

🔧 Changed

  • 重构 HttpClient 配置: Polly 重试策略使用配置参数
  • 重构 Token 重试逻辑: 使用配置的 RetryDelayMs 替代硬编码值
  • WebSocket 重试: 使用配置的 RetryDelayMs 替代硬编码值
  • 依赖更新: 替换代码生成器为 Mud.HttpUtils

🐛 Fixed

  • 修复 RetryCount 配置不一致问题: 统一应用到 HttpClient 和 TokenManager
  • WebSocket 重试硬编码问题: 使用配置参数替代硬编码值

📚 Documentation

  • 新增配置迁移指南
  • 更新示例配置文件
  • 新增多应用配置文档