Release notes
Version 1.9 – Q1 2023

New features
Email from within Rulesets
It’s now possible to send emails from from Rules and Functions. This is done via the Mail.send()
function. This function supports features like CC, BCC, attachments, HTML emails, inline images (e.g. for logos in signatures), and more. More information is available in the Rulecube Manual.
SQL and MongoDB
Rules and Functions can now read and write data from MongoDB and SQL databases. This is done via the MongoDB
and SQL
classes respectively. More information is available in the Rulecube Manual.
Execution statistics
A new section has been added to the top menu: “Analytics”. This section shows statistics about execution of Rulesets. This is rudimentary at the moment, but will be expanded in the future.
Environment variables encryption
Environment variables can now be encrypted. If an environment variable is encrypted, it will be hidden from the user and can only be decrypted by the engine. This is useful for storing sensitive data like passwords and API keys.
Additionally, when Rulecube detects that an encrypted variable is in the output of a Ruleset execution, and an error will be thrown. This is to prevent sensitive data from leaking.
API: Alert endpoint
A new API endpoint has been added: api/alert
. This endpoint can be used aggregate and manipulate Metric Alerts. A Swagger definition with more information is available.

Improvements
-
Ruleset
- Entities can now be added in child rulesets.
- Entities are now detected in code and Type usage.
- Entities will now be marked as unused if they are not used as a Type and nowhere in a Rule or Function’s code.
- External constants with fetch errors now display an error icon in the menu.
Sandbox
- Improved profiling visualization.
- Benchmark and Batched benchmarks can now be canceled.
- The name of the ruleset is now visible in the browser window/tab.
- Max amount of diagnostics in advanced settings.
- HTML is detected in the output and gives the user an option to render it normally.
- Testcase mode can be enabled in advanced settings. This will simulate the ruleset being ran from a testcase, meaning
System.isTest()
will returntrue
in a Rule.
Execution
- Entities can now be profiled.
- Max amount of diagnostics can now be set by the user in the execution options (default is 100).
Misc. changes
- Upgraded to Node 18 and all its JS features in the engine.
- Support for MSSQL databases as Rulecube’s underlying database engine.
- Environment variable values are no longer shown in a ruleset.
- Environment variables can be encrypted now.
- Environment variables show where they are used and can’t be renamed or deleted when in use.
- Encrypted data is now prevented from ending up in the output of a ruleset execution.
- User permissions are now checked instead of roles.
- Added support for email-less User registration (needs to be enabled in environment).
- Metric Alerts can now be dismissed with an optional reason.
- External constant data can now be plain text instead of JSON.
- Added error banners on the service page when there are issues with External constants or Environment variables.
- When a user is part of multiple organizations and is working in multiple organizations in different browser tabs, a dialog is no longer shown. Instead, the user is automatically switched.
- Ruleset examples in docs
- Added copy button for examples.
- Added
fetch
example. - Added error handling to all examples.
Code
Check the Manual for more information on each item.
Mail.send()
– send email with given SMTP settingsHttp
– new class containing HTTP methods likeHttp.get()
andHttp.request()
SQL
– new class containing SQL methods likeSQL.execute()
MongoDB
– new class containing MongoDB methods likeMongoDB.find()
andMongoDB.insert()
PICK(arr)
– picks and returns a random item from a given arrayPLUCK(arr)
– similar toPICK
but removes the item from the array(!)RANGE(start, end)
– create an array of numbersFOR(start, end, fn)
– iterate over a range of numbersREPEAT(times, fn)
– call a function a number of timesCSV2JSON(csv, opts)
– transform a CSV input into JavaScript objects
Performance
- Http requests are now executed at least 300% faster.
- Database indices were added to improve overall application performance. Saving a ruleset should be faster now, for instance.

Fixes
- Rules no longer receive an implicit
return
statement if it results in a syntax error. - Functions that reference rules no longer trigger them if they are in a code branch that is not executed. This caused Rule alerts to be triggered when they shouldn’t have been.
- Large external constant fetch errors are no longer page-breaking.
- Fixed bug when renaming a Ruleset’s item to an existing item’s name.
- Importing entities via JSON now correctly sets the include-in-output values.
- Export ruleset dialog no longer causes multiple downloads when pressing the OK button multiple times.
- Magic numbers that are used as an array index (
[x]
) are no longer reported. - Folder settings are now disabled when a ruleset is locked.
- Fixed bug related to adding entities from a file when there are folders that have not been saved yet.
- Fixed bug where multi-organization users could accidentally move rulesets between organization when working in two or more organization and the same time in different browser tabs.
- Libraries with libraries now correctly work with environment variables.
- Browser tab only shows environment name on specific environments.
- Deprecated API endpoint
api/execute/ruleset/{ruleset name}/{version}
: version is now optional – if not specified, will execute the active version - Improved error message when a ruleset is executed without specifying a version and there’s no active version.
- Pressing ‘Save and run’ in a testcase no longer locks the ruleset for others.
- Save as new version button is enabled when the ruleset is locked.
- Renaming entities now changes their references in rule and function expressions too.
- Function parameter names no longer randomly jump back to their old values sometimes
An extensive description of the improvements, features and fixes can be found in the Rulecube Help environment. The extensive release notes include a list of changes that may require attention when you have legacy rulesets.
Version 1.8 – Q4 2022

