DIGIT Works
PlatformDomainsAcademyDesign SystemFeedback
Works v1.1
Works v1.1
  • Introducing Works
    • What's New
  • Design Approach
    • Approach
    • Solution Design
  • Specifications
    • Functional Specifications
      • Project
      • Estimates
      • Organisation
      • Attendance Management
      • Measurements
      • Muster Roll
      • Expenditure / Billing
      • Contracts
    • Release Notes
      • MDMS & Configuration Updates
      • Test cases
      • Data Migration
      • Service Build Updates
  • Reference Implementations
    • MUKTASoft v2.1
    • MUKTASoft v2.2
      • Specifications
        • Roadmap
        • User Persona
        • Functional Requirements
          • Product Requirements Document v2.0
          • Product Requirements Document v2.1
            • Employee Mobile Application
            • Aadhaar Integration
            • Estimate Templates
            • SOR Rate Analysis
          • User Stories
            • Time Extension
              • CBO: Create Time Extension
              • Time Extension Workflow
              • EMP: Create Time Extension
              • Search and View Time Extension
              • CBO: My Requests
              • CBO: Edit Time Extension
            • JIT-FS Integration
              • Fund Allocation Register
              • Create Payment Instruction
              • PIS: Payment Instruction Status
              • PAG: Payment Advice Status
              • PD: Update payment details
              • FD: Update Failed Payments
              • Create Revised Payment Instruction
              • Revised PI: Update payment details
              • Revised PI: Updated Failed Payments
              • Search Payment Instruction
              • View Payment Instruction
            • Work Order
              • Create Work Order
              • Work Order Workflow
              • Work Order Inbox Page
              • Create/ Submit Work Order
              • Edit/Submit Work Order
              • Verify & Forward
              • Send Back
              • Send Back To Originator
              • Reject Work Order
              • Approve
              • Search Work Order
              • Work Order PDF
            • Dashboard v1.0
              • Commons
              • KPIs: Actions Items
              • KPIs: SLA Breached
              • KPIs: Leaderboard
              • KPIs: Activities by Status
              • KPIs: Payments
              • KPIs: Expenditure
            • Schedule of rates
              • Create SOR
              • Search SOR
              • View SOR
              • Modify SOR
              • Add/ Modify Rate
            • Detailed Estimate
              • Create Detailed Estimate
              • Change in workflow
              • Change in edit estimate
              • Search and View Detailed Estimate
            • Detailed MB
              • Create MB
              • MB Inbox
              • MB Workflow
              • Search MB
              • View MB
              • Edit MB
            • Employee Mobile Application
              • Employee Login
              • Home Page
              • Work Orders
              • Create/ Edit MB
              • Measurement Books
              • View Measurement Book
            • Aadhar Integration
              • Wage Seeker's Registration
              • Wage Seeker Modification
            • Improvements
              • Moving Skills to SOR Master
              • Re-payment of failed payment
              • Revising estimate calculation logic
              • Material purchase payment to CBO
            • Estimate Template
              • Create Template
              • Search Template
              • View Template
              • Modify Template
              • Change in estimate to add template
            • Rate Analysis
              • Add/ Edit Rate Analysis
              • View Rate Analysis
              • Revising Rate
              • Analysis Statements
              • Utilization Statements
              • Download of analysis statements
            • Data Protection & Privacy
              • Display Privacy Notice In Login
              • Display Bank Account Details On Wage Bill
              • Display Muster Roll Details
              • View Payment Instruction - Mask Account Number & IFSC
              • View /Edit Wage Seeker Details
              • View/Edit Organisation Details
              • Display Engaged Wage Seeker Details
              • Display Organisation Profile & Bank Details
              • Track Attendance Changes
              • View Muster Rolls
              • Search Wage Seeker
              • Remove PII & Sensitive Data From Additional Fields
      • Deployment
        • Release Notes
          • Service Build Updates
          • Data Migration
          • Test Cases
        • Deployment Guide
        • SMS Adapter Services
          • Notification Consumer
          • Notification Consumer Service
          • Contact Notification Service
          • Estimate Notification
          • Expense Notification Service
          • Muster Roll Notification Service
          • Measurement Notification Service
          • Organisation Notification Service
          • Individual Notification Service
        • MUKTASoft Services
          • IFMS Adapter
          • Expense Calculator
          • Works PDF
          • MUKTA Services
          • Bank Account Search
          • Individual Search
          • Organisation Search
          • Bill Scheduler
          • Statements
          • Rate Analysis
        • Configuration
          • Master Data Templates
            • Project Type
            • Target Demography
            • Unit Of Measurement (Units)
            • Overheads
            • Skill Category & Skills
            • Community-Based Organisation Roles
            • Scheme
            • Expense Heads
            • Standard Deductions
            • Organisation Type
            • Organisation Sub Type
            • Organisation Functional Category
            • Organisation Class/Rank
            • HRMS Sections/Departments
            • HRMS Designation
            • HRMS Employment Type
            • User Role
            • Organization
            • Wage Seeker
            • Tenants
            • Ward Boundary
            • Locality Boundary
            • Payment Advice Format
            • Users Data
            • Schedule of rates
            • Rate Analysis
          • Notifications & SMS Templates
          • Localisation
          • Dashboard Reindexing
          • Platform Service Configuration
          • UI Configuration
            • Common Configurations
              • Role Configuration
              • MDMS Configuration
              • APK Generation
            • Modules
              • Project
              • Estimate
              • Workorder
                • Time Extension
              • Muster Roll
              • Bill
              • Organization
              • Wage Seeker
              • Wage Seeker (CBO Application)
              • Attendance (CBO Application)
              • Muster Roll (CBO Application)
              • Mukta Dashboard
              • Measurement
              • SORs and Rates
              • IFMS Adapter UI
              • Rate Analysis
              • Revision Of Rates
              • Estimate Template
              • Measurement Book (Mobile Application)
        • Customisation
          • Works UI
            • UI Tech Flow Diagrams
          • UI Screens Customisation
            • Document Upload Container
            • CSS Customisation
            • Inbox/Search Screen
      • Implementation
        • Pilot Roll Out Plan
        • Pilot Go Live Definition
        • Pilot Sucess Metrics
        • Success Metrics
        • Adoption Metrics
        • Adoption Template
        • Implementation Plan & Checklist
        • Issue Management - Standard Operating Procedures
        • Training Resources
          • User Manual
            • Mobile Application User Manual
              • CBO - Getting Started
                • My Works
                • Track Attendance
                • Muster Rolls
                • My Bills
                • My Requests
              • Employee - Getting Started
                • Work Orders
                • Measurement Books
            • Web Application User Manual
              • Getting Started
              • Project
              • Estimate
              • Work Order
              • Time Extension
              • Measurement Book
              • Muster Roll
              • Billing
              • Payments
              • Rates Revision
              • Registries
                • Wage Seekers
                • Organizations
                • Schedule Of Rates
                  • SOR Definition
                  • Rates
                  • Rate Analysis
                • Estimate Template
            • Kibana Dashboard User Manual
          • Training Videos
        • UAT Planning
          • UAT Test Case Scenarios
          • UAT Schedule Plan
          • Issue Reporting Template
          • UAT Credentials
  • Platform
    • Architecture
      • High Level Design
      • Low Level Design
        • Registries
          • Individual
          • Bank Account
          • Organization
        • Services
          • Project
          • Detailed Estimates
          • Contracts
          • Attendance
          • Muster Roll
          • Expense
          • Schedule of Rates (archive)
          • Detailed Measurement Book
  • Setup
    • Install Works
      • Install Using GitHub Actions In AWS
      • System Data Setup
    • Configure Works
      • Service Configuration
        • Project
        • Estimate
        • Contract
        • Attendance
        • Muster Roll
        • Expense
        • Bank accounts
        • Organisation
        • Individual
        • Estimate Template
  • General
    • Source Code
    • Roadmap
    • Discussion Board
    • Issues
