RuleApi
RuleApi
2
2. Logout.................................................................................................................................... 3
3. Get session details................................................................................................................. 4
4. Is Session Valid.......................................................................................................................5
5. Get Rule Configuration.......................................................................................................... 6
6. Create New Rule.................................................................................................................... 8
7. Search Rule.......................................................................................................................... 10
8. Get Rule Details................................................................................................................... 12
9. Activate Rule........................................................................................................................14
10. Deactivate Rule................................................................................................................ 14
11. Delete Rule.......................................................................................................................15
12. Publish Rule..................................................................................................................... 15
13. State Diagram.................................................................................................................. 16
1. Login
Details User logins with this API and get the user details.
URL rule-api/ruleMnt/session/login
Method POST
Sample Request {
"loginName": "vijay",
"password" : "password"
}
Request Notes
Sample Response {
"responseCode":0,
"errorMessage":null,
"operationOutput":{
"operationMessage":"",
"sessionDetails":{
"operationMessage":"",
"sessionUser":{
"firstName":"Vijay",
"lastName":"G",
"emailId":"[email protected]",
"lastLoginTime":1555246561833
},
"authenticated":true,
"creationDate":1555246782575
}
},
"responseTime":289
}
Validations Authenticate user and create a session.
2. Logout
Details Logout user
URL rule-api/ruleMnt/session/logout
Method POST
Sample Request
Request Notes
Sample Response {
"responseCode":0,
"errorMessage":null,
"operationOutput":{
"operationMessage":"Logout successful!!!"
},
"responseTime":80
}
Validations Logout the user and invalidate session.
3. Get session details
Details Get session details
URL rule-api/ruleMnt/session/getsessiondetails
Method POST
Sample Request
Request Notes
Sample Response {
"responseCode":0,
"errorMessage":null,
"operationOutput":{
"operationMessage":"",
"sessionDetails":{
"operationMessage":"",
"sessionUser":{
"firstName":"Vijay",
"lastName":"G",
"emailId":"[email protected]",
"lastLoginTime":1555246782575
},
"authenticated":true,
"creationDate":1555247058152
}
},
"responseTime":46
}
Validations Make sure user is logged in.
4. Is Session Valid
Details Get session details
URL rule-api/ruleMnt/session/isvalid
Method GET
Sample Request
Request Notes
Sample Response {
"responseCode":0,
"errorMessage":null,
"operationOutput":{
"operationMessage":"",
"sessionValid":true
},
"responseTime":54
}
Validations
5. Get Rule Configuration
Details This API provide all the configuration supported by backend for rule
creation.
URL /rule-api/ruleMnt/getRuleConfiguration
Method GET
Sample Request
Request Notes
Sample Response {
"responseCode": 0,
"errorMessage": null,
"operationOutput": {
"operationMessage": "",
"ruleLanguages": [
{
"ruleLanguageId": "QUERY",
"description": "Query Language"
},
{
"ruleLanguageId": "TEXT",
"description": "Plain Text Language"
}
],
"ruleTypes": [
{
"ruleTypeId": "TRANSACTIONAL",
"description": "Transactional"
},
{
"ruleTypeId": "GOVERNANCE",
"description": "Governance"
}
],
"entities": [
{
"entityName": "Identity",
"entityTableName": "saix_identity",
"attributes": [
{
"attributeName": "Location",
"columnName": "location",
"datatype": "String",
"operations": [
"Equals",
"Not Equals"
]
},
{
"attributeName": "Email Address",
"columnName": "email",
"datatype": "String",
"operations": [
"Equals",
"Not Equals"
]
},
{
"attributeName": "Date of joining",
"columnName": "doj",
"datatype": "Date",
"operations": [
"Equals",
"Not Equals"
]
}
]
}
]
},
"responseTime": 63
}
Validations As there is no input there is no validations on server.
6. Create New Rule
Details Create rule in database with specified input. This rule will be created
with status PENDING_APPROVAL.
URL /rule-api/ruleMnt/createNewRule
Method POST
Sample Request {
"ruleName":"sampleRule8",
"ruleLanguage":"query",
"ruleType":"transactional",
"ruleText":"sample description7",
"ruleConditions":[
{
"entityTableName":"saix_identity",
"entityColumnName":"location",
"operation":"=",
"value":"ashburn"
},
{
"entityTableName":"saix_identity",
"entityColumnName":"location",
"operation":"=",
"value":"ashburn",
"type":"and"
}
]
}
Request Notes Rule Name: Alpha numeric rule name
Rule Type: GOVERNANCE or TRANSACTIONAL
Rule Language: One of the language return by getRuleLanguages api.
Rule Conditions: Atleast one rule condition should be given with
entityname, attribute, operation and value.
If more than one condition is given type should be given as And/Or
All these parameters are mandatory.
Sample Response {
"responseCode": 0,
"errorMessage": null,
"operationOutput": {
"operationMessage": "",
"ruleDefinition": {
"ruleId": 0,
"ruleName": "SampleRule",
"ruleLanguage": "QUERY",
"ruleType": "TRANSACTIONAL",
"ruleDescription": null,
"ruleScript": "saix_identity.location != 'ashburn' and
saix_application.name = 'box'",
"status": "DRAFT",
"activeFlag": false,
"deletedFlag": false,
"updateSeqNumber": 1,
"createdBy": 1,
"createdDate": 1553108611259,
"updatedBy": 1,
"updatedDate": 1553108611259,
"publishBy": 0,
"publishDate": null,
"approvers": null,
"affectedEntities": null,
"pythonScript": null,
"ruleConditions": [
{
"entityName": "identity",
"entityAttribute": "location",
"operation": "!=",
"value": "ashburn",
"type": null
},
{
"entityName": "application",
"entityAttribute": "name",
"operation": "=",
"value": "box",
"type": "and"
}
]
},
"message": "Rule SampleRule created successfully."
},
"responseTime": 54
Validations 1. Rule name cannot be null and should not be more than 250
characters
2. Rule Type and Rule language should be valid
3. Rule Language should be either QUERY
4. Rule Type should be either TRANSACTIONAL or GOVERNANCE
5. Atleast one rule condition should be given.
7. Search Rule
Details Returns list of rules and actions need to be performed on rule
URL /rule-api/ruleMnt/searchRules
Method POST
Sample Request {
"ruleName":"application",
"ruleType":"governance",
"status":"draft",
"createdBy":1
}
Request Notes Rule Name: Alpha numeric rule name. All the rules containing the search
criteria will be displayed.
Rule Type: GOVERNANCE or TRANSACTIONAL
Status: status of the rule
Atleast one of the parameter is mandatory.
Sample Response {
"responseCode": 0,
"errorMessage": null,
"operationOutput": {
"operationMessage": "",
"ruleDefinition": [
{
"ruleId": 151,
"ruleName": "application_rule3",
"ruleLanguage": "QUERY",
"ruleType": "GOVERNANCE",
"ruleDescription": "Application with no owner",
"ruleScript": "saix_application.state == '0' &
saix_application.owner == ''",
"status": "DRAFT",
"activeFlag": false,
"deletedFlag": false,
"updateSeqNumber": 1,
"createdBy": 1,
"createdDate": 1554091200000,
"updatedBy": 1,
"updatedDate": 1554091200000,
"publishBy": 0,
"publishDate": null,
"approvers": null,
"ruleActionEnum": [
"UPDATE",
"SUBMIT_FOR_ADMIN_REVIEW",
"SUSPEND"
],
"ruleConditions": [
{
"entityTableName": "saix_application",
"entityColumnName": "state",
"operation": "Equals",
"value": "0",
"type": null
},
{
"entityTableName": "saix_application",
"entityColumnName": "owner",
"operation": "Equals",
"value": "",
"type": "and"
}
],
},
{
"ruleId": 149,
"ruleName": "application_rule1",
"ruleLanguage": "QUERY",
"ruleType": "GOVERNANCE",
"ruleDescription": "High risk user having access sensitive
application",
"ruleScript": "saix_identity.active_riskscore == 'RED' &
saix_application.category == 'SENSTIVE'",
"status": "DRAFT",
"activeFlag": false,
"deletedFlag": false,
"updateSeqNumber": 1,
"createdBy": 1,
"createdDate": 1554091200000,
"updatedBy": 1,
"updatedDate": 1554091200000,
"publishBy": 0,
"publishDate": null,
"approvers": null,
"ruleActionEnum": [
"UPDATE",
"SUBMIT_FOR_ADMIN_REVIEW",
"SUSPEND"
],
"ruleConditions": [
{
"entityTableName": "saix_identity",
"entityColumnName": "active_riskscore",
"operation": "equals",
"value": "RED",
"type": null
},
{
"entityTableName": "saix_application",
"entityColumnName": "category",
"operation": "equals",
"value": "SENSTIVE",
"type": "and"
}
],
},
{
"ruleId": 150,
"ruleName": "application_rule2",
"ruleLanguage": "QUERY",
"ruleType": "GOVERNANCE",
"ruleDescription": "Orphan account having privilege
access",
"ruleScript": "saix_account.active_riskscore == 'RED' &
saix_account.linkedtoidentity == ''",
"status": "DRAFT",
"activeFlag": false,
"deletedFlag": false,
"updateSeqNumber": 1,
"createdBy": 1,
"createdDate": 1554091200000,
"updatedBy": 1,
"updatedDate": 1554091200000,
"publishBy": 0,
"publishDate": null,
"approvers": null,
"ruleActionEnum": [
"UPDATE",
"SUBMIT_FOR_ADMIN_REVIEW",
"SUSPEND"
],
"ruleConditions": [
{
"entityTableName": "saix_account",
"entityColumnName": "active_riskscore",
"operation": "equals",
"value": "RED",
"type": null
},
{
"entityTableName": "saix_account",
"entityColumnName": "linkedtoidentity",
"operation": "equals",
"value": "60",
"type": "and"
}
],
}
],
},
"responseTime": 25
}
Validations This is the API to see the rules. Atleast one of the input parameter must
be given.
9. Activate Rule
Details Activate flag is set to true in database
URL /rule-api/ruleMnt/activateRule
Method POST
Sample Request {
"ruleName":"sampleRule"
}
Request Notes Rule Name: Alpha numeric rule name
Rule name parameter is mandatory.
Sample Response {
"responseCode": 0,
"errorMessage": null,
"operationOutput": {
"operationMessage": "Rule sampleRule activated successfully."
},
"responseTime": 55
}
Validations 1. Rule should exist in database inorder to be activated
Notes 1. What should be status of a rule when it is activated?
Start
Draft
Admin review
completed
Pending_Approval
Approved
Published
Preview State is available for
1. Pending review
2. Review Completed
3. Pending approval
4. Approved
5. Published