Overview
Faecal sludge management (FSM) is a system that enables citizen to raise a request for septic tank cleaning with there ULB’s directly or reaching out to ULB counter. Citizen can track the application, make a payment for the charges and rate the service. This document contains the details about how to setup the fsm and describes the functionalities it provides.
...
Deploy the latest version of fsm
Add fsm-persister.yml file in config folder in git and add that path in persister . (The file path is to be added in environment yaml file in param called
persist-yml-path
)If index are to be created add the indexer config path in indexer service. (The file path is to be added in environment yaml file in param called
egov-indexer-yaml-repo-path
)
Configuration Details
MDMS Configuration
Add master data in MDMS service with module name as FSM
. Following is some sample master data for
Application Channel ( Source )
Code Block |
---|
{
"tenantId": "pb",
"moduleName": "FSM",
"ApplicationChannel": [
{
"name": "Telephone",
"code": "TELEPHONE",
"active": true,
"citizenOnly":false
},
{
"name": "Counter",
"code": "COUNTER",
"active": true,
"citizenOnly":false
},
{
"name": "Online",
"code": "ONLINE",
"active": true,
"citizenOnly":true
}
]
} |
CheckList ( Checklist to be answered by citizen while rating )
Code Block |
---|
{
"tenantId": "pb",
"moduleName": "FSM",
"CheckList": [{
"code": "SPILAGE",
"active": true,
"required": true,
"type": "SINGLE_SELECT",
"options": [
"YES",
"NO",
"NA"
]
},
{
"code": "SAFETY_GEARS_USED",
"active": true,
"type": "MULTI_SELECT",
"required": true,
"options": [
"EYE_GEAR",
"HAND_GLOVES",
"NOSE_MASK"
]
}
]
} |
Config ( Configuration at application level )
Code Block |
---|
{
"tenantId": "pb",
"moduleName": "FSM",
"Config": [
{
"code":"noOfTrips",
"override":false,
"default":1,
"active":true,
"description":"override:true indicates, noOfTrips poperty is allowed to override in FSM."
},
{
"code":"additionalDetails.tripAmount",
"override":false,
"active":true,
"description":"override:true indicates, tripAmount poperty is allowed to override in FSM."
},
{
"code":"slumName",
"override":true,
"active":true,
"description":"override:true indicates, tripAmount poperty is allowed to override in FSM."
},
{
"code":"ALLOW_MODIFY",
"WFState":"CREATED",
"override":[
"propertyUsage",
"vehicleType",
"sanitationtype",
"address.pincode",
"address.city",
"address.locality",
"address.street",
"address.doorNo",
"address.landmark",
"pitDetail"
],
"active":true,
"description":"properties in override allowed to modify when FSM application moving from CREATED Status to next status."
}
]
} |
FSTP Plant Info ( FSTP information for each city )
Code Block |
---|
{
"tenantId": "pb",
"moduleName": "FSM",
"FSTPPlantInfo": [
{
"PlantCode": "AMR001",
"PlantName": "Amritsar FSTP",
"active": true,
"PlantType":"FSTP",
"PlantLocation":"Amritsar",
"PlusCode":"JQ2R+7G Khapar Kheri, Punjab",
"PlantOperationalTimings":"10.00am-08.00pm",
"PlantOperationalCapacityKLD":"50",
"ULBS":"ppb.jalandhar,pb.amritsar"
},
{
"PlantCode": "MOH002",
"PlantName": "Mohali SeTPP",
"active": true,
"PlantType":"SeTP",
"PlantLocation":"Mohali",
"PlusCode":"MPFQ+V2 Sahibzada Ajit Singh Nagar, Punjab",
"PlantOperationalTimings":"10.00am-06.00pm",
"PlantOperationalCapacityKLD":"100",
"ULBS":"pb.mohali"
}
]
} |
PitType ( Type of pit )
Code Block |
---|
{
"tenantId": "pb",
"moduleName": "FSM",
"PitType": [
{
"name": "Conventional septic tank",
"code": "CONVENTIONAL_SPECTIC_TANK",
"active": true,
"dimension":"lbd"
},
{
"name": "Septic tank with soak pit",
"code": "SEPTIC_TANK_WITH_SOAK_PIT",
"active": true,
"dimension":"dd"
}
]
} |
Property Type
Code Block |
---|
{
"tenantId": "pb",
"moduleName": "FSM",
"PropertyType": [
{
"name": "Residential",
"code": "RESIDENTIAL",
"active": true,
"minAmount":"100",
"maxAmount":"500"
},
{
"name": "Independent House",
"code": "RESIDENTIAL.INDEPENDENT_HOUSE",
"active": true,
"propertyType": "RESIDENTIAL",
"minAmount":"100",
"maxAmount":"300"
},
{
"name": "Apartment",
"code": "RESIDENTIAL.APARTMENT",
"active": true,
"propertyType": "RESIDENTIAL",
"minAmount":"400",
"maxAmount":"600"
},
{
"name": "Row Houses",
"code": "RESIDENTIAL.ROW_HOUSES",
"active": true,
"propertyType": "RESIDENTIAL",
"minAmount":"700",
"maxAmount":"900"
},
{
"name": "Commercial",
"code": "COMMERCIAL",
"active": true,
"minAmount":"2000",
"maxAmount":"5000"
},
{
"name": "Community Toilets",
"code": "COMMERCIAL.COMMUNITY_TOILETS",
"active": true,
"propertyType": "COMMERCIAL",
"minAmount":"1000",
"maxAmount":"1200"
},
{
"name": "Hotel",
"code": "COMMERCIAL.HOTEL",
"active": true,
"propertyType": "COMMERCIAL",
"minAmount":"1300",
"maxAmount":"1500"
},
{
"name": "Restaurant",
"code": "COMMERCIAL.RESTAURANT",
"active": true,
"propertyType": "COMMERCIAL",
"minAmount":"1600",
"maxAmount":"1800"
},
{
"name": "Shopping Mall",
"code": "COMMERCIAL.SHOPPING_MALL",
"active": true,
"propertyType": "COMMERCIAL",
"minAmount":"1900",
"maxAmount":"2100"
},
{
"name": "Community hall",
"code": "COMMERCIAL.COMMUNITY_HALL",
"active": true,
"propertyType": "COMMERCIAL",
"minAmount":"2200",
"maxAmount":"2500"
},
{
"name": "Bank",
"code": "COMMERCIAL.BANK",
"active": true,
"propertyType": "COMMERCIAL",
"minAmount":"2600",
"maxAmount":"2800"
},
{
"name": "Private office",
"code": "COMMERCIAL.PRIVATE_OFFICE",
"active": true,
"propertyType": "COMMERCIAL",
"minAmount":"2900",
"maxAmount":"3200"
},
{
"name": "Market",
"code": "COMMERCIAL.MARKET",
"active": true,
"propertyType": "COMMERCIAL",
"minAmount":"3300",
"maxAmount":"3500"
},
{
"name": "Hostel",
"code": "COMMERCIAL.HOSTEL",
"active": true,
"propertyType": "COMMERCIAL",
"minAmount":"3600",
"maxAmount":"3900"
},
{
"name": "Warehouse",
"code": "COMMERCIAL.WAREHOUSE",
"active": true,
"propertyType": "COMMERCIAL",
"minAmount":"400",
"maxAmount":"4200"
},
{
"name": "Petrol pumps",
"code": "COMMERCIAL.PETROL_PUMPS",
"active": true,
"propertyType": "COMMERCIAL",
"minAmount":"4300",
"maxAmount":"4500"
},
{
"name": "Resort",
"code": "COMMERCIAL.RESORT",
"active": true,
"propertyType": "COMMERCIAL",
"minAmount":"4600",
"maxAmount":"4800"
},
{
"name": "Theme park",
"code": "COMMERCIAL.THEME_PARK",
"active": true,
"propertyType": "COMMERCIAL",
"minAmount":"4900",
"maxAmount":"5100"
},
{
"name": "Sports center",
"code": "COMMERCIAL.SPORTS_CENTER",
"active": true,
"propertyType": "COMMERCIAL",
"minAmount":"5200",
"maxAmount":"5500"
},
{
"name": "Institutional",
"code": "INSTITUTIONAL",
"active": true,
"minAmount":"1000",
"maxAmount":"3000"
},
{
"name": "Temple",
"code": "INSTITUTIONAL.TEMPLE",
"active": true,
"propertyType": "INSTITUTIONAL",
"minAmount":"5600",
"maxAmount":"5900"
},
{
"name": "Mosque",
"code": "INSTITUTIONAL.MOSQUE",
"active": true,
"propertyType": "INSTITUTIONAL",
"minAmount":"6000",
"maxAmount":"6200"
},
{
"name": "Church",
"code": "INSTITUTIONAL.CHURCH",
"active": true,
"propertyType": "INSTITUTIONAL",
"minAmount":"6300",
"maxAmount":"6500"
},
{
"name": "Gurudwara",
"code": "INSTITUTIONAL.GURUDWARA",
"active": true,
"propertyType": "INSTITUTIONAL",
"minAmount":"6600",
"maxAmount":"6800"
},
{
"name": "Monastery",
"code": "INSTITUTIONAL.MONASTERY",
"active": true,
"propertyType": "INSTITUTIONAL",
"minAmount":"6900",
"maxAmount":"7200"
},
{
"name": "School",
"code": "INSTITUTIONAL.SCHOOL",
"active": true,
"propertyType": "INSTITUTIONAL",
"minAmount":"7300",
"maxAmount":"7500"
},
{
"name": "College",
"code": "INSTITUTIONAL.COLLEGE",
"active": true,
"propertyType": "INSTITUTIONAL",
"minAmount":"7600",
"maxAmount":"7900"
},
{
"name": "University",
"code": "INSTITUTIONAL.UNIVERSITY",
"active": true,
"propertyType": "INSTITUTIONAL",
"minAmount":"8000",
"maxAmount":"8200"
},
{
"name": "Anganwadi",
"code": "INSTITUTIONAL.ANGANWADI",
"active": true,
"propertyType": "INSTITUTIONAL",
"minAmount":"8300",
"maxAmount":"8500"
},
{
"name": "Training Institutes",
"code": "INSTITUTIONAL.TRAINING_INSTITUTES",
"active": true,
"propertyType": "INSTITUTIONAL",
"minAmount":"8600",
"maxAmount":"8800"
},
{
"name": "Hospital",
"code": "INSTITUTIONAL.HOSPITAL",
"active": true,
"propertyType": "INSTITUTIONAL",
"minAmount":"8900",
"maxAmount":"9200"
},
{
"name": "Nursing home",
"code": "INSTITUTIONAL.NURSING_HOME",
"active": true,
"propertyType": "INSTITUTIONAL",
"minAmount":"9300",
"maxAmount":"9500"
},
{
"name": "Community health center",
"code": "INSTITUTIONAL.COMMUNITY_HEALTH_CENTER",
"active": true,
"propertyType": "INSTITUTIONAL",
"minAmount":"9400",
"maxAmount":"9600"
},
{
"name": "Jail",
"code": "INSTITUTIONAL.JAIL",
"active": true,
"propertyType": "INSTITUTIONAL",
"minAmount":"9700",
"maxAmount":"1000"
},
{
"name": "Police station",
"code": "INSTITUTIONAL.POLICE_STATION",
"active": true,
"propertyType": "INSTITUTIONAL",
"minAmount":"10100",
"maxAmount":"10500"
}
]
} |
Slum ( Slums mapped to the locality of the city )
Code Block |
---|
{
"tenantId": "pb",
"moduleName": "FSM",
"Slum": [{
"code": "SL0001",
"active": true,
"name": "Kathagada juanga sahi",
"locality": "SUN20"
},
{
"code": "SL0002",
"active": true,
"name": "Kathagada Parbatia Sahi",
"locality": "SUN20"
},
{
"code": "SL0003",
"active": true,
"name": "Gangadhar Sahi",
"locality": "SUN35"
},
{
"code": "SL0004",
"active": true,
"name": "Pandab Nagar",
"locality": "SUN35"
},
{
"code": "SL0005",
"active": true,
"name": "Haridakhandi Harijana sahi",
"locality": "SUN35"
},
{
"code": "SL0006",
"active": true,
"name": "Haridakhandi Kadalibada Sahi",
"locality": "SUN55"
},
{
"code": "SL0007",
"active": true,
"name": "Haridakhandi Bada sahi",
"locality": "SUN55"
},
{
"code": "SL0008",
"active": true,
"name": "Haridakhandi Redika Sahi",
"locality": "SUN55"
},
{
"code": "SL0009",
"active": true,
"name": "Golapali Sahi",
"locality": "SUN18"
},
{
"code": "SL0010",
"active": true,
"name": "Surya Nagar",
"locality": "SUN18"
},
{
"code": "SL0011",
"active": true,
"name": "Damba Sahi",
"locality": "SUN18"
},
{
"code": "SL0012",
"active": true,
"name": "Raju Dhoba Sahi",
"locality": "SUN08"
}
]
} |
Business Service / Workflow Configuration
Create businessService (workflow configuration) using the /businessservice/_create
. Following is the product configuration for FSM:
Code Block |
---|
{
"RequestInfo": {
"apiId": "Rainmaker",
"action": "",
"did": 1,
"key": "",
"msgId": "20170310130900|en_IN",
"requesterId": "",
"ts": 1513579888683,
"ver": ".01",
"authToken": "{{devAuth}}",
"userInfo": {
"id": 73,
"userName": null,
"name": null,
"type": "EMPLOYEE",
"mobileNumber": null,
"emailId": null,
"roles": [
{
"id": 2,
"name": "Customer Support Representative",
"code": null,
"tenantId": null
}
],
"tenantId": null,
"uuid": "uuid"
}
},
"BusinessServices": [
{
"tenantId": "pb.amritsar",
"uuid": "047a541b-ed5e-46aa-9fee-24c9674be9c3",
"businessService": "FSM",
"business": "fsm",
"businessServiceSla": 5184000000,
"states": [
{
"tenantId": "pb.amritsar",
"sla": null,
"state": null,
"applicationStatus": null,
"docUploadRequired": false,
"isStartState": true,
"isTerminateState": false,
"isStateUpdatable": true,
"actions": [
{
"tenantId": "pb.amritsar",
"action": "CREATE",
"nextState": "CREATED",
"roles": [
"CITIZEN"
]
},
{
"tenantId": "pb.amritsar",
"action": "APPLY",
"nextState": "PENDING_APPL_FEE_PAYMENT",
"roles": [
"FSM_CREATOR_EMP"
]
}
]
},
{
"tenantId": "pb.amritsar",
"sla": null,
"state": "CREATED",
"applicationStatus": "CREATED",
"docUploadRequired": false,
"isStartState": false,
"isTerminateState": false,
"isStateUpdatable": true,
"actions": [
{
"tenantId": "pb.amritsar",
"action": "SUBMIT",
"nextState": "PENDING_APPL_FEE_PAYMENT",
"roles": [
"FSM_EDITOR_EMP"
]
},
{
"tenantId": "pb.amritsar",
"action": "REJECT",
"nextState": "REJECTED",
"roles": [
"FSM_ADMIN"
]
}
]
},
{
"tenantId": "pb.amritsar",
"sla": null,
"state": "PENDING_APPL_FEE_PAYMENT",
"applicationStatus": "PENDING_APPL_FEE_PAYMENT",
"docUploadRequired": false,
"isStartState": false,
"isTerminateState": false,
"isStateUpdatable": true,
"actions": [
{
"tenantId": "pb.amritsar",
"action": "CANCEL",
"nextState": "CANCELED",
"roles": [
"FSM_ADMIN"
]
},
{
"tenantId": "pb.amritsar",
"action": "PAY",
"nextState": "ASSIGN_DS0",
"roles": [
"CITIZEN",
"FSM_COLLECTOR"
]
},
{
"tenantId": "pb.amritsar",
"action": "SENDBACK",
"nextState": "CREATED",
"roles": [
"FSM_ADMIN"
]
}
]
},
{
"tenantId": "pb.amritsar",
"sla": null,
"state": "ASSING_DSO",
"applicationStatus": "ASSING_DSO",
"docUploadRequired": false,
"isStartState": false,
"isTerminateState": false,
"isStateUpdatable": true,
"actions": [
{
"tenantId": "pb.amritsar",
"action": "CANCEL",
"nextState": "CANCELED",
"roles": [
"FSM_ADMIN"
]
},
{
"tenantId": "pb.amritsar",
"action": "ASSIGN",
"nextState": "PENDING_DSO_APPROVAL",
"roles": [
"FSM_EDITOR_EMP"
]
},
{
"tenantId": "pb.amritsar",
"action": "SENDBACK",
"nextState": "PENDING_APPL_FEE_PAYMENT",
"roles": [
"FSM_ADMIN"
]
}
]
},
{
"tenantId": "pb.amritsar",
"sla": null,
"state": "DSO_REJECTED",
"applicationStatus": "DSO_REJECTED",
"docUploadRequired": false,
"isStartState": false,
"isTerminateState": false,
"isStateUpdatable": true,
"actions": [
{
"tenantId": "pb.amritsar",
"action": "ASSIGN",
"nextState": "PENDING_DSO_APPROVAL",
"roles": [
"FSM_EDITOR_EMP"
]
},
{
"tenantId": "pb.amritsar",
"action": "CANCEL",
"nextState": "CANCELED",
"roles": [
"FSM_ADMIN"
]
},
{
"tenantId": "pb.amritsar",
"action": "SENDBACK",
"nextState": "PENDING_DSO_APPROVAL",
"roles": [
"FSM_ADMIN"
]
}
]
},
{
"tenantId": "pb.amritsar",
"sla": null,
"state": "DSO_INPROGRESS",
"applicationStatus": "DSO_INPROGRESS",
"docUploadRequired": false,
"isStartState": false,
"isTerminateState": false,
"isStateUpdatable": true,
"actions": [
{
"tenantId": "pb.amritsar",
"action": "COMPLETED",
"nextState": "CITIZEN_FEEDBACK_PENDING",
"roles": [
"FSM_DSO",
"FSM_EDITOR_EMP"
]
},
{
"tenantId": "pb.amritsar",
"action": "DECLINE",
"nextState": "ASSIGN_DS0",
"roles": [
"FSM_DSO"
]
},
{
"tenantId": "pb.amritsar",
"action": "CANCEL",
"nextState": "CANCELED",
"roles": [
"FSM_ADMIN"
]
} |
...
] |
...
}, { "tenantId": "pb.amritsar", |
...
|
...
"sla": |
...
null, |
...
" |
...
state": "PENDING_DSO_APPROVAL", |
...
"applicationStatus": "PENDING_DSO_APPROVAL", "docUploadRequired": false, " |
...
isStartState": false, "isTerminateState": false, |
...
"isStateUpdatable": true, |
...
"actions": [ |
...
|
...
{ |
...
"tenantId": "pb.amritsar", " |
...
action": |
...
"DSO_ACCEPT", |
...
"nextState": " |
...
DSO_ |
...
INPROGRESS", |
...
"roles": [ |
...
|
...
|
...
|
...
"FSM_DSO" |
...
|
...
] |
...
|
...
|
...
}, { "tenantId": "pb.amritsar", "action": " |
...
CANCEL", "nextState": " |
...
CANCELED", "roles": [ "FSM_ |
...
ADMIN" ] }, { "tenantId": "pb.amritsar", "action": " |
...
SENDBACK", "nextState": " |
...
ASSIGN_DS0", "roles": [ "FSM_ADMIN" ] }, { "tenantId": "pb.amritsar", "action": " |
...
DSO_REJECT", "nextState": " |
...
DSO_ |
...
REJECTED", "roles": [ "FSM_ |
...
DSO" ] } |
...
] |
...
}, |
...
{ |
...
" |
...
tenantId": " |
...
pb.amritsar", "sla": null, " |
...
state": " |
...
COMPLETED", "applicationStatus": "COMPLETED", |
...
|
...
"docUploadRequired": false, |
...
"isStartState": false, "isTerminateState": true, |
...
"isStateUpdatable": false, |
...
|
...
"actions": null }, { |
...
|
...
"tenantId": "pb.amritsar",
"sla": null,
"state": " |
...
REJECTED", "applicationStatus": " |
...
REJECTED", "docUploadRequired": false, "isStartState": false, "isTerminateState": true, "isStateUpdatable": false, "actions": null }, { "tenantId": "pb.amritsar", "sla": null, "state": " |
...
CANCELED", "applicationStatus": " |
...
CANCELED", "docUploadRequired": false, "isStartState": false, "isTerminateState": true, "isStateUpdatable": false, "actions": null }, { "tenantId": "pb.amritsar", "sla": null, "state": " |
...
CITIZEN_FEEDBACK_PENDING", "applicationStatus": " |
...
CITIZEN_FEEDBACK_PENDING", "docUploadRequired": false, "isStartState": false, "isTerminateState": |
...
false, "isStateUpdatable": false, "actions": |
...
[ |
...
|
...
{
|
...
"tenantId": "pb.amritsar", |
...
|
...
|
...
|
...
" |
...
action": " |
...
SUBMIT_FEEDBACK |
...
", |
...
|
...
|
...
" |
...
nextState": |
...
"COMPLETED", |
...
|
...
"roles": |
...
[ |
...
|
...
" |
...
CITIZEN" |
...
|
...
|
...
] |
...
} |
...
] |
...
|
...
} ] } |
...
]
} |
Localization Setup
Using /localization/messages/v1/_upsert
, add localisation (templates) for notification messages to be sent. Following are the product notification templates:
Code Block |
---|
{ |
...
"messages":[ { |
...
" |
...
code": |
...
"FSM_SMS_CREATED_CREATE", "message": "Dear Applicant,Your application for cleaning septic tank/pit is created with application reference no.<2>.You will be |
...
notified to make an application fee shortly.Request is expected to be completed within 24hrs of making the payment.", |
...
"module": "rainmaker-common", "locale": "en_IN" |
...
}, |
...
{ |
...
|
...
|
...
Using /localization/messages/v1/_upsert
, add localisation (templates) for notification messages to be sent. Following are the product notification templates:
...
" |
...
code": "FSM_SMS |
...
_PENDING_APPL_FEE_PAYMENT_SUBMIT", "message": "Dear Applicant, |
...
Please pay the application fee Rs.<AMOUNT_TO_BE_PAID>/- for cleaning the septic tank/pit |
...
with |
...
request |
...
number |
...
<2>. |
...
Click |
...
this |
...
link |
...
<PAY_LINK> to make |
...
the payment.Request is expected to be completed within 24hrs of making the payment.", "module": "rainmaker-common", "locale": "en_IN" }, |
...
{
"code": "FSM_SMS_PENDING_APPL_FEE_PAYMENT_ |
...
APPLY", "message": "Dear Applicant, |
...
Your application |
...
for cleaning |
...
septic tank /pit is created with |
...
application number <2>. |
...
Please click this link <PAY_LINK> to |
...
pay the application fee for processing the |
...
application.Request is expected to be completed within 24hrs of making the payment.", "module": "rainmaker-common", "locale": "en_IN" }, { "code": "FSM_SMS_ |
...
ASSING_ |
...
DSO_PAY", "message": "Dear Applicant, |
...
Amount of Rs.<AMOUNT_TO_BE_PAID>/- is received towards the payment of cleaning septic tank /pit with reference no. <RECEIPT_NO>.You will be notified when an operator is |
...
assigned |
...
to |
...
a |
...
request. |
...
Please click this link |
...
<RECEIPT_LINK> to |
...
download the |
...
receipt", |
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
"module": "rainmaker-common", "locale": "en_IN" }, { "code": "FSM_SMS_ |
...
DSO_INPROGRESS_DSO_ |
...
ACCEPT", "message": "Dear Applicant, |
...
Vehicle <VEHICLE_REG_NO> will be reaching your location to clean the septic tank |
...
/pit |
...
on <POSSIBLE_SERVICE_DATE> with reference to your application number <2>. You can contact the operator in +91 <DSO_MOBILE_NUMBER>.", "module": "rainmaker-common", "locale": "en_IN" }, { "code": "FSM_SMS_ |
...
CITIZEN_ |
...
FEEDBACK_ |
...
PENDING_ |
...
COMPLETED", "message": "Dear Applicant, |
...
Your request for cleaning septic tank/pit |
...
is completed.Please take some time to |
...
rate |
...
us using the link <FSM_APPL_LINK>.", "module": "rainmaker-common", "locale": "en_IN" }, { "code": "FSM_SMS_ |
...
REJECTED_REJECT", "message": "Dear Applicant, Your request for cleaning the septic tank/pit is |
...
rejected |
...
with |
...
the |
...
reason <FSM_DSO_REJECT_REASON> . Please use this link |
...
<NEW_ |
...
FSM_LINK> to create a new request if needed.", "module": "rainmaker-common", "locale": "en_IN" }, { "code": "FSM_SMS_ |
...
CANCELED_ |
...
CANCEL", "message": "Dear Applicant, Your request for cleaning the septic tank/pit is |
...
cancelled with the reason <FSM_ |
...
CANCEL_REASON> . Please use this link <NEW_FSM_LINK> to create a new request if needed.", "module": "rainmaker-common", "locale": "en_IN" } |
...
|
...
]
} |
Actions & Role Action Mapping
Add Role-Action mapping for the API’s in MDMS. Following are the required entries. They should be mapped to both CITIZEN and appropriate employee roles.
Action Configuration
Code Block |
---|
{ " |
...
id": |
...
{{PLACEHOLDER1}}, " |
...
name": " |
...
Create FSM Application", "url": "/fsm/v1/_create", "displayName": "Apply FSM", "orderNumber": 0, "enabled": false, " |
...
serviceCode": " |
...
FSM", |
...
"code": "null", " |
...
path": " |
...
"
|
...
}, |
...
{ "id": {{ |
...
PLACEHOLDER2}}, "name": " |
...
Search FSM Application", "url": "/fsm/v1/_ |
...
search", "displayName": " |
...
Search FSM Appliacations", "orderNumber": |
...
1, "enabled": false, "serviceCode": "FSM", "code": "null", "path": "" }, { "id": |
...
{{ |
...
PLACEHOLDER3}}, "name": " |
...
Update FSM Application", "url": "/fsm/v1/_ |
...
update", "displayName": " |
...
Update FSM |
...
",
"orderNumber": |
...
0, "enabled": false, "serviceCode": "FSM", "code": "null", "path": "" }, |
...
{
"id": {{ |
...
PLACEHOLDER4}}, "name": " |
...
FSM Application Charge Payment Search", "url": "/ |
...
collection-services/payments/FSM.TRIP_CHARGES/_ |
...
search", "displayName": " |
...
FSM Application Charge Payment Search", "orderNumber": 1, "parentModule": |
...
"", "enabled": false, "serviceCode": " |
...
",
"code": "null",
"path": ""
},
|
...
{ "id": {{ |
...
PLACEHOLDER5}}, "name": "FSM Application |
...
Audit |
...
Search",
"url": "/ |
...
fsm/ |
...
v1/ |
...
_audit", "displayName": "FSM Application |
...
Audit |
...
serach", "orderNumber": 1, "parentModule": "", "enabled": false, "serviceCode": "", "code": "null", "path": "" }, |
Role Action Mapping
Code Block |
---|
[ { |
...
"rolecode": "CITIZEN", " |
...
actionid": "{{ |
...
PLACEHOLDER1}}", |
...
" |
...
actioncode": " |
...
",
|
...
" |
...
tenantId": " |
...
pb" }, { " |
...
rolecode": "FSM |
...
_CREATOR_EMP", |
...
" |
...
actionid": |
...
"{{PLACEHOLDER1}}", |
...
" |
...
actioncode": "", |
...
"tenantId": " |
...
pb" |
...
...
}, { " |
...
rolecode": "CITIZEN", |
...
" |
...
actionid": " |
...
{{PLACEHOLDER2}}", |
...
" |
...
actioncode": "", "tenantId": "pb" }, |
...
|
...
{
"rolecode": " |
...
FSM_CREATOR_EMP", "actionid": "{{ |
...
PLACEHOLDER2}}", "actioncode": "", "tenantId": "pb" }, { "rolecode": "FSM_ |
...
EDITOR_EMP", "actionid": "{{ |
...
PLACEHOLDER2}}", "actioncode": "", "tenantId": "pb" }, { "rolecode": " |
...
FSM_VIEW_EMP", "actionid": "{{PLACEHOLDER2}}", "actioncode": "", "tenantId": "pb" }, { "rolecode": "FSM_ |
...
ADMIN", "actionid": "{{PLACEHOLDER2}}", "actioncode": "", "tenantId": "pb" }, { "rolecode": "FSM_ |
...
DSO", "actionid": "{{PLACEHOLDER2}}", "actioncode": "", "tenantId": "pb" }, { "rolecode": "FSM_ |
...
DRIVER", "actionid": "{{PLACEHOLDER2}}", "actioncode": "", "tenantId": "pb" }, { "rolecode": "FSM_ |
...
EMP_FSTPO", "actionid": "{{PLACEHOLDER2}}", "actioncode": "", "tenantId": "pb" }, { "rolecode": "FSM_ |
...
COLLECTOR", "actionid": "{{PLACEHOLDER2}}", "actioncode": "", "tenantId": "pb" }, { "rolecode": "FSM_ |
...
EDITOR_EMP", "actionid": "{{ |
...
PLACEHOLDER3}}", "actioncode": "", "tenantId": "pb" }, { "rolecode": "FSM_ |
...
ADMIN", "actionid": "{{ |
...
PLACEHOLDER3}}", "actioncode": "", "tenantId": "pb" }, { "rolecode": "FSM_ |
...
DSO", "actionid": "{{ |
...
PLACEHOLDER3}}", "actioncode": "", "tenantId": "pb" }, |
...
{
"rolecode": "FSM_ |
...
DRIVER", "actionid": "{{PLACEHOLDER3}}", "actioncode": "", "tenantId": "pb" }, { "rolecode": " |
...
CITIZEN", "actionid": "{{PLACEHOLDER3}}", "actioncode": "", "tenantId": "pb" }, { "rolecode": "FSM_ |
...
ADMIN", "actionid": "{{ |
...
PLACEHOLDER4}}", "actioncode": "", "tenantId": "pb" }, { "rolecode": "FSM_ |
...
DSO", "actionid": "{{ |
...
PLACEHOLDER4}}", "actioncode": "", "tenantId": "pb" }, { "rolecode": " |
...
FSM_DRIVER", "actionid": "{{ |
...
PLACEHOLDER4}}", "actioncode": "", "tenantId": "pb" }, |
...
{
"rolecode": "FSM_ |
...
COLLECTOR", "actionid": "{{PLACEHOLDER4}}", "actioncode": "", "tenantId": "pb" }, { "rolecode": " |
...
CITIZEN", "actionid": "{{PLACEHOLDER4}}", "actioncode": "", "tenantId": "pb" }, { "rolecode": "FSM_ |
...
EDITOR_EMP", "actionid": "{{PLACEHOLDER4}}", "actioncode": "", "tenantId": "pb" }, { "rolecode": "FSM_VIEW_ |
...
EMP", "actionid": "{{PLACEHOLDER4}}", "actioncode": "", "tenantId": "pb" }, { "rolecode": "CITIZEN", "actionid": "{{ |
...
PLACEHOLDER5}}", "actioncode": "", "tenantId": "pb" }, { "rolecode": "FSM_ |
...
CREATOR_EMP", "actionid": "{{ |
...
PLACEHOLDER5}}", "actioncode": "", "tenantId": "pb" }, { "rolecode": "FSM_ |
...
EDITOR_EMP", "actionid": "{{ |
...
PLACEHOLDER5}}", "actioncode": "", "tenantId": "pb" }, { "rolecode": " |
...
FSM_VIEW_EMP", "actionid": "{{PLACEHOLDER5}}", "actioncode": "", "tenantId": "pb" }, { "rolecode": "FSM_ |
...
ADMIN", "actionid": "{{PLACEHOLDER5}}", "actioncode": "", "tenantId": "pb" }, { "rolecode": "FSM_ |
...
DSO", "actionid": "{{PLACEHOLDER5}}", "actioncode": "", "tenantId": "pb" }, { "rolecode": "FSM_ |
...
DRIVER", "actionid": "{{PLACEHOLDER5}}", "actioncode": "", "tenantId": "pb" }, { "rolecode": "FSM_ |
...
EMP_FSTPO", "actionid": "{{PLACEHOLDER5}}", "actioncode": "", "tenantId": "pb" }, { "rolecode": "FSM_ |
...
COLLECTOR", "actionid": "{{PLACEHOLDER5}}", "actioncode": "", "tenantId": "pb" } |
...
] |
Infra Ops Configuration
Configurations that we can manage through values.yml fsm-calculator in infraops repo as follows
values.yml for fms-calculator can be found here
Description | name in values.yml | Current Value |
---|---|---|
id-gen host, to generate the application number |
|
|
Kafka Consumer Group |
|
|
kafka topic to which service push data to save new fsm application |
|
|
kafka topic to which service push data to save workflow status |
|
|
kafka topic to which service push data to update the existing fsm application |
|
|
mdms service host |
|
|
billing-service host |
|
|
fsm-calculator service host |
|
|
workflow v2 service host |
|
|
ui host, to return send the url of new application in sms notification |
|
|
vendor service host, to get DSO details |
|
|
Vehicle service host, to get vehicle details and manage vehicleTrip |
|
|
Collection service host, to get the payment details |
|
|
localization service host, to get the locale data |
|
|
user service host, to get the locale data |
|
|
pdf service host, to get the locale data |
|
|
url shortening service host, to get the short url for the long once |
|
|
Sample values.yml
Code Block |
---|
- name: EGOV_IDGEN_HOST
valueFrom:
configMapKeyRef:
name: egov-service-host
key: egov-idgen
- name: EGOV_MDMS_HOST
valueFrom:
configMapKeyRef:
name: egov-service-host
key: egov-mdms-service
- name: EGOV_URL_SHORTNER_HOST
valueFrom:
configMapKeyRef:
name: egov-service-host
key: egov-url-shortening
- name: EGOV_PDF_HOST
valueFrom:
configMapKeyRef:
name: egov-service-host
key: pdf-service
- name: EGOV_USER_HOST
valueFrom:
configMapKeyRef:
name: egov-service-host
key: egov-user
- name: EGOV_LOCATION_HOST
valueFrom:
configMapKeyRef:
name: egov-service-host
key: egov-location
- name: EGOV_LOCALIZATION_HOST
valueFrom:
configMapKeyRef:
name: egov-service-host
key: egov-localization
- name: EGOV_BILLINGSERVICE_HOST
valueFrom:
configMapKeyRef:
name: egov-service-host
key: billing-service
- name: EGOV_COLLECTION_SERVICE_HOST
valueFrom:
configMapKeyRef:
name: egov-service-host
key: collection-services
- name: EGOV_FSM_CALCULATOR_HOST
valueFrom:
configMapKeyRef:
name: egov-service-host
key: fsm-calculator
- name: EGOV_VEHICLE_HOST
valueFrom:
configMapKeyRef:
name: egov-service-host
key: vehicle
- name: EGOV_VENDOR_HOST
valueFrom:
configMapKeyRef:
name: egov-service-host
key: vendor
- name: EGOV_UI_APP_HOST
valueFrom:
configMapKeyRef:
name: egov-config
key: egov-services-fqdn-name
- name: WORKFLOW_CONTEXT_PATH
valueFrom:
configMapKeyRef:
name: egov-service-host
key: egov-workflow-v2
- name: WORKFLOW_TRANSITION_PATH
value: "egov-workflow-v2/egov-wf/process/_transition"
- name: EGOV_IDGEN_FSM_APPLICATIONNUM_FORMAT
value: "[CITY.CODE]-FSM-[cy:yyyy-MM-dd]-[SEQ_EGOV_FSM]"
- name: SPRING_KAFKA_CONSUMER_GROUP_ID
value: egov-fsm-service
- name: PERSISTER_SAVE_FSM_TOPIC
value: save-fsm-application
- name: PERSISTER_UPDATE_FSM_TOPIC
value: update-fsm-application
- name: PERSISTER_UPDATE_FSM_WORKFLOW_TOPIC
value: update-fsm-workflow-application |
Users
User | Role | Description | How to create |
---|---|---|---|
FSM Creator |
| Can create FSM Application on behalf of Citizen | Through HRMS with role |
FSM Editor |
|
| Through HRMS with role |
FSM Admin |
|
| Through HRMS with role |
DSO |
|
| Through vendor service, use the create DSO Request from postman Collection |
FSTP Operator |
|
| Through HRMS with role |
Collector |
|
| Through HRMS with role |
- User with userType employee and role FSM_CREATOR_EMP
role,
Integration
Integration Scope
...
Title | Link |
Workflow Technical Document | |
User Technical Document | |
MDMS Technical Document | NEEDS TO BE UPDATED |
IDGen Technical Document | NEEDS TO BE UPDATED |
Localization Technical Document | NEEDS TO BE UPDATED |
Persister Technical Document | NEEDS TO BE UPDATED |
SMS Notification Technical Document | NEEDS TO BE UPDATED |
HRMS Technical Document | NEEDS TO BE UPDATED |
API List
Title | Link |
| |
| |
| |
|
...