Closed Blokh closed 2 months ago
Latest commit: 3864379751260ad52a160209a8b7b71517a8fe84
Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.
Click here to learn what changesets are, and how to add one.
Click here if you're a maintainer who wants to add a changeset to this PR
The updates primarily introduce new functionalities, dependencies, and module integrations across the rules-engine
and workflow-core
packages. This includes adding new types, constants, and helper functions for rule evaluation, refactoring existing exports, and developing services that interact with external APIs like Notion. Additionally, improvements include structuring risk calculations and integrating a new Notion module for data retrieval and validation within the workflows-service.
File/Path | Change Summary |
---|---|
packages/rules-engine/package.json |
Added dependencies @types/jmespath , safe-eval , and @types/lodash.get ; updated versions of existing dependencies. |
packages/rules-engine/src/index.ts |
Refactored export to use createRuleEngine from lib/index and restructured type exports. |
packages/rules-engine/src/lib/custom-rule-engine/consts/default-context-paths.ts |
Introduced DefaultContextPath constant. |
packages/rules-engine/src/lib/custom-rule-engine/helpers/cast-compare-value.ts |
Added castCompareWithEval function for handling and evaluating values with special handling for JavaScript expressions. |
packages/rules-engine/src/lib/custom-rule-engine/helpers/cast-value.ts |
Introduced castValue function to convert strings based on specified casting options. |
packages/rules-engine/src/lib/custom-rule-engine/index.ts |
Added custom rule engine logic, including invokeRule function to evaluate rules. |
packages/rules-engine/src/lib/custom-rule-engine/operations/evaluate.ts |
Introduced evaluate function for custom rule evaluation. |
packages/rules-engine/src/lib/custom-rule-engine/operations/ubo-has-warning.ts |
Added uboHasWarning function to check warnings in context fields. |
packages/rules-engine/src/lib/custom-rule-engine/types/custom-rule-input/index.ts |
Defined CustomRuleInput type specifying rule input characteristics. |
packages/rules-engine/src/lib/custom-rule-engine/types/custom-rule-set/index.ts |
Introduced CustomRuleSet type defining rule set structure with operator and rules fields. |
packages/rules-engine/src/lib/custom-rule-engine/types/custom-rule/index.ts |
Added CustomRule interface for rule evaluation function signature. |
packages/rules-engine/src/lib/index.ts |
Introduced createRuleEngine , dynamically creating rule engines based on provider type. |
packages/rules-engine/src/lib/jmespath-rule-engine/index.ts |
Introduced JMESPathRuleEngine for evaluating JMESPath rules against context objects. |
packages/rules-engine/src/lib/custom-rule-engine/consts/custom-rule-cast-options.ts |
Added CustomRuleCastOptions constant with predefined casting options. |
packages/rules-engine/src/lib/custom-rule-engine/consts/custom-rule-operations.ts |
Introduced CustomRuleOperations with various rule operation strings. |
packages/rules-engine/src/lib/custom-rule-engine/consts/custom-rule-type.ts |
Added CustomRulesTypes constant with values 'evaluate' and 'uboHasWarning'. |
packages/workflow-core/src/index.ts |
Exported RiskCalculationInput type. |
packages/workflow-core/src/lib/index.ts |
Exported RiskCalculationInput type from types module. |
packages/workflow-core/src/lib/types.ts |
Reordered imports, added TNotionTableRiskCalculation type, and included in RiskCalculationInput definition. |
packages/workflow-core/src/lib/workflow-runner.ts |
Renamed Error enum to ErrorEnum , added invokeRiskCalculation method to ChildCallabackable interface. |
services/workflows-service/package.json |
Updated and added dependencies, including @ballerine/rules-engine-lib , @notionhq/client , and string-ts . |
services/workflows-service/src/integrations/notion/notion.module.ts |
Introduced NotionService class for interaction with the Notion API. |
services/workflows-service/src/integrations/notion/notion.service.ts |
Added NotionModule for NestJS module configuration. |
services/workflows-service/src/workflow/helpers/format-rule-violations.ts |
Introduced formatRuleViolations function for processing and formatting rule violations. |
services/workflows-service/src/workflow/schemas/ruleset-input-schema.ts |
Defined schema for custom rule violations and risk score options. |
services/workflows-service/src/workflow/types/rule-set-with-violation.ts |
Added RuleSetWithViolation type extending rule set group with additional properties. |
services/workflows-service/src/workflow/types/ruleset-group.ts |
Defined TCustomRulesetGroup and TRulesetGroup types for rule set structures. |
services/workflows-service/src/workflow/workflow.module.ts |
Imported NotionModule in @Module decorator. |
services/workflows-service/src/workflow/workflow.service.ts |
Added risk calculation logic and integrated NotionService , formatRuleViolations , and createRuleEngine . |
sequenceDiagram
participant Service as WorkflowService
participant Notion as NotionService
participant Rules as createRuleEngine
participant NotionAPI as Notion API
Service->>Notion: getAllDatabaseRecordsValues(databaseId, schema)
Notion->>NotionAPI: Request database records
NotionAPI-->>Notion: Return records
Notion->>Service: Transform and return values
Service->>Rules: createRuleEngine(rules)
Rules-->>Service: Return rule engine instance
Service->>Service: invokeRiskCalculation()
Service->>Service: process rule violations
In the code of day and night, 🌙
Rules were crafted, shining bright, ✨
With engines new and updates fine, 🔧
Risks calculated, through the line.
Notion's wisdom brought on board, 📚
To ensure rules scored and stored.
Let the workflows smoothly flow, 🌊
Into the future, let us go! 🚀
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
Snippet code for workflow ruleset
Summary by CodeRabbit
New Features
RiskCalculationInput
type for enhanced risk calculation.Enhancements
Integration
NotionService
for fetching and transforming Notion database records.Dependencies