New features
- Rulesets can now be locked
- Enhanced export files that include revisions, referenced rulesets and more
- Rulesets can now be favorited on the Services page with a ⭐button
- External data schedule: an overview of allexternal constant data of all rulesets in the organization.
- The ruleset edit screen now offers a ‘Tools’ section.
- API key management
- From the organization profile page it is now possible to create API keys with specific roles, just like with users.
- Enhanced Multilingual Alerts – allows you to render all defined languages of a multilingual alert.
- A sticky execute box in the Sandbox

Improvements
- Various improvements to the ease of defining a Ruleset
- The sandbox functionality has been improved to offer more oversight en clarity
- Better diagnostics are available on either failed or successful ruleset execution
- Miscellaneous changes were made to improve the overall Rulecube experience.
- Various Code commands were added or improved
- Performance of External constants and startup is improved.

Fixes
- some styling and (dark-mode) display issues, impractical popups or confusing notification texts
- some under-the-hood code refactoring, and legacy code removal
- some settings that are now correctly honored and displayed, including name changes that only involve letter casing.
- multiple issues in user creation and activation
- an issue when an external constant was incorrectly cloned
- an issue where environment variables in combination with referenced rulesets (libraries) did not work properly
- an issue where the ‘Show fixes’ on errors in code editors triggered a ruleset check-out
- the library counter in rulesets, which now counts rulesets from other organizations.
An extensive description of the improvements, features and fixes can be found in the Rulecube Help environment. The extensive release notes include a list of changes that may require attention when you have legacy rulesets.
Version 1.7 – Q3 2022

New features
- You can now search all of your rulesets with the bar at the top of the service page.
- We now support Azure Active Directory (Azure AD) to provide a single-sign on experience.
- We now allow for a more granular control of user permissions.
- Besides Ruleset-specific Swagger / OpenAPI documentation we now provide this for all of our public end-points.
- You can now use context-aware and smart cut, copy and paste shortkeys within a Ruleset.

Improvements
- Horizontal scaling and caching is now supported when using multiple instances of Rulecube
- We added endpoints for getting and setting Environment Variables used by a Ruleset.
- We added Group and Priority fields to Rule Alerts
- Installed libraries are shown at the top of the list
- DATESTR() – format date to locale
- Added Remember save comment checkbox
- Added button to undo “Don’t ask me again” in user settings
- Added Entity to parent entity navigation link
- We implemented deep duplicate output name detection (in folders too)
- We enabled faster code checking by caching static code
- Smarter circular reference detection in the engine
- Sandbox now shows the number of alerts and diagnostics with clickable links to scroll directly to them
- It’s now possible to insert tabs in the XML editor (Sandbox, Testcases)
- History / revision compare now has difference navigation (arrows) and automatically shows the first difference.
- Docs: more details are shown for external constants (URL, Headers, etc.)
- Entities from Libraries are now selectable in more ways and can be organized in folders.
- Hints now include Magic number detection, name based hints with encouragement of Boolean terms and specific error messages.
- Search now groups per item and displays exact matches at the top of the results
- Extensive improvements were made to constants detection and hierarchy and naming
- Several improvements to the code editor were made to improve the user experience, e.g. code is validated as the user types
- Several adjustments were made to improve usability

Fixes
- Rules are now automatically sorted
- JSON files (or pasted data) that have an array [ ] as their root are now correctly imported/pasted
- Enum values can no longer be modified in child rulesets
- Enums with the same values, but different names are now compatible
- Fixed incorrect “child of” message in on Services page
- External constant mapper and enum values are now searched
- Testable Rules are now marked as unused and remain in testcases after save, even when not in output
- Library alias is now left the same when installing a newer version
- Library Ruleset’s Constants and Functions are not marked as unused anymore
- Ruleset changes during save are now detected
- Renaming an item in a Ruleset now correctly changes the URL
- Fixed bug in auto incrementing non-numeric version names
- Optional single parameter in a Function no longer gives a warning
- CUR now has a second parameter to control the number of decimals
An extensive description of the improvements, features and fixes can be found in the Rulecube Help environment. The extensive release notes include a list of changes that may require attention when you have legacy rulesets.