dfpaulino / rule-evaluator-jpa Goto Github PK
View Code? Open in Web Editor NEWrule evaluator jpa starter
License: GNU General Public License v3.0
rule evaluator jpa starter
License: GNU General Public License v3.0
The controller should preform basic operation:
Delete operations should not be allowed, as it can leave the group (owner of the predicate) in a inconsistent state.
If its required to delete a predicate, it should be done on the group level (remove from the predicateSet)
do a full E2E integration tests using H2
Upgrade to Spring Boot 2.7.4
Validate the payloads.
validate Validity of the predicates.
Might use the Predicate Generator from the core module to validate if the predicate is valid.
Throw Custom Exception if not
use fabric8 plugin
Create a Custom Exception with proper exception Handling
Error
400 - for invalid payload
404 - rules/group/predicate not found
500 - for the rest
create REST API to force reload
POST - trigger as-sync reload
GET - get last successful reload Date
This is a break change, as it involves profound DTO changes and slight DB entity changes.
The Engine should remain.
Big Task ahead...
need to decompose this into smaller tasks to allow better traceability (TBD)
predicateLeafs
GroupComposite
Rule
create REST
add flyway to auto-create schema
The link to delete a childGroup is wrong. the ID of the parent is always 0, bit should be the ID of the parent group
"deleteChildGroup": { "href": "http://localhost:8080/groups/0/group/2" }
The parent group should be 1
When loading multiple rules, it seems its on a loop
#23 of the core rule-evaluator-core solves the issue
The rules-jpa needs to update the core library to 2.0.2
Creation by default is Active
Add end point to allow de-activation/activation of rules.
Only active rules are to be loaded :
API impacts
for ALL GETS on Rules
add field with Rule_state ACTIVE DEACTIVE
Also modify the get to allow filtering based on the request parameter to filter active(default), deactive or all
actions should have
There should be no direct CUD operations directly on Actions, as rules are composed by actions, which means, no actions should be allowed with no rule.
The actions should be created upon rule create. (Done)
create/delete operations should be using the rule Id (Done)
create action controller to allow to get ALL action Types currently on the system (TODO)
use MYSQL for the demo instead H2
H2 is fine for testing
create a controller based on hatoas
Create tests that will test the delete (ensure the it deletes cascade), and update entities
Rule
GroupComposites
PredicateLeafs
Add swagger for openApi documentation generation
Wiki with API spec
README.md
add Helm chart to allow deployment in a k8's cluster.
For the moment we will use minikube to test it out (as we dont have GKE cluster...)
this is to adapt to the core 2.0.0
[ https://github.com/dfpaulino/ruleEvaluatorService/issues/19 ]
Use OAuth2 to secure requests
User must test a JSONNode (plain Json object) through a series of rules.
the result should be a list applicable Rules
The Applicable Rules should be ordered by priority and should include
RuleName
Rule Prioriry
List
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.