Skip to main content



InRule Decisioning Version 5.9.0 Release Notes

This article contains a detailed account of the features and bug fixes that are a included in Version 5.9.0 of the InRule Decision Platform. To read the highlights of the release, see the article InRule Decisioning Version 5.9.0 Now Available.

Catalog

TypeCase IDSummaryDescription
StoryPLAT-511Upgrade Catalog Service to .NET 8Catalog Service upgraded to .NET 8 enabling cross-platform deployment on Windows and Linux
StoryPLAT-527Upgrade Web Catalog Manager to .NET 8Web Catalog Manager upgraded to .NET 8 enabling cross-platform deployment on Windows and Linux

Decision Services

TypeCase IDSummaryDescription
StoryPLAT-451Dynamics RuleHelper compatibility with Decision ServicesAllows the use of the Dynamics RuleHelper dll with Decision Services as compared to the fully integrated Dynamics Execution Service. Additional information is available in the upgrade considerations section for either self-hosted or SaaS.
StoryPLAT-457Salesforce RuleHelper compatibility with Decision ServicesAllows the use of the Salesforce RuleHelper dll with Decision Services as compared to the fully integrated Salesforce Execution Service. Additional information is available in the upgrade considerations section for either self-hosted or SaaS.
BugPLAT-465Decision state serialization erroneously includes temp variablesTemp fields were unintentionally included in the serialized state for decision execution. This has been fixed to no longer show temp fields in the serialized decision state.
StoryPLAT-467Enable OAuth 2.0 for execution authenticationOAuth 2.0 is now a supported alternative to using an API key for authenticating with Decision Services. Common approaches can be leveraged to acquire and cache a JWT access token from either an Auth0 or EntraId provider using ClientId and ClientSecret. The token can then be passed to Decision Services using a standard Bearer token request header. For InRule SaaS, the ability to self-manage OAuth 2.0 authentication through the SaaS Portal is not yet available and will require additional setup from InRule CloudOps to enable on a per request basis.
StoryPLAT-474Add RequestId to runtime event logginginrule-requestid request header added to the Decision API. When provided the request id will get threaded through to the runtime event logs to associate back to the originating request.
StoryPLAT-494Maximum Request Length default increased to 128MB and made configurablemaxRequestLength default has been increased from 30MB to 128MB and can be configured per the article - Adjusting the Maximum Request Length for ASP.NET Applications.
StoryPLAT-602Return inrule-revision in Decision API response headerinrule-revision response header was added to the Decision API. It will be populated with the RuleApp revision that was pulled from the catalog for execution. By default this is the latest revision in the catalog unless an explicit revision or label was specified in the request.
StoryPLAT-1061Return RuleAppRevision in Rule Execution API response bodyRuleAppRevision response attribute was added to the Rule Execution API. It will be populated with the RuleApp revision that was pulled from the catalog for execution. By default this is the latest revision in the catalog unless an explicit revision or label was specified in the request.
StoryPLAT-1460Support for file-based ruleappsSupport for fileSystem catalog source type in Decision API app settings. When configured an additional path attribute must be set to identify the relative path for rule applications.
StoryPLAT-1487Support for Secondary API keySupport for a Secondary API key is now available in Decision Services to enable ease of key rotation. For InRule SaaS, the Secondary API key can be configured in the SaaS Portal. For self-hosted, Secondary API key is configured using: inrule:runtime:service:apiKey:secondaryKey. This has also incurred a change to the primary API key setting namespace to align the management of the API keys. WAS: inrule:runtime:service:apiKeyPrimary NOW: inrule:runtime:service:apiKey:primaryKey. The Dynamics and Salesforce execution services also use the same Primary and Secondary API keys for authentication.
StoryPLAT-1490Update Decision Services to .NET 8.0Decision Services upgraded to .NET 8 enabling cross-platform deployment on Windows and Linux

Dynamics

