1.0.0
1.0.0
Breaking Changes
- Cryptography: Unified AES and DES encryption methods, when the Key or IV does not exist, use the default Key or default IV (modification of the original AES encryption and DES encryption Key and IV use default value specifications are not uniform, please confirm whether the default Key or default IV ) #378
- Cache: HashDecrementAsync processing failed to return Null #314
- Add default no tracking for EFCore #517 542
- Enumeration:Moving from
Masa.BuildingBlocks.Ddd.DomaintoMasa.BuildingBlocks.Data.Contracts
Bug Fixes
- Caching:Fix perform delete memory cache failure #319、GetKeys, GetByKeyPattern methods fail to get (when T is generic) #322 、Fix
GetListsubscription event error in multilevel cache #361 - Configuration: Fix ConfigurationApi.Dcc failed to get configuration object #322
- EFCore: Fixed that when the configuration is changed, the data context of the current request is not affected #442
- Caller: Fix issues-533 #534
- ConnectionStringsIsolation: Fix ConnectionStrings options mode support #546
- MinimalAPIs: Fix After disabling automatic mapping, the mapping route is incomplete #562
- Serialization: Fixed dynamic type serialization not supported on .NET 7.0 and above #569
- IntegrationEventBus:Fix #issues-607
- DaprStarter: Cannot terminate sidecar when program exits abnormally #598 #605
- DomainEventBus: Event bus and UnitOfWork are optional #618
- Cache: Fix the problem that the global cache configuration does not take effect when the cache validity period is not set when using the GetOrSet method #619、#622
- Dispatcher: Fix issues-570 #624, Fix the order problem of multiple Handler calls #633
- MultilevelCache : MultilevelCacheClient format key instanceId repeat #648
Features
- RulesEngine:Add RulesEngine #311 #434
- Dapr Starter:Add Dapr Starter #312 #341 #343
- Configuration:Configuration.DCC supports encrypted configuration #313 #320、Support array #498
- Caching:HashDecrementAsync support sliding expiration(HashDecrementAsync processing failure is changed to return Null)#314 、 DistributedCache Support UnSubscribe #319 Redis supports manual release #492
- EventBus: The local event bus supports getting services from methods #324、Support CancellationTokenSource #340
- Support I18n #330 #380 #381 #387 #404 #587 #584
- Exception Support I18n #330 #333 #501
- MasaDbContext supports value object nesting #347
- Isolation:Support registering
Repositorybased on entity type #352 - Multiple DbContext optimization support #350 #585
- Repository: Support registering
Repositorybased on entity type #352 - Added support for setting the global Assembly collection #398
- Minimal-apis: MinimalAPI support a new way to register #432
- Extensions: replenish extensions #435 [#449https://github.com//pull/498)
- MinimalAPIs: MinimalAPIs auto-mapping supports public Get methods for public properties #554
- EFCore: The CreationTime property cannot be customized to modify the value #566
Refactors
- Caller: Refactor Caller and add middleware support #342 #365 #368 #391 #494 #528
- IntegrationEventBus:Optimize integration events #344 374 #384 #399 #402
- EventBus:Adjust the order of middleware to first-in-first-execute #412
- Configuration:Refactoring sets global configuration environment variables with default values #349 #382
- Refactor Elasticsearch #364 392 394 #395
- QueryableExtensions remove IEntity constraint #367
- FluentValidation: Refactor
FluentValidationto support localization #369、Check ignores Null values and provides WhenNotEmpty method#485 - DI : Refactor DI #372
- Cryptography : Refactor dotnet and Cryptography #378
- OIDC: Client detail sql linq add SplitQuery #396、optimize OIDC #408
- Cache:Cache value allows null #400
- Repository:GetPaginatedListAsync Supported override #403
- Isolation:Refactor Isolation #521 #523
- Refactoring IdGenerator #574
- MasaException: Rewrite the message of MasaException #602
- IntegrationEventBus: IntegrationEventBus supports isolation#604
- LocalEventBus: Fix #issues-597
- DomainEventBus: Checking the event bus in the AddDomainEventBus method should be changed to a warning instead of a direct error #594
Perfs
Renames
-
Masa.Contrib.Data.Contracts.EFCore -> Masa.Contrib.Data.Contracts #346
-
- Environment -> MultiEnvironment
- ITenantContext -> IMultiTenantContext
- ITenantSetter -> IMultiTenantSetter
- IEnvironmentContext -> IMultiEnvironmentContext
- IEnvironmentSetter -> IMultiEnvironmentSetter
-
EventBus: Change IMiddleware to IEventMiddleware #430
-
ObjectStorage: IClient -> IObjectStorageClient #436
-
DistributedCacheClientFactoryBase -> DefaultDistributedCacheClientFactory、MultilevelCacheClientFactoryBase -> DefaultMultilevelCacheClientFactory #499
-
Enqueue -> EnqueueAsync #512
Chores
- Remove useless Utils class library #317
- Repair the homepage document and redis configuration default value #338
- FluentValidationExtensions: Support nullable property #497
- Refactoring of Serialization and Identity #514
- CI: Update Bug Issues Template #535 #539
- Modify namespace #536
- IntegrationEvent: Fix printing log error #620 #556
StackSdks
AUTH
- Auth:SendEmailTypes add bind #309
- Modify the return type of the login method by mobile phone number #316
- Fix third party multilevel cache #321
- Add email and phoneNumber #327
- Update call initialization information #348
- Add GetUserSystemDataAsync by userId #371
- Add UserStatusException #377
- Modify Mul Cache Sub key prefix #406
- Register user add return UserModel #437
- Update userService verfyMsgCode #446
- Support third party idp login
- Add SaveUserSystemData method、 add remove user
- Add name field to UpdateUserBasicInfoModel#511
- Update token validator #553
- UserSerivce add bindRoles method #615
TSC
- forcibly interrupted the trace of SignalR #329
- Elasticsearch Support for Observability (log and trace) #335
- rename:
Masa.Contrib.StackSdks.Tsc.Elasticseach->Masa.Contrib.StackSdks.Tsc.Elasticsearch#351 - fix: correct aggs terms return null #351
- feat:
ITraceServiceaddsGetAllmethod #351 - fixed tracing bugs between api and blazor #356
- fixed trace query bugs and testing cases #362
- Add custom metrics #390
- Check slices num must geater 1 when scroll query #393
- update scroll search method #397
- Add layer for opentelemtry resource builder #500
MC
- Added
Codeto the message template #337 - send messages split into internal and external #360
- Support app push #373、#375
- Added BindClientId api #447
- MessageTask add extraProperties
- websiteMessage add extraProperties
- GetWebsiteMessageModel add tag #495
- WebsiteMessageService add GetListByTagAsync #496
- GetListByTagAsync supports channel code #621
- Add GetUnreadAsync #623
Config
- Add StackSdks Config #409 #410 #415 #417 #421 #423 #424
- Added get default Id #444
- Fix business configuration empty exception error #448
- update stack config environment #516
- remove no used tsc_layer #522
- Rename
ElasticNodestoNodes#530 - Modify Elastic configuration #530
- Support multi environment #559
- MasaStackConfig: remove stack name and rename GetAllUINames to GetUIDomainPairs #603
- Rename MasaStackConfigConstant const #630
Scheduler
Alert
Middleware
Stack Caller
- Business Sdk service calls add authentication #508
- Add Stack verification#519, fix wrong reference to Stack[#520](https://github.com/masastack/MASA. Framework/pull/520)
Isolation
- Create library MasaStack Isolation #632
破坏性修改
- 密码: 统一 AES 和 DES 加密方式, 当 Key 或 IV 不存在时, 使用默认 Key 或默认 IV(修改原 AES 加密与 DES 加密 Key 以及 IV 使用默认值规范不统一, 请确认是否默认 Key 或默认 IV)#378
- 缓存: HashDecrementAsync处理失败改为返回Null #314
- EFCore 添加默认无跟踪 #517 542
- 枚举类: 从
Masa.BuildingBlocks.Ddd.Domain移动到Masa.BuildingBlocks.Data.Contracts
修复Bug
- Caching:修复执行删除内存缓存失败 #319、修复 GetKeys、GetByKeyPattern 方法获取失败(当 T 为泛型) #322 修复多级缓存中
GetList订阅事件错误#361 Redis支持手动释放 #492 - ConfigurationApi: 修复 ConfigurationApi.Dcc 获取配置对象失败 #322
- EFCore:修复当配置改变时,不影响当前请求的数据上下文 #442
- Caller: 修复 issues-533 #534
- 修复ConnectionStrings选项模式支持 #546
- MinimalAPIs:修复禁用自动映射后,映射路由不完整的问题#562
- 修复.NET 7.0及更高版本上不支持动态类型序列化 #569
- 集成事件总线:Fix #issues-607
- Dapr Starter: 程序异常退出时无法终止sidecar #598 #605
- 领域事件总线: 事件总线和UnitOfWork是可选的#618
- Cache: 修复使用GetOrSet方法时未设置缓存有效期时全局缓存配置不生效的问题#619、#622
- Dispatcher: 修复 issues-570 #624, 修复多个Handler调用顺序问题 #633
- MultilevelCache : 多级缓存客户端格式密钥instanceId重复 #648
功能
- RulesEngine: 添加规则引擎 #311 #434
- Dapr Starter: 添加 Dapr Starter #312 #341 #343
- Configuration: Configuration.DCC 支持加密配置 #313 #320 支持数组#498
- Caching: HashIncrementAsync, HashDecrementAsync 支持滑动过期(HashDecrementAsync处理失败改为返回Null)#314、分布式缓存支持取消订阅 #319
- EventBus: 本地事件总线支持从方法上获取服务 #324、支持 CancellationTokenSource #340
- 支持 I18n #330 #380 #381 #387 #404 #587 #584
- 异常支持 I18n #330 #333 #501
- MasaDbContext 支持值对象嵌套 #347
- 租户隔离以及环境隔离增加解析器 #349
- 多DbContext 优化支持 #350 #585
- 新增支持设置全局Assembly集合 #398
- Minimal-apis: MinimalAPI 支持新的注册方式 #432
- Extensions: 补充扩展方法 #435 #449
- 更新ConfigurationApiManage函数支持json序列化#515
- MinimalAPIs自动映射支持公共属性的公共Get方法#554
- EFCore: 支持自定义修改CreationTime #566
重构
- Caller:重构 Caller,并增加支持中间件支持 #342 #365 #368 #391 #494 #528
- IntegrationEventBus:优化集成事件 #344 374 #384 #399 #402
- EventBus:调整中间件顺序为先进先执行 #412
- Configuration:重构设置全局配置环境变量与默认值,优化使用体验 #349 #382
- 重构 Elasticsearch #364 392 394 #395
- QueryableExtensions 移除 IEntity 约束 #367
- FluentValidation: 重构
FluentValidation支持本地化 #369、检查忽略 Null 值并提供 WhenNotEmpty 方法#485 - DI : 重构 DI #372
- Cryptography : 重构dotnet和Cryptography #378
- Repository: FindAsync 使用过滤器禁用软删除 #385
- OIDC:客户端详细信息 sql linq 添加 SplitQuery #396、优化 OIDC #408
- Cache:支持缓存null值 #400
- Repository:GetPaginatedListAsync 支持重写 #403
- Isolation:重构隔离性 #521 #523
- 重构 IdGenerator #574
- MasaException: 重写MasaException的消息 #602
- 集成事件总线: 集成事件总线支持隔离性#604
- 本地事件总线: 修复 #issues-597
- 领域事件总线: 检查AddDomainEventBus方法中的事件总线应改为警告,而不是直接错误 #594
优化
- Caching: 删除部分重载方法,优化使用体验 #315 #318、优化多级缓存删除缓存时偶发出错 #439
- 修复不支持可用的用户类型 #322 #331
- 优化使用DomainService的体验 #438
- Orm: 优化使用多数据库上下文字符串别名 #441 #445
- 序列化和身份的重构#514
重命名
-
Masa.Contrib.Data.Contracts.EFCore -> Masa.Contrib.Data.Contracts #346
-
- Environment -> MultiEnvironment
- ITenantContext -> IMultiTenantContext
- ITenantSetter -> IMultiTenantSetter
- IEnvironmentContext -> IMultiEnvironmentContext
- IEnvironmentSetter -> IMultiEnvironmentSetter
-
修改 IMiddleware -> IEventMiddleware #430
-
ObjectStorage: IClient -> IObjectStorageClient #436
-
DistributedCacheClientFactoryBase -> DefaultDistributedCacheClientFactory、MultilevelCacheClientFactoryBase -> DefaultMultilevelCacheClientFactory #499
-
Enqueue重命名为EnqueueAsync#512
杂务
- 删除无用的 Utils 类库 #317
- 修复首页文档以及redis配置默认值 #338
- 创建问题标签 #429
- 修复缓存文档错误 #451
- 添加问题模板 #452
- FluentValidationExtensions: 支持可空属性 #497
- 修改Bug问题模版 #535 #539
- 修改命名空间 #536
- 集成事件: 修复打印日志错误 #620 #556
业务Sdk
权限中心
- 发送邮箱类型支持Bind #309
- 修改通过手机号登录方法的返回类型 #316
- 修复第三方多级缓存使用错误 #321
- 增加邮箱和手机号 #327
- 更新调用初始化信息 #348
- 增加根据用户id查询用户业务数据的方法 #371
- 添加 UserStatusException #377
- 修改多级缓存前缀 #406
- 注册用户并且返回用户信息 #437
- 更新用户服务校验验证码方法 #446
- 支持第三方平台登录
- 增加用户业务数据存储接口、增加删除用户
- 修复用户服务GetSystemDataAsync报错 #488
- Fix user service GetSystemDataAsync error #488
- 更新用户基本信息模型增加Name字段#511
- 更新令牌验证器 #553
- 用户服务增加绑定角色方法 #615
故障排查控制台
- 默认忽略 SignalR 的 Trace 的记录 #329
- 支持可观察性 (日志和跟踪) #335
- 重命名:
Masa.Contrib.StackSdks.Tsc.Elasticseach->Masa.Contrib.StackSdks.Tsc.Elasticsearch#351 - 修复参数返回
null#351 - 功能:
ITraceService增加GetAll方法 #351 - 修复了 api 和 blazor 之间的跟踪错误 #356
- 修复跟踪查询错误和测试用例 #362
- 添加自定义指标 #390
- 滚动查询时检查切片数必须大于1 #393
- 更新滚动搜索方法#397
- 为 opentelemtry 资源构建器添加layer #500
- 修复跟踪中的记录体错误 #538
消息中心
- 新增消息模版 #337
- 发送消息分为内部和外部 #360
- 支持app推送 #373、#375
- 添加绑定Client API #447
- 消息任务增加扩展属性
- 站内信增加扩展属性
- 站内信查询模型添加Tag属性 #495
- 站内信服务添加根据标记查询站内信列表方法 #496
- GetListByTagAsync 支持渠道编码查询 #621
- 增加查询站内信未读数方法#623
配置
- 增加 StackSdks Config #409 #410 #415 #417 #421 #423 #424
- 增加获取默认用户id #444
- 修复业务配置空异常错误 #448
- 更新Stack配置环境 #516
- 删除未使用的 tsc_layer #522
- 重命名
ElasticNodes为Nodes#530 - 修改Elastic配置 #530
- 支持多环境 #559
- MasaStackConfig: 删除Stack名称并将GetAllUINames重命名为GetUIDomainPair #603
- 重命名MasaStackConfigConstant中常量 #630
调度中心
告警中心
中间件
Stack 调用者
隔离性
- 新增MasaStack 隔离性类库 #632