0% found this document useful (0 votes)
1 views

RuleApi

The document outlines a set of APIs for managing user sessions and rules within a system, including login, logout, and various rule-related operations such as creating, searching, activating, deactivating, deleting, and publishing rules. Each API is described with details such as URL, method, sample requests and responses, and validation requirements. The document serves as a comprehensive reference for developers implementing these functionalities.

Uploaded by

phanindra.banda
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1 views

RuleApi

The document outlines a set of APIs for managing user sessions and rules within a system, including login, logout, and various rule-related operations such as creating, searching, activating, deactivating, deleting, and publishing rules. Each API is described with details such as URL, method, sample requests and responses, and validation requirements. The document serves as a comprehensive reference for developers implementing these functionalities.

Uploaded by

phanindra.banda
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 17

1. Login......................................................................................................................................

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.

8. Get Rule Details


Details Returns Rule Details
URL /rule-api/ruleMnt/getRuleDetails
Method POST
Sample Request {
"ruleName":"application_rule1"
}
Request Notes Rule Name: Alpha numeric rule name.
Rule name is mandatory
Sample Response {
"responseCode": 0,
"errorMessage": null,
"operationOutput": {
"operationMessage": "",
"ruleDefinition": [
{
"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"
}
],
}
],
},
"responseTime": 20
}
Validations This is the API to see the ruleparticular rule. So there are no validations

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?

10. Deactivate Rule


Details Activate flag is set to false in database.
URL /rule-api/ruleMnt/deactivateRule
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 deactivated successfully."
},
"responseTime": 50
}
Validations 1. Rule should exist in database inorder to be deactivated

11. Delete Rule


Details Delete flag is set to true in database.
URL /rule-api/ruleMnt/deleteRule
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 deleted successfully."
},
"responseTime": 764
}
Validations Rule name should not be null.

12. Publish Rule


Details Status is set to PUBLISHED when user publishes the rule
URL /rule-api/ruleMnt/publishRule
Method POST
Sample Request {
"ruleName":"sampleRule5"
}
Request Notes Rule Name: Alpha numeric rule name
Rule name parameter is mandatory.
Sample Response {
"responseCode": 0,
"errorMessage": null,
"operationOutput": {
"operationMessage": "Rule sampleRule5 published successfully."
},
"responseTime": 65
}
Validations 1. Rule should exist in database inorder to be published
Notes 1. If activeflag is true then status will automatically PUBLISHED
2. If activeflag is false then this api will set activeflag to true and
then change the status to PUBLISHED.

13. State Diagram

Start

Rule is modified by saix_admin

Draft

Admin review
completed

Pending_Preview Review_Completed Suspended

Pending_Approval

Submit for approval

Approved

Published to front end

Published
Preview State is available for
1. Pending review
2. Review Completed
3. Pending approval
4. Approved
5. Published

You might also like