TypeCase IDSummaryDescription
StoryPLAT-396Add OAuth 2.0 support to the Dynamics Rule Configuration UIOAuth 2.0 configuration has been added as an option to the Rule Configuration UI as an alternative to the API key. See Appendix F: Rule Configuration and Settings in the InRule for Dynamics Deployment Guide for more information.
BugPLAT-397RuleHelper LoadMappedChildCollection error when loading n:n collection with n:n auto-loaded child collectionsIssue is resolved. A related issue for LoadMappedChildCollection to support filters on n:n child collections remains open to be addressed in a future release.
BugPLAT-1005Error when adding InRule admin role during solution deploymentError “AddPrivilegesRole : Execute (AddPrivilegesRole)… Cannot insert duplicate key exception when executing non-query” is thrown in recent versions of the Dynamics package installer.
BugPLAT-1149Vulnerability alert - use of eval() function in Dynamics solutionAll references to the eval() function have been removed from the Dynamics solution resulting in the mitigation of this alert. In addition, a secure data layer has been applied to all input fields in the Rules Configuration UI to prevent JavaScript injection.
BugPLAT-1150Supportability alert - use of internal function in Dynamics solutionImplemented an alternative approach to the use of the internal function to mitigate this alert
StoryPLAT-1477New Dynamics Rule Execution REST API replaces Azure WebJob/RelayUpgraded Dynamics execution service to .NET 8.0 WebApi including authentication options for Primary/Secondary API key and OAuth 2.0. The new Dynamics Execution API is functionally identical to the Azure Relay/WebJob integration model, which should make for a seamless transition, See Appendix L: New Releases and Upgrading Versions in the InRule for Dynamics Deployment Guide for more information.
StoryPLAT-1478Add REST API configuration to Dynamics solutionREST Endpoint option is added to the Rules Configuration UI to configure the Dynamics execution URL vs the Azure Relay information. Azure Relay is still an option to help support any backward compatibility scenarios, but in most cases the switch should be made to the rule execution API.
StoryPLAT-1482Add version comparison check to Test buttonVersion comparison check added to the Test button in the Rule Configuration UI. This check compares the solution version against the execution API version. If different, a warning will be displayed including the respective versions.
StoryPLAT-1483Write execution log to eventlog/appinsights when execution log is configured to ONEnabling the Rule Execution Log in the rule configuration in Dynamics will now only write to the execution service runtime event log (as well as AppInsights if configured). Previously this would return to the plugin trace log, but it required too much truncation to be useful.

irAuthor

TypeCase IDSummaryDescription
StoryPLAT-32Set default Object Bound serialization type to DataContractSerializer in irAuthorSince Microsoft has deprecated the BinaryFormatter serializer due to security reasons, we no longer offer this as the default serialization option for Entities bound to a .NET Schema EndPoint. The default is now DataContractSerializer, which serializes public fields/properties by default to an XML format. It will serialize private fields/properties if the class is annotated with a [DataContract] attribute, and all the members required (both public + private) are annotated with a [DataMember] attribute. Existing rule applications configured to use BinaryFormatter serialization will continue to work, however we recommend switching to DataContractSerializer going forward.
BugPLAT-1461Using RuleHelper in irVerify outside of the Dynamics tab causes an assembly load errorFixed an error using the Dynamics RuleHelper in irVerify with the native non-integration specific Test button. Support for this approach is needed to enable the hybrid integration model that query's Dynamics data from the flagship execution service using the Dynamics RuleHelper.

Rules Engine

TypeCase IDSummaryDescription
BugPLAT-34Default value is set differently for nested entities after loading json fileFixed the issue that resulted in fields with default values not getting set correctly on nested entities
StoryPLAT-36UDF Round function only does bank rounding (closest to even) by default and does not allow AwayFromZeroThe Util.Math.Round() function in UDFs uses MidpointRounding.ToEven (bank rounding) by default, and there was previously no way to change this to the alternative MidpointRounding.AwayFromZero. We added the ability to specify the MidpointRounding type in a third argument to this function - e.g. Util.Math.Round(3.14159, 3, Util.MidpointRounding.AwayFromZero).
BugPLAT-365Enabled background compilation incorrectly logged as false in GetRuleAppRef log entriesWhen enableBackgroundCompilation is configured via settings on Decision Service to ‘true’, the InRule GetRuleAppRef event log shows ‘Configured: False’ for background compilation. This can cause confusion when troubleshooting compilation scenarios and has been resolved to reflect the correct value.
StoryPLAT-1336Release .NET 8 SDK dlls on NuGetUpgrade InRule SDK dlls to .NET 8 and release on NuGet - InRule.Runtime, InRule.Repository, and InRule.Common

Runtime Analytics

TypeCase IDSummaryDescription
StoryPLAT-478Streamline Runtime Analytics dashboard to single column layoutUpdates to the Runtime Analytics dashboard to streamline the widgets in a single-column vertical layout. This change simplifies the dashboard with a more intuitive format and should help with the overall performance of loading the individual widgets. See Introduction to Runtime Analytics for more information.

SaaS Portal

TypeCase IDSummaryDescription
StoryPLAT-469Enable Primary & Secondary API keys to be self-managed in portal configurationAPI key has been moved from Provisioned Resources to Configuration. Under Settings → Configuration, the Execution Server Settings section contains a new Authentication sub-section listing the Primary API key and Secondary API key. The API keys are read/write along with a “Regenerate” option to facilitate API key rotation. The API keys are used to authenticate to Decision Services, Dynamics execution service, and Salesforce execution service.
StoryPLAT-513Add Client Credentials auth type option to Salesforce Authentication portal configurationClient Credentials auth type option added to the Salesforce section of the InRule SaaS portal in the Configuration UI. This section can now be used to configure either of the supported authentication types of Client Credentials or Username/Password Credentials.

Salesforce

