Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
  • devOps changes for KPIs:

Info

Definitions:

  • todaysApplicationsWithinSLA: It denotes the number of applications that have been closed/ have completed the workflow today.

  • todaysMovedApplications: It is an array of application statuses moved today.

  • todaysMovedApplicationsForApplicationStatus: It represents the number of applications(total count) that have been moved today for a particular application status.

  • applicationStatus: It is a string value that contains the current status of the application. Eg:
    ”applicationStatus” : “APPROVED“

Changes for Citizen-Feedback-National-Dashboard

Reference: https://github.com/egovernments/DIGIT-DevOps/blob/b8a15d760b91314399c2f31f25931fa5cb053928/deploy-as-code/helm/environments/uat.yaml#L341

  • Step 3: Add master-module-fields-mapping

Reference: https://github.com/egovernments/DIGIT-DevOps/blob/b8a15d760b91314399c2f31f25931fa5cb053928/deploy-as-code/helm/environments/uat.yaml#L341yaml#L342

  • Step 3: Add groupby mapping for Channel

    Code Block
    "CF":{"channel"}

...

Update pt-national-dashboard index mapping so as to add 3 2 new properties: todaysApplicationsWithinSLA, todaysMovedApplicationsForApplicationStatus

Code Block
PUT pt-national-dashboard/_mapping/nss
{
  "properties" : {
          "applicationStatus" : {
            "type" : "text",
            "fields" : {
              "keyword" : {
                "type" : "keyword",
                "ignore_above" : 256
              }
            }
          },
          "assessedPropertiesForUsageCategory" : {
            "type" : "long"
          },
          "assessments" : {
            "type" : "long"
          },
          "avgTaxCollectedPerProperty" : {
            "type" : "long"
          },
          "cessForUsageCategory" : {
            "type" : "long"
          },
          "createdBy" : {
            "type" : "text",
            "fields" : {
              "keyword" : {
                "type" : "keyword",
                "ignore_above" : 256
              }
            }
          },
          "createdTime" : {
            "type" : "long"
          },
          "date" : {
            "type" : "date",
            "format" : "dd-MM-yyyy HH:mm:ss||dd-MM-yyyy||epoch_millis||dd-MM-yyyy'T'HH:mm:ss.SSSZ"
          },
          "financialYear" : {
            "type" : "text",
            "fields" : {
              "keyword" : {
                "type" : "keyword",
                "ignore_above" : 256
              }
            }
          },
          "interestForUsageCategory" : {
            "type" : "long"
          },
          "lastModifiedBy" : {
            "type" : "text",
            "fields" : {
              "keyword" : {
                "type" : "keyword",
                "ignore_above" : 256
              }
            }
          },
          "lastModifiedTime" : {
            "type" : "long"
          },
          "module" : {
            "type" : "text",
            "fields" : {
              "keyword" : {
                "type" : "keyword",
                "ignore_above" : 256
              }
            }
          },
          "noOfPropertiesPaidToday" : {
            "type" : "long"
          },
          "nonTaxCollections" : {
            "type" : "text",
            "fields" : {
              "keyword" : {
                "type" : "keyword",
                "ignore_above" : 256
              }
            }
          },
          "penaltyForUsageCategory" : {
            "type" : "long"
          },
          "propertiesRegisteredForFinancialYear" : {
            "type" : "long"
          },
          "propertyTaxForUsageCategory" : {
            "type" : "long"
          },
          "rebateForUsageCategory" : {
            "type" : "long"
          },
          "region" : {
            "type" : "text",
            "fields" : {
              "keyword" : {
                "type" : "keyword",
                "ignore_above" : 256
              }
            }
          },
          "state" : {
            "type" : "text",
            "fields" : {
              "keyword" : {
                "type" : "keyword",
                "ignore_above" : 256
              }
            }
          },
          "taxCollections" : {
            "type" : "text",
            "fields" : {
              "keyword" : {
                "type" : "keyword",
                "ignore_above" : 256
              }
            }
          },
          "todaysApplicationsWithinSLA" : {
            "type" : "long"
          },
          "todaysClosedApplications" : {
            "type" : "long"
          },
          "todaysCollectionForNonTaxCollections" : {
            "type" : "long"
          },
          "todaysCollectionForTaxCollections" : {
            "type" : "long"
          },
          "todaysCollectionForUsageCategory" : {
            "type" : "long"
          },
          "todaysMovedApplications" : {
            "type" : "long"
          },
          "todaysMovedApplicationsForApplicationStatus" : {
            "type" : "long"
          },
          "todaysTotalApplications" : {
            "type" : "long"
          },
          "totalApplicationsPaidTheTax" : {
            "type" : "long"
          },
          "transactionsForUsageCategory" : {
            "type" : "long"
          },
          "ulb" : {
            "type" : "text",
            "fields" : {
              "keyword" : {
                "type" : "keyword",
                "ignore_above" : 256
              }
            }
          },
          "usageCategory" : {
            "type" : "text",
            "fields" : {
              "keyword" : {
                "type" : "keyword",
                "ignore_above" : 256
              }
            }
          },
          "ward" : {
            "type" : "text",
            "fields" : {
              "keyword" : {
                "type" : "keyword",
                "ignore_above" : 256
              }
            }
          }
        }
}
  • Citizen

    • Ingest API -

    feedback
      • Port-forward national

    -dashboard

    A new national dashboard index for citizen feedback is created. 

    Code BlockPUT citizen-feedback-national-dashboard {}  PUT citizen-feedback-national-dashboard/_mapping/nss { "properties":
      • dashboard ingest service and hit the below curl.

      • This should result in ingestion of data for the date provided in the request body.

        Code Block
        curl --location 'http://localhost:8081/national-dashboard/metric/_ingest' \
        --header 'Content-Type: application/json' \
        --data '{
            "
    ulb
      • RequestInfo": {
                "
    type
      • apiId": "
    text
      • asset-services",
                "
    fields
      • ver": 
    {
      • null,
                "
    keyword
      • ts": 
    {
      • null,
                
      • "
    type
      • action": 
    "keyword"
      • null,
      • 
                
      • "
    ignore_above
      • did": 
    256
      • null,
                
    }
      • "key": null,
            
    }
      •     
    }, "state
      • "msgId": 
    {
      • "search with from and to values",
                "
    type
      • authToken": "
    text
      • f5f22a04-ba52-4616-9e13-734bce63a15c",
                "
    fields
      • userInfo": {
                    "
    keyword
      • id": 11227,
         
    {
      •            "
    type
      • uuid": "
    keyword
      • 151cb3c7-3713-4e15-b9a1-3babd6d5e5a9",
                    "
    ignore_above
      • userName": 
    256
      • "UATPTSU",
                   
    }
      •  "name": "PT Super User",
          
    }
      •      
    },
      •      "
    ward
      • mobileNumber": 
    {
      • "8990877667",
                    "
    type
      • emailId": "
    text
      • ",
              
    "fields":
      •  
    {
      •      "
    keyword
      • locale": null,
        
    {
      •             "type": "
    keyword
      • EMPLOYEE",
                    "
    ignore_above
      • roles": 
    256
      • [
                    
    }
      •     {
          
    }
      •      
    },
      •      
    "region":
      •  
    {
      •        "
    type
      • name": "
    text
      • NDA SYSTEM",
              
    "fields
      •               "code": 
    {
      • "NDA_SYSTEM",
                
    "keyword":
      •  
    {
      •            "
    type
      • tenantId": "
    keyword",
      • pg.citya"
                    
    "ignore_above":
      •  
    256
      •    },
             
    }
      •        
    }
      •     {
        
    },
      •      
    "module":{
      •        
    "type":
      •  
    "text",
      •        "
    fields
      • name":
    {
      •  "PT Counter Employee",
                
    "keyword":
      •  
    {
      •            "
    type
      • code": "
    keyword
      • PT_CEMP",
                    
    "ignore_above":
      •  
    256
      •        "tenantId": "pg.citya"
        
    }
      •        
    }
      •      
    },
      •     },
        
    "serviceType":{
      •        
    "type":
      •  
    "text",
      •        
    "fields":
      •  {
                
    "keyword":
      •  
    {
      •            "
    type
      • name": "
    keyword
      • Property Approver",
                    
    "ignore_above":
      •  
    256
      •        "code": "PROPERTY_APPROVER",
        
    }
      •        
    }
      •      
    },
      •      
    "serviceModule":{
      •    
      • "
    type
      • tenantId": "
    text",
      • pg.citya"
                 
    "fields":
      •  
    {
      •       },
          
    "keyword":
      •  
    {
      •            
    "type":
      •  
    "keyword",
      •  {
                 
    "ignore_above":
      •  
    256
      •          
    }
      •  "name": "PT Doc Verifier",
          
    }
      •      
    },
      •      
    "channel":
      •  
    {
      •        "
    type
      • code": "
    text
      • PT_DOC_VERIFIER",
                
    "fields": {
      •             "
    keyword
      • tenantId": 
    {
      • "pg.citya"
                  
    "type":
      •  
    "keyword",
      •      },
             
    "ignore_above":
      •  
    256
      •          
    }
      •  {
             
    }
      •      
    },
      •      
    "todaysNoOfCitizenResponsesForChannel":
      •  
    {
      •     "name": "Property Tax 
    "type
      • Receipt Cancellator",
                            "code": "
    long
      • CR_PT",
            
    },
      •         
    "todaysAverageCitizenRating":
      •  
    {
      •        "
    type
      • tenantId": "
    long
      • pg.citya"
                        },
                 
    "date":
      •        {
              
    "type
      •               "name": "
    date
      • PT Counter Approver",
                            "
    format
      • code": "
    dd-MM-yyyy HH:mm:ss||dd-MM-yyyy||epoch_millis||dd-MM-yyyy'T'HH:mm:ss.SSSZ"
      • PT_APPROVER",
                     
    }
      •    
    }
      •  
    }
      •  
  • Follow this document National Dashboard Ingest Service to set up ingest API for Citizen Feedback National Dashboard Index

  • Ingest API -

    • Port-forward national dashboard ingest service and hit the below curl.

    • This should result in ingestion of data for the date provided in the request body.

      Code Blockcurl
      •  
      --location 'http://localhost:8081/national-dashboard/metric/_ingest' \ --header 'Content-Type: application/json' \ --data '{
      •  "tenantId": "pg.citya"
                  
      "RequestInfo": {
      •       },
               
      "apiId":
      •  
      "asset-services",
      •         {
        
      "ver":
      •  
      null,
      •          
      "ts":
      •  
      null,
      •          "
      action
      • name": 
      null,
      • "PT Field Inspector",
                 
      "did": null,
      •            "
      key
      • code": 
      null
      • "PT_FIELD_INSPECTOR",
              
      "msgId": "search
      •  
      with
      •  
      from
      •  
      and
      •  
      to
      •  
      values",
      •          "
      authToken
      • tenantId": "
      641ab660-3057-4593-b68b-95ea2ac6f653",
      • pg.citya"
                    
      "userInfo":
      •  
      {
      •    },
                 
      "id":
      •  
      11227,
      •       {
              
      "uuid":
      •  
      "151cb3c7-3713-4e15-b9a1-3babd6d5e5a9",
      •              "
      userName
      • name": "
      UATPTSU
      • Property Verifier",
                    
      "name":
      •  
      "PT
      •  
      Super
      •  
      User",
      •      "code": "PROPERTY_VERIFIER",
              
      "mobileNumber":
      •  
      "8990877667",
      •              "
      emailId
      • tenantId": "pg.citya"
      ,
      • 
                      
      "locale":
      •  
      null,
      •  }
                   
      "type": "EMPLOYEE"
      •  ],
                    "
      roles
      • active": 
      [
      • true,
                    
      {
      • "tenantId": "pg.citya",
                    "
      name
      • permanentCity": 
      "NDA SYSTEM",
      • null
                }
            },
            
      • "
      code
      • Data": 
      "NDA_SYSTEM",
      • [
                {
                    "
      tenantId
      • date": "
      pg.citya"
      • 03-04-2023",
                    "module": "PT",
          
      },
      •           "ward": "Block 1",
            
      {
      •         "ulb": "pb.amritsar",
                    "
      name
      • region": "
      PT Counter Employee
      • Amritsar-MC",
      • 
                    
      "code
      • "state": "
      PT_CEMP
      • Punjab",
                    
      "tenantId
      • "metrics": {
        
      "pg.citya"
      •                 "assessments": 
      }
      • 29,
                        
      {
      • "todaysTotalApplications": 62,
                        
      • "
      name
      • todaysClosedApplications": 
      "Property Approver",
      • 21,
                        "
      code
      • noOfPropertiesPaidToday": 
      "PROPERTY_APPROVER"
      • 10,
                        "todaysApplicationsWithinSLA" : 12,
           
      "tenantId":
      •  
      "pg.citya"
      •             "propertiesRegistered": [
           
      },
      •                  {
                                "
      name
      • groupBy": "financialYear"
      PT
      • ,
          
      Doc
      •  
      Verifier",
      •                      "
      code
      • buckets": 
      "PT_DOC_VERIFIER",
      • [
                            
      "tenantId":
      •  
      "pg.citya"
      •        {
                 
      },
      •                  
      {
      •       "name": "2018-19",
                      
      "name": "Property Tax Receipt Cancellator",
      •                   "value": 12
                    
      "code":
      •  
      "CR_PT",
      •                },
             
      "tenantId":
      •  
      "pg.citya"
      •                  
      },
      •      {
                   
      {
      •                      "name": "
      PT
      • 2019-20",
        
      Counter
      •  
      Approver",
      •                      
      "code":
      •  
      "PT_APPROVER",
      •          "value": 18
                  
      "tenantId":
      •  
      "pg.citya"
      •                  },
                        
      {
      •             {
                
      "name":
      •  
      "PT
      •  
      Field
      •  
      Inspector",
      •                      "
      code
      • name": "
      PT_FIELD_INSPECTOR
      • 2020-21",
                             
      "tenantId
      •            "value": 
      "pg.citya"
      • 21
                         
      },
      •            },
             
      {
      •                      
      "name": "Property Verifier",
      •   {
                             
      "code":
      •  
      "PROPERTY_VERIFIER",
      •           "name": "2021-22",
                 
      "tenantId":
      •  
      "pg.citya"
      •                  
      }
      •      "value": 43
              
      ],
      •              
      "active":
      •  
      true,
      •         },
            
      "tenantId":
      •  
      "pg.citya",
      •              
      "permanentCity":
      •  
      null
      •          
      }
      • {
            
      },
      •      
      "Data":
      •  
      [
      •          
      {
      •              "
      date
      • name": "
      01
      • 2022-
      04-2023
      • 23",
                    
      "module": "CF",
      •                     "
      ward
      • value": 
      "Block
      • 64
        
      1",
      •              
      "ulb":
      •  
      "pb.amritsar",
      •              
      "region": "Amritsar-MC",
      •  }
                    
      "state":
      •  
      "Punjab",
      •            ]
         
      "metrics":
      •  
      {
      •                  
      "serviceModule":"PT",
      •  }
                       
      "serviceType": "PT_CREATE"
      •  ],
                        "
      todaysNoOfCitizenResponses
      • assessedProperties": [
                            {
                                "groupBy": "
      channel
      • usageCategory",
                                "buckets": [
                                    {
                                        "name": "
      ONLINE
      • RESIDENTIAL",
                                        "value": 
      12
      • 21
                                    }
      , { "name": "COUNTER", "value": 5 } ] } ], "todaysAverageCitizenRating": 4.5 } } ] }'

    Configs:
    ChartApiConfigs.json:
    MasterChart
    Add following configs

    Code Block"nssPtSlaAchieved
      • ,
                                    {
                                        "name": "COMMERCIAL",
                                        "value": 11
                                    },
                                    {
                                        "name": "INDUSTRIAL",
                                        "value": 13
                                    }
                                ]
                            }
                        ],
                        "transactions": [
                            {
                                "groupBy": "usageCategory",
                                "buckets": [
                                    {
                                        "name": "RESIDENTIAL",
                                        "value": 19
                                    },
                                    {
                                        "name": "COMMERCIAL",
                                        "value": 13
                                    },
                                    {
                                        "name": "INDUSTRIAL",
                                        "value": 13
                                    }
                                ]
                            }
                        ],
                        "todaysCollection": [
                            {
                                "groupBy": "usageCategory",
                                "buckets": [
                                    {
                                        "name": "RESIDENTIAL",
                                        "value": 16000
                                    },
                                    {
                                        "name": "COMMERCIAL",
                                        "value": 22500
                                    },
                                    {
                                        "name": "INDUSTRIAL",
                                        "value": 26000
                                    }
                                ]
                            }
                        ],
                        "todaysMovedApplications": [
                            {
                                "groupBy": "applicationStatus",
                                "buckets": [
                                    {
                                        "name": "APPROVED",
                                        "value": 21
                                    },
                                    {
                                        "name": "CORRECTIONPENDING",
                                        "value": 12
                                    },
                                    {
                                        "name": "DOCVERIFIED",
                                        "value": 5
                                    },
                                    {
                                        "name": "FIELDVERIFIED",
                                        "value": 2
                                    },
                                    {
                                        "name": "OPEN",
                                        "value": 11
                                    },
                                    {
                                        "name": "PAID",
                                        "value": 3
                                    },
                                    {
                                        "name": "REJECTED",
                                        "value": 2
                                    },
                                    {
                                        "name": "INITIATED",
                                        "value": 6
                                    }
                                ]
                            }
                        ],
                        "propertyTax": [
                            {
                                "groupBy": "usageCategory",
                                "buckets": [
                                    {
                                        "name": "RESIDENTIAL",
                                        "value": 1200
                                    },
                                    {
                                        "name": "COMMERCIAL",
                                        "value": 2100
                                    },
                                    {
                                        "name": "INDUSTRIAL",
                                        "value": 100
                                    }
                                ]
                            }
                        ],
                        "cess": [
                            {
                                "groupBy": "usageCategory",
                                "buckets": [
                                    {
                                        "name": "RESIDENTIAL",
                                        "value": 1300
                                    },
                                    {
                                        "name": "COMMERCIAL",
                                        "value": 1900
                                    },
                                    {
                                        "name": "INDUSTRIAL",
                                        "value": 1000
                                    }
                                ]
                            }
                        ],
                        "rebate": [
                            {
                                "groupBy": "usageCategory",
                                "buckets": [
                                    {
                                        "name": "RESIDENTIAL",
                                        "value": -500
                                    },
                                    {
                                        "name": "COMMERCIAL",
                                        "value": -1200
                                    },
                                    {
                                        "name": "INDUSTRIAL",
                                        "value": -900
                                    }
                                ]
                            }
                        ],
                        "penalty": [
                            {
                                "groupBy": "usageCategory",
                                "buckets": [
                                    {
                                        "name": "RESIDENTIAL",
                                        "value": 1300
                                    },
                                    {
                                        "name": "COMMERCIAL",
                                        "value": 1500
                                    },
                                    {
                                        "name": "INDUSTRIAL",
                                        "value": 1500
                                    }
                                ]
                            }
                        ],
                        "interest": [
                            {
                                "groupBy": "usageCategory",
                                "buckets": [
                                    {
                                        "name": "RESIDENTIAL",
                                        "value": 1900
                                    },
                                    {
                                        "name": "COMMERCIAL",
                                        "value": 1800
                                    },
                                    {
                                        "name": "INDUSTRIAL",
                                        "value": 600
                                    }
                                ]
                            }
                        ]
                    }
                }
            ]
        }'
  • Citizen-feedback-national-dashboard

    A new national dashboard index for citizen feedback is created. 

    Code Block
    PUT citizen-feedback-national-dashboard
    {} 
    
    PUT citizen-feedback-national-dashboard/_mapping/nss
    {
      "properties": {
        "ulb": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "state": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "ward": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "region": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "module":{
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "serviceType":{
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "serviceModule":{
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "channel": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "todaysNoOfCitizenResponsesForChannel": {
          "type": "long"
        },
        "todaysAverageCitizenRating": {
          "type": "long"
        },
        "date": {
          "type": "date",
          "format": "dd-MM-yyyy HH:mm:ss||dd-MM-yyyy||epoch_millis||dd-MM-yyyy'T'HH:mm:ss.SSSZ"
        }
      }
    }
    
  • Follow this document National Dashboard Ingest Service to set up ingest API for Citizen Feedback National Dashboard Index

  • Ingest API -

    • Port-forward national dashboard ingest service and hit the below curl.

    • This should result in ingestion of data for the date provided in the request body.

      Code Block
      curl --location 'http://localhost:8081/national-dashboard/metric/_ingest' \
      --header 'Content-Type: application/json' \
      --data '{
          "RequestInfo": {
              "apiId": "asset-services",
              "ver": null,
              "ts": null,
              "action": null,
              "did": null,
              "key": null,
              "msgId": "search with from and to values",
              "authToken": "641ab660-3057-4593-b68b-95ea2ac6f653",
              "userInfo": {
                  "id": 11227,
                  "uuid": "151cb3c7-3713-4e15-b9a1-3babd6d5e5a9",
                  "userName": "UATPTSU",
                  "name": "PT Super User",
                  "mobileNumber": "8990877667",
                  "emailId": "",
                  "locale": null,
                  "type": "EMPLOYEE",
                  "roles": [
                      {
                          "name": "NDA SYSTEM",
                          "code": "NDA_SYSTEM",
                          "tenantId": "pg.citya"
                      },
                      {
                          "name": "PT Counter Employee",
                          "code": "PT_CEMP",
                          "tenantId": "pg.citya"
                      },
                      {
                          "name": "Property Approver",
                          "code": "PROPERTY_APPROVER",
                          "tenantId": "pg.citya"
                      },
                      {
                          "name": "PT Doc Verifier",
                          "code": "PT_DOC_VERIFIER",
                          "tenantId": "pg.citya"
                      },
                      {
                          "name": "Property Tax Receipt Cancellator",
                          "code": "CR_PT",
                          "tenantId": "pg.citya"
                      },
                      {
                          "name": "PT Counter Approver",
                          "code": "PT_APPROVER",
                          "tenantId": "pg.citya"
                      },
                      {
                          "name": "PT Field Inspector",
                          "code": "PT_FIELD_INSPECTOR",
                          "tenantId": "pg.citya"
                      },
                      {
                          "name": "Property Verifier",
                          "code": "PROPERTY_VERIFIER",
                          "tenantId": "pg.citya"
                      }
                  ],
                  "active": true,
                  "tenantId": "pg.citya",
                  "permanentCity": null
              }
          },
          "Data": [
              {
                  "date": "01-04-2023",
                  "module": "CF",
                  "ward": "Block 1",
                  "ulb": "pb.amritsar",
                  "region": "Amritsar-MC",
                  "state": "Punjab",
                  "metrics": {
                      "serviceModule":"PT",
                      "serviceType": "PT_CREATE",
                      "todaysNoOfCitizenResponses": [
                          {
                              "groupBy": "channel",
                              "buckets": [
                                  {
                                      "name": "ONLINE",
                                      "value": 12
                                  },
                                  {
                                      "name": "COUNTER",
                                      "value": 5
                                  }
                              ]
                          }
                      ],
                      "todaysAverageCitizenRating": 4.5
                  }
              }
          ]
      }'
  • Configs:
    ChartApiConfigs.json:
    MasterChart
    Add following configs

    Code Block
    "nssPtSlaAchieved": {
        "chartName": "NATIONAL_DSS_PT_SLA_ACHIEVED",
        "queries": [
          {
            "module": "PT",
            "requestQueryMap": "{\"state\" : \"state.keyword\",\"ulb\" : \"ulb.keyword\",\"ward\" : \"ward.keyword\"}",
            "dateRefField": "date",
            "indexName": "pt-national-dashboard",
            "aggrQuery": "{\"aggs\":{\"AGGR\":{\"filter\":{\"bool\":{\"must\":[{\"term\":{\"applicationStatus.keyword\":\"APPROVED\"}}]}},\"aggs\":{\"stateApplicationsWithinSla\":{\"terms\":{\"field\":\"state.keyword\"},\"aggs\":{\"intermediateAggrULB\":{\"terms\":{\"field\":\"ulb.keyword\"},\"aggs\":{\"intermediateAggrWard\":{\"terms\":{\"field\":\"ward.keyword\"},\"aggs\":{\"days\":{\"terms\":{\"field\":\"date\"},\"aggs\":{\"applicationsSubmittedWithInSla\":{\"avg\":{\"field\":\"todaysApplicationsWithinSLA\"}}}},\"wardapplications\":{\"sum_bucket\":{\"buckets_path\":\"days.applicationsSubmittedWithInSla\"}}}},\"ulbApplications\":{\"sum_bucket\":{\"buckets_path\":\"intermediateAggrWard.wardapplications\"}}}},\"stateApplications\":{\"sum_bucket\":{\"buckets_path\":\"intermediateAggrULB.ulbApplications\"}}}},\"Total_Applications_Within_SLA\":{\"sum_bucket\":{\"buckets_path\":\"stateApplicationsWithinSla.stateApplications\"}},\"stateMovedApplications\":{\"terms\":{\"field\":\"state.keyword\"},\"aggs\":{\"intermediateAggrULB\":{\"terms\":{\"field\":\"ulb.keyword\"},\"aggs\":{\"intermediateAggrWard\":{\"terms\":{\"field\":\"ward.keyword\"},\"aggs\":{\"days\":{\"terms\":{\"field\":\"date\"},\"aggs\":{\"totalMovedApplications\":{\"avg\":{\"field\":\"todaysMovedApplicationsForApplicationStatus\"}}}},\"wardapplications\":{\"sum_bucket\":{\"buckets_path\":\"days.totalMovedApplications\"}}}},\"ulbApplications\":{\"sum_bucket\":{\"buckets_path\":\"intermediateAggrWard.wardapplications\"}}}},\"stateApplications\":{\"sum_bucket\":{\"buckets_path\":\"intermediateAggrULB.ulbApplications\"}}}},\"Total_Moved_Applications\":{\"sum_bucket\":{\"buckets_path\":\"stateMovedApplications.stateApplications\"}}}}}}"
          }
        ],
        "chartType": "metric",
        "valueType": "percentage",
        "drillChart": "none",
        "documentType": "nss",
        "action": "percentage",
        "isRoundOff": true,
        "aggregationPaths": [
          "Total_Applications_Within_SLA",
          "Total_Moved_Applications"
        ],
        "insight": {
          "chartResponseMap" : "nssPtSlaAchieved",
          "action" : "differenceOfNumbers",
          "upwardIndicator" : "positive",
          "downwardIndicator" : "negative",
          "textMessage" : "$indicator$value% than last $insightInterval",
          "colorCode" : "#228B22",
          "insightInterval" : "year",
          "isRoundOff": true
        },
        "_comment": " "
      },
    
      "nssPtPendancy": {
        "chartName": "NATIONAL_DSS_PT_SLA_ACHIEVEDPENDANCY",
        "queries": [
          {
            "module": "PT",
            "requestQueryMap": "{\"state\" : \"state.keyword\",\"ulb\" : \"ulb.keyword\",\"ward\" : \"ward.keyword\"}",
            "dateRefField": "date",
            "indexName": "pt-national-dashboard",
            "aggrQuery": "{\"aggs\": "{\"AGGRaggs\":{\"filterall_matching_docs\":{\"boolfilters\":{\"mustfilters\":[{\"termall\":{\"applicationStatus.keywordmatch_all\":\"APPROVED\"{}}]}},\"aggs\":{\"stateApplicationsWithinSlastateClosedApplications\":{\"terms\":{\"field\":\"state.keyword\"},\"aggs\":{\"intermediateAggrULB\":{\"terms\":{\"field\":\"ulb.keyword\"},\"aggs\":{\"intermediateAggrWard\":{\"terms\":{\"field\":\"ward.keyword\"},\"aggs\":{\"days\":{\"terms\":{\"field\":\"date\"},\"aggs\":{\"applicationsSubmittedWithInSlaapplications\":{\"avg\":{\"field\":\"todaysApplicationsWithinSLA\"}}}},\"wardapplications\":{\"sum_bucket\":{\"buckets_path\":\"days.applicationsSubmittedWithInSla\"}}}},\"ulbApplications\":{\"sum_bucket\":{\"buckets_path\":\"intermediateAggrWard.wardapplications\"}}}},\"stateApplications\":{\"sum_bucket\":{\"buckets_path\":\"intermediateAggrULB.ulbApplicationstodaysClosedApplications\"}}}},\"Total_Applications_Within_SLAwardapplications\":{\"sum_bucket\":{\"buckets_path\":\"stateApplicationsWithinSladays.stateApplicationsapplications\"}}}},\"stateMovedApplicationsulbApplications\":{\"termssum_bucket\":{\"fieldbuckets_path\":\"stateintermediateAggrWard.keywordwardapplications\"}}}},\"aggsstateApplications\":{\"intermediateAggrULBsum_bucket\":{\"termsbuckets_path\":{\"field\":\"ulb.keywordintermediateAggrULB.ulbApplications\"}}}},\"aggsTotal_Closed_Applications\":{\"intermediateAggrWardsum_bucket\":{\"termsbuckets_path\":{\"field\":\"ward.keywordstateClosedApplications.stateApplications\"}},\"aggsstateTotalApplications\":{\"days\":{\"terms\":{\"field\":\"datestate.keyword\"},\"aggs\":{\"totalMovedApplicationsintermediateAggrULB\":{\"avgterms\":{\"field\":\"todaysMovedApplicationsForApplicationStatusulb.keyword\"}}}},\"wardapplications\":{\"sum_bucket\":{\"buckets_path\":\"days.totalMovedApplications\"}}}},\"ulbApplicationsaggs\":{\"intermediateAggrWard\":{\"sum_bucketterms\":{\"buckets_pathfield\":\"intermediateAggrWardward.wardapplicationskeyword\"}}}},\"stateApplicationsaggs\":{\"days\":{\"sum_bucketterms\":{\"buckets_pathfield\":\"intermediateAggrULB.ulbApplicationsdate\"}}}},\"Total_Moved_Applicationsaggs\":{\"applications\":{\"sum_bucketavg\":{\"buckets_pathfield\":\"stateMovedApplications.stateApplicationstodaysTotalApplications\"}}}}}}"
          }
        ],
        "chartType": "metric",
        "valueType": "percentage",
        "drillChart": "none",
        "documentType": "nss",
        "action": "percentage",
        "isRoundOff": true,
        "aggregationPaths": [
          "Total_Applications_Within_SLA",
          "Total_Moved_Applications"
        ],
        "insight": {
          "chartResponseMap" : "nssPtSlaAchieved",
          "action" : "differenceOfNumbers",
          "upwardIndicator" : "positive",
          "downwardIndicator" : "negative",
          "textMessage" : "$indicator$value% than last $insightInterval",
          "colorCode" : "#228B22",
          "insightInterval" : "year",
          "isRoundOff": true
        },\"wardapplications\":{\"sum_bucket\":{\"buckets_path\":\"days.applications\"}}}},\"ulbApplications\":{\"sum_bucket\":{\"buckets_path\":\"intermediateAggrWard.wardapplications\"}}}},\"stateApplications\":{\"sum_bucket\":{\"buckets_path\":\"intermediateAggrULB.ulbApplications\"}}}},\"Total_Applications\":{\"sum_bucket\":{\"buckets_path\":\"stateTotalApplications.stateApplications\"}},\"Applications_Pending\":{\"bucket_script\":{\"buckets_path\":{\"total\":\"Total_Applications\",\"closed\":\"Total_Closed_Applications\"},\"script\":\"(params.total - params.closed) \"}}}}}}"
          }
        ],
        "_commentchartType": " metric"
      },
       "nssPtPendancy": {     "chartNamevalueType": "NATIONAL_DSS_PT_PENDANCYpercentage",
        "queriesdrillChart": [
          {"none",
             "moduledocumentType": "PTnss",
            "requestQueryMapaction": "{\"state\" : \"state.keyword\",\"ulb\" : \"ulb.keyword\",\"ward\" : \"ward.keyword\"}",
      percentage",
        "isRoundOff": true,
        "aggregationPaths": [
         "dateRefField": "dateApplications_Pending",
            "indexNameTotal_Applications":
    "pt-national-dashboard",    ],
        "aggrQueryinsight": "{\"aggs\":{\"all_matching_docs\":{\"filters\":{\"filters\":{\"all\":{\"match_all\":{}}}},\"aggs\":{\"stateClosedApplications\":{\"terms\":{\"field\":\"state.keyword\"},\"aggs\":{\"intermediateAggrULB\":{\"terms\":{\"field\":\"ulb.keyword\"},\"aggs\":{\"intermediateAggrWard\":{\"terms\":{\"field\":\"ward.keyword\"},\"aggs\":{\"days\":{\"terms\":{\"field\":\"date\"},\"aggs\":{\"applications\":{\"avg\":{\"field\":\"todaysClosedApplications\"}}}},\"wardapplications\":{\"sum_bucket\":{\"buckets_path\":\"days.applications\"}}}},\"ulbApplications\":{\"sum_bucket\":{\"buckets_path\":\"intermediateAggrWard.wardapplications\"}}}},\"stateApplications\":{\"sum_bucket\":{\"buckets_path\":\"intermediateAggrULB.ulbApplications\"}}}},\"Total_Closed_Applications\":{\"sum_bucket\":{\"buckets_path\":\"stateClosedApplications.stateApplications\"}},\"stateTotalApplications\"{
          "chartResponseMap" : "nssPtPendancy",
          "action" : "differenceOfNumbers",
          "upwardIndicator" : "positive",
          "downwardIndicator" : "negative",
          "textMessage" : "$indicator$value% than last $insightInterval",
          "colorCode" : "#228B22",
          "insightInterval" : "year",
          "isRoundOff": true
        },
        "_comment": " "
      },
    
      "nssOverviewPendancy": {
        "chartName": "NATIONAL_DSS_OVERVIEW_PENDANCY",
        "queries": [
          {
            "module": "PT",
            "requestQueryMap": "{\"state\" : \"state.keyword\",\"ulb\" : \"ulb.keyword\",\"ward\" : \"ward.keyword\"}",
            "dateRefField": "date",
            "indexName": "pt-national-dashboard",
            "aggrQuery": "{\"aggs\":{\"all_matching_docs\":{\"filters\":{\"filters\":{\"all\":{\"match_all\":{}}}},\"aggs\":{\"stateClosedApplications\":{\"terms\":{\"field\":\"state.keyword\"},\"aggs\":{\"intermediateAggrULB\":{\"terms\":{\"field\":\"ulb.keyword\"},\"aggs\":{\"intermediateAggrWard\":{\"terms\":{\"field\":\"ward.keyword\"},\"aggs\":{\"days\":{\"terms\":{\"field\":\"date\"},\"aggs\":{\"applications\":{\"avg\":{\"field\":\"todaysTotalApplicationstodaysClosedApplications\"}}}},\"wardapplications\":{\"sum_bucket\":{\"buckets_path\":\"days.applications\"}}}},\"ulbApplications\":{\"sum_bucket\":{\"buckets_path\":\"intermediateAggrWard.wardapplications\"}}}},\"stateApplications\":{\"sum_bucket\":{\"buckets_path\":\"intermediateAggrULB.ulbApplications\"}}}},\"Total_Closed_Applications\"stateApplications\":{\"sum_bucket\":{\"buckets_path\":\"intermediateAggrULBstateClosedApplications.ulbApplicationsstateApplications\"}}}},\"Total_ApplicationsstateTotalApplications\":{\"sum_bucketterms\":{\"buckets_pathfield\":\"stateTotalApplicationsstate.stateApplicationskeyword\"}},\"Applications_Pendingaggs\":{\"bucket_scriptintermediateAggrULB\":{\"buckets_pathterms\":{\"totalfield\":\"Total_Applicationsulb.keyword\"},\"closedaggs\":{\"intermediateAggrWard\":{\"Total_Closed_Applicationsterms\"},:{\"scriptfield\":\"(params.total - params.closed) \"}}}}}}"
          }
        ],
        "chartType": "metric",
        "valueType": "percentage",
        "drillChart": "none",
        "documentType": "nss",
        "action": "percentage",
        "isRoundOff": true,
        "aggregationPaths": [
          "Applications_Pending",
          "Total_Applications"
        ],
        "insight": {
          "chartResponseMap" : "nssPtPendancy",
          "action" : "differenceOfNumbers",
          "upwardIndicator" : "positive",
          "downwardIndicator" : "negative",
          "textMessage" : "$indicator$value% than last $insightInterval",
          "colorCode" : "#228B22",
          "insightInterval" : "year",
          "isRoundOff": true
        },
        "_comment": " "
      },
    
      "nssOverviewPendancy": {
        "chartName": "NATIONAL_DSS_OVERVIEW_PENDANCY",
        "queries": [ward.keyword\"},\"aggs\":{\"days\":{\"terms\":{\"field\":\"date\"},\"aggs\":{\"applications\":{\"avg\":{\"field\":\"todaysTotalApplications\"}}}},\"wardapplications\":{\"sum_bucket\":{\"buckets_path\":\"days.applications\"}}}},\"ulbApplications\":{\"sum_bucket\":{\"buckets_path\":\"intermediateAggrWard.wardapplications\"}}}},\"stateApplications\":{\"sum_bucket\":{\"buckets_path\":\"intermediateAggrULB.ulbApplications\"}}}},\"Total_Applications\":{\"sum_bucket\":{\"buckets_path\":\"stateTotalApplications.stateApplications\"}},\"Applications_Pending\":{\"bucket_script\":{\"buckets_path\":{\"total\":\"Total_Applications\",\"closed\":\"Total_Closed_Applications\"},\"script\":\"(params.total - params.closed) \"}}}}}}"
          },
          {
            "module": "PTTL",
            "requestQueryMap": "{\"state\" : \"state.keyword\",\"ulb\" : \"ulb.keyword\",\"ward\" : \"ward.keyword\"}",
            "dateRefField": "date",
            "indexName": "pttl-national-dashboard",
            "aggrQuery": "{\"aggs\":{\"all_matching_docs\":{\"filters\":{\"filters\":{\"all\":{\"match_all\":{}}}},\"aggs\":{\"stateClosedApplications\":{\"terms\":{\"field\":\"state.keyword\"},\"aggs\":{\"intermediateAggrULB\":{\"terms\":{\"field\":\"ulb.keyword\"},\"aggs\":{\"intermediateAggrWard\":{\"terms\":{\"field\":\"ward.keyword\"},\"aggs\":{\"days\":{\"terms\":{\"field\":\"date\"},\"aggs\":{\"applications\":{\"avg\":{\"field\":\"todaysClosedApplications\"}}}},\"wardapplications\":{\"sum_bucket\":{\"buckets_path\":\"days.applications\"}}}},\"ulbApplications\":{\"sum_bucket\":{\"buckets_path\":\"intermediateAggrWard.wardapplications\"}}}},\"stateApplications\":{\"sum_bucket\":{\"buckets_path\":\"intermediateAggrULB.ulbApplications\"}}}},\"Total_Closed_Applications\":{\"sum_bucket\":{\"buckets_path\":\"stateClosedApplications.stateApplications\"}},\"stateTotalApplications\":{\"terms\":{\"field\":\"state.keyword\"},\"aggs\":{\"intermediateAggrULB\":{\"terms\":{\"field\":\"ulb.keyword\"},\"aggs\":{\"intermediateAggrWard\":{\"terms\":{\"field\":\"ward.keyword\"},\"aggs\":{\"days\":{\"terms\":{\"field\":\"date\"},\"aggs\":{\"applications\":{\"avg\":{\"field\":\"todaysTotalApplicationstodaysApplications\"}}}},\"wardapplications\":{\"sum_bucket\":{\"buckets_path\":\"days.applications\"}}}},\"ulbApplications\":{\"sum_bucket\":{\"buckets_path\":\"intermediateAggrWard.wardapplications\"}}}},\"stateApplications\":{\"sum_bucket\":{\"buckets_path\":\"intermediateAggrULB.ulbApplications\"}}}},\"Total_Applications\":{\"sum_bucket\":{\"buckets_path\":\"stateTotalApplications.stateApplications\"}},\"Applications_Pending\":{\"bucket_script\":{\"buckets_path\":{\"total\":\"Total_Applications\",\"closed\":\"Total_Closed_Applications\"},\"script\":\"(params.total - params.closed) \"}}}}}}"
          }
        ],
        "chartType": "metric",
        "valueType": "percentage",
        "drillChart": "none",
        "documentType": "nss",
        "action": "percentage",
        "isRoundOff": true,
        "aggregationPaths": [
          "Applications_Pending",
          "Total_Applications"
        ],
        "insight": {
          "chartResponseMap" : "nssOverviewPendancy",
          "action" : "differenceOfNumbers",
          "upwardIndicator" : "positive",
          "downwardIndicator" : "negative",
          "textMessage" : "$indicator$value% than last $insightInterval",
          "colorCode" : "#228B22",
          "insightInterval" : "year",
          "isRoundOff": true
        },
        "_comment": " "
      },
    
      "nssPtCitizenFeedbackScore": {
        "chartName": "NATIONAL_DSS_PT_CITIZEN_FEEDBACK_SCORE",
        "queries": [
          {
            "module": "CF",
            "requestQueryMap": "{\"state\" : \"state.keyword\",\"ulb\" : \"ulb.keyword\",\"ward\" : \"ward.keyword\"}",
            "dateRefField": "date",
            "indexName": "citizen-feedback-national-dashboard",
            "aggrQuery": "{\"aggs\":{\"AGGR\":{\"filter\":{\"bool\":{\"must\":[{\"term\":{\"serviceModule.keyword\":\"PT\"}}]}},\"aggs\":{\"Total Feedback Score\":{\"sum\":{\"script\":{\"lang\":\"painless\",\"inline\":\"doc['todaysAverageCitizenRating'].value * doc['todaysNoOfCitizenResponsesForChannel'].value\"}}},\"Total Number of Responses\":{\"sum\":{\"field\":\"todaysNoOfCitizenResponsesForChannel\"}}}}}}"
          }
        ],
        "chartType": "metric",
        "valueType": "number",
        "drillChart": "none",
        "documentType": "nss",
        "action": "division",
        "isRoundOff": true,
        "aggregationPaths": [
          "Total Feedback Score",
          "Total Number of Responses"
        ],
        "insight": {
          "chartResponseMap" : "nssPtCitizenFeedbackScore",
          "action" : "differenceOfNumbers",
          "upwardIndicator" : "positive",
          "downwardIndicator" : "negative",
          "textMessage" : "$indicator$value% than last $insightInterval",
          "colorCode" : "#228B22",
          "insightInterval" : "year",
          "isRoundOff": true
        },
        "_comment": " "
      },
      
      "nssOverviewCitizenFeedbackScore": {
        "chartName": "NATIONAL_DSS_OVERVIEW_CITIZEN_FEEDBACK_SCORE",
        "queries": [
          {
            "module": "CF",
            "requestQueryMap": "{\"state\" : \"state.keyword\",\"ulb\" : \"ulb.keyword\",\"ward\" : \"ward.keyword\"}",
            "dateRefField": "date",
            "indexName": "citizen-feedback-national-dashboard",
            "aggrQuery": "{\"aggs\":{\"AGGR\":{\"filter\":{\"bool\":{\"must\":[{\"term\":{\"serviceModule.keyword\":\"PT\"}}]}},\"aggs\":{\"Total Feedback Score\":{\"sum\":{\"script\":{\"lang\":\"painless\",\"inline\":\"doc['todaysAverageCitizenRating'].value * doc['todaysNoOfCitizenResponsesForChannel'].value\"}}},\"Total Number of Responses\":{\"sum\":{\"field\":\"todaysNoOfCitizenResponsesForChannel\"}}}}}}"
          }
        ],
        "chartType": "metric",
        "valueType": "number",
        "drillChart": "none",
        "documentType": "nss",
        "action": "division",
        "isRoundOff": true,
        "aggregationPaths": [
          "Total Feedback Score",
          "Total Number of Responses"
        ],
        "insight": {
          "chartResponseMap" : "nssOverviewCitizenFeedbackScore",
          "action" : "differenceOfNumbers",
          "upwardIndicator" : "positive",
          "downwardIndicator" : "negative",
          "textMessage" : "$indicator$value% than last $insightInterval",
          "colorCode" : "#228B22",
          "insightInterval" : "year",
          "isRoundOff": true
        },
        "_comment": " "
      },
      
       "nssPtCitizenServiceDeliveryIndex": {
        "chartName": "NATIONAL_DSS_PT_CITIZEN_SERVICE_DELIVERY_INDEX",
        "queries": [
          {
            "module": "PT",
            "requestQueryMap": "{\"state\" : \"state.keyword\",\"ulb\" : \"ulb.keyword\",\"ward\" : \"ward.keyword\"}",
            "dateRefField": "date",
            "indexName": "pt-national-dashboard",
            "aggrQuery": "{\"aggs\": {\"all_matching_docs\": {\"filters\": {\"filters\": {\"all\": {\"match_all\": {}}}},\"aggs\": {\"state\":{\"terms\": {\"field\": \"state.keyword\",\"size\": 10000},\"aggs\": {\"ulb\": {\"terms\": {\"field\": \"ulb.keyword\",\"size\": 10000},\"aggs\": {\"ward\": {\"terms\": {\"field\": \"ward.keyword\",\"size\": 10000},\"aggs\": {\"SlaintermediateAggr\": {\"terms\": {\"field\": \"date\",\"size\": 10000},\"aggs\": {\"applicationsSubmittedWithInSla\": {\"avg\": {\"field\": \"todaysApplicationsWithinSLA\"}}}},\"Total_Applications_Within_SLA\": {\"sum_bucket\": {\"buckets_path\": \"SlaintermediateAggr.applicationsSubmittedWithInSla\"}},\"app\": {\"filter\": {\"bool\": {\"must\":[{\"match\":{\"applicationStatus.keyword\" : \"APPROVED\"}}]}},\"aggs\": {\"totalapplication\": {\"sum\": {\"field\": \"todaysMovedApplicationsForApplicationStatus\"}}}},\"aggregatedsla\": {\"bucket_script\": {\"buckets_path\": {\"total\": \"app.totalapplication\",\"withinsla\": \"Total_Applications_Within_SLA\"},\"script\": \"((params.withinsla / params.total) * 100)*0.5\"}}}}}}}}}}}}"
          },
          {
            "module": "CF",
            "requestQueryMap": "{\"state\" : \"state.keyword\",\"ulb\" : \"ulb.keyword\",\"ward\" : \"ward.keyword\"}",
            "dateRefField": "date",
            "indexName": "citizen-feedback-national-dashboard",
            "aggrQuery": "{\"aggs\":{\"AGGR\":{\"filter\":{\"bool\": {\"must\": [{\"term\": {\"serviceModule.keyword\": \"PT\"}}]}},\"aggs\": {\"all_matching_docs\": {\"filters\": {\"filters\": {\"all\": {\"match_all\": {}}}},\"aggs\": {\"state\": {\"terms\": {\"field\": \"state.keyword\",\"size\": 10000},\"aggs\": {\"ulb\": {\"terms\": {\"field\": \"ulb.keyword\",\"size\": 10000},\"aggs\": {\"ward\": {\"terms\": {\"field\": \"ward.keyword\",\"size\": 10000},\"aggs\": {\"TotalFeedbackScore\": {\"sum\": {\"script\": {\"lang\": \"painless\",\"inline\": \"doc['todaysAverageCitizenRating'].value * doc['todaysNoOfCitizenResponsesForChannel'].value\"}}},\"TotalNumberofResponses\": {\"sum\": {\"field\": \"todaysNoOfCitizenResponsesForChannel\"}},\"avgfeedback\": {\"bucket_script\": {\"buckets_path\": {\"response\": \"TotalNumberofResponses\",\"feedbak\": \"TotalFeedbackScore\"},\"script\": \"((params.response / params.feedbak) * 100)*0.5\"}}}}}}}}}}}}}}"
          }
        ],
        "chartType": "metric",
        "valueType": "number",
        "drillChart": "none",
        "documentType": "nss",
        "action": "",
        "isRoundOff": true,
        "aggregationPaths": [
          "aggregatedsla",
          "avgfeedback"
        ],
        "insight": {
          "chartResponseMap" : "nssPtCitizenServiceDeliveryIndex",
          "action" : "differenceOfNumbers",
          "upwardIndicator" : "positive",
          "downwardIndicator" : "negative",
          "textMessage" : "$indicator$value% than last $insightInterval",
          "colorCode" : "#228B22",
          "insightInterval" : "year",
          "isRoundOff": true
        },
        "_comment": " "
      }


    MasterDashboardConfig.json

...