RulesEngine/CHANGELOG.md

6.0 KiB

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
- 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<ActionTriggerType, ActionInfo> to RuleActions
    • No impact if you are serializing workflow from json
    • For workflow objects created in code, refer - link

[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
  • 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