# CHANGELOG All notable changes to this project will be documented in this file. ## [5.0.3] - Updated dependencies to latest - Fixed RulesEngine throwing exception when type name is same as input name - Added config to disable FastCompile for expressions - Added RuleParameter.Create method for better handling on types when value is null ## [5.0.2] - Fixed Scoped Params returning incorrect results in some corner case scenarios ## [5.0.1] - Added option to disable automatic type registry for input parameters in reSettings - Added option to make expression case sensitive in reSettings ## [5.0.0] - Fixed security bug related to System.Dynamic.Linq.Core ### Breaking Changes - As a part of security bug fix, method call for only registered types via reSettings will be allowed. This only impacts strongly typed inputs and nested types ## [4.0.0] - RulesEngine is now available in both dotnet 6 and netstandard 2.0 - Dependency on ILogger, MemoryCache have been removed - Obsolete Properties and Methods have been removed - Fixed name of RuleParameter is ignored if the type is recognized (by @peeveen) ### Breaking Changes - ILogger has been removed from RulesEngine and all its constructors ```diff - RulesEngine(string[] jsonConfig, ILogger logger = null, ReSettings reSettings = null) + RulesEngine(string[] jsonConfig, ReSettings reSettings = null) - RulesEngine(Workflow[] Workflows, ILogger logger = null, ReSettings reSettings = null) + RulesEngine(Workflow[] Workflows, ReSettings reSettings = null) - RulesEngine(ILogger logger = null, ReSettings reSettings = null) + RulesEngine(ReSettings reSettings = null) ``` - Obsolete methods and properties have been removed, from the follow models:- - RuleResultTree - `ToResultTreeMessages()` has been removed from `RuleResultTree` model - `GetMessages()` has been removed from `RuleResultTree` model - `RuleEvaluatedParams` has been removed from `RuleResultTree` model, Please use `Inputs` instead - Workflow - `WorkflowRulesToInject` has been removed, Please use `WorkflowsToInject` instead - `ErrorType` has been removed from `Rule` - Resettings - `EnableLocalParams` has been removed from `ReSettings`, Please use `EnableScopedParams` instead ## [3.5.0] - `EvaluateRule` action now support custom inputs and filtered inputs - Added `ContainsWorkflow` method in RulesEngine (by @okolobaxa) - Fixed minor bugs (#258 & #259) ## [3.4.0] - Made RulesEngine Strong Name and Authenticode signed - Renamed few models to streamline names (by @alexrich) - `WorkflowRules` is renamed to `Workflow` - `WorkflowRulesToInject` is renamed to `WorkflowsToInject` - `RuleAction` is renamed to `RuleActions` **Note**: The old models are still supported but will be removed with version 4.0.0 ## [3.3.0] - Added support for actions in nested rules - Improved serialization support for System.Text.Json for workflow model Breaking Change: - Type of Action has been changed from `Dictionary` to `RuleActions` - No impact if you are serializing workflow from json - For workflow objects created in code, refer - [link](https://github.com/microsoft/RulesEngine/pull/182/files#diff-a5093dda2dcc1e4958ce3533edb607bb61406e1f0a9071eca4e317bdd987c0d3) ## [3.2.0] - Added AddOrUpdateWorkflow method to update workflows atomically (by @AshishPrasad) - Updated dependencies to latest Breaking Change: - `AddWorkflow` now throws exception if you try to add a workflow which already exists. Use `AddOrUpdateWorkflow` to update existing workflow ## [3.1.0] - Added globalParams feature which can be applied to all rules - Enabled localParams support for nested Rules - Made certain fields in Rule model optional allowing users to define workflow with minimal fields - Added option to disable Rule in workflow json - Added `GetAllRegisteredWorkflow` to RulesEngine to return all registered workflows - Runtime errors for expressions will now be logged as errorMessage instead of throwing Exceptions by default - Fixed RuleParameter passed as null ## [3.0.2] - Fixed LocalParams cache not getting cleaned up when RemoveWorkflows and ClearWorkflows are called ## [3.0.1] - Moved ActionResult and ActionRuleResult under RulesEngine.Models namespace ## [3.0.0] ### Major Enhancements - Added support for Actions. More details on [actions wiki](https://github.com/microsoft/RulesEngine/wiki/Actions) - Major performance improvement - 25% improvement from previous version - Upto 35% improvement by disabling optional features - RulesEngine now virtually supports unlimited inputs (Previous limitation was 16 inputs) - RuleExpressionParser is now available to use expression evaluation outside RulesEngine ### Breaking Changes - `ExecuteRule` method has been renamed to `ExecuteAllRulesAsync` - `Input` field in RuleResultTree has been changed to `Inputs` which returns all the the inputs as Dictionary of name and value pair ## [2.1.5] - 02-11-2020 - Added `Properties` field to Rule to allow custom fields to Rule ## [2.1.4] - 15-10-2020 - Added exception data properties to identify RuleName. ## [2.1.3] - 12-10-2020 - Optional parameter for rethrow exception on failure of expression compilation. ## [2.1.2] - 02-10-2020 - Fixed binary expression requirement. Now any expression will work as long as it evalutes to boolean. ## [2.1.1] - 01-09-2020 - Fixed exception thrown when errormessage field is null - Added better messaging when identifier is not found in expression - Fixed other minor bugs ## [2.1.0] - 18-05-2020 - Adding local param support to make expression authroing more intuitive. ## [2.0.0] - 18-05-2020 ### Changed - Interface simplified by removing redundant parameters in the IRulesEngine. - Custom Logger replaced with Microsoft Logger. ## [1.0.2] - 16-01-2020 ### Added - Cache system added so that rules compilation is stored and thus made more efficient. ### Fix - Concurrency issue which arose by dictionary was resolved. ## [1.0.1] - 24-09-2019 ### Added - Exceptions handling scenario in the case a rule execution throws an exception ## [1.0.0] - 20-08-2019 ### Added - The first version of the NuGet