Powered by GitBook

All content on this page by eGov Foundation is licensed under a Creative Commons Attribution 4.0 International License.

On this page

Was this helpful?

  1. Reference Implementations
  2. MUKTASoft v2.2
  3. Deployment
  4. MUKTASoft Services

Bank Account Search

Objective:

To implement a secure bank account search service in Mukta that masks Personally Identifiable Information (PII) in the response based on the user’s role and predefined security policies. PII data - Branch name, Account number, IFSC

The response would be based on the config set in MDMS-V2 which masks the above fields in appropriate patterns.


Key Components

1. Masking Methodology

  • Masking is applied to sensitive attributes such as accountHolderName, accountNumber, and ifscCode.

  • A regular expression-based masking technique is used, replacing parts of the sensitive values with asterisks (*).

  • Example: For a pattern - (?=.{4}), the value 12345678 would be masked as ****5678.

2. Security Policy:

  • Role-Based Access Control (RBAC):

    • Defines which roles can access attributes in plain text.

    • Example roles: BILL_ACCOUNTANT, MUKTA_ADMIN.

  • Attribute Visibility Levels:

    • PLAIN: The attribute is fully visible.

    • MASKED: Attribute is partially masked.

Policy Configuration Example:

{
  "model": "BankAccountSearch",
  "attributes": [
    {
      "name": "accountHolderName",
      "jsonPath": "accountHolderName",
      "patternId": "001",
      "defaultVisibility": "MASKED"
    },
    {
      "name": "accountNumber",
      "jsonPath": "accountNumber",
      "patternId": "001",
      "defaultVisibility": "MASKED"
    },
    {
      "name": "ifscCode",
      "jsonPath": "bankBranchIdentifier/code",
      "patternId": "009",
      "defaultVisibility": "MASKED"
    }
  ],
  "roleBasedDecryptionPolicy": [
    {
      "roles": ["BILL_ACCOUNTANT", "MUKTA_ADMIN"],
      "attributeAccessList": [
        {
          "attribute": "accountHolderName",
          "firstLevelVisibility": "PLAIN",
          "secondLevelVisibility": "PLAIN"
        },
        {
          "attribute": "accountNumber",
          "firstLevelVisibility": "PLAIN",
          "secondLevelVisibility": "PLAIN"
        },
        {
          "attribute": "ifscCode",
          "firstLevelVisibility": "PLAIN",
          "secondLevelVisibility": "PLAIN"
        }
      ]
    }
  ]
}

