From 299111f47039111cb8ab1ee6dae9b2bc4f760bf9 Mon Sep 17 00:00:00 2001 From: vijayg10 <33152110+vijayg10@users.noreply.github.com> Date: Tue, 24 Dec 2024 14:20:57 +0530 Subject: [PATCH] feat: fp update fx (#117) * chore: refactor params * fix: ver * chore: update versions * fix: issue * fix: issue * fix: dns * fix: flow * fix: issue * fix: transfers not shown * feat: add indexes in mongodb * chore: bump version * chore: bump fp version * chore: bump * chore: bump --- .../helmfile/values-fp-min.yaml | 14 +- mojaloop/finance-portal/Chart.yaml | 16 +- .../reporting-events-processor-svc/Chart.yaml | 4 +- .../values.yaml | 2 +- mojaloop/reporting-hub-bop-api-svc/Chart.yaml | 4 +- .../reporting-hub-bop-api-svc/values.yaml | 2 +- .../reporting-hub-bop-positions-ui/Chart.yaml | 4 +- .../values.yaml | 2 +- .../Chart.yaml | 4 +- .../values.yaml | 2 +- mojaloop/reporting-hub-bop-shell/Chart.yaml | 4 +- mojaloop/reporting-hub-bop-shell/values.yaml | 7 +- mojaloop/reporting-hub-bop-trx-ui/Chart.yaml | 4 +- mojaloop/reporting-hub-bop-trx-ui/values.yaml | 2 +- mojaloop/reporting-legacy-api/Chart.yaml | 2 +- .../configs/flow.json | 4809 ----------------- .../configs/mongo-init-indices.js | 47 + .../templates/service.yaml | 2 + .../templates/statefulset.yaml | 58 +- .../reporting-nifi-processor-svc/values.yaml | 96 +- 20 files changed, 206 insertions(+), 4879 deletions(-) delete mode 100644 mojaloop/reporting-nifi-processor-svc/configs/flow.json create mode 100644 mojaloop/reporting-nifi-processor-svc/configs/mongo-init-indices.js diff --git a/local-deployment-methods/helmfile/values-fp-min.yaml b/local-deployment-methods/helmfile/values-fp-min.yaml index 05f1584e..f62680de 100644 --- a/local-deployment-methods/helmfile/values-fp-min.yaml +++ b/local-deployment-methods/helmfile/values-fp-min.yaml @@ -8,23 +8,23 @@ global: keto: readURL: "http://keto-read:80" reportingDB: - host: centralledger-mysql + host: mysqldb port: 3306 - user: user - database: default + user: central_ledger + database: central_ledger # secret: {} secret: - name: mysql + name: mysqldb key: mysql-password reportingEventsDB: host: reporting-events-db port: 27017 - user: user - database: default + user: finance_portal + database: finance_portal # secret: {} secret: name: reporting-events-db - key: mongodb-password + key: mongodb-passwords kafka: host: test1-kafka-headless port: 9092 diff --git a/mojaloop/finance-portal/Chart.yaml b/mojaloop/finance-portal/Chart.yaml index da5efd39..257b0bb1 100644 --- a/mojaloop/finance-portal/Chart.yaml +++ b/mojaloop/finance-portal/Chart.yaml @@ -15,13 +15,13 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 4.3.0 +version: 5.0.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: "4.3.0" +appVersion: "5.0.0" dependencies: - name: common repository: "file://../common" @@ -42,14 +42,14 @@ dependencies: tags: - mojaloop - reporting-hub-bop-shell - version: 1.0.3 + version: 1.1.0 - name: reporting-hub-bop-api-svc condition: reporting-hub-bop-api-svc.enabled repository: "file://../reporting-hub-bop-api-svc" tags: - mojaloop - reporting-hub-bop-api-svc - version: 2.0.0 + version: 3.0.0 - name: reporting-legacy-api condition: reporting-legacy-api.enabled repository: "file://../reporting-legacy-api" @@ -63,7 +63,7 @@ dependencies: tags: - mojaloop - reporting-events-processor-svc - version: 3.0.1 + version: 3.1.0 - name: reporting-hub-bop-role-ui condition: reporting-hub-bop-role-ui.enabled repository: "file://../reporting-hub-bop-role-ui" @@ -77,21 +77,21 @@ dependencies: tags: - mojaloop - reporting-hub-bop-trx-ui - version: 1.0.0 + version: 2.0.0 - name: reporting-hub-bop-settlements-ui condition: reporting-hub-bop-settlements-ui.enabled repository: "file://../reporting-hub-bop-settlements-ui" tags: - mojaloop - reporting-hub-bop-settlements-ui - version: 1.0.3 + version: 1.1.0 - name: reporting-hub-bop-positions-ui condition: reporting-hub-bop-positions-ui.enabled repository: "file://../reporting-hub-bop-positions-ui" tags: - mojaloop - reporting-hub-bop-positions-ui - version: 1.0.3 + version: 1.0.4 - name: reporting-hub-bop-experience-api-svc condition: reporting-hub-bop-experience-api-svc.enabled repository: "file://../reporting-hub-bop-experience-api-svc" diff --git a/mojaloop/reporting-events-processor-svc/Chart.yaml b/mojaloop/reporting-events-processor-svc/Chart.yaml index f5c050e1..e45f2db3 100644 --- a/mojaloop/reporting-events-processor-svc/Chart.yaml +++ b/mojaloop/reporting-events-processor-svc/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v2 description: Reporting Events Processor name: reporting-events-processor-svc -version: 3.0.1 -appVersion: "3.0.0" +version: 3.1.0 +appVersion: "3.1.0" home: http://mojaloop.io icon: http://mojaloop.io/images/logo.png sources: diff --git a/mojaloop/reporting-events-processor-svc/values.yaml b/mojaloop/reporting-events-processor-svc/values.yaml index 7488178a..bd9b7f36 100644 --- a/mojaloop/reporting-events-processor-svc/values.yaml +++ b/mojaloop/reporting-events-processor-svc/values.yaml @@ -100,7 +100,7 @@ containerSecurityContext: image: registry: docker.io repository: mojaloop/reporting-events-processor-svc - tag: v3.0.0 + tag: v3.1.0 ## Specify a imagePullPolicy ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images diff --git a/mojaloop/reporting-hub-bop-api-svc/Chart.yaml b/mojaloop/reporting-hub-bop-api-svc/Chart.yaml index d48cb928..4e104763 100644 --- a/mojaloop/reporting-hub-bop-api-svc/Chart.yaml +++ b/mojaloop/reporting-hub-bop-api-svc/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v2 description: Reporting API service name: reporting-hub-bop-api-svc -version: 2.0.0 -appVersion: "2.0.3" +version: 3.0.0 +appVersion: "3.0.0" home: http://mojaloop.io icon: http://mojaloop.io/images/logo.png sources: diff --git a/mojaloop/reporting-hub-bop-api-svc/values.yaml b/mojaloop/reporting-hub-bop-api-svc/values.yaml index f81e3296..190e0d49 100644 --- a/mojaloop/reporting-hub-bop-api-svc/values.yaml +++ b/mojaloop/reporting-hub-bop-api-svc/values.yaml @@ -130,7 +130,7 @@ containerSecurityContext: image: registry: docker.io repository: mojaloop/reporting-hub-bop-api-svc - tag: v2.0.3 + tag: v3.0.0 ## Specify a imagePullPolicy ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images diff --git a/mojaloop/reporting-hub-bop-positions-ui/Chart.yaml b/mojaloop/reporting-hub-bop-positions-ui/Chart.yaml index 1f62013d..a8b2dd27 100644 --- a/mojaloop/reporting-hub-bop-positions-ui/Chart.yaml +++ b/mojaloop/reporting-hub-bop-positions-ui/Chart.yaml @@ -3,8 +3,8 @@ description: >- This is the role microfrontend of the BizOps framework that handles tracing of transfers. name: reporting-hub-bop-positions-ui -version: 1.0.3 -appVersion: "0.0.6" +version: 1.0.4 +appVersion: "1.0.4" home: http://mojaloop.io icon: http://mojaloop.io/images/logo.png sources: diff --git a/mojaloop/reporting-hub-bop-positions-ui/values.yaml b/mojaloop/reporting-hub-bop-positions-ui/values.yaml index 48cbd7ff..654feeba 100644 --- a/mojaloop/reporting-hub-bop-positions-ui/values.yaml +++ b/mojaloop/reporting-hub-bop-positions-ui/values.yaml @@ -80,7 +80,7 @@ containerSecurityContext: image: registry: docker.io repository: mojaloop/reporting-hub-bop-positions-ui - tag: v0.0.6 + tag: v0.0.7 ## Specify a imagePullPolicy ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images diff --git a/mojaloop/reporting-hub-bop-settlements-ui/Chart.yaml b/mojaloop/reporting-hub-bop-settlements-ui/Chart.yaml index 91126a8e..fc4d750e 100644 --- a/mojaloop/reporting-hub-bop-settlements-ui/Chart.yaml +++ b/mojaloop/reporting-hub-bop-settlements-ui/Chart.yaml @@ -3,8 +3,8 @@ description: >- This is the role microfrontend of the BizOps framework that handles tracing of transfers. name: reporting-hub-bop-settlements-ui -version: 1.0.3 -appVersion: "0.0.12" +version: 1.1.0 +appVersion: "1.1.0" home: http://mojaloop.io icon: http://mojaloop.io/images/logo.png sources: diff --git a/mojaloop/reporting-hub-bop-settlements-ui/values.yaml b/mojaloop/reporting-hub-bop-settlements-ui/values.yaml index 8828e7f0..44aad71a 100644 --- a/mojaloop/reporting-hub-bop-settlements-ui/values.yaml +++ b/mojaloop/reporting-hub-bop-settlements-ui/values.yaml @@ -80,7 +80,7 @@ containerSecurityContext: image: registry: docker.io repository: mojaloop/reporting-hub-bop-settlements-ui - tag: v0.0.12 + tag: v0.0.19-snapshot.3 ## Specify a imagePullPolicy ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images diff --git a/mojaloop/reporting-hub-bop-shell/Chart.yaml b/mojaloop/reporting-hub-bop-shell/Chart.yaml index 0fd92615..7a9642fd 100644 --- a/mojaloop/reporting-hub-bop-shell/Chart.yaml +++ b/mojaloop/reporting-hub-bop-shell/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v2 description: This is the Shell application that accommodates BizOps microfrontends. name: reporting-hub-bop-shell -version: 1.0.3 -appVersion: "2.2.3" +version: 1.1.0 +appVersion: "1.1.0" home: http://mojaloop.io icon: http://mojaloop.io/images/logo.png sources: diff --git a/mojaloop/reporting-hub-bop-shell/values.yaml b/mojaloop/reporting-hub-bop-shell/values.yaml index b8dff413..74c3663c 100644 --- a/mojaloop/reporting-hub-bop-shell/values.yaml +++ b/mojaloop/reporting-hub-bop-shell/values.yaml @@ -80,7 +80,7 @@ containerSecurityContext: image: registry: docker.io repository: mojaloop/reporting-hub-bop-shell - tag: v2.2.3 + tag: v2.3.1 ## Specify a imagePullPolicy ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images @@ -198,6 +198,11 @@ config: REMOTE_2_URL: http://reporting-hub-bop-trx-ui.local REMOTE_3_URL: http://reporting-hub-bop-settlements-ui.local REMOTE_4_URL: http://reporting-hub-bop-positions-ui.local + # REACT_APP_TITLE: Mojaloop Finance Portal + # REACT_APP_SUBTITLE: Accelarating regional trade through supporting cross boarder, instant lowcost, payments and transfers. + # REACT_APP_TITLE_IMAGE: http://reporting-hub-bop-positions-ui.local/images/logo.png + # REACT_APP_TITLE_BAR_COLOR: '#911414' + # REACT_APP_DFSP_IMG: http://reporting-hub-bop-positions-ui.local/images/dfsp.png service: internalPort: 8080 diff --git a/mojaloop/reporting-hub-bop-trx-ui/Chart.yaml b/mojaloop/reporting-hub-bop-trx-ui/Chart.yaml index 4d6ae3e5..e12b4e6f 100644 --- a/mojaloop/reporting-hub-bop-trx-ui/Chart.yaml +++ b/mojaloop/reporting-hub-bop-trx-ui/Chart.yaml @@ -3,8 +3,8 @@ description: >- This is the role microfrontend of the BizOps framework that handles tracing of transfers. name: reporting-hub-bop-trx-ui -version: 1.0.0 -appVersion: "1.7.2" +version: 2.0.0 +appVersion: "2.0.0" home: http://mojaloop.io icon: http://mojaloop.io/images/logo.png sources: diff --git a/mojaloop/reporting-hub-bop-trx-ui/values.yaml b/mojaloop/reporting-hub-bop-trx-ui/values.yaml index c07c5d51..4d14eb20 100644 --- a/mojaloop/reporting-hub-bop-trx-ui/values.yaml +++ b/mojaloop/reporting-hub-bop-trx-ui/values.yaml @@ -80,7 +80,7 @@ containerSecurityContext: image: registry: docker.io repository: mojaloop/reporting-hub-bop-trx-ui - tag: v1.7.2 + tag: v2.0.0 ## Specify a imagePullPolicy ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images diff --git a/mojaloop/reporting-legacy-api/Chart.yaml b/mojaloop/reporting-legacy-api/Chart.yaml index 33d2882a..7c153b90 100644 --- a/mojaloop/reporting-legacy-api/Chart.yaml +++ b/mojaloop/reporting-legacy-api/Chart.yaml @@ -25,4 +25,4 @@ dependencies: tags: - mojaloop - reporting-templates - version: 1.1.10 + version: 1.1.12 diff --git a/mojaloop/reporting-nifi-processor-svc/configs/flow.json b/mojaloop/reporting-nifi-processor-svc/configs/flow.json deleted file mode 100644 index 7d40b927..00000000 --- a/mojaloop/reporting-nifi-processor-svc/configs/flow.json +++ /dev/null @@ -1,4809 +0,0 @@ -{ - "encodingVersion": { - "majorVersion": 2, - "minorVersion": 0 - }, - "maxTimerDrivenThreadCount": 10, - "maxEventDrivenThreadCount": 1, - "registries": [], - "parameterContexts": [], - "parameterProviders": [], - "controllerServices": [], - "reportingTasks": [], - "templates": [], - "rootGroup": { - "identifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "instanceIdentifier": "e68af2b0-0192-1000-54e1-456745b78faf", - "name": "NiFi Flow", - "comments": "", - "position": { - "x": 0, - "y": 0 - }, - "processGroups": [], - "remoteProcessGroups": [], - "processors": [ - { - "identifier": "d0116bdd-7eb0-31ea-836b-e516550117c7", - "instanceIdentifier": "01931005-b646-1215-c5f5-7d55724a65d8", - "name": "LogAttribute", - "comments": "", - "position": { - "x": 2512, - "y": 960 - }, - "type": "org.apache.nifi.processors.standard.LogAttribute", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "character-set": "UTF-8", - "Log FlowFile Properties": "true", - "Log Level": "info", - "attributes-to-log-regex": ".*", - "Output Format": "Line per Attribute", - "Log Payload": "false" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 25, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "success" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "dcbb8920-2508-30ff-96f1-19576109482b", - "instanceIdentifier": "01931000-84ad-1e36-b5a9-b337e2bdb80c", - "name": "Convert to Mongodb query", - "comments": "", - "position": { - "x": 5256, - "y": 1184 - }, - "type": "org.apache.nifi.processors.standard.ReplaceText", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "Regular Expression": "(?s)(^.*$)", - "Replacement Value": "{\n \"$set\": {\n\t\"settlementId\": NumberLong(${settlementId}),\n\t\"createdAt\" : { \n\t\t\"$date\" : \"${createdAt:trim()}\"\n \t},\n\t\"lastUpdatedAt\" : { \n\t\t\"$date\" : \"${lastUpdated:trim()}\"\n \t},\n\t\"settlementStatus\" : \"${settlementStatus}\",\n\t\"settlementModel\" : \"${settlementModel}\"\n },\n \"$push\": {\n \"settlementStateChange\": {\n \"reason\": \"${reason}\",\n \"status\": \"${settlementStatus}\",\n \"dateTime\": {\n \"$date\": \"${lastUpdated:trim()}\"\n }\n }\n }\n}\n\n", - "Evaluation Mode": "Line-by-Line", - "Line-by-Line Evaluation Mode": "All", - "Character Set": "UTF-8", - "Maximum Buffer Size": "1 MB", - "Replacement Strategy": "Regex Replace" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 25, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "failure" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "4360e162-2f57-3be5-8e76-e4f97b7c65ee", - "instanceIdentifier": "52a958a2-0193-1000-5703-d3220df91cac", - "name": "LogAttribute", - "comments": "", - "position": { - "x": 4064, - "y": 1648 - }, - "type": "org.apache.nifi.processors.standard.LogAttribute", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "character-set": "UTF-8", - "Log FlowFile Properties": "true", - "Log Level": "info", - "attributes-to-log-regex": ".*", - "Output Format": "Line per Attribute", - "Log Payload": "false" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 25, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "success" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "5267fedf-4c85-3561-a514-aed0f1c67895", - "instanceIdentifier": "2418811b-0193-1000-cf44-33db74a3d9ce", - "name": "Create Mongo query with details", - "comments": "", - "position": { - "x": 864, - "y": 1376 - }, - "type": "org.apache.nifi.processors.standard.ReplaceText", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "Regular Expression": "(?s)(^.*$)", - "Replacement Value": "{\n \"$set\": {\n \"transferId\": \"${transferId}\",\n\t\"transactionId\": \"${transactionId}\",\n\t\"baseUseCase\": \"${baseUseCase}\",\n\t\"sourceAmount\": ${sourceAmount:isEmpty():ifElse(${amount}, ${sourceAmount})},\n \"sourceCurrency\": \"${sourceCurrency:isEmpty():ifElse('${currency}', '${sourceCurrency}')}\",\n\t\"targetAmount\": ${targetAmount:isEmpty():ifElse(${amount}, ${targetAmount})},\n\t\"targetCurrency\" : \"${targetCurrency:isEmpty():ifElse('${currency}', '${targetCurrency}')}\",\n\t\"createdAt\": {\n\t\t\t\"$date\": \"${createdAt:trim()}\"\n\t\t},\n\t\"lastUpdated\": {\n\t\t\t\"$date\": \"${transferStateChangeDateTime:trim()}\"\n\t\t},\n \"transferState\": \"${transferStateChangeState}\",\n\t\"transactionType\": \"${transactionType}\",\n\t\"errorCode\": \"${errorCode}\",\n\t\"transferSettlementWindowId\": ${transferSettlementWindowId:isEmpty():ifElse('null', \"NumberLong(${transferSettlementWindowId})\")} ,\n\t\"payerDFSP\": \"${payerDFSP}\",\n\t\"payerDFSPProxy\": \"${payerDFSPProxy}\",\n\t\"payeeDFSP\": \"${payeeDFSP}\",\n\t\"payeeDFSPProxy\": \"${payeeDFSPProxy}\",\n\t\"payeeParty\": {\n\t \"partyIdType\": \"${payeePartyIdType}\",\n \"partyIdentifier\": \"${payeePartyIdentifier}\",\n \"partyName\": \"${payeePartyName}\",\n \"supportedCurrencies\": 'null',\n\t},\n\t\"payerParty\": {\n\t \"partyIdType\": \"${payerPartyIdType}\",\n \"partyIdentifier\": \"${payerPartyIdentifier}\",\n \"partyName\": \"${payerPartyName}\",\n \"supportedCurrencies\": \"null\",\n\t},\n \"quoteRequest\": {\n \"quoteId\": \"${quoteId}\",\n \"amountType\": \"${quoteRequestAmountType}\",\n \"amount\": {\n \"currency\": \"${quoteRequestCurrency}\",\n \"amount\": ${quoteRequestAmount:isEmpty():ifElse('null', ${quoteRequestAmount})}\n },\n \"fees\": {\n \"currency\": \"null\",\n \"amount\": \"null\"\n },\n },\n \"transferTerms\": {\n \"transferAmount\": {\n \"currency\": \"${transferTermsTransferCurrency}\",\n \"amount\": ${transferTermsTransferAmount}\n },\n \"payeeReceiveAmount\": {\n \"currency\": \"${transferTermsPayeeReceiveCurrency}\",\n \"amount\":${transferTermsPayeeReceiveAmount:isEmpty():ifElse('null', ${transferTermsPayeeReceiveAmount})}\n },\n \"payeeFspFee\": {\n \"currency\": \"${transferTermsPayeeFspFeeCurrency}\",\n \"amount\": ${transferTermsPayeeFspFeeAmount:isEmpty():ifElse('null', ${transferTermsPayeeFspFeeAmount})}\n },\n \"payeeFspCommission\": {\n \"currency\": \"${transferTermsPayeeFspCommissionCurrency}\",\n\t\t\"amount\": ${transferTermsPayeeFspCommissionAmount:isEmpty():ifElse('null', ${transferTermsPayeeFspCommissionAmount})}\n },\n \"expiration\": { \"$date\": \"${transferTermsExpiration:trim()}\" },\n \"geoCode\": {\n \"latitude\": \"${geoCodeLatitude}\",\n \"longitude\": \"${geoCodeLongitude}\"\n },\n \"ilpPacket\": \"${ilpPacket}\" \n },\n },\n \"$push\": {\n \"transferStateChanges\": {\n \"transferState\": \"${transferStateChangeState}\",\n \"reason\": \"${transferStateChangeReason}\",\n \"dateTime\": {\n\t\t\t\"$date\": \"${transferStateChangeDateTime:trim()}\"\n\t\t}\n }\n\t${positionChangesParticipantName:isEmpty():ifElse('', ',\"positionChanges\" : { \"participantName\": \"${positionChangesParticipantName}\", \"currency\": \"${positionChangesCurrency}\", \"ledgerType\": \"${positionChangesLedgerType}\", \"dateTime\": {\"$date\": \"${positionChangesDateTime}\"}, \"updatedPosition\": ${positionChangesUpdatedValue}, \"change\": ${positionChangesChange} }')}\n\n }\n}\n", - "Evaluation Mode": "Line-by-Line", - "Line-by-Line Evaluation Mode": "All", - "Character Set": "UTF-8", - "Maximum Buffer Size": "1 MB", - "Replacement Strategy": "Regex Replace" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 25, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "failure" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "af550e6d-86fe-3ac5-a6be-d00c7d4a762f", - "instanceIdentifier": "f6243042-0192-1000-ca84-f115b36b1ba5", - "name": "ConvertAvroToJSON", - "comments": "", - "position": { - "x": 2976, - "y": -16 - }, - "type": "org.apache.nifi.processors.avro.ConvertAvroToJSON", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-avro-nar", - "version": "1.27.0" - }, - "properties": { - "JSON container options": "array", - "Wrap Single Record": "false" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 0, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "failure" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "6b7f878d-b608-3337-b352-01c24485e3bf", - "instanceIdentifier": "01931003-ac12-12aa-b079-eac8f15e0ecf", - "name": "SettlementStateChange Fetch", - "comments": "", - "position": { - "x": 5256, - "y": -104 - }, - "type": "org.apache.nifi.processors.standard.QueryDatabaseTable", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "Table Name": "settlementStateChange", - "db-fetch-db-type": "MySQL", - "dbf-default-precision": "10", - "Max Wait Time": "0 seconds", - "Database Connection Pooling Service": "f588b330-0192-1000-c3c2-5b6de011724a", - "Maximum-value Columns": "settlementStateChangeId", - "dbf-user-logical-types": "false", - "qdbt-output-batch-size": "0", - "qdbt-max-rows": "0", - "qdbt-max-frags": "0", - "dbf-default-scale": "0", - "initial-load-strategy": "Start at Beginning", - "Fetch Size": "0", - "Columns to Return": "settlementStateChangeId, settlementId, settlementStateId", - "dbf-normalize": "false" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "1 min", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "PRIMARY", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 0, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "4e17f7b6-ceef-300f-a771-01ace12c4433", - "instanceIdentifier": "01931001-ac12-12aa-d6cb-9b12b5cee966", - "name": "ConvertAvroToJSON", - "comments": "", - "position": { - "x": 5256, - "y": 48 - }, - "type": "org.apache.nifi.processors.avro.ConvertAvroToJSON", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-avro-nar", - "version": "1.27.0" - }, - "properties": { - "JSON container options": "array", - "Wrap Single Record": "false" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 0, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "failure" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "9c049734-8ab9-3eee-b095-07f49d21fa4a", - "instanceIdentifier": "f5925f69-0192-1000-e4e5-06a1352474e8", - "name": "Save to Mongo DB", - "comments": "", - "position": { - "x": 864, - "y": 1544 - }, - "type": "org.apache.nifi.processors.mongodb.PutMongo", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-mongodb-nar", - "version": "1.27.0" - }, - "properties": { - "mongo-client-service": "f58ceb00-0192-1000-456c-dfb46e071bcc", - "Upsert": "true", - "ssl-client-auth": "NONE", - "Mode": "update", - "Mongo Database Name": "${EVENT_STORE_DB_DATABASE}", - "Mongo Collection Name": "transaction", - "putmongo-update-query": "{ \"transferId\": \"${transferId}\" }", - "put-mongo-update-mode": "operators", - "Write Concern": "ACKNOWLEDGED", - "Character Set": "UTF-8" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 0, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "5936972d-210c-3516-b32e-34362cbaf0a4", - "instanceIdentifier": "f6fc58ee-0192-1000-a60b-f5335a92b47d", - "name": "Extract commitRequestId", - "comments": "", - "position": { - "x": 2976, - "y": 288 - }, - "type": "org.apache.nifi.processors.standard.EvaluateJsonPath", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "Destination": "flowfile-attribute", - "Max String Length": "20 MB", - "Return Type": "auto-detect", - "commitRequestId": "$['commitRequestId']", - "fxTransferStateChangeId": "$['fxTransferStateChangeId']", - "Null Value Representation": "empty string", - "Path Not Found Behavior": "ignore" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 0, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "failure", - "unmatched" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "5ff9c33b-b916-3213-b568-85a1c6424e4f", - "instanceIdentifier": "624f9e04-0193-1000-56f1-485b6f4cbf8b", - "name": "LogAttribute", - "comments": "", - "position": { - "x": 4064, - "y": 1288 - }, - "type": "org.apache.nifi.processors.standard.LogAttribute", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "character-set": "UTF-8", - "Log FlowFile Properties": "true", - "Log Level": "info", - "attributes-to-log-regex": ".*", - "Output Format": "Line per Attribute", - "Log Payload": "false" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 25, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "success" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "d9dc2f34-50a0-36fb-91bc-54b39e6cc365", - "instanceIdentifier": "01931002-ac12-12aa-353a-c6c934e94c2d", - "name": "SplitJson", - "comments": "", - "position": { - "x": 5256, - "y": 200 - }, - "type": "org.apache.nifi.processors.standard.SplitJson", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "Max String Length": "20 MB", - "Null Value Representation": "empty string", - "JsonPath Expression": "$.*" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 0, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "original", - "failure" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "9b017620-b05b-319f-89f9-f708dd8aede9", - "instanceIdentifier": "f591e0ed-0192-1000-4a4c-13e5444104d7", - "name": "ConvertAvroToJSON", - "comments": "", - "position": { - "x": 1088, - "y": 704 - }, - "type": "org.apache.nifi.processors.avro.ConvertAvroToJSON", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-avro-nar", - "version": "1.27.0" - }, - "properties": { - "JSON container options": "array", - "Wrap Single Record": "false" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 0, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "failure" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "bcb017ab-1eaa-3046-9c2a-2e6931a032e2", - "instanceIdentifier": "01931000-69c4-18ac-5390-7fda5ef6f8fb", - "name": "Query for settlementWindows ", - "comments": "", - "position": { - "x": 5776, - "y": 728 - }, - "type": "org.apache.nifi.processors.standard.ExecuteSQL", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "esql-max-rows": "0", - "dbf-default-precision": "10", - "Max Wait Time": "0 seconds", - "Database Connection Pooling Service": "f588b330-0192-1000-c3c2-5b6de011724a", - "esql-auto-commit": "true", - "dbf-user-logical-types": "false", - "dbf-default-scale": "0", - "compression-format": "NONE", - "esql-output-batch-size": "0", - "esql-fetch-size": "0", - "SQL select query": "SELECT \ns.settlementId as settlementId ,\nssw.settlementSettlementWindowId as settlementWindowId\nFROM settlement s\nJOIN settlementSettlementWindow ssw on ssw.settlementId = s.settlementId \nWHERE s.settlementId = \"${settlementId}\"", - "dbf-normalize": "false" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 0, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "failure" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "4b4e7a41-82be-34a8-bf40-ba6c886dc46c", - "instanceIdentifier": "ffed5b4f-0192-1000-bb53-ed1944fe4399", - "name": "LogAttribute", - "comments": "", - "position": { - "x": 864, - "y": 1720 - }, - "type": "org.apache.nifi.processors.standard.LogAttribute", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "character-set": "UTF-8", - "Log FlowFile Properties": "true", - "Log Level": "info", - "attributes-to-log-regex": ".*", - "Output Format": "Line per Attribute", - "Log Payload": "false" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 25, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "success" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "28b48572-24c8-394f-96d7-ff2157355911", - "instanceIdentifier": "01931000-84ad-1e36-4085-a8919ceae988", - "name": "Payee conversion mongo query", - "comments": "", - "position": { - "x": 3192, - "y": 1504 - }, - "type": "org.apache.nifi.processors.standard.ReplaceText", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "Regular Expression": "(?s)(^.*$)", - "Replacement Value": "{\n \"$set\": {\n\t\"transferId\": \"${transferId}\",\n\t\"conversions.payee.counterPartyProxy\": \"${counterPartyProxy}\",\n \"conversions.payee.conversionRequestId\": \"${conversionRequestId}\",\n\t\"conversions.payee.conversionId\": \"${conversionId}\",\n \"conversions.payee.conversionCommitRequestId\": \"${conversionCommitRequestId}\",\n \"conversions.payee.conversionState\": \"${conversionState}\",\n \"conversions.payee.counterPartyFSP\": \"${counterPartyFsp}\",\n \"conversions.payee.conversionType\": \"${conversionType}\",\n \"conversions.payee.conversionSettlementWindowId\": NumberLong(${conversionSettlementWindowId}),\n \"conversions.payee.conversionTerms.conversionId\": \"${conversionTermsConversionId}\",\n \"conversions.payee.conversionTerms.determiningTransferId\": \"${conversionTermsDeterminingTransferId}\",\n \"conversions.payee.conversionTerms.initiatingFsp\": \"${conversionTermsInitiatingFsp}\",\n \"conversions.payee.conversionTerms.counterPartyFsp\": \"${conversionTermsCounterPartyFsp}\",\n \"conversions.payee.conversionTerms.amountType\": \"${conversionTermsAmountType}\",\n \"conversions.payee.conversionTerms.sourceAmount.currency\": \"${conversionTermsSourceCurrency}\",\n \"conversions.payee.conversionTerms.sourceAmount.amount\": ${conversionTermsSourceAmount},\n \"conversions.payee.conversionTerms.targetAmount.currency\": \"${conversionTermsTargetCurrency}\",\n \"conversions.payee.conversionTerms.targetAmount.amount\": ${conversionTermsTargetAmount},\n \"conversions.payee.conversionTerms.expiration\": {\n\t\t\t\"$date\": \"${conversionTermsExpiration:trim()}\"\n\t },\n \"conversions.payee.conversionTerms.ilpPacket\": \"${ilpPacket}\"\n },\n \"$push\": {\n \"conversions.payee.conversionStateChanges\": {\n \"conversionState\": \"${conversionStateChangesState}\",\n \"dateTime\": {\n\t\t\t\"$date\": \"${conversionStateChangesDateTime:trim()}\" \n\t\t},\n \"reason\": \"${conversionStateChangesReason}\"\n }\n }\n}\n\n", - "Evaluation Mode": "Line-by-Line", - "Line-by-Line Evaluation Mode": "All", - "Character Set": "UTF-8", - "Maximum Buffer Size": "1 MB", - "Replacement Strategy": "Regex Replace" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 25, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "failure" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "30d5df1b-42e4-3ee3-8cab-ed72c5b5f195", - "instanceIdentifier": "01931000-ad1a-1e35-58b0-b886a20dbd54", - "name": "ConvertAvroToJSON", - "comments": "", - "position": { - "x": 5256, - "y": 664 - }, - "type": "org.apache.nifi.processors.avro.ConvertAvroToJSON", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-avro-nar", - "version": "1.27.0" - }, - "properties": { - "JSON container options": "array", - "Wrap Single Record": "false" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 0, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "failure" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "837f1531-b27c-3824-bc73-056607f21de8", - "instanceIdentifier": "01931000-0734-1e36-7b30-0e608d8f5f13", - "name": "Extract the details as attributes", - "comments": "", - "position": { - "x": 5256, - "y": 840 - }, - "type": "org.apache.nifi.processors.standard.EvaluateJsonPath", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "Destination": "flowfile-attribute", - "lastUpdated": "$['lastUpdated']", - "reason": "$['reason']", - "createdAt": "$['createdAt']", - "Max String Length": "20 MB", - "settlementStatus": "$['settlementStatus']", - "Return Type": "auto-detect", - "Null Value Representation": "empty string", - "settlementId": "$['settlementId']", - "settlementModel": "$['settlementModel']", - "Path Not Found Behavior": "ignore" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 0, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "failure", - "unmatched" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "6f64e096-a2d6-37e1-a978-a8dc4686465c", - "instanceIdentifier": "01931000-ac12-12aa-7c8e-3180e1549684", - "name": "Convert date to mongo date format", - "comments": "", - "position": { - "x": 5256, - "y": 992 - }, - "type": "org.apache.nifi.processors.attributes.UpdateAttribute", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-update-attribute-nar", - "version": "1.27.0" - }, - "properties": { - "lastUpdated": "${lastUpdated:toDate(\"yyyy-MM-dd HH:mm:ss.S\"):format(\"yyyy-MM-dd'T'HH:mm:ss.SSSXXX\", \"UTC\")}\n", - "createdAt": "${createdAt:toDate(\"yyyy-MM-dd HH:mm:ss.S\"):format(\"yyyy-MM-dd'T'HH:mm:ss.SSSXXX\", \"UTC\")}\n", - "Store State": "Do not store state", - "canonical-value-lookup-cache-size": "100" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 25, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "bda9a316-5b1c-39bd-b7a5-1f18e0390471", - "instanceIdentifier": "48ad5df8-0193-1000-e29e-a00ff55ae239", - "name": "Covert charges array to required format", - "comments": "", - "position": { - "x": 3624, - "y": 1472 - }, - "type": "org.apache.nifi.processors.standard.JoltTransformJSON", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "jolt-spec": "[\n {\n \"operation\": \"shift\",\n \"spec\": {\n \"*\": {\n \"chargeType\": \"charges[&1].chargeType\",\n \"sourceAmount\": \"charges[&1].sourceAmount.amount\",\n \"sourceCurrency\": \"charges[&1].sourceAmount.currency\",\n \"targetAmount\": \"charges[&1].targetAmount.amount\",\n \"targetCurrency\": \"charges[&1].targetAmount.currency\"\n }\n }\n }\n]", - "jolt-transform": "jolt-transform-chain", - "Max String Length": "20 MB", - "pretty_print": "false", - "Transform Cache Size": "1" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 0, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "failure" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "03f0301a-27aa-3f8b-94fb-c39fdef9fcaf", - "instanceIdentifier": "48acb1f5-0193-1000-6a5e-f44ca96dd478", - "name": "ConvertAvroToJSON", - "comments": "", - "position": { - "x": 3624, - "y": 944 - }, - "type": "org.apache.nifi.processors.avro.ConvertAvroToJSON", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-avro-nar", - "version": "1.27.0" - }, - "properties": { - "JSON container options": "array", - "Wrap Single Record": "false" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 0, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "failure" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "6894ba24-6a32-3b64-a4e6-25fa02d66f9d", - "instanceIdentifier": "1ec8dcba-0193-1000-8911-62200bed212b", - "name": "Extract values from json", - "comments": "", - "position": { - "x": 1088, - "y": 880 - }, - "type": "org.apache.nifi.processors.standard.EvaluateJsonPath", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "transferStateChangeDateTime": "$['transferStateChangeDateTime']", - "payeePartyIdentifier": "$['payeePartyIdentifier']", - "positionChangesDateTime": "$['positionChangesDateTime']", - "payerDFSPProxy": "$['payerDFSPProxy']", - "errorCode": "$['errorCode']", - "quoteRequestAmountType": "$['quoteRequestAmountType']", - "positionChangesCurrency": "$['positionChangesCurrency']", - "transferTermsTransferCurrency": "$['transferTermsTransferCurrency']", - "Path Not Found Behavior": "ignore", - "createdAt": "$['createdAt']", - "baseUseCase": "$['baseUseCase']", - "payerPartyIdType": "$['payerPartyIdType']", - "positionChangesParticipantName": "$['positionChangesParticipantName']", - "transferTermsPayeeFspFeeCurrency": "$['transferTermsPayeeFspFeeCurrency']", - "geoCodeLatitude": "$['geoCodeLatitude']", - "targetCurrency": "$['targetCurrency']", - "positionChangesUpdatedValue": "$['positionChangesUpdatedValue']", - "transferStateChangeState": "$['transferStateChangeState']", - "transactionId": "$['transactionId']", - "quoteId": "$['quoteId']", - "positionChangesLedgerType": "$['positionChangesLedgerType']", - "transferTermsTransferAmount": "$['transferTermsTransferAmount']", - "payerPartyName": "$['payerPartyName']", - "payerPartyIdentifier": "$['payerPartyIdentifier']", - "transferSettlementWindowId": "$['transferSettlementWindowId']", - "payeeDFSP": "$['payeeDFSP']", - "transferTermsPayeeReceiveAmount": "$['transferTermsPayeeReceiveAmount']", - "Destination": "flowfile-attribute", - "transferTermsPayeeFspCommissionAmount": "$['transferTermsPayeeFspCommissionAmount']", - "ilpPacket": "$['ilpPacket']", - "Null Value Representation": "empty string", - "sourceCurrency": "$['sourceCurrency']", - "positionChangesChange": "$['positionChangesChange']", - "payeeDFSPProxy": "$['payeeDFSPProxy']", - "sourceAmount": "$['sourceAmount']", - "currency": "$['currency']", - "geoCodeLongitude": "$['geoCodeLongitude']", - "payerDFSP": "$['payerDFSP']", - "quoteRequestCurrency": "$['quoteRequestCurrency']", - "amount": "$['amount']", - "transferTermsExpiration": "$['transferTermsExpiration']", - "Max String Length": "20 MB", - "targetAmount": "$['targetAmount']", - "transferTermsPayeeFspFeeAmount": "$['transferTermsPayeeFspFeeAmount']", - "Return Type": "auto-detect", - "transferStateChangeReason": "$['transferStateChangeReason']", - "transferId": "$['transferId']", - "transferTermsPayeeReceiveCurrency": "$['transferTermsPayeeReceiveCurrency']", - "transactionType": "$['transactionType']", - "quoteRequestAmount": "$['quoteRequestAmount']", - "transferTermsPayeeFspCommissionCurrency": "$['transferTermsPayeeFspCommissionCurrency']", - "payeePartyIdType": "$['payeePartyIdType']", - "payeePartyName": "$['payeePartyName']" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 0, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "failure", - "unmatched" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "9e2c0b78-e63b-36ad-8399-b5bd1077d996", - "instanceIdentifier": "52a32499-0193-1000-d558-6b2fa0cc4081", - "name": "Save to MongoDB", - "comments": "", - "position": { - "x": 2976, - "y": 1856 - }, - "type": "org.apache.nifi.processors.mongodb.PutMongo", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-mongodb-nar", - "version": "1.27.0" - }, - "properties": { - "mongo-client-service": "f58ceb00-0192-1000-456c-dfb46e071bcc", - "Upsert": "true", - "ssl-client-auth": "NONE", - "Mode": "update", - "Mongo Database Name": "${EVENT_STORE_DB_DATABASE}", - "Mongo Collection Name": "transaction", - "putmongo-update-query": "{ \"transferId\": \"${transferId}\" }", - "put-mongo-update-mode": "operators", - "Write Concern": "ACKNOWLEDGED", - "Character Set": "UTF-8" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 0, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "372de8e9-ad65-3f67-a747-2ca1fabdd483", - "instanceIdentifier": "01931000-2499-12a3-f16e-5c50cdca918e", - "name": "Save to Mongo db", - "comments": "", - "position": { - "x": 5256, - "y": 1392 - }, - "type": "org.apache.nifi.processors.mongodb.PutMongo", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-mongodb-nar", - "version": "1.27.0" - }, - "properties": { - "mongo-client-service": "f58ceb00-0192-1000-456c-dfb46e071bcc", - "Upsert": "true", - "ssl-client-auth": "NONE", - "Mode": "update", - "Mongo Database Name": "${EVENT_STORE_DB_DATABASE}", - "Mongo Collection Name": "settlement", - "putmongo-update-query": "{ \"settlementId\": NumberLong(${settlementId}) }", - "put-mongo-update-mode": "operators", - "Write Concern": "ACKNOWLEDGED", - "Character Set": "UTF-8" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 0, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "success" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "de244eca-7e44-3a95-8035-51c6947fec4c", - "instanceIdentifier": "01931000-7e14-1262-1c8f-e4684eeee7ae", - "name": "ExecuteScript", - "comments": "", - "position": { - "x": 5776, - "y": 1392 - }, - "type": "org.apache.nifi.processors.script.ExecuteScript", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-scripting-nar", - "version": "1.27.0" - }, - "properties": { - "Script Engine": "Groovy", - "Script Body": "import org.apache.nifi.processor.io.StreamCallback\nimport groovy.json.JsonSlurper\nimport groovy.json.JsonOutput\n\n// StreamCallback to read and write flowfile content\nclass UpdateChargesCallback implements StreamCallback {\n @Override\n void process(InputStream inputStream, OutputStream outputStream) throws IOException {\n // Read flowfile content\n def input = inputStream.getText(\"UTF-8\")\n def jsonSlurper = new JsonSlurper()\n def settlementWindowsData = jsonSlurper.parseText(input) // Parse input JSON as an array\n\n // Iterate over settlementWindows and format 'settlementWindowId' fields as NumberLong\n settlementWindowsData.settlementWindows.each { settlementWindow ->\n if (settlementWindow.settlementWindowId) {\n // Wrap the settlementWindowId in a MongoDB-compatible NumberLong syntax\n settlementWindow.settlementWindowId = \"NumberLong(${settlementWindow.settlementWindowId})\"\n }\n }\n\n // Prepare MongoDB $set query with the typecasted array\n def mongoQuery = [\n '$set': [\n 'settlementWindows': settlementWindowsData.settlementWindows\n ]\n ]\n\n // Convert to JSON string (keep NumberLong syntax as raw text)\n def output = JsonOutput.toJson(mongoQuery).replaceAll('\"NumberLong\\\\((\\\\d+)\\\\)\"', 'NumberLong($1)')\n\n // Write transformed JSON query to flowfile\n outputStream.write(output.getBytes(\"UTF-8\"))\n }\n}\n\n// Execute the script\nflowFile = session.get()\nif (flowFile) {\n flowFile = session.write(flowFile, new UpdateChargesCallback())\n session.transfer(flowFile, REL_SUCCESS)\n}\n" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 0, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "0150a67c-4d91-31f6-82c9-90f7ea4365eb", - "instanceIdentifier": "f58d4e7c-0192-1000-5bf7-bd6192bed4fa", - "name": "transferStateChange fetch", - "comments": "", - "position": { - "x": 1088, - "y": -120 - }, - "type": "org.apache.nifi.processors.standard.QueryDatabaseTable", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "Table Name": "transferStateChange", - "db-fetch-db-type": "MySQL", - "dbf-default-precision": "10", - "Max Wait Time": "0 seconds", - "Database Connection Pooling Service": "f588b330-0192-1000-c3c2-5b6de011724a", - "Maximum-value Columns": "transferStateChangeId", - "dbf-user-logical-types": "false", - "qdbt-output-batch-size": "0", - "qdbt-max-rows": "0", - "qdbt-max-frags": "0", - "dbf-default-scale": "0", - "initial-load-strategy": "Start at Beginning", - "Fetch Size": "0", - "Columns to Return": "transferStateChangeId, transferId, transferStateId", - "dbf-normalize": "false" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "1 min", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "PRIMARY", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 0, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "42097830-aff6-3f67-bc59-a75551acaf3b", - "instanceIdentifier": "434bfabb-0193-1000-0507-ed29208424e3", - "name": "Convert dates to mongo date format", - "comments": "", - "position": { - "x": 864, - "y": 1232 - }, - "type": "org.apache.nifi.processors.attributes.UpdateAttribute", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-update-attribute-nar", - "version": "1.27.0" - }, - "properties": { - "transferStateChangeDateTime": "${transferStateChangeDateTime:toDate(\"yyyy-MM-dd HH:mm:ss.S\"):format(\"yyyy-MM-dd'T'HH:mm:ss.SSSXXX\", \"UTC\")}\n", - "createdAt": "${createdAt:toDate(\"yyyy-MM-dd HH:mm:ss.S\"):format(\"yyyy-MM-dd'T'HH:mm:ss.SSSXXX\", \"UTC\")}\n", - "positionChangesDateTime": "${positionChangesDateTime:isEmpty():ifElse('', ${positionChangesDateTime:toDate(\"yyyy-MM-dd HH:mm:ss.S\"):format(\"yyyy-MM-dd'T'HH:mm:ss.SSSXXX\", \"UTC\")})}", - "transferTermsExpiration": "${transferTermsExpiration:toDate(\"yyyy-MM-dd HH:mm:ss.S\"):format(\"yyyy-MM-dd'T'HH:mm:ss.SSSXXX\", \"UTC\")}\n", - "Store State": "Do not store state", - "canonical-value-lookup-cache-size": "100" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 25, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "d31a41f5-8a4a-3d55-a8f1-0bc286fea98a", - "instanceIdentifier": "f629f74e-0192-1000-187c-ed063c434321", - "name": "SplitJson", - "comments": "", - "position": { - "x": 2976, - "y": 136 - }, - "type": "org.apache.nifi.processors.standard.SplitJson", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "Max String Length": "20 MB", - "Null Value Representation": "empty string", - "JsonPath Expression": "$.*" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 0, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "original", - "failure" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "01164327-91aa-3a76-918e-d8c5c92d4801", - "instanceIdentifier": "01931000-85c2-18ad-c79f-2b1c5ec52765", - "name": "Update the settlementId ", - "comments": "", - "position": { - "x": 5776, - "y": 1056 - }, - "type": "org.apache.nifi.processors.standard.EvaluateJsonPath", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "Destination": "flowfile-attribute", - "Max String Length": "20 MB", - "Return Type": "auto-detect", - "Null Value Representation": "empty string", - "Path Not Found Behavior": "ignore" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 0, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "failure", - "unmatched" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "98f28131-edce-3683-a83b-5852617d6441", - "instanceIdentifier": "01931000-5df8-18ad-e215-c8ec03074d12", - "name": "Convert to required format", - "comments": "", - "position": { - "x": 5776, - "y": 1208 - }, - "type": "org.apache.nifi.processors.standard.JoltTransformJSON", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "jolt-spec": "[\n {\n \"operation\": \"shift\",\n \"spec\": {\n \"*\": { \n \"settlementWindowId\": \"settlementWindows[&1].settlementWindowId\"\n },\n\t \"settlementWindowId\": \"settlementWindows[0].settlementWindowId\"\n }\n }\n]", - "jolt-transform": "jolt-transform-chain", - "Max String Length": "20 MB", - "pretty_print": "false", - "Transform Cache Size": "1" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 0, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "failure" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "93a9b50a-2ac7-3e4a-a306-72fc429c871f", - "instanceIdentifier": "2a4db2cd-0193-1000-c5c0-1f946dff6dff", - "name": "Sql query to get conversion", - "comments": "", - "position": { - "x": 2976, - "y": 448 - }, - "type": "org.apache.nifi.processors.standard.ExecuteSQL", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "esql-max-rows": "0", - "dbf-default-precision": "10", - "Max Wait Time": "0 seconds", - "Database Connection Pooling Service": "f588b330-0192-1000-c3c2-5b6de011724a", - "esql-auto-commit": "true", - "dbf-user-logical-types": "false", - "dbf-default-scale": "0", - "compression-format": "NONE", - "esql-output-batch-size": "0", - "esql-fetch-size": "0", - "SQL select query": "SELECT \nft.determiningTransferId as transferId,\nfqct.conversionRequestId as conversionRequestId, \nfqct.conversionId as conversionId , \nft.commitRequestId as conversionCommitRequestId, \nftsc.transferStateId as conversionState,\nftf.settlementWindowId as conversionSettlementWindowId,\nfqrct.conversionId as conversionTermsConversionId,\nfqrct.determiningTransferId as conversionTermsDeterminingTransferId,\nfqrct.initiatingFsp as conversionTermsInitiatingFsp,\nfqrct.counterPartyFsp as conversionTermsCounterPartyFsp,\nat2.name as conversionTermsAmountType,\nfqrct.sourceAmount as conversionTermsSourceAmount,\nfqrct.sourceCurrency as conversionTermsSourceCurrency,\nfqrct.targetAmount as conversionTermsTargetAmount,\nfqrct.targetCurrency as conversionTermsTargetCurrency,\nfqrct.expirationDate as conversionTermsExpiration,\nftsc.transferStateId as conversionStateChangesState,\nftsc.reason as conversionStateChangesReason,\nftsc.createdDate as conversionStateChangesDateTime,\nip.value as ilpPacket,\nftt.name as conversionType,\nCASE \n\tWHEN cp.isProxy = 1 THEN cp.name \n\tELSE NULL\nEND as counterPartyProxy,\nCASE \n\tWHEN cp.isProxy = 0 THEN cp.name\n\tELSE ep.name\nEND as counterPartyFsp\nFROM fxTransfer ft \nJOIN fxQuoteConversionTerms fqct on fqct.conversionId = ft.commitRequestId \nJOIN fxQuoteResponseConversionTerms fqrct on fqrct.conversionId = ft.commitRequestId \nJOIN fxTransferStateChange ftsc on ftsc.commitRequestId = ft.commitRequestId \nLEFT JOIN fxTransferFulfilment ftf on ftf.commitRequestId = ft.commitRequestId \nJOIN ilpPacket ip on ip.transferId = ft.determiningTransferId \nJOIN amountType at2 on at2.amountTypeId = fqrct.amountTypeId \nLEFT JOIN fxWatchList fwl on fwl.commitRequestId = ft.commitRequestId \nJOIN fxTransferType ftt on fwl.fxTransferTypeId = ftt.fxTransferTypeId \nJOIN fxTransferParticipant ftp ON ftp.commitRequestId = ft.commitRequestId \nLEFT JOIN externalParticipant ep ON ftp.externalParticipantId = ep.externalParticipantId \nINNER JOIN participant AS cp ON cp.participantId = ftp.participantId \nINNER JOIN transferParticipantRoleType ftprt ON ftprt.transferParticipantRoleTypeId = ftp.transferParticipantRoleTypeId \nWHERE\n\tftprt.name = 'COUNTER_PARTY_FSP'\nAND ft.commitRequestId = \"${commitRequestId}\"\nAND ftsc.fxTransferStateChangeId = \"${fxTransferStateChangeId}\"\nLIMIT 1;", - "dbf-normalize": "false" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 0, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "failure" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "690a5c1a-3e89-3d71-8013-95e92709f4ea", - "instanceIdentifier": "620e1f82-0193-1000-6795-03349b85274b", - "name": "LogAttribute", - "comments": "", - "position": { - "x": 1328, - "y": 1232 - }, - "type": "org.apache.nifi.processors.standard.LogAttribute", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "character-set": "UTF-8", - "Log FlowFile Properties": "true", - "Log Level": "info", - "attributes-to-log-regex": ".*", - "Output Format": "Line per Attribute", - "Log Payload": "false" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 25, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "success" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "9d72faaf-d62b-3769-9ba3-3376f2cb10a6", - "instanceIdentifier": "01931004-ac12-12aa-6624-a9bec3e58bf2", - "name": "Extract settlementId and settlementState", - "comments": "", - "position": { - "x": 5256, - "y": 352 - }, - "type": "org.apache.nifi.processors.standard.EvaluateJsonPath", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "Destination": "flowfile-attribute", - "settlementStateId": "$['settlementStateId']", - "Max String Length": "20 MB", - "Return Type": "auto-detect", - "Null Value Representation": "empty string", - "settlementId": "$['settlementId']", - "Path Not Found Behavior": "ignore" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 0, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "failure", - "unmatched" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "14e4ffe9-9e99-39dd-8b00-965864a03c8b", - "instanceIdentifier": "f59048f4-0192-1000-9259-3a121fc44ae4", - "name": "SplitJson", - "comments": "", - "position": { - "x": 1088, - "y": 176 - }, - "type": "org.apache.nifi.processors.standard.SplitJson", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "Max String Length": "20 MB", - "Null Value Representation": "empty string", - "JsonPath Expression": "$.*" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 0, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "original", - "failure" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "019e65b9-cfbb-3704-8eb8-fb8082f963d5", - "instanceIdentifier": "01931000-b2cd-1a4d-9973-b2157635765e", - "name": "Query to get settlementWindow details", - "comments": "", - "position": { - "x": 5256, - "y": 512 - }, - "type": "org.apache.nifi.processors.standard.ExecuteSQL", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "esql-max-rows": "0", - "dbf-default-precision": "10", - "Max Wait Time": "0 seconds", - "Database Connection Pooling Service": "f588b330-0192-1000-c3c2-5b6de011724a", - "esql-auto-commit": "true", - "dbf-user-logical-types": "false", - "dbf-default-scale": "0", - "compression-format": "NONE", - "esql-output-batch-size": "0", - "esql-fetch-size": "0", - "SQL select query": "SELECT \ns.settlementId as settlementId ,\ns.createdDate as createdAt,\nssc.createdDate as lastUpdated,\nssc.settlementStateId as settlementStatus,\nsm.name as settlementModel,\nssc.reason as reason ,\nssw.settlementWindowId as settlementWindowId\nFROM \nsettlementStateChange ssc \nJOIN settlement s ON s.settlementId = ssc.settlementId \nJOIN settlementModel sm ON sm.settlementModelId = s.settlementModelId \nJOIN settlementSettlementWindow ssw on ssw.settlementId = s.settlementId \nWHERE \nssc.settlementStateId = \"${settlementStateId}\"\nAND ssc.settlementId = ${settlementId}", - "dbf-normalize": "false" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 0, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "failure" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "ce501ea0-50fd-3fc8-86a2-26eb14af7039", - "instanceIdentifier": "52aaac12-0193-1000-5578-93118770a4af", - "name": "Convert date to mongo date", - "comments": "", - "position": { - "x": 2976, - "y": 1120 - }, - "type": "org.apache.nifi.processors.attributes.UpdateAttribute", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-update-attribute-nar", - "version": "1.27.0" - }, - "properties": { - "Store State": "Do not store state", - "canonical-value-lookup-cache-size": "100", - "conversionStateChangesDateTime": "${conversionStateChangesDateTime:toDate(\"yyyy-MM-dd HH:mm:ss.S\"):format(\"yyyy-MM-dd'T'HH:mm:ss.SSSXXX\", \"UTC\")}\n", - "conversionTermsExpiration": "${conversionTermsExpiration:toDate(\"yyyy-MM-dd HH:mm:ss.S\"):format(\"yyyy-MM-dd'T'HH:mm:ss.SSSXXX\", \"UTC\")}\n" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 25, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "07155e5a-06a3-3e23-859e-bd7fc97aa251", - "instanceIdentifier": "61dee536-0193-1000-6ed7-bdc5ae5e0bf3", - "name": "Payer side / Payee side conversion", - "comments": "", - "position": { - "x": 2976, - "y": 1264 - }, - "type": "org.apache.nifi.processors.standard.RouteOnAttribute", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "payee": "${conversionType:equals('PAYEE_CONVERSION')}", - "Routing Strategy": "Route to Property name", - "payer": "${conversionType:equals('PAYER_CONVERSION')}" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 25, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "unmatched" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "cb153fe9-365c-3943-8e92-69a4dd0c0bbc", - "instanceIdentifier": "6245b3ab-0193-1000-cdb4-3265924892f4", - "name": "LogAttribute", - "comments": "", - "position": { - "x": 2976, - "y": 2056 - }, - "type": "org.apache.nifi.processors.standard.LogAttribute", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "character-set": "UTF-8", - "Log FlowFile Properties": "true", - "Log Level": "info", - "attributes-to-log-regex": ".*", - "Output Format": "Line per Attribute", - "Log Payload": "false" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 25, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "success" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "90d52517-06b9-3e1c-89fb-df64c682f257", - "instanceIdentifier": "6215b646-0193-1000-e44a-81544bcef4c5", - "name": "RouteOnAttribute", - "comments": "", - "position": { - "x": 3624, - "y": 1288 - }, - "type": "org.apache.nifi.processors.standard.RouteOnAttribute", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "Routing Strategy": "Route to Property name", - "data is not null": "${transferId:trim():length():gt(0)}", - "data is null": "${transferId:isEmpty()}" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 25, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "unmatched" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "bac9c61c-7172-3194-8085-60ce79c2e50c", - "instanceIdentifier": "48ad85c2-0193-1000-744f-ad134b45b3f0", - "name": "Extract transferId", - "comments": "", - "position": { - "x": 3624, - "y": 1112 - }, - "type": "org.apache.nifi.processors.standard.EvaluateJsonPath", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "Destination": "flowfile-attribute", - "Max String Length": "20 MB", - "Return Type": "auto-detect", - "Null Value Representation": "empty string", - "transferId": "$[0].determiningTransferId", - "Path Not Found Behavior": "ignore" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 0, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "failure", - "unmatched" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "d815000f-80e4-3b5f-b188-479478a15106", - "instanceIdentifier": "f5907374-0192-1000-4550-9ac5bef9d0d1", - "name": "Extract transferId and transferStateId", - "comments": "", - "position": { - "x": 1088, - "y": 328 - }, - "type": "org.apache.nifi.processors.standard.EvaluateJsonPath", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "Destination": "flowfile-attribute", - "Max String Length": "20 MB", - "Return Type": "auto-detect", - "Null Value Representation": "empty string", - "transferState": "$['transferStateId']", - "transferId": "$['transferId']", - "Path Not Found Behavior": "ignore" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 0, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "failure", - "unmatched" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "8a57a868-7a9f-33d2-be8e-41519c2dbff6", - "instanceIdentifier": "f5918073-0192-1000-f006-d61f74adcebc", - "name": "Query for transfer details", - "comments": "", - "position": { - "x": 1088, - "y": 520 - }, - "type": "org.apache.nifi.processors.standard.ExecuteSQL", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "esql-max-rows": "0", - "dbf-default-precision": "10", - "Max Wait Time": "0 seconds", - "Database Connection Pooling Service": "f588b330-0192-1000-c3c2-5b6de011724a", - "esql-auto-commit": "true", - "dbf-user-logical-types": "false", - "dbf-default-scale": "0", - "compression-format": "NONE", - "esql-output-batch-size": "0", - "esql-fetch-size": "0", - "SQL select query": "SELECT \n transfer.transferId as transferId, \n q.transactionReferenceId as transactionId, \n ft.sourceAmount as sourceAmount, \n ft.sourceCurrency as sourceCurrency, \n ft.targetAmount as targetAmount, \n ft.targetCurrency as targetCurrency, \n transfer.createdDate as createdAt, \n transfer.amount as amount, \n transfer.currencyId AS currency,\n tsc.transferStateId AS transferStateChangeState,\n tsc.reason AS transferStateChangeReason,\n tsc.createdDate AS transferStateChangeDateTime,\n ts2.name as transactionType,\n te.errorCode as errorCode, \n CASE \n\t WHEN da.isProxy = 0 THEN da.name \n\t ELSE ep1.name\n\tEND as payerDFSP,\n CASE \n\t WHEN da.isProxy = 1 THEN da.name \n\t ELSE NULL \n\tEND as payerDFSPProxy,\n CASE \n\t WHEN ca.isProxy = 0 THEN ca.name \n\t ELSE ep2.name\n\tEND as payeeDFSP,\n CASE \n\t WHEN ca.isProxy = 1 THEN ca.name \n\t ELSE NULL \n\tEND as payeeDFSPProxy,\n payerpit.name as payerPartyIdType,\n qp1.partyIdentifierValue as payerPartyIdentifier,\n qp1.partyName as payerPartyName,\n payeepit.name as payeePartyIdType,\n qp2.partyIdentifierValue as payeePartyIdentifier,\n qp2.partyName as payeePartyName, \n qr.quoteId as quoteId,\n at2.name as quoteRequestAmountType,\n q.currencyId as quoteRequestCurrency,\n q.amount as quoteRequestAmount,\n qr.transferAmount as transferTermsTransferAmount,\n qr.transferAmountCurrencyId as transferTermsTransferCurrency,\n qr.payeeReceiveAmountCurrencyId as transferTermsPayeeReceiveCurrency,\n qr.payeeReceiveAmount as transferTermsPayeeReceiveAmount,\n qr.payeeFspFeeAmount as transferTermsPayeeFspFeeAmount,\n qr.payeeFspFeeCurrencyId as transferTermsPayeeFspFeeCurrency, \n qr.payeeFspCommissionCurrencyId as transferTermsPayeeFspCommissionCurrency,\n qr.payeeFspCommissionAmount as transferTermsPayeeFspCommissionAmount,\n qr.responseExpirationDate as transferTermsExpiration,\n ilpp.value as ilpPacket,\n pa.name as positionChangesParticipantName,\n pc3.currencyId as positionChangesCurrency,\n lat.name as positionChangesLedgerType,\n ppc.createdDate as positionChangesDateTime,\n ppc.value as positionChangesUpdatedValue,\n ppc.change as positionChangesChange,\n tf.settlementWindowId as transferSettlementWindowId,\n gc.latitude as geoCodeLatitude, \n gc.longitude as geoCodeLongitude,\n\tCASE \n WHEN q.transactionRequestId IS NULL AND ft.commitRequestId IS NOT NULL THEN 'P2P WITH FX'\n WHEN q.transactionRequestId IS NULL THEN 'P2P'\n ELSE 'R2P'\n END AS baseUseCase\nFROM transfer\n INNER JOIN transferParticipant AS tp1 ON tp1.transferId = transfer.transferId\n LEFT JOIN externalParticipant AS ep1 ON ep1.externalParticipantId = tp1.externalParticipantId\n INNER JOIN transferParticipantRoleType AS tprt1 ON tprt1.transferParticipantRoleTypeId = tp1.transferParticipantRoleTypeId\n INNER JOIN participant AS da ON da.participantId = tp1.participantId\n LEFT JOIN participantCurrency AS pc1 ON pc1.participantCurrencyId = tp1.participantCurrencyId\n INNER JOIN transferParticipant AS tp2 ON tp2.transferId = transfer.transferId\n LEFT JOIN externalParticipant AS ep2 ON ep2.externalParticipantId = tp2.externalParticipantId\n INNER JOIN transferParticipantRoleType AS tprt2 ON tprt2.transferParticipantRoleTypeId = tp2.transferParticipantRoleTypeId\n INNER JOIN participant AS ca ON ca.participantId = tp2.participantId\n LEFT JOIN participantCurrency AS pc2 ON pc2.participantCurrencyId = tp2.participantCurrencyId\n INNER JOIN ilpPacket AS ilpp ON ilpp.transferId = transfer.transferId\n LEFT JOIN transferStateChange AS tsc ON tsc.transferId = transfer.transferId\n LEFT JOIN transferState AS ts ON ts.transferStateId = tsc.transferStateId\n LEFT JOIN transferFulfilment AS tf ON tf.transferId = transfer.transferId\n LEFT JOIN transferError AS te ON te.transferId = transfer.transferId\n LEFT JOIN fxTransfer AS ft ON ft.determiningTransferId = transfer.transferId \n INNER JOIN quote AS q ON q.transactionReferenceId = transfer.transferId \n INNER JOIN transactionScenario AS ts2 ON ts2.transactionScenarioId = q.transactionScenarioId \n INNER JOIN quoteParty AS qp1 ON q.quoteId = qp1.quoteId AND qp1.partyTypeId = tprt1.transferParticipantRoleTypeId\n INNER JOIN quoteParty AS qp2 ON q.quoteId = qp2.quoteId AND qp2.partyTypeId = tprt2.transferParticipantRoleTypeId \n INNER JOIN partyIdentifierType AS payerpit ON payerpit.partyIdentifierTypeId = qp1.partyIdentifierTypeId\n INNER JOIN partyIdentifierType AS payeepit ON payeepit.partyIdentifierTypeId = qp2.partyIdentifierTypeId\n INNER JOIN quoteResponse AS qr ON qr.quoteId = q.quoteId \n INNER JOIN amountType at2 ON q.amountTypeId = at2.amountTypeId \n LEFT JOIN participantPositionChange ppc ON ppc.transferStateChangeId = tsc.transferStateChangeId \n LEFT JOIN participantCurrency pc3 on pc3.participantCurrencyId = ppc.participantCurrencyId \n\tLEFT JOIN participant pa on pa.participantId = pc3.participantId \n\tLEFT JOIN ledgerAccountType lat on lat.ledgerAccountTypeId = pc3.ledgerAccountTypeId \n\tLEFT JOIN geoCode gc ON gc.quotePartyId = qp2.quotePartyId\nWHERE \n transfer.transferId = \"${transferId}\"\n AND tprt1.name = 'PAYER_DFSP'\n AND tprt2.name = 'PAYEE_DFSP'\n\tand tsc.transferStateId = '${transferState}'\nORDER BY tsc.transferStateChangeId DESC\nLIMIT 1;", - "dbf-normalize": "false" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 0, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "failure" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "c6bfa5be-a629-32ce-820f-7c182b0ac1e9", - "instanceIdentifier": "48ac69c4-0193-1000-df3e-40cf6b91f614", - "name": "SQL query for charges", - "comments": "", - "position": { - "x": 3624, - "y": 784 - }, - "type": "org.apache.nifi.processors.standard.ExecuteSQL", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "esql-max-rows": "0", - "dbf-default-precision": "10", - "Max Wait Time": "0 seconds", - "Database Connection Pooling Service": "f588b330-0192-1000-c3c2-5b6de011724a", - "esql-auto-commit": "true", - "dbf-user-logical-types": "false", - "dbf-default-scale": "0", - "compression-format": "NONE", - "esql-output-batch-size": "0", - "esql-fetch-size": "0", - "SQL select query": "SELECT\nft.determiningTransferId,\nfc.chargeType, \nfc.sourceAmount, \nfc.sourceCurrency, \nfc.targetAmount, \nfc.targetCurrency \nfrom \nfxTransfer ft \nJOIN fxCharge fc on fc.conversionId = ft.commitRequestId \nWHERE ft.commitRequestId = \"${commitRequestId}\" ; ", - "dbf-normalize": "false" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 0, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "b5523e18-5903-3b60-8948-bf15433bcfce", - "instanceIdentifier": "2e35ad1a-0193-1000-577c-3e72a0f49fcb", - "name": "ConvertAvroToJSON", - "comments": "", - "position": { - "x": 2976, - "y": 600 - }, - "type": "org.apache.nifi.processors.avro.ConvertAvroToJSON", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-avro-nar", - "version": "1.27.0" - }, - "properties": { - "JSON container options": "array", - "Wrap Single Record": "false" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 0, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "failure" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "5dff75f4-4f76-3d17-adaa-cf32e35741bc", - "instanceIdentifier": "52627e14-0193-1000-57c9-8596f6dc70f9", - "name": "ExecuteScript", - "comments": "", - "position": { - "x": 3624, - "y": 1648 - }, - "type": "org.apache.nifi.processors.script.ExecuteScript", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-scripting-nar", - "version": "1.27.0" - }, - "properties": { - "Script Engine": "Groovy", - "Script Body": "import org.apache.nifi.processor.io.StreamCallback\nimport groovy.json.JsonSlurper\nimport groovy.json.JsonOutput\n\n// StreamCallback to read and write flowfile content\nclass UpdateChargesCallback implements StreamCallback {\n String conversionType\n\n UpdateChargesCallback(String conversionType) {\n this.conversionType = conversionType\n }\n\n @Override\n void process(InputStream inputStream, OutputStream outputStream) throws IOException {\n // Read flowfile content\n def input = inputStream.getText(\"UTF-8\")\n def jsonSlurper = new JsonSlurper()\n def chargesData = jsonSlurper.parseText(input) // Parse input JSON as an array or object\n\n // Determine mapping target based on 'conversionType' attribute\n def targetKey = \"\"\n if (conversionType == \"PAYER_CONVERSION\") {\n targetKey = \"conversions.payer.conversionTerms.charges\"\n } else if (conversionType == \"PAYEE_CONVERSION\") {\n targetKey = \"conversions.payee.conversionTerms.charges\"\n } else {\n throw new IllegalArgumentException(\"Unknown conversionType: ${conversionType}\")\n }\n\n // Iterate over charges and typecast 'amount' fields to numbers\n chargesData.charges.each { charge ->\n if (charge.sourceAmount?.amount) {\n charge.sourceAmount.amount = charge.sourceAmount.amount.toBigDecimal()\n }\n if (charge.targetAmount?.amount) {\n charge.targetAmount.amount = charge.targetAmount.amount.toBigDecimal()\n }\n }\n\n // Prepare MongoDB $set query with the typecasted array\n def mongoQuery = [\n '$set': [\n (targetKey): chargesData.charges\n ]\n ]\n\n // Write transformed JSON query to flowfile\n def output = JsonOutput.toJson(mongoQuery)\n outputStream.write(output.getBytes(\"UTF-8\"))\n }\n}\n\n// Execute the script\nflowFile = session.get()\nif (flowFile) {\n try {\n // Retrieve the 'conversionType' attribute from the flowfile\n def conversionType = flowFile.getAttribute(\"conversionType\")\n\n // Pass the conversionType to the StreamCallback\n flowFile = session.write(flowFile, new UpdateChargesCallback(conversionType))\n session.transfer(flowFile, REL_SUCCESS)\n } catch (Exception e) {\n flowFile = session.putAttribute(flowFile, \"script.error.message\", e.message)\n session.transfer(flowFile, REL_FAILURE)\n }\n}\n" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 0, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "c5a1501d-a42b-3b29-971b-9313d48b1822", - "instanceIdentifier": "2e3684ad-0193-1000-f478-ec93a5e19c23", - "name": "Payer conversion mongo query", - "comments": "", - "position": { - "x": 2744, - "y": 1504 - }, - "type": "org.apache.nifi.processors.standard.ReplaceText", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "Regular Expression": "(?s)(^.*$)", - "Replacement Value": "{\n \"$set\": {\n\t\"transferId\": \"${transferId}\",\n\t\"conversions.payer.counterPartyProxy\": \"${counterPartyProxy}\",\n \"conversions.payer.conversionRequestId\": \"${conversionRequestId}\",\n\t\"conversions.payer.conversionId\": \"${conversionId}\",\n \"conversions.payer.conversionCommitRequestId\": \"${conversionCommitRequestId}\",\n \"conversions.payer.conversionState\": \"${conversionState}\",\n \"conversions.payer.counterPartyFSP\": \"${counterPartyFsp}\",\n \"conversions.payer.conversionType\": \"${conversionType}\",\n \"conversions.payer.conversionSettlementWindowId\": NumberLong(${conversionSettlementWindowId}),\n \"conversions.payer.conversionTerms.conversionId\": \"${conversionTermsConversionId}\",\n \"conversions.payer.conversionTerms.determiningTransferId\": \"${conversionTermsDeterminingTransferId}\",\n \"conversions.payer.conversionTerms.initiatingFsp\": \"${conversionTermsInitiatingFsp}\",\n \"conversions.payer.conversionTerms.counterPartyFsp\": \"${conversionTermsCounterPartyFsp}\",\n \"conversions.payer.conversionTerms.amountType\": \"${conversionTermsAmountType}\",\n \"conversions.payer.conversionTerms.sourceAmount.currency\": \"${conversionTermsSourceCurrency}\",\n \"conversions.payer.conversionTerms.sourceAmount.amount\": ${conversionTermsSourceAmount},\n \"conversions.payer.conversionTerms.targetAmount.currency\": \"${conversionTermsTargetCurrency}\",\n \"conversions.payer.conversionTerms.targetAmount.amount\": ${conversionTermsTargetAmount},\n \"conversions.payer.conversionTerms.expiration\": {\n\t\t\t\"$date\": \"${conversionTermsExpiration:trim()}\"\n\t },\n \"conversions.payer.conversionTerms.ilpPacket\": \"${ilpPacket}\"\n },\n \"$push\": {\n \"conversions.payer.conversionStateChanges\": {\n \"conversionState\": \"${conversionStateChangesState}\",\n \"dateTime\": {\n\t\t\t\"$date\": \"${conversionStateChangesDateTime:trim()}\" \n\t\t},\n \"reason\": \"${conversionStateChangesReason}\"\n }\n }\n}\n\n", - "Evaluation Mode": "Line-by-Line", - "Line-by-Line Evaluation Mode": "All", - "Character Set": "UTF-8", - "Maximum Buffer Size": "1 MB", - "Replacement Strategy": "Regex Replace" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 25, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "failure" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "69480fca-85ea-3759-b20f-3ee61d6d588b", - "instanceIdentifier": "f62b0876-0192-1000-abcd-11f2ad314d1c", - "name": "FxTransferStateChange Fetch", - "comments": "", - "position": { - "x": 2976, - "y": -176 - }, - "type": "org.apache.nifi.processors.standard.QueryDatabaseTable", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "Table Name": "fxTransferStateChange", - "db-fetch-db-type": "Generic", - "dbf-default-precision": "10", - "Max Wait Time": "0 seconds", - "Database Connection Pooling Service": "f588b330-0192-1000-c3c2-5b6de011724a", - "Maximum-value Columns": "fxTransferStateChangeId", - "dbf-user-logical-types": "false", - "qdbt-output-batch-size": "0", - "qdbt-max-rows": "0", - "qdbt-max-frags": "0", - "dbf-default-scale": "0", - "initial-load-strategy": "Start at Beginning", - "Fetch Size": "0", - "Columns to Return": "fxTransferStateChangeId, commitRequestId", - "dbf-normalize": "false" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "1 min", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "PRIMARY", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 0, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "2fa6c3cd-40e7-3850-a090-5474e9938dbc", - "instanceIdentifier": "631d1e5b-0193-1000-89d8-fe1332d84175", - "name": "LogAttribute", - "comments": "", - "position": { - "x": 5256, - "y": 1568 - }, - "type": "org.apache.nifi.processors.standard.LogAttribute", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "character-set": "UTF-8", - "Log FlowFile Properties": "true", - "Log Level": "debug", - "attributes-to-log-regex": ".*", - "Output Format": "Line per Attribute", - "Log Payload": "false" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 25, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "success" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "f002dfbb-ff16-3016-af3d-9dd179a8eb9f", - "instanceIdentifier": "01931000-b646-1215-8f81-ff6066c7de87", - "name": "RouteOnAttribute", - "comments": "", - "position": { - "x": 2976, - "y": 960 - }, - "type": "org.apache.nifi.processors.standard.RouteOnAttribute", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "Routing Strategy": "Route to Property name", - "data is not null": "${transferId:trim():length():gt(0)}", - "data is null": "${transferId:isEmpty()}" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 25, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "unmatched" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "851e5552-db84-37bc-8cb6-82d7c1783e27", - "instanceIdentifier": "2e360734-0193-1000-c49b-9875fe7d5eab", - "name": "Extract values to set", - "comments": "", - "position": { - "x": 2976, - "y": 784 - }, - "type": "org.apache.nifi.processors.standard.EvaluateJsonPath", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "Destination": "flowfile-attribute", - "conversionTermsDeterminingTransferId": "$['conversionTermsDeterminingTransferId']", - "ilpPacket": "$['ilpPacket']", - "conversionSettlementWindowId": "$['conversionSettlementWindowId']", - "conversionTermsTargetCurrency": "$['conversionTermsTargetCurrency']", - "conversionCommitRequestId": "$['conversionCommitRequestId']", - "Null Value Representation": "empty string", - "conversionType": "$['conversionType']", - "Path Not Found Behavior": "ignore", - "conversionStateChangesReason": "$['conversionStateChangesReason']", - "counterPartyFsp": "$['counterPartyFsp']", - "conversionTermsCounterPartyFsp": "$['conversionTermsCounterPartyFsp']", - "conversionState": "$['conversionState']", - "conversionId": "$['conversionId']", - "conversionStateChangesState": "$['conversionStateChangesState']", - "Max String Length": "20 MB", - "conversionTermsSourceCurrency": "$['conversionTermsSourceCurrency']", - "counterPartyProxy": "$['counterPartyProxy']", - "conversionRequestId": "$['conversionRequestId']", - "Return Type": "auto-detect", - "conversionStateChangesDateTime": "$['conversionStateChangesDateTime']", - "conversionTermsAmountType": "$['conversionTermsAmountType']", - "transferId": "$['transferId']", - "conversionTermsExpiration": "$['conversionTermsExpiration']", - "conversionTermsTargetAmount": "$['conversionTermsTargetAmount']", - "conversionTermsInitiatingFsp": "$['conversionTermsInitiatingFsp']", - "conversionTermsConversionId": "$['conversionTermsConversionId']", - "conversionTermsSourceAmount": "$['conversionTermsSourceAmount']" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 0, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "failure", - "unmatched" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "1baf2ad1-8531-364a-93f2-4df6c9fe3a76", - "instanceIdentifier": "620b1d25-0193-1000-894b-ceda08a2cff7", - "name": "Check if transferId is null or not", - "comments": "", - "position": { - "x": 1088, - "y": 1040 - }, - "type": "org.apache.nifi.processors.standard.RouteOnAttribute", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "transferId not present": "${transferId:isEmpty()}", - "Routing Strategy": "Route to Property name", - "transferId is present": "${transferId:trim():length():gt(0)}" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 25, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "unmatched" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "c94257e7-788d-37ee-89bb-a768e0ceeb2f", - "instanceIdentifier": "01931000-b1f5-18ac-e362-c547703d5f31", - "name": "ConvertAvroToJSON", - "comments": "", - "position": { - "x": 5776, - "y": 896 - }, - "type": "org.apache.nifi.processors.avro.ConvertAvroToJSON", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-avro-nar", - "version": "1.27.0" - }, - "properties": { - "JSON container options": "array", - "Wrap Single Record": "false" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 0, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "failure" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "802a0128-7d18-3caa-ad50-d087f43063e5", - "instanceIdentifier": "61cbcaa7-0193-1000-9557-d4e4f8d844ff", - "name": "LogAttribute", - "comments": "", - "position": { - "x": 6184, - "y": 1392 - }, - "type": "org.apache.nifi.processors.standard.LogAttribute", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "1.27.0" - }, - "properties": { - "character-set": "UTF-8", - "Log FlowFile Properties": "true", - "Log Level": "info", - "attributes-to-log-regex": ".*", - "Output Format": "Line per Attribute", - "Log Payload": "false" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 25, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "success" - ], - "scheduledState": "RUNNING", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "2614a6d8-b60c-361c-881a-de3533c3f949", - "instanceIdentifier": "f58fd9cf-0192-1000-2c8d-4b913d14739c", - "name": "ConvertAvroToJSON", - "comments": "", - "position": { - "x": 1088, - "y": 32 - }, - "type": "org.apache.nifi.processors.avro.ConvertAvroToJSON", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-avro-nar", - "version": "1.27.0" - }, - "properties": { - "JSON container options": "array", - "Wrap Single Record": "false" - }, - "propertyDescriptors": {}, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 0, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [ - "failure" - ], - "scheduledState": "RUNNING", - "retryCount": 5, - "retriedRelationships": [ - "failure" - ], - "backoffMechanism": "YIELD_PROCESSOR", - "maxBackoffPeriod": "3 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - } - ], - "inputPorts": [], - "outputPorts": [], - "connections": [ - { - "identifier": "e1b954df-5dc3-3fc0-95af-12797635fc98", - "instanceIdentifier": "48c55ee8-0193-1000-9e66-0d4e86014e30", - "name": "", - "source": { - "id": "c6bfa5be-a629-32ce-820f-7c182b0ac1e9", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "SQL query for charges", - "comments": "", - "instanceIdentifier": "48ac69c4-0193-1000-df3e-40cf6b91f614" - }, - "destination": { - "id": "03f0301a-27aa-3f8b-94fb-c39fdef9fcaf", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "ConvertAvroToJSON", - "comments": "", - "instanceIdentifier": "48acb1f5-0193-1000-6a5e-f44ca96dd478" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "failure" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [ - { - "x": 4106.75439453125, - "y": 987.8083724975586 - } - ], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "3edf5a23-bed3-30f3-98d5-c8c49ebbbe0a", - "instanceIdentifier": "2e363153-0193-1000-4f7e-e93aa5ba0a24", - "name": "", - "source": { - "id": "b5523e18-5903-3b60-8948-bf15433bcfce", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "ConvertAvroToJSON", - "comments": "", - "instanceIdentifier": "2e35ad1a-0193-1000-577c-3e72a0f49fcb" - }, - "destination": { - "id": "851e5552-db84-37bc-8cb6-82d7c1783e27", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Extract values to set", - "comments": "", - "instanceIdentifier": "2e360734-0193-1000-c49b-9875fe7d5eab" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "success" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "e8467968-43da-35c4-9a1a-c611e4d77d68", - "instanceIdentifier": "01931006-b646-1215-677d-e79d9a235c00", - "name": "", - "source": { - "id": "f002dfbb-ff16-3016-af3d-9dd179a8eb9f", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "RouteOnAttribute", - "comments": "", - "instanceIdentifier": "01931000-b646-1215-8f81-ff6066c7de87" - }, - "destination": { - "id": "d0116bdd-7eb0-31ea-836b-e516550117c7", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "LogAttribute", - "comments": "", - "instanceIdentifier": "01931005-b646-1215-c5f5-7d55724a65d8" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "data is null" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "08474408-0b6d-3cfb-b55c-9a40106a86a3", - "instanceIdentifier": "5264ef7b-0193-1000-7f2e-9c97338a982e", - "name": "", - "source": { - "id": "bda9a316-5b1c-39bd-b7a5-1f18e0390471", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Covert charges array to required format", - "comments": "", - "instanceIdentifier": "48ad5df8-0193-1000-e29e-a00ff55ae239" - }, - "destination": { - "id": "5dff75f4-4f76-3d17-adaa-cf32e35741bc", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "ExecuteScript", - "comments": "", - "instanceIdentifier": "52627e14-0193-1000-57c9-8596f6dc70f9" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "success" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "bc5a12c8-2f82-3c40-b5e5-18c3ebb2ea6c", - "instanceIdentifier": "621e833e-0193-1000-25e8-87af97df92d4", - "name": "", - "source": { - "id": "90d52517-06b9-3e1c-89fb-df64c682f257", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "RouteOnAttribute", - "comments": "", - "instanceIdentifier": "6215b646-0193-1000-e44a-81544bcef4c5" - }, - "destination": { - "id": "bda9a316-5b1c-39bd-b7a5-1f18e0390471", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Covert charges array to required format", - "comments": "", - "instanceIdentifier": "48ad5df8-0193-1000-e29e-a00ff55ae239" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "data is not null" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "3548bade-cb71-3b7d-89e4-ff6263013949", - "instanceIdentifier": "01931006-ac12-12aa-029f-3a0a80438bd1", - "name": "", - "source": { - "id": "4e17f7b6-ceef-300f-a771-01ace12c4433", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "ConvertAvroToJSON", - "comments": "", - "instanceIdentifier": "01931001-ac12-12aa-d6cb-9b12b5cee966" - }, - "destination": { - "id": "d9dc2f34-50a0-36fb-91bc-54b39e6cc365", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "SplitJson", - "comments": "", - "instanceIdentifier": "01931002-ac12-12aa-353a-c6c934e94c2d" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "success" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "3544ae4b-c402-3484-ada9-113f8af0ab43", - "instanceIdentifier": "620de7b6-0193-1000-2b37-7d918b919987", - "name": "", - "source": { - "id": "1baf2ad1-8531-364a-93f2-4df6c9fe3a76", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Check if transferId is null or not", - "comments": "", - "instanceIdentifier": "620b1d25-0193-1000-894b-ceda08a2cff7" - }, - "destination": { - "id": "42097830-aff6-3f67-bc59-a75551acaf3b", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Convert dates to mongo date format", - "comments": "", - "instanceIdentifier": "434bfabb-0193-1000-0507-ed29208424e3" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "transferId is present" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "8a29abfc-2004-3dc0-b051-3c3a0c3de9b1", - "instanceIdentifier": "61bd27de-0193-1000-fcb2-a468c782cccb", - "name": "", - "source": { - "id": "01164327-91aa-3a76-918e-d8c5c92d4801", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Update the settlementId ", - "comments": "", - "instanceIdentifier": "01931000-85c2-18ad-c79f-2b1c5ec52765" - }, - "destination": { - "id": "98f28131-edce-3683-a83b-5852617d6441", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Convert to required format", - "comments": "", - "instanceIdentifier": "01931000-5df8-18ad-e215-c8ec03074d12" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "matched" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "80ed049d-9b20-33b7-9586-6f71afab925f", - "instanceIdentifier": "f6fc7819-0192-1000-a3bd-0112c31a0c19", - "name": "", - "source": { - "id": "d31a41f5-8a4a-3d55-a8f1-0bc286fea98a", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "SplitJson", - "comments": "", - "instanceIdentifier": "f629f74e-0192-1000-187c-ed063c434321" - }, - "destination": { - "id": "5936972d-210c-3516-b32e-34362cbaf0a4", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Extract commitRequestId", - "comments": "", - "instanceIdentifier": "f6fc58ee-0192-1000-a60b-f5335a92b47d" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "split" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "f6d87c1a-66fd-3ae8-a0f8-82177f60f4fd", - "instanceIdentifier": "01931004-84ad-1e36-4324-1e0f33df9cde", - "name": "", - "source": { - "id": "07155e5a-06a3-3e23-859e-bd7fc97aa251", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Payer side / Payee side conversion", - "comments": "", - "instanceIdentifier": "61dee536-0193-1000-6ed7-bdc5ae5e0bf3" - }, - "destination": { - "id": "28b48572-24c8-394f-96d7-ff2157355911", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Payee conversion mongo query", - "comments": "", - "instanceIdentifier": "01931000-84ad-1e36-4085-a8919ceae988" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "payee" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "c2488fa8-8a16-3b71-900a-1a939ec82d10", - "instanceIdentifier": "1ec9910f-0193-1000-d6d0-13702ff7b99e", - "name": "", - "source": { - "id": "9b017620-b05b-319f-89f9-f708dd8aede9", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "ConvertAvroToJSON", - "comments": "", - "instanceIdentifier": "f591e0ed-0192-1000-4a4c-13e5444104d7" - }, - "destination": { - "id": "6894ba24-6a32-3b64-a4e6-25fa02d66f9d", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Extract values from json", - "comments": "", - "instanceIdentifier": "1ec8dcba-0193-1000-8911-62200bed212b" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "success" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "a2deb80d-b26c-37f9-8d34-1519573c3be9", - "instanceIdentifier": "01931001-b646-1215-cbd3-55f28f2fc396", - "name": "", - "source": { - "id": "851e5552-db84-37bc-8cb6-82d7c1783e27", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Extract values to set", - "comments": "", - "instanceIdentifier": "2e360734-0193-1000-c49b-9875fe7d5eab" - }, - "destination": { - "id": "f002dfbb-ff16-3016-af3d-9dd179a8eb9f", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "RouteOnAttribute", - "comments": "", - "instanceIdentifier": "01931000-b646-1215-8f81-ff6066c7de87" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "matched" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "f9d053b6-07cf-344c-b180-da5ff24899ef", - "instanceIdentifier": "620e34ea-0193-1000-e94c-8800b3009df7", - "name": "", - "source": { - "id": "1baf2ad1-8531-364a-93f2-4df6c9fe3a76", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Check if transferId is null or not", - "comments": "", - "instanceIdentifier": "620b1d25-0193-1000-894b-ceda08a2cff7" - }, - "destination": { - "id": "690a5c1a-3e89-3d71-8013-95e92709f4ea", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "LogAttribute", - "comments": "", - "instanceIdentifier": "620e1f82-0193-1000-6795-03349b85274b" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "transferId not present" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "4665bac7-c2db-39d6-87e2-8033d1b3fde0", - "instanceIdentifier": "52a97b58-0193-1000-e6b3-745651fe5a8b", - "name": "", - "source": { - "id": "5dff75f4-4f76-3d17-adaa-cf32e35741bc", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "ExecuteScript", - "comments": "", - "instanceIdentifier": "52627e14-0193-1000-57c9-8596f6dc70f9" - }, - "destination": { - "id": "4360e162-2f57-3be5-8e76-e4f97b7c65ee", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "LogAttribute", - "comments": "", - "instanceIdentifier": "52a958a2-0193-1000-5703-d3220df91cac" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "failure" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "27928c26-ed57-3ec5-8030-eaa525cd3dfb", - "instanceIdentifier": "48af7415-0193-1000-5aa9-18186b5d3288", - "name": "", - "source": { - "id": "c6bfa5be-a629-32ce-820f-7c182b0ac1e9", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "SQL query for charges", - "comments": "", - "instanceIdentifier": "48ac69c4-0193-1000-df3e-40cf6b91f614" - }, - "destination": { - "id": "03f0301a-27aa-3f8b-94fb-c39fdef9fcaf", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "ConvertAvroToJSON", - "comments": "", - "instanceIdentifier": "48acb1f5-0193-1000-6a5e-f44ca96dd478" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "success" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "0ff3d11d-9734-3d13-a53f-cb2047798323", - "instanceIdentifier": "f5967fb0-0192-1000-ee32-9f354a6b501e", - "name": "", - "source": { - "id": "14e4ffe9-9e99-39dd-8b00-965864a03c8b", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "SplitJson", - "comments": "", - "instanceIdentifier": "f59048f4-0192-1000-9259-3a121fc44ae4" - }, - "destination": { - "id": "d815000f-80e4-3b5f-b188-479478a15106", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Extract transferId and transferStateId", - "comments": "", - "instanceIdentifier": "f5907374-0192-1000-4550-9ac5bef9d0d1" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "split" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "521a4a5d-4340-30ae-b9e4-a2407f5daf0b", - "instanceIdentifier": "61bc0ada-0193-1000-d25c-40c68da0d529", - "name": "", - "source": { - "id": "c94257e7-788d-37ee-89bb-a768e0ceeb2f", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "ConvertAvroToJSON", - "comments": "", - "instanceIdentifier": "01931000-b1f5-18ac-e362-c547703d5f31" - }, - "destination": { - "id": "01164327-91aa-3a76-918e-d8c5c92d4801", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Update the settlementId ", - "comments": "", - "instanceIdentifier": "01931000-85c2-18ad-c79f-2b1c5ec52765" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "success" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "a0a85153-be6f-397d-859d-8aed92601d0f", - "instanceIdentifier": "f59693f9-0192-1000-77db-befbf81cef72", - "name": "", - "source": { - "id": "d815000f-80e4-3b5f-b188-479478a15106", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Extract transferId and transferStateId", - "comments": "", - "instanceIdentifier": "f5907374-0192-1000-4550-9ac5bef9d0d1" - }, - "destination": { - "id": "8a57a868-7a9f-33d2-be8e-41519c2dbff6", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Query for transfer details", - "comments": "", - "instanceIdentifier": "f5918073-0192-1000-f006-d61f74adcebc" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "matched" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "f6b75aa0-b915-3ac1-919b-a945830210ea", - "instanceIdentifier": "61db29a0-0193-1000-7c7d-c09f3f45d729", - "name": "", - "source": { - "id": "851e5552-db84-37bc-8cb6-82d7c1783e27", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Extract values to set", - "comments": "", - "instanceIdentifier": "2e360734-0193-1000-c49b-9875fe7d5eab" - }, - "destination": { - "id": "c6bfa5be-a629-32ce-820f-7c182b0ac1e9", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "SQL query for charges", - "comments": "", - "instanceIdentifier": "48ac69c4-0193-1000-df3e-40cf6b91f614" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "matched" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "becb529d-58ce-3ac6-8bdb-4d1a2a2ba9f3", - "instanceIdentifier": "624fb364-0193-1000-9dd4-c8ab61386580", - "name": "", - "source": { - "id": "90d52517-06b9-3e1c-89fb-df64c682f257", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "RouteOnAttribute", - "comments": "", - "instanceIdentifier": "6215b646-0193-1000-e44a-81544bcef4c5" - }, - "destination": { - "id": "5ff9c33b-b916-3213-b568-85a1c6424e4f", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "LogAttribute", - "comments": "", - "instanceIdentifier": "624f9e04-0193-1000-56f1-485b6f4cbf8b" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "data is null" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "abf50838-e36b-304c-95f9-e47c4f8bb472", - "instanceIdentifier": "6215e37e-0193-1000-1555-8e3481adb0d7", - "name": "", - "source": { - "id": "bac9c61c-7172-3194-8085-60ce79c2e50c", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Extract transferId", - "comments": "", - "instanceIdentifier": "48ad85c2-0193-1000-744f-ad134b45b3f0" - }, - "destination": { - "id": "90d52517-06b9-3e1c-89fb-df64c682f257", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "RouteOnAttribute", - "comments": "", - "instanceIdentifier": "6215b646-0193-1000-e44a-81544bcef4c5" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "matched" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "06d3cfea-0ecc-30b9-96b6-f14ad8c9bfe7", - "instanceIdentifier": "0193100a-ac12-12aa-0df2-70435261cf35", - "name": "", - "source": { - "id": "30d5df1b-42e4-3ee3-8cab-ed72c5b5f195", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "ConvertAvroToJSON", - "comments": "", - "instanceIdentifier": "01931000-ad1a-1e35-58b0-b886a20dbd54" - }, - "destination": { - "id": "837f1531-b27c-3824-bc73-056607f21de8", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Extract the details as attributes", - "comments": "", - "instanceIdentifier": "01931000-0734-1e36-7b30-0e608d8f5f13" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "success" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "db2e4fe3-6407-3036-b352-3c3a3e9cf7e9", - "instanceIdentifier": "f5975bdd-0192-1000-47f8-091c79cfa344", - "name": "", - "source": { - "id": "8a57a868-7a9f-33d2-be8e-41519c2dbff6", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Query for transfer details", - "comments": "", - "instanceIdentifier": "f5918073-0192-1000-f006-d61f74adcebc" - }, - "destination": { - "id": "9b017620-b05b-319f-89f9-f708dd8aede9", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "ConvertAvroToJSON", - "comments": "", - "instanceIdentifier": "f591e0ed-0192-1000-4a4c-13e5444104d7" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "success" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "8f96a79b-635c-320a-8932-c9c039d39b1c", - "instanceIdentifier": "484ee884-0193-1000-bb6c-b38fefe54994", - "name": "", - "source": { - "id": "42097830-aff6-3f67-bc59-a75551acaf3b", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Convert dates to mongo date format", - "comments": "", - "instanceIdentifier": "434bfabb-0193-1000-0507-ed29208424e3" - }, - "destination": { - "id": "5267fedf-4c85-3561-a514-aed0f1c67895", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Create Mongo query with details", - "comments": "", - "instanceIdentifier": "2418811b-0193-1000-cf44-33db74a3d9ce" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "success" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "50e59497-a826-3712-968a-cc11aef2562f", - "instanceIdentifier": "01931009-ac12-12aa-f365-6a368ef18628", - "name": "", - "source": { - "id": "019e65b9-cfbb-3704-8eb8-fb8082f963d5", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Query to get settlementWindow details", - "comments": "", - "instanceIdentifier": "01931000-b2cd-1a4d-9973-b2157635765e" - }, - "destination": { - "id": "30d5df1b-42e4-3ee3-8cab-ed72c5b5f195", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "ConvertAvroToJSON", - "comments": "", - "instanceIdentifier": "01931000-ad1a-1e35-58b0-b886a20dbd54" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "success" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "22610b18-9406-33af-911e-5731da3ccacf", - "instanceIdentifier": "01931007-ac12-12aa-ea09-02f3970aab14", - "name": "", - "source": { - "id": "d9dc2f34-50a0-36fb-91bc-54b39e6cc365", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "SplitJson", - "comments": "", - "instanceIdentifier": "01931002-ac12-12aa-353a-c6c934e94c2d" - }, - "destination": { - "id": "9d72faaf-d62b-3769-9ba3-3376f2cb10a6", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Extract settlementId and settlementState", - "comments": "", - "instanceIdentifier": "01931004-ac12-12aa-6624-a9bec3e58bf2" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "split" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "d292924f-e442-38a5-8653-a3084efeb45b", - "instanceIdentifier": "62528587-0193-1000-9902-701ca053d8df", - "name": "", - "source": { - "id": "9e2c0b78-e63b-36ad-8399-b5bd1077d996", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Save to MongoDB", - "comments": "", - "instanceIdentifier": "52a32499-0193-1000-d558-6b2fa0cc4081" - }, - "destination": { - "id": "cb153fe9-365c-3943-8e92-69a4dd0c0bbc", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "LogAttribute", - "comments": "", - "instanceIdentifier": "6245b3ab-0193-1000-cdb4-3265924892f4" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "success" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [ - { - "x": 2802.75439453125, - "y": 2019.8083724975586 - } - ], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "6223a7ec-6393-34ce-a5cf-8663d0aa8d27", - "instanceIdentifier": "01931008-ac12-12aa-b406-31fcab99ee3a", - "name": "", - "source": { - "id": "9d72faaf-d62b-3769-9ba3-3376f2cb10a6", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Extract settlementId and settlementState", - "comments": "", - "instanceIdentifier": "01931004-ac12-12aa-6624-a9bec3e58bf2" - }, - "destination": { - "id": "019e65b9-cfbb-3704-8eb8-fb8082f963d5", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Query to get settlementWindow details", - "comments": "", - "instanceIdentifier": "01931000-b2cd-1a4d-9973-b2157635765e" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "matched" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "073ca2d0-2a39-3217-886f-1774414b3d61", - "instanceIdentifier": "620dccf4-0193-1000-ed62-5dfd8f200fc4", - "name": "", - "source": { - "id": "6894ba24-6a32-3b64-a4e6-25fa02d66f9d", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Extract values from json", - "comments": "", - "instanceIdentifier": "1ec8dcba-0193-1000-8911-62200bed212b" - }, - "destination": { - "id": "1baf2ad1-8531-364a-93f2-4df6c9fe3a76", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Check if transferId is null or not", - "comments": "", - "instanceIdentifier": "620b1d25-0193-1000-894b-ceda08a2cff7" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "matched" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "bfbd5c58-4f48-3117-b0ac-89c35732f8bc", - "instanceIdentifier": "6245dc0b-0193-1000-d837-2082f43be189", - "name": "", - "source": { - "id": "9e2c0b78-e63b-36ad-8399-b5bd1077d996", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Save to MongoDB", - "comments": "", - "instanceIdentifier": "52a32499-0193-1000-d558-6b2fa0cc4081" - }, - "destination": { - "id": "cb153fe9-365c-3943-8e92-69a4dd0c0bbc", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "LogAttribute", - "comments": "", - "instanceIdentifier": "6245b3ab-0193-1000-cdb4-3265924892f4" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "failure" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "14af7fa7-82c6-31c8-a3e8-33ef162092c6", - "instanceIdentifier": "f62b2083-0192-1000-74d4-74c4237d9bc4", - "name": "", - "source": { - "id": "69480fca-85ea-3759-b20f-3ee61d6d588b", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "FxTransferStateChange Fetch", - "comments": "", - "instanceIdentifier": "f62b0876-0192-1000-abcd-11f2ad314d1c" - }, - "destination": { - "id": "af550e6d-86fe-3ac5-a6be-d00c7d4a762f", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "ConvertAvroToJSON", - "comments": "", - "instanceIdentifier": "f6243042-0192-1000-ca84-f115b36b1ba5" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "success" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "4b606e7c-1f7d-3f41-b26c-b80b668556fc", - "instanceIdentifier": "61bb0090-0193-1000-de79-4a2d8d8b678b", - "name": "", - "source": { - "id": "bcb017ab-1eaa-3046-9c2a-2e6931a032e2", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Query for settlementWindows ", - "comments": "", - "instanceIdentifier": "01931000-69c4-18ac-5390-7fda5ef6f8fb" - }, - "destination": { - "id": "c94257e7-788d-37ee-89bb-a768e0ceeb2f", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "ConvertAvroToJSON", - "comments": "", - "instanceIdentifier": "01931000-b1f5-18ac-e362-c547703d5f31" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "success" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "85f280b4-c916-3c13-b946-274f7a7e6af7", - "instanceIdentifier": "01931005-ac12-12aa-6425-e20b4c1f34d1", - "name": "", - "source": { - "id": "6b7f878d-b608-3337-b352-01c24485e3bf", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "SettlementStateChange Fetch", - "comments": "", - "instanceIdentifier": "01931003-ac12-12aa-b079-eac8f15e0ecf" - }, - "destination": { - "id": "4e17f7b6-ceef-300f-a771-01ace12c4433", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "ConvertAvroToJSON", - "comments": "", - "instanceIdentifier": "01931001-ac12-12aa-d6cb-9b12b5cee966" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "success" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "e103000e-6a44-3e31-bd3c-dd7caeb1691b", - "instanceIdentifier": "61cba46a-0193-1000-9392-f5e243f387bd", - "name": "", - "source": { - "id": "de244eca-7e44-3a95-8035-51c6947fec4c", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "ExecuteScript", - "comments": "", - "instanceIdentifier": "01931000-7e14-1262-1c8f-e4684eeee7ae" - }, - "destination": { - "id": "372de8e9-ad65-3f67-a747-2ca1fabdd483", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Save to Mongo db", - "comments": "", - "instanceIdentifier": "01931000-2499-12a3-f16e-5c50cdca918e" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "success" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "3fab39ca-3b87-3a12-a953-2f600e04b53b", - "instanceIdentifier": "631d89a3-0193-1000-4e50-07d7aa8f3eb0", - "name": "", - "source": { - "id": "372de8e9-ad65-3f67-a747-2ca1fabdd483", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Save to Mongo db", - "comments": "", - "instanceIdentifier": "01931000-2499-12a3-f16e-5c50cdca918e" - }, - "destination": { - "id": "2fa6c3cd-40e7-3850-a090-5474e9938dbc", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "LogAttribute", - "comments": "", - "instanceIdentifier": "631d1e5b-0193-1000-89d8-fe1332d84175" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "failure" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "2f946345-ebf0-393c-ac94-8724606476cc", - "instanceIdentifier": "61e3e05a-0193-1000-785e-c350f5fb81b2", - "name": "", - "source": { - "id": "07155e5a-06a3-3e23-859e-bd7fc97aa251", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Payer side / Payee side conversion", - "comments": "", - "instanceIdentifier": "61dee536-0193-1000-6ed7-bdc5ae5e0bf3" - }, - "destination": { - "id": "c5a1501d-a42b-3b29-971b-9313d48b1822", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Payer conversion mongo query", - "comments": "", - "instanceIdentifier": "2e3684ad-0193-1000-f478-ec93a5e19c23" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "payer" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "7b115695-4751-3965-9c7f-a16fac5314e6", - "instanceIdentifier": "f5950cb4-0192-1000-edf5-d90817e1fe99", - "name": "", - "source": { - "id": "2614a6d8-b60c-361c-881a-de3533c3f949", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "ConvertAvroToJSON", - "comments": "", - "instanceIdentifier": "f58fd9cf-0192-1000-2c8d-4b913d14739c" - }, - "destination": { - "id": "14e4ffe9-9e99-39dd-8b00-965864a03c8b", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "SplitJson", - "comments": "", - "instanceIdentifier": "f59048f4-0192-1000-9259-3a121fc44ae4" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "success" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "ade1e5a4-2638-3802-a651-91550d593a2a", - "instanceIdentifier": "2e35e3a2-0193-1000-1ae2-bad0d2950750", - "name": "", - "source": { - "id": "93a9b50a-2ac7-3e4a-a306-72fc429c871f", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Sql query to get conversion", - "comments": "", - "instanceIdentifier": "2a4db2cd-0193-1000-c5c0-1f946dff6dff" - }, - "destination": { - "id": "b5523e18-5903-3b60-8948-bf15433bcfce", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "ConvertAvroToJSON", - "comments": "", - "instanceIdentifier": "2e35ad1a-0193-1000-577c-3e72a0f49fcb" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "success" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "1629c083-8879-31e5-8871-655b49405e75", - "instanceIdentifier": "47fe5060-0193-1000-b6c3-4ac2e3db9317", - "name": "", - "source": { - "id": "c5a1501d-a42b-3b29-971b-9313d48b1822", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Payer conversion mongo query", - "comments": "", - "instanceIdentifier": "2e3684ad-0193-1000-f478-ec93a5e19c23" - }, - "destination": { - "id": "9e2c0b78-e63b-36ad-8399-b5bd1077d996", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Save to MongoDB", - "comments": "", - "instanceIdentifier": "52a32499-0193-1000-d558-6b2fa0cc4081" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "success" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "77bb8c68-0a57-3bde-8943-9d4006f66045", - "instanceIdentifier": "01931004-b646-1215-d59f-cb26bf044fb7", - "name": "", - "source": { - "id": "f002dfbb-ff16-3016-af3d-9dd179a8eb9f", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "RouteOnAttribute", - "comments": "", - "instanceIdentifier": "01931000-b646-1215-8f81-ff6066c7de87" - }, - "destination": { - "id": "ce501ea0-50fd-3fc8-86a2-26eb14af7039", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Convert date to mongo date", - "comments": "", - "instanceIdentifier": "52aaac12-0193-1000-5578-93118770a4af" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "data is not null" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "5f5f702b-1563-3774-9771-0df61b156528", - "instanceIdentifier": "ffed8846-0192-1000-ed23-0a4e7b2dd7a9", - "name": "", - "source": { - "id": "9c049734-8ab9-3eee-b095-07f49d21fa4a", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Save to Mongo DB", - "comments": "", - "instanceIdentifier": "f5925f69-0192-1000-e4e5-06a1352474e8" - }, - "destination": { - "id": "4b4e7a41-82be-34a8-bf40-ba6c886dc46c", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "LogAttribute", - "comments": "", - "instanceIdentifier": "ffed5b4f-0192-1000-bb53-ed1944fe4399" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "success" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "7f8910eb-1f47-3f67-ba86-ae647513b5fd", - "instanceIdentifier": "2a4dd633-0193-1000-c2a7-415648c8bcb8", - "name": "", - "source": { - "id": "5936972d-210c-3516-b32e-34362cbaf0a4", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Extract commitRequestId", - "comments": "", - "instanceIdentifier": "f6fc58ee-0192-1000-a60b-f5335a92b47d" - }, - "destination": { - "id": "93a9b50a-2ac7-3e4a-a306-72fc429c871f", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Sql query to get conversion", - "comments": "", - "instanceIdentifier": "2a4db2cd-0193-1000-c5c0-1f946dff6dff" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "matched" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "5f2ac8c0-af90-3c0b-9b32-d13b3fb257b3", - "instanceIdentifier": "61b9c886-0193-1000-7c49-c0ed0deae0a7", - "name": "", - "source": { - "id": "837f1531-b27c-3824-bc73-056607f21de8", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Extract the details as attributes", - "comments": "", - "instanceIdentifier": "01931000-0734-1e36-7b30-0e608d8f5f13" - }, - "destination": { - "id": "bcb017ab-1eaa-3046-9c2a-2e6931a032e2", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Query for settlementWindows ", - "comments": "", - "instanceIdentifier": "01931000-69c4-18ac-5390-7fda5ef6f8fb" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "matched" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "1c695d45-0367-30d5-8d84-f98e195bef00", - "instanceIdentifier": "01931002-84ad-1e36-bec0-e23c7e6d74ec", - "name": "", - "source": { - "id": "28b48572-24c8-394f-96d7-ff2157355911", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Payee conversion mongo query", - "comments": "", - "instanceIdentifier": "01931000-84ad-1e36-4085-a8919ceae988" - }, - "destination": { - "id": "9e2c0b78-e63b-36ad-8399-b5bd1077d996", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Save to MongoDB", - "comments": "", - "instanceIdentifier": "52a32499-0193-1000-d558-6b2fa0cc4081" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "success" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "0b711f50-c984-31ff-a4ae-d0241cfd64b9", - "instanceIdentifier": "61bf73a6-0193-1000-1b36-91d765d668c4", - "name": "", - "source": { - "id": "98f28131-edce-3683-a83b-5852617d6441", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Convert to required format", - "comments": "", - "instanceIdentifier": "01931000-5df8-18ad-e215-c8ec03074d12" - }, - "destination": { - "id": "de244eca-7e44-3a95-8035-51c6947fec4c", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "ExecuteScript", - "comments": "", - "instanceIdentifier": "01931000-7e14-1262-1c8f-e4684eeee7ae" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "success" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "46047268-91f7-3c07-9248-c298ae5cf3fa", - "instanceIdentifier": "0193100c-ac12-12aa-2439-05f05e383c8b", - "name": "", - "source": { - "id": "6f64e096-a2d6-37e1-a978-a8dc4686465c", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Convert date to mongo date format", - "comments": "", - "instanceIdentifier": "01931000-ac12-12aa-7c8e-3180e1549684" - }, - "destination": { - "id": "dcbb8920-2508-30ff-96f1-19576109482b", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Convert to Mongodb query", - "comments": "", - "instanceIdentifier": "01931000-84ad-1e36-b5a9-b337e2bdb80c" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "success" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "97686262-95ed-30ae-b41a-9137621ba2d5", - "instanceIdentifier": "5265084a-0193-1000-ac3c-ef5914454de4", - "name": "", - "source": { - "id": "5dff75f4-4f76-3d17-adaa-cf32e35741bc", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "ExecuteScript", - "comments": "", - "instanceIdentifier": "52627e14-0193-1000-57c9-8596f6dc70f9" - }, - "destination": { - "id": "9e2c0b78-e63b-36ad-8399-b5bd1077d996", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Save to MongoDB", - "comments": "", - "instanceIdentifier": "52a32499-0193-1000-d558-6b2fa0cc4081" - }, - "labelIndex": 1, - "zIndex": 1, - "selectedRelationships": [ - "success" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "593fb140-62ac-3605-bbef-21f0ac2eb372", - "instanceIdentifier": "61e3c0fd-0193-1000-8771-f218139e067e", - "name": "", - "source": { - "id": "ce501ea0-50fd-3fc8-86a2-26eb14af7039", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Convert date to mongo date", - "comments": "", - "instanceIdentifier": "52aaac12-0193-1000-5578-93118770a4af" - }, - "destination": { - "id": "07155e5a-06a3-3e23-859e-bd7fc97aa251", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Payer side / Payee side conversion", - "comments": "", - "instanceIdentifier": "61dee536-0193-1000-6ed7-bdc5ae5e0bf3" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "success" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "86423799-1203-3204-9684-1773dd1397b7", - "instanceIdentifier": "01931004-e536-11de-b707-a3aa42da4901", - "name": "", - "source": { - "id": "9c049734-8ab9-3eee-b095-07f49d21fa4a", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Save to Mongo DB", - "comments": "", - "instanceIdentifier": "f5925f69-0192-1000-e4e5-06a1352474e8" - }, - "destination": { - "id": "4b4e7a41-82be-34a8-bf40-ba6c886dc46c", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "LogAttribute", - "comments": "", - "instanceIdentifier": "ffed5b4f-0192-1000-bb53-ed1944fe4399" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "failure" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [ - { - "x": 717.9403076171875, - "y": 1720 - } - ], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "2872e0d9-387a-31f5-8397-fbc6428dfd28", - "instanceIdentifier": "49303e4f-0193-1000-7272-fca401b4d868", - "name": "", - "source": { - "id": "03f0301a-27aa-3f8b-94fb-c39fdef9fcaf", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "ConvertAvroToJSON", - "comments": "", - "instanceIdentifier": "48acb1f5-0193-1000-6a5e-f44ca96dd478" - }, - "destination": { - "id": "bac9c61c-7172-3194-8085-60ce79c2e50c", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Extract transferId", - "comments": "", - "instanceIdentifier": "48ad85c2-0193-1000-744f-ad134b45b3f0" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "success" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "82a590bb-fd90-326c-9e92-4dc07b76d5ea", - "instanceIdentifier": "0193100e-ac12-12aa-0f8c-df11cd5d3f64", - "name": "", - "source": { - "id": "dcbb8920-2508-30ff-96f1-19576109482b", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Convert to Mongodb query", - "comments": "", - "instanceIdentifier": "01931000-84ad-1e36-b5a9-b337e2bdb80c" - }, - "destination": { - "id": "372de8e9-ad65-3f67-a747-2ca1fabdd483", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Save to Mongo db", - "comments": "", - "instanceIdentifier": "01931000-2499-12a3-f16e-5c50cdca918e" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "success" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "14e12984-6927-3e07-8295-8b8bce8f9686", - "instanceIdentifier": "f62a0f2e-0192-1000-71fd-21a8a7861f4c", - "name": "", - "source": { - "id": "af550e6d-86fe-3ac5-a6be-d00c7d4a762f", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "ConvertAvroToJSON", - "comments": "", - "instanceIdentifier": "f6243042-0192-1000-ca84-f115b36b1ba5" - }, - "destination": { - "id": "d31a41f5-8a4a-3d55-a8f1-0bc286fea98a", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "SplitJson", - "comments": "", - "instanceIdentifier": "f629f74e-0192-1000-187c-ed063c434321" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "success" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "4b356de4-6881-3afc-ab5d-56c4d27674bd", - "instanceIdentifier": "0193100b-ac12-12aa-9c72-9af54d19f6e2", - "name": "", - "source": { - "id": "837f1531-b27c-3824-bc73-056607f21de8", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Extract the details as attributes", - "comments": "", - "instanceIdentifier": "01931000-0734-1e36-7b30-0e608d8f5f13" - }, - "destination": { - "id": "6f64e096-a2d6-37e1-a978-a8dc4686465c", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Convert date to mongo date format", - "comments": "", - "instanceIdentifier": "01931000-ac12-12aa-7c8e-3180e1549684" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "matched" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "f327ee4e-53e5-38d2-963a-9c950c5d6f7c", - "instanceIdentifier": "f58feaab-0192-1000-40be-e56530deeadf", - "name": "", - "source": { - "id": "0150a67c-4d91-31f6-82c9-90f7ea4365eb", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "transferStateChange fetch", - "comments": "", - "instanceIdentifier": "f58d4e7c-0192-1000-5bf7-bd6192bed4fa" - }, - "destination": { - "id": "2614a6d8-b60c-361c-881a-de3533c3f949", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "ConvertAvroToJSON", - "comments": "", - "instanceIdentifier": "f58fd9cf-0192-1000-2c8d-4b913d14739c" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "success" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "b62bfaac-32be-38d0-b02e-783b0ec70b71", - "instanceIdentifier": "2423c51f-0193-1000-798c-dde5cbccab5c", - "name": "", - "source": { - "id": "5267fedf-4c85-3561-a514-aed0f1c67895", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Create Mongo query with details", - "comments": "", - "instanceIdentifier": "2418811b-0193-1000-cf44-33db74a3d9ce" - }, - "destination": { - "id": "9c049734-8ab9-3eee-b095-07f49d21fa4a", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "Save to Mongo DB", - "comments": "", - "instanceIdentifier": "f5925f69-0192-1000-e4e5-06a1352474e8" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "success" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "f639dac3-d1bb-3474-81da-1f1c6e1b4463", - "instanceIdentifier": "61cc732d-0193-1000-29f3-293b9e9a0b6a", - "name": "", - "source": { - "id": "de244eca-7e44-3a95-8035-51c6947fec4c", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "ExecuteScript", - "comments": "", - "instanceIdentifier": "01931000-7e14-1262-1c8f-e4684eeee7ae" - }, - "destination": { - "id": "802a0128-7d18-3caa-ad50-d087f43063e5", - "type": "PROCESSOR", - "groupId": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a", - "name": "LogAttribute", - "comments": "", - "instanceIdentifier": "61cbcaa7-0193-1000-9557-d4e4f8d844ff" - }, - "labelIndex": 1, - "zIndex": 0, - "selectedRelationships": [ - "failure" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - } - ], - "labels": [ - { - "identifier": "0cf8e1eb-be74-33f1-a1ac-8bdb26f139bb", - "instanceIdentifier": "01931004-4137-16fb-a8f2-1232fc2f1c83", - "position": { - "x": 4040, - "y": 1208 - }, - "label": "routeonatribute is there in case no charges are found and it \ndoes not clog the queue if the script fails and is not able to process\nnull data\nThis is done by checking if the transferId attribute is null\n", - "zIndex": 0, - "width": 384, - "height": 64, - "style": { - "font-size": "12px" - }, - "componentType": "LABEL", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "ad4c8043-1fa9-3ca8-bb05-588b3e94d2d4", - "instanceIdentifier": "67661aa4-0193-1000-af1f-d92b5d941a0c", - "position": { - "x": 2496, - "y": 1096 - }, - "label": "In case the query returns multiple rows this will result in a data is null\nrouting\n\n(Query should not be returning more than one row at any time)\n", - "zIndex": 0, - "width": 376, - "height": 80, - "style": { - "font-size": "12px" - }, - "componentType": "LABEL", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "5cbc75d7-55a0-35b1-b39c-9b3948db8ba9", - "instanceIdentifier": "0193100d-4137-16fb-9fb4-afa47ff4ff6e", - "position": { - "x": 6160, - "y": 1080 - }, - "label": "Update or extract the settlementId from the query data. \nIf there is no value we route it to null.", - "zIndex": 0, - "width": 328, - "height": 40, - "style": { - "font-size": "12px" - }, - "componentType": "LABEL", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "7cb04914-6802-3a3e-b53a-c245b92026b2", - "instanceIdentifier": "66fb4137-0193-1000-9a30-e1aa089b10bd", - "position": { - "x": 432, - "y": -112 - }, - "label": "Flow for state changes in transfers:\n\n01. Gets the state changes in the transferStateChange table\n02. Splits them in individual objects\n03. Extract the transferId from each object \n along with the state and store it as a attribute \n for the flow file.\n04. Use the transferId and transferState to run \n an sql query and get the transaction details\n05. If there is no data log the data to logattribute \n else continue with the flow\n06. Map the values to the attributes so they \n can be used in the replacetext processor\n07. Convert the attribute values for dates \n to mongodb format using the updateAttribute processor\n08. Create a mongodb query using the \n ReplaceText processor to insert the data \n09. Using putMongo processor insert \n data on the matching transferId\n10. Log the failures and success", - "zIndex": 0, - "width": 560, - "height": 528, - "style": { - "font-size": "20px" - }, - "componentType": "LABEL", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "6b7cbaac-e8e9-3a8e-b231-a5675adf7b8e", - "instanceIdentifier": "01931009-4137-16fb-71ff-6eff4d2a7ce6", - "position": { - "x": 456, - "y": 1400 - }, - "label": "Replace text processors are used instead of the jolttransform \nfor data mapping as they can create query for dynamic change to only \na part of the mongo document not whole document", - "zIndex": 0, - "width": 392, - "height": 64, - "style": { - "font-size": "12px" - }, - "componentType": "LABEL", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "a69604af-7eb4-333a-89ba-d285760ff5b3", - "instanceIdentifier": "01931003-4137-16fb-555f-ea1fa4256f88", - "position": { - "x": 4000, - "y": 776 - }, - "label": "To get the charges on the conversion-\n\nAnother flow was made as the charges can't be retrieved as a flat \nrow for a particular state and even if we are able to query as\na flat row the mapping with the replacetext was rather unfavourable on \ncharges array so another flow was made .\nAnother reason for this is charges is an array and setting an array \nwith replace text is not easy \nHaving another flow handling many to one relationship is easy\n", - "zIndex": 0, - "width": 408, - "height": 152, - "style": { - "font-size": "12px" - }, - "componentType": "LABEL", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "cc336eab-3e08-3789-9825-2ea1c94a4c99", - "instanceIdentifier": "0193100a-4137-16fb-9702-dea09b1ca941", - "position": { - "x": 1480, - "y": 1048 - }, - "label": "check if the query returns any data by checking transferId\nattribute value.\nReasoning for doing it here and not right after the convertojson is that \nrounteOnContent can be used for that to check there is data \nor not but it needs to parse the data\nAnd routeonattribute processor works on metadata attributes and\nis efficient\n", - "zIndex": 0, - "width": 400, - "height": 112, - "style": { - "font-size": "12px" - }, - "componentType": "LABEL", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "c1c0e2a5-cb69-38a4-b4d2-c881e127018e", - "instanceIdentifier": "01931011-4137-16fb-0ef2-a90eb7acba3f", - "position": { - "x": 6160, - "y": 1240 - }, - "label": "if there is only one settlementWindow then it is mapped as first index\nby the jolt transform , else we store whole as a array", - "zIndex": 0, - "width": 384, - "height": 48, - "style": { - "font-size": "12px" - }, - "componentType": "LABEL", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "bc511b7d-3555-3941-82eb-eb1b7c286f23", - "instanceIdentifier": "01931005-4137-16fb-1736-6e6f70363d7b", - "position": { - "x": 3640, - "y": 1800 - }, - "label": "script to convert charges to mongo db query and \nconvert the number to decimals as they were being stored as string.\nScript also check if the conversion is payer side or payee side\nIn case of invalid conversion a failure can take place", - "zIndex": 0, - "width": 384, - "height": 72, - "style": { - "font-size": "12px" - }, - "componentType": "LABEL", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "23847fae-745d-3327-afc0-f6b063503cca", - "instanceIdentifier": "01931000-4137-16fb-4208-00390c288c59", - "position": { - "x": 2128, - "y": -72 - }, - "label": "Flow for state changes in conversions:\n\n01. Gets the state changes in the fxTransferStateChange table\n02. Splits them in individual objects\n03. Extract the commitRequestId from each object \n along with the converison state and store it as a attribute \n for the flow file.\n04. Use the commitRequestId and conversionState to run \n an sql query and get the conversion details\n05. If there is no data log the data to logattribute \n else continue with the flow\n06. Map the values from the query to flow file\n attributes so they \n can be used in the replacetext processor\n07. Convert the attribute values for dates \n to mongodb format using the updateAttribute\n processor\n08. Create a mongodb query using the \n ReplaceText processor to insert the data \n09. Using putMongo processor insert \n data on the matching transferId\n10. Log the failures and success", - "zIndex": 0, - "width": 616, - "height": 568, - "style": { - "font-size": "20px" - }, - "componentType": "LABEL", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "60ce93b9-7030-34d9-9c68-a0aae99ab55a", - "instanceIdentifier": "01931007-4137-16fb-34b6-ada1342c6719", - "position": { - "x": 2496, - "y": 864 - }, - "label": "routeonatribute is there in case no data is there from the query and it \ndoes not clog the queue if the update attribute is not able to process\nnull data attributes\nThis is done by checking if the transferId attribute is null\n", - "zIndex": 0, - "width": 384, - "height": 64, - "style": { - "font-size": "12px" - }, - "componentType": "LABEL", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "7c2d34c4-3658-3060-9f62-5346d51a52b8", - "instanceIdentifier": "0193100c-4137-16fb-797a-7689cbfa9368", - "position": { - "x": 6144, - "y": 760 - }, - "label": "same reasoning as charges for the conversion to have a different flow.\nMany to one relationship of settlementwindows", - "zIndex": 0, - "width": 408, - "height": 48, - "style": { - "font-size": "12px" - }, - "componentType": "LABEL", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "e088164c-db89-3bf3-9ce0-bdbc97d4f6e8", - "instanceIdentifier": "01931002-4137-16fb-f7a3-11b3f9266f06", - "position": { - "x": 4544, - "y": -96 - }, - "label": "Flow for state changes in settlements:\n01. Gets the state changes in the settlementStateChange table\n02. Splits them in individual objects\n03. Extract the settlementId from each object \n along with the settlement state and store it as a attribute \n for the flow file.\n04. Use the settlementId and settlementState to run \n an sql query and get the settlement details\n05. If there is no data log the data to logattribute \n else continue with the flow\n06. Map the values from the query to flow file\n attributes so they \n can be used in the replacetext processor\n07. Convert the attribute values for dates \n to mongodb format using the updateAttribute\n processor\n08. Create a mongodb query using the \n ReplaceText processor to insert the data \n09. Using putMongo processor insert \n data on the matching settlementId\n10. Log the failures and success", - "zIndex": 0, - "width": 616, - "height": 536, - "style": { - "font-size": "20px" - }, - "componentType": "LABEL", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "1c26aa1e-aa84-3cae-8d10-bb1e79e7680c", - "instanceIdentifier": "01931010-4137-16fb-08ea-696642bfbda7", - "position": { - "x": 5776, - "y": 1544 - }, - "label": "script to convert settlementWindow to mongo db query and \nconvert the settlementWindow to decimals as they were being stored as string.", - "zIndex": 0, - "width": 432, - "height": 48, - "style": { - "font-size": "12px" - }, - "componentType": "LABEL", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "f99f2dee-037e-3fc8-80ac-a6d475101b77", - "instanceIdentifier": "0193100b-4137-16fb-9217-2486a1cb8997", - "position": { - "x": 248, - "y": 472 - }, - "label": "NOTE : Most of the processors are configured to terminate the failure.\nTo check the failure the developer will need to check the \ndata provenance \nThis applies to all three flows.\n( Also if any edge case is missed please add it )", - "zIndex": 0, - "width": 712, - "height": 152, - "style": { - "font-size": "22px" - }, - "componentType": "LABEL", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - } - ], - "funnels": [], - "controllerServices": [ - { - "identifier": "c3096f1e-6c9a-3834-a366-41d106fbb21c", - "instanceIdentifier": "f588b330-0192-1000-c3c2-5b6de011724a", - "name": "mysql-central_ledger", - "comments": "", - "type": "org.apache.nifi.dbcp.DBCPConnectionPool", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-dbcp-service-nar", - "version": "1.27.0" - }, - "properties": { - "dbcp-min-idle-conns": "0", - "Max Wait Time": "500 millis", - "Database Driver Class Name": "com.mysql.cj.jdbc.Driver", - "dbcp-min-evictable-idle-time": "30 mins", - "Max Total Connections": "8", - "dbcp-max-conn-lifetime": "-1", - "Database Connection URL": "jdbc:mysql://${REPORTING_DB_HOST}:${REPORTING_DB_PORT}/${REPORTING_DB_SCHEMA}", - "dbcp-time-between-eviction-runs": "-1", - "Database User": "${REPORTING_DB_USER}", - "dbcp-soft-min-evictable-idle-time": "-1", - "dbcp-max-idle-conns": "8", - "Password": "${REPORTING_DB_PASSWORD}" - }, - "propertyDescriptors": {}, - "controllerServiceApis": [ - { - "type": "org.apache.nifi.dbcp.DBCPService", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-services-api-nar", - "version": "1.27.0" - } - } - ], - "scheduledState": "ENABLED", - "bulletinLevel": "WARN", - "componentType": "CONTROLLER_SERVICE", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - }, - { - "identifier": "8803dbfb-bf9d-3b90-87f9-35689e49f340", - "instanceIdentifier": "f58ceb00-0192-1000-456c-dfb46e071bcc", - "name": "MongoDBControllerService", - "comments": "", - "type": "org.apache.nifi.mongodb.MongoDBControllerService", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-mongodb-services-nar", - "version": "1.27.0" - }, - "properties": { - "ssl-client-auth": "REQUIRED", - "mongo-uri": "mongodb://${EVENT_STORE_DB_HOST}:${EVENT_STORE_DB_PORT}/?authSource=${EVENT_STORE_DB_DATABASE}", - "Database User": "${EVENT_STORE_DB_USER}", - "Password": "${EVENT_STORE_DB_PASSWORD}" - }, - "propertyDescriptors": {}, - "controllerServiceApis": [ - { - "type": "org.apache.nifi.mongodb.MongoDBClientService", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-mongodb-client-service-api-nar", - "version": "1.27.0" - } - } - ], - "scheduledState": "ENABLED", - "bulletinLevel": "WARN", - "componentType": "CONTROLLER_SERVICE", - "groupIdentifier": "54c08952-9e3d-3905-a7fc-ebcbf0cd6e3a" - } - ], - "variables": {}, - "defaultFlowFileExpiration": "0 sec", - "defaultBackPressureObjectThreshold": 10000, - "defaultBackPressureDataSizeThreshold": "1 GB", - "componentType": "PROCESS_GROUP", - "flowFileConcurrency": "UNBOUNDED", - "flowFileOutboundPolicy": "STREAM_WHEN_AVAILABLE" - } -} \ No newline at end of file diff --git a/mojaloop/reporting-nifi-processor-svc/configs/mongo-init-indices.js b/mojaloop/reporting-nifi-processor-svc/configs/mongo-init-indices.js new file mode 100644 index 00000000..3b3d27bb --- /dev/null +++ b/mojaloop/reporting-nifi-processor-svc/configs/mongo-init-indices.js @@ -0,0 +1,47 @@ +// init_indexes.js + +// Connect to the MongoDB instance +const db = db.getSiblingDB('{{ include "common.backends.reportingEventsDB.database" . }}'); + + +// Ensure collection exists and create indexes +function ensureCollectionAndIndexes(collectionName, indexes) { + if (!db.getCollectionNames().includes(collectionName)) { + db.createCollection(collectionName); + print(`Collection '${collectionName}' created.`); + } + + indexes.forEach(index => { + db.getCollection(collectionName).createIndex(index); + }); + + print(`Indexes for '${collectionName}' created successfully!`); +} + +// Define indexes for the 'transactions' collection +ensureCollectionAndIndexes("transaction", [ + { transferId: 1 }, + { sourceCurrency: 1 }, + { targetCurrency: 1 }, + { createdAt: 1 }, + { transferState: 1 }, + { transactionType: 1 }, + { payerDFSP: 1 }, + { payerDFSPProxy: 1 }, + { payeeDFSP: 1 }, + { payeeDFSPProxy: 1 }, + { errorCode: 1 }, + { "payerParty.partyIdType": 1 }, + { "payerParty.partyIdentifier": 1 }, + { "payeeParty.partyIdType": 1 }, + { "payeeParty.partyIdentifier": 1 } +]); + +// Define indexes for the 'settlements' collection +ensureCollectionAndIndexes("settlement", [ + { settlementId: 1 }, + { "settlementWindows.settlementWindowId": 1 } +]); + +print("Initialization script executed successfully!"); + diff --git a/mojaloop/reporting-nifi-processor-svc/templates/service.yaml b/mojaloop/reporting-nifi-processor-svc/templates/service.yaml index a78e7dbe..0209dfa1 100644 --- a/mojaloop/reporting-nifi-processor-svc/templates/service.yaml +++ b/mojaloop/reporting-nifi-processor-svc/templates/service.yaml @@ -63,7 +63,9 @@ spec: - port: {{ .Values.service.httpsPort }} name: https targetPort: {{ .Values.properties.httpsPort }} + {{- if .Values.service.nodePort }} nodePort: {{ .Values.service.nodePort }} + {{- end }} - port: {{ .Values.properties.siteToSite.port }} name: site-to-site targetPort: {{ .Values.properties.siteToSite.port }} diff --git a/mojaloop/reporting-nifi-processor-svc/templates/statefulset.yaml b/mojaloop/reporting-nifi-processor-svc/templates/statefulset.yaml index 14fbfab5..0978bfdc 100644 --- a/mojaloop/reporting-nifi-processor-svc/templates/statefulset.yaml +++ b/mojaloop/reporting-nifi-processor-svc/templates/statefulset.yaml @@ -82,13 +82,35 @@ spec: securityContext: {{ toYaml .Values.securityContext | indent 8 }} {{- end }} -{{- if .Values.initContainers }} initContainers: + - name: mongo-init-indices + image: mongo:6.0.2 + imagePullPolicy: IfNotPresent + command: + - sh + - -c + - > + mongosh --host {{ include "common.backends.reportingEventsDB.host" . }} --port {{ include "common.backends.reportingEventsDB.port" . }} -u {{ include "common.backends.reportingEventsDB.user" . }} -p $EVENT_STORE_DB_PASSWORD --authenticationDatabase {{ include "common.backends.reportingEventsDB.database" . }} /tmp/mongo-init-indices.js; + echo "MongoDB indices initialized." + env: + - name: EVENT_STORE_DB_PASSWORD + {{- if (include "common.backends.reportingEventsDB.secret.name" .) }} + valueFrom: + secretKeyRef: + name: '{{ include "common.backends.reportingEventsDB.secret.name" . }}' + key: '{{ include "common.backends.reportingEventsDB.secret.key" . }}' + {{- else }} + value: '{{ include "common.backends.reportingEventsDB.password" . }}' + {{- end }} + volumeMounts: + - name: mongo-init-indices + mountPath: /tmp/mongo-init-indices.js + subPath: mongo-init-indices.js {{- range $key, $value := .Values.initContainers }} - name: {{ $key }} {{ toYaml $value | indent 8 }} {{- end }} -{{- end }} + {{- if .Values.image.pullSecret }} imagePullSecrets: - name: {{ .Values.image.pullSecret }} @@ -109,7 +131,8 @@ spec: cat "${NIFI_HOME}/conf/nifi.temp" > "${NIFI_HOME}/conf/nifi.properties" - if ! test -f /opt/nifi/data/flow.json.gz && test -f /opt/nifi/data/flow.json; then + if ! test -f /opt/nifi/data/flow.json.gz ; then + curl -L -o /opt/nifi/data/flow.json ${NIFI_FLOW_URL} gzip /opt/nifi/data/flow.json fi @@ -160,8 +183,26 @@ spec: - name: NIFI_WEB_HTTPS_HOST value: 0.0.0.0 {{- end }} + - name: EVENT_STORE_DB_PASSWORD + {{- if (include "common.backends.reportingEventsDB.secret.name" .) }} + valueFrom: + secretKeyRef: + name: '{{ include "common.backends.reportingEventsDB.secret.name" . }}' + key: '{{ include "common.backends.reportingEventsDB.secret.key" . }}' + {{- else }} + value: '{{ include "common.backends.reportingEventsDB.password" . }}' + {{- end }} + - name: REPORTING_DB_PASSWORD + {{- if (include "common.backends.reportingDB.secret.name" .) }} + valueFrom: + secretKeyRef: + name: '{{ include "common.backends.reportingDB.secret.name" . }}' + key: '{{ include "common.backends.reportingDB.secret.key" . }}' + {{- else }} + value: '{{ include "common.backends.reportingDB.password" . }}' + {{- end }} {{- if .Values.env }} -{{ toYaml .Values.env | indent 8 }} +{{ tpl (toYaml .Values.env) . | indent 8 }} {{- end }} {{- if .Values.envFrom }} envFrom: @@ -255,9 +296,6 @@ spec: - name: "zookeeper-properties" mountPath: /opt/nifi/nifi-current/conf/zookeeper.properties subPath: "zookeeper.properties" - - name: "flow-content" - mountPath: /opt/nifi/data/flow.json - subPath: "flow.json" {{- range $secret := .Values.secrets }} {{- if $secret.mountPath }} {{- if $secret.keys }} @@ -381,12 +419,12 @@ spec: items: - key: "zookeeper.properties" path: "zookeeper.properties" - - name: "flow-content" + - name: "mongo-init-indices" configMap: name: {{ template "common.names.fullname" . }}-config items: - - key: "flow.json" - path: "flow.json" + - key: "mongo-init-indices.js" + path: "mongo-init-indices.js" {{- range .Values.secrets }} - name: {{ include "common.names.fullname" $ }}-{{ .name }} secret: diff --git a/mojaloop/reporting-nifi-processor-svc/values.yaml b/mojaloop/reporting-nifi-processor-svc/values.yaml index cb920570..8e297fb2 100644 --- a/mojaloop/reporting-nifi-processor-svc/values.yaml +++ b/mojaloop/reporting-nifi-processor-svc/values.yaml @@ -1,4 +1,27 @@ ---- +## @section Global parameters +global: + reportingDB: + host: centralledger-mysql + port: 3306 + user: central_ledger + database: central_ledger + password: '' + # secret: {} + secret: + name: centralledger-mysql + key: mysql-password + + reportingEventsDB: + host: reporting-events-db + port: 27017 + user: user + database: default + password: '' + # secret: {} + secret: + name: reporting-events-db + key: mongodb-password + # Number of nifi nodes replicaCount: 1 @@ -61,6 +84,33 @@ sts: # - myconf.conf # mountPath: /opt/nifi/custom-config +reportingDB: + ## This is the same as setting the host explicitly, i.e. will set the host as set below. It is included to support importing MySQL charts as a dependency. + # fullnameOverride: reporting-db + ## This will override the name of kafka and add the release prefix, e.g. '-'. + # nameOverride: reporting-db + # host: reporting-db + # port: 90925 + # user: central_ledger + # database: central_ledger + # password: '' + secret: {} + # name: reporting-db + # key: password + +reportingEventsDB: + ## This is the same as setting the host explicitly, i.e. will set the host as set below. It is included to support importing MySQL charts as a dependency. + # fullnameOverride: reporting-events-db + ## This will override the name of reporting-events-db and add the release prefix, e.g. '-'. + # nameOverride: reporting-events-db + # host: reporting-events-db + # port: 27017 + # user: event_store + # database: event_store + # password: '' + secret: {} + # name: reporting-events-db + # key: password properties: sensitiveKey: xzNViQSKL/GsLIKR6IraZimhNjI7X0cO # Must have at least 12 characters @@ -259,13 +309,14 @@ tolerations: [] ## https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-j-8.0.33.zip # initContainers: {} initContainers: - - name: download-jdbc-driver + download-jdbc-driver: image: curlimages/curl:latest imagePullPolicy: IfNotPresent command: - sh - -c - > + until nslookup repo1.maven.org; do sleep 5;done; curl -L -o /jdbc-lib-folder/mysql-connector-j-8.0.33.jar https://repo1.maven.org/maven2/com/mysql/mysql-connector-j/8.0.33/mysql-connector-j-8.0.33.jar; echo "JDBC driver downloaded." volumeMounts: @@ -301,33 +352,26 @@ env: value: "changeMe" - name: KEYSTORE_PASSWORD value: "changeMe" - ## DB Configuration + ## DB + - name: REPORTING_EVENTS_DB_HOST + value: '{{ include "common.backends.reportingEventsDB.host" . }}' + - name: REPORTING_EVENTS_DB_PORT + value: '{{ include "common.backends.reportingEventsDB.port" . }}' + - name: REPORTING_EVENTS_DB_DATABASE + value: '{{ include "common.backends.reportingEventsDB.database" . }}' + - name: REPORTING_EVENTS_DB_USER + value: '{{ include "common.backends.reportingEventsDB.user" . }}' - name: REPORTING_DB_HOST - value: mysqldb + value: '{{ include "common.backends.reportingDB.host" . }}' - name: REPORTING_DB_PORT - value: "3306" + value: '{{ include "common.backends.reportingDB.port" . }}' + - name: REPORTING_DB_DATABASE + value: '{{ include "common.backends.reportingDB.database" . }}' - name: REPORTING_DB_USER - value: central_ledger - - name: REPORTING_DB_SCHEMA - value: central_ledger - - name: REPORTING_DB_PASSWORD - valueFrom: - secretKeyRef: - name: mysqldb - key: mysql-password - - name: EVENT_STORE_DB_HOST - value: reporting-events-db - - name: EVENT_STORE_DB_PORT - value: "27017" - - name: EVENT_STORE_DB_USER - value: finance_portal - - name: EVENT_STORE_DB_DATABASE - value: finance_portal - - name: EVENT_STORE_DB_PASSWORD - valueFrom: - secretKeyRef: - name: reporting-events-db - key: mongodb-passwords + value: '{{ include "common.backends.reportingDB.user" . }}' + - name: NIFI_FLOW_URL + value: https://raw.githubusercontent.com/mojaloop/reporting-events-processor-svc/refs/tags/v3.0.1-snapshot.2/apache-nifi-workflow/flow.json + ## Extra environment variables from secrets and config maps envFrom: []