TypeCase IDSummaryDescription
StoryPLAT-512Support Client Credentials Auth Flow to connect to SalesforceClient Credentials is the new recommended authentication flow to authenticate with Salesforce. This enables a simpler configuration than User/Password Credentials (also still supported) and is more suitable for service-to-service connectivity. See section 3.3.2 Rule Execution App Service for Salesforce in the InRule for Salesforce Deployment Guide for more information.
BugPLAT-564Error executing rules from Schedule-Triggered FlowDetermined root cause that a schedule-triggered flow can make callouts only after executing a Wait element. Applying this approach to the Salesforce flow resolves the issue.
BugPLAT-593Error persisting DateTime fields in SalesforceDateTime fields will now save back to Salesforce without issue
StoryPLAT-1125Upgrade Salesforce execution service to .NET 8Salesforce execution service upgraded to .NET 8 enabling cross-platform deployment on Windows and Linux
BugPLAT-1475Fix issue with collapsible sections in InRule app not responding to clicksSection expand/collapse now works as expected when clicking on the container, dropdown arrow, or title
StoryPLAT-1476InRule app theme and content updatesContent and theming changes pertinent to this release have been updated in the InRule for Salesforce App
BugPLAT-1484Handle Salesforce expired session error in irAuthorExpired Salesforce session is now handled meaningfully in irAuthor

Upgrade Considerations

  • Retirement of the classic irServer Rule Execution Service If you are currently using the classic irServer Rule Execution Service, you must transition to the Decision Services - Decision API or Rule Execution API. Moving to either API represents a valid upgrade path with the Decision API being simpler and modernized as compared to the Rule Execution API which is more backward compatible with the irServer request/response format. The primary consideration for this transition is if your current implementation requires XML-based requests and data payloads, which is not supported in Decision Services. If this is the case, please contact InRule Support to discuss alternative migration options. Also see Transitioning from the classic irServer Rule Execution Service to the Rule Execution API for more information.
  • Primary/Secondary API key rotation New configuration is available to leverage a Secondary API key to facilitate key rotation (PLAT-1487). For SaaS, the Primary/Secondary API key settings can now be managed in the Portal Configuration UI (PLAT-469). For self-hosted, Secondary API key is configured using: inrule:runtime:service:apiKey:secondaryKey. This has also incurred a change to the primary API key setting namespace to align the management of the API keys. The API keys are relevant to Decision Services, Dynamics and Salesforce Execution Services. For example:
  WAS: inrule:runtime:service:apiKeyPrimary 
NOW: inrule:runtime:service:apiKey:primaryKey
  • Change to Environment Variables/App settings format The Environment Variable App settings deployed from the InRule Azure ARM templates will default to a double underscore (__) notation vs the previous colon ( : ) notation. The colon notation is still supported for Windows-based App Services and the ARM template can be end-user modified if that notation is desired. While this change shouldn't have any material effect for a given deployment, the double underscore notation is required for cross-platform compatibility with Windows and Linux. For example:
  WAS: inrule:runtime:service:apiKey:primaryKey 
NOW: inrule__runtime__service__apiKey__primaryKey
  • OAuth2.0 execution authentication option Decision Services (PLAT-467) and the Dynamics Execution Service (PLAT-396) are now enabled to accept an OAuth 2.0 token for authentication. This requires additional configuration in Azure for self-hosted or by CloudOps in InRule SaaS. The procedures for this configuration are still forthcoming; in the interim please send inquiries to InRule Support for assistance.
  • Using Dynamics and Salesforce RuleHelper Connectors in Decision Services Decision Services are now compatible to execute rule applications containing calls to the Dynamics and Salesforce RuleHelper connectors (PLAT-451 and PLAT-457). For self-hosted or InRule SaaS implementations, there are manual steps required to set up this integration. For self-hosted, the dlls must be manually deployed to the EndpointAssemblies folder per instructions in the Decision Services API Guide - Considerations for Self-hosting article. For InRule SaaS, the setup must be requested via InRule Support. Moving forward in a future release of InRule Decision Services, the deployment process will be automated to no longer require manual setup.
  • Azure App Services ARM templates The InRule Azure ARM templates have been updated to deploy the upgraded .NET 8 component services. While the underlying services are cross-platform compatible, the ARM templates are currently setup to deploy on Windows only. This will get expanded in a future release, but in the interim it should be possible to modify the templates to deploy to Linux if desired. For questions regarding the ARM templates or alternative deployment options such as containers or local IIS, please send inquiries to InRule Support for assistance.
  • InRule Windows Installer The 5.9.0 InRule Windows Installer as been updated on the InRule Downloads page. The primary use of the installer is for desktop deployment of irAuthor to users Windows machines.Currently irAuthor desktop remains on the full-framework version of .NET. The installer also contains the full-framework versions of the Catalog Service, Web Catalog Manager and classic Rule Execution Service. The installer-based version of the services should be used for local development and testing purposes only. For server-based and production scenarios, deployments should be managed using the InRule Azure ARM templates or Microsoft Marketplace. See the Installation Guide for more information.
  • Transition to new Dynamics Rule Execution API The 5.9.0 release introduces a new Dynamics Rule Execution REST API to replace the Azure WebJob/Relay execution model (PLAT-1477). This transition will be relatively transparent for InRule SaaS customers, but configuration of the execution service URL and API key will be required in the InRule solution within Dynamics. The same is needed for self-hosted as well as the manual removal of the old webjob and relay from any previous deployments. See the InRule for Dynamics Deployment Guide - Appendix L: New Releases and Upgrading Versions section for more information.