3. Masking Pattern Configuration:

  • Patterns define how sensitive attributes are masked.

Example configuration:

[
  {
    "patternId": "001",
    "pattern": ".(?=.{4})"
  },
  {
    "patternId": "009",
    "pattern": "(?<=.{4}).(?=.{2})"
  }]

Pattern Example:

  • Pattern.(?=.{4}): Masks all characters except the last 4.

  • Pattern (?<=.{4}).(?=.{2}): Masks characters except the first 4 and last 2.

4. Implementation Details:

  • The service retrieves security policies and masking patterns from MDMS.

  • User roles are validated to determine access levels for each attribute.

  • Masking is applied dynamically to sensitive data if the user’s role lacks plain text access.

5. Code Highlights:

  • Role Access Check: Ensures attributes are visible in plain text only if the user’s role has access.

  • Masking Application: Masks attribute values using patterns fetched from the configuration.

  • Nested JSON Handling: Retrieves and updates attribute values dynamically using JSON paths

Curl:

curl 'https://mukta-uat.digit.org/mukta-services/bankaccount/v1/_search?_=1734091757871' \
  -H 'authority: mukta-uat.digit.org' \
  -H 'accept: application/json, text/plain, */*' \
  -H 'accept-language: en-GB,en-US;q=0.9,en;q=0.8' \
  -H 'content-type: application/json' \
  -H 'cookie: _gid=GA1.2.1202491491.1734070501; _ga_V2CPZCVTXQ=GS1.1.1734070500.1.0.1734070502.0.0.0; _ga=GA1.1.829748430.1733136966; _ga_H9YC8FEN6F=GS1.1.1734069891.2.1.1734072381.60.0.0; _ga_3LN58ZJ5KN=GS1.1.1734072575.3.1.1734072581.54.0.0; _ga_4FTREDCS0G=GS1.1.1734072575.3.1.1734072581.0.0.0; _ga_FS7DJ7SGKL=GS1.1.1734072575.3.1.1734072581.0.0.0; _ga_EHCDQF6VQ5=GS1.1.1734072575.3.1.1734072581.0.0.0' \
  -H 'origin: https://mukta-uat.digit.org' \
  -H 'referer: https://mukta-uat.digit.org/works-ui/employee/masters/view-wageseeker?tenantId=od.testing&individualId=IND-2024-12-06-004156' \
  -H 'sec-ch-ua: "Chromium";v="118", "Google Chrome";v="118", "Not=A?Brand";v="99"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "Linux"' \
  -H 'sec-fetch-dest: empty' \
  -H 'sec-fetch-mode: cors' \
  -H 'sec-fetch-site: same-origin' \
  -H 'user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36' \
  --data-raw '{"bankAccountDetails":{"tenantId":"od.testing","serviceCode":"IND","referenceId":["7e302cf3-6eb4-4392-89e7-42ab75b13672"]},"RequestInfo":{"apiId":"Rainmaker","authToken":"fdaaf53d-b05d-4659-aa86-45f0ae305f40","userInfo":{"id":271,"uuid":"81b1ce2d-262d-4632-b2a3-3e8227769a11","userName":"MUKTAUAT","name":"MUKTAUAT","mobileNumber":"9036146615","emailId":"a@gmail.com","locale":null,"type":"EMPLOYEE","roles":[{"name":"Organization viewer","code":"ORG_VIEWER","tenantId":"od.testing"},{"name":"MB_VERIFIER","code":"MB_VERIFIER","tenantId":"od.testing"},{"name":"MB_VIEWER","code":"MB_VIEWER","tenantId":"od.testing"},{"name":"MDMS Admin","code":"MDMS_ADMIN","tenantId":"od.testing"},{"name":"MUKTA Admin","code":"MUKTA_ADMIN","tenantId":"od.testing"},{"name":"BILL_ACCOUNTANT","code":"BILL_ACCOUNTANT","tenantId":"od.testing"},{"name":"WORK_ORDER_VIEWER","code":"WORK_ORDER_VIEWER","tenantId":"od.testing"},{"name":"ESTIMATE VERIFIER","code":"ESTIMATE_VERIFIER","tenantId":"od.testing"},{"name":"ESTIMATE VIEWER","code":"ESTIMATE_VIEWER","tenantId":"od.testing"},{"name":"WORK ORDER APPROVER","code":"WORK_ORDER_APPROVER","tenantId":"od.testing"},{"name":"OFFICER IN CHARGE","code":"OFFICER_IN_CHARGE","tenantId":"od.testing"},{"name":"BILL_VIEWER","code":"BILL_VIEWER","tenantId":"od.testing"},{"name":"PROJECT VIEWER","code":"PROJECT_VIEWER","tenantId":"od.testing"},{"name":"BILL_APPROVER","code":"BILL_APPROVER","tenantId":"od.testing"},{"name":"MB_CREATOR","code":"MB_CREATOR","tenantId":"od.testing"},{"name":"MUSTER ROLL VERIFIER","code":"MUSTER_ROLL_VERIFIER","tenantId":"od.testing"},{"name":"ESTIMATE APPROVER","code":"ESTIMATE_APPROVER","tenantId":"od.testing"},{"name":"WORK ORDER CREATOR","code":"WORK_ORDER_CREATOR","tenantId":"od.testing"},{"name":"ESTIMATE CREATOR","code":"ESTIMATE_CREATOR","tenantId":"od.testing"},{"name":"Employee Common","code":"EMPLOYEE_COMMON","tenantId":"od.testing"},{"name":"MDMS STATE VIEW ADMIN","code":"MDMS_STATE_VIEW_ADMIN","tenantId":"od.testing"},{"name":"Localisation admin","code":"LOC_ADMIN","tenantId":"od.testing"},{"name":"TECHNICAL SANCTIONER","code":"TECHNICAL_SANCTIONER","tenantId":"od.testing"},{"name":"Dashboard Viewer","code":"DASHBOARD_VIEWER","tenantId":"od.testing"},{"name":"BILL_CREATOR","code":"BILL_CREATOR","tenantId":"od.testing"},{"name":"Revision of rates","code":"REVISION_OF_RATES","tenantId":"od.testing"},{"name":"BILL_VERIFIER","code":"BILL_VERIFIER","tenantId":"od.testing"},{"name":"MUSTER ROLL APPROVER","code":"MUSTER_ROLL_APPROVER","tenantId":"od.testing"},{"name":"MB_APPROVER","code":"MB_APPROVER","tenantId":"od.testing"},{"name":"MDMS CITY ADMIN","code":"MDMS_CITY_ADMIN","tenantId":"od.testing"},{"name":"PROJECT CREATOR","code":"PROJECT_CREATOR","tenantId":"od.testing"},{"name":"Employee Organization Admin","code":"EMP_ORG_ADMIN","tenantId":"od.testing"},{"name":"WORK ORDER VERIFIER","code":"WORK_ORDER_VERIFIER","tenantId":"od.testing"},{"name":"HRMS Admin","code":"HRMS_ADMIN","tenantId":"od.testing"}],"active":true,"tenantId":"od.testing","permanentCity":"Testing"},"msgId":"1734091757871|en_IN","plainAccessRequest":{}}}' \
 --compressed

PreviousMUKTA ServicesNextIndividual Search

Last updated 4 months ago

Was this helpful?