diff options
author | Rasmus Luha <rasmus.luha@ut.ee> | 2025-04-08 00:12:54 +0300 |
---|---|---|
committer | Rasmus Luha <rasmus.luha@ut.ee> | 2025-04-08 00:12:54 +0300 |
commit | 79e76174dec661efc3f5e3cb0e39922d12653d36 (patch) | |
tree | 85b7ac586a4b76a3e3d04218c137f073af2cec87 | |
parent | fc6f95665ae68c2025dd4579c6b6725d7d84a790 (diff) |
initial nifi processor modifying working
-rw-r--r-- | README.md | 6 | ||||
-rw-r--r-- | common/core.py | 16 | ||||
-rw-r--r-- | modules/nifi/core.py | 66 | ||||
-rw-r--r-- | modules/nifi/templates/basic_ETL.json | 202 | ||||
-rw-r--r-- | modules/nifi/templates/splitJsonETL.json | 1272 | ||||
-rw-r--r-- | pipelines/test_pipeline.json | 1161 |
6 files changed, 2546 insertions, 177 deletions
@@ -1,2 +1,4 @@ -Ekstrakti jsonist väljad, anna numbrilistina ette - dict - user valib numbri --> ehitad protsessori. +Next step: modify processor + - templates added: DONE + - Chose which one to use: IN PROGRESS + - and use it diff --git a/common/core.py b/common/core.py index 5841d41..3eb46df 100644 --- a/common/core.py +++ b/common/core.py @@ -27,7 +27,7 @@ def ask_digit_input(max_index): print(f" Number ei kuulu valikusse. Palun vali number vahemikus 0-{max_index}.") - +## Checks if api url is correct, if so then returns the json def is_app_url_correct(api_url, needs_auth, username,passwd): print("Teostan API kutset...\n") try: @@ -38,7 +38,7 @@ def is_app_url_correct(api_url, needs_auth, username,passwd): response.raise_for_status() ## Check if staus code is 2xx data = response.json() -# print(json.dumps(data, indent=2)) + #print(json.dumps(data, indent=2)) return data, True except requests.exceptions.RequestException as e: @@ -52,8 +52,11 @@ def is_app_url_correct(api_url, needs_auth, username,passwd): return None, False -## Func todo - add list level support with porcessors etc +## TODO - add list level support with porcessors etc +## Asks the user json item to extract and returns it as dict item-value pair, where item is name and value json path def inspect_json_top_level(json_data): + path = "" + while True: print(json.dumps(json_data, indent=2)) print("\nVali json võti millest soovid väärtuse andmekonveieriga ekstrakteerida\n") @@ -62,7 +65,7 @@ def inspect_json_top_level(json_data): for index, key in enumerate(keys): value = json_data[key] - value_type = type(value).__name__ ## Mis type json itemgiga tegu + value_type = type(value).__name__ ## näitab mis json itemi type'i if isinstance(value, list): suggestion = "SplitJson" else: @@ -78,8 +81,9 @@ def inspect_json_top_level(json_data): if isinstance(selected_value, dict) or isinstance(selected_value,list): json_data = selected_value + path += "." + selected_key continue else: print(f"\nValitud võti: '{selected_key}':") - #print(json.dumps(selected_value, indent=2)) - return selected_key + path += "." + selected_key + return {selected_key: path} diff --git a/modules/nifi/core.py b/modules/nifi/core.py index 6e2f2e7..50373a8 100644 --- a/modules/nifi/core.py +++ b/modules/nifi/core.py @@ -4,6 +4,7 @@ from common import core as common import sys import json +import shutil def introduction(): @@ -14,23 +15,48 @@ def introduction(): ## TODO -def set_processor_property(pipeline, processor_name, property_key, property_value): - for processor in pipeline['flowContents']['processors']: - if processor['name'] == processor_name: - processor['properties'][property_key] = property_value - print(f"Updated '{property_key}' in processor '{processor_name}'") - return - print(f"Processor '{processor_name}' not found.") +def update_template(file_path, dot_path, new_key, new_value): + # Step 2: Load the copied JSON + with open(file_path, "r") as f: + data = json.load(f) + # Step 3: Walk the path (e.g. 'flowContents.processors[0].properties') + keys = dot_path.split(".") + current = data + for key in keys: + if key.endswith("]"): # Handle list index like processors[0] + list_key = key[:key.index("[")] + index = int(key[key.index("[") + 1 : key.index("]")]) + current = current[list_key][index] + else: + current = current[key] + # Step 4: Add or update the key + current[new_key] = new_value + print(f"🛠 Added '{new_key}': '{new_value}' at path '{dot_path}'") + # Step 5: Save back the JSON + with open(file_path, "w") as f: + json.dump(data, f, indent=2) + print("✅ Changes saved.") + + +### Example Usage ### +# copy_and_modify_json( +# "template.json", +# "pipeline_copy.json", +# "flowContents.processors[1].properties", +# "New Config Key", +# "New Config Value" +# ) -def build_pipeline(): - chosen_json_values = [] +def get_data_values(): + + chosen_json_values = {} ##Getting API url and json values while True: @@ -45,18 +71,34 @@ def build_pipeline(): json_data, api_url_correct = common.is_app_url_correct(api_url,needs_auth,username,passwd) + ## TODO itemite eemaldamise v6malus if api_url_correct: while True: - chosen_json_values.append(common.inspect_json_top_level(json_data)) - print("Oled hetkel valinud järgmised väärtused:", chosen_json_values) + + chosen_json_values.update(common.inspect_json_top_level(json_data)) + print("Oled hetkel valinud järgmised väärtused:", ", ".join(chosen_json_values)) choose_another = common.ask_binary_input(prompt="\nKas soovid (v)alida veel mõne väärtuse või liikuda (e)dasi?(v/e): ",valikud=["v","e"]).strip().lower() if choose_another == 'e': return chosen_json_values - else: choice = common.ask_binary_input(prompt="\nKas soovid URL-i (m)uuta URL-i või (v)äljuda?(m/v): ",valikud=["m","v"]).strip().lower() if choice == 'v': print("Väljun programmist.") sys.exit() + + +def build_pipeline(): + data_values = get_data_values() + + ## TODO + shutil.copy("modules/nifi/templates/basic_ETL.json", "pipelines/test_pipeline.json") + + ## TODO + + for key, value in data_values.items() : + #print (key, value) + update_template("pipelines/test_pipeline.json", "flowContents.processors[2].properties", key, value) + + diff --git a/modules/nifi/templates/basic_ETL.json b/modules/nifi/templates/basic_ETL.json index 457c783..9c3764e 100644 --- a/modules/nifi/templates/basic_ETL.json +++ b/modules/nifi/templates/basic_ETL.json @@ -2,11 +2,11 @@ "flowContents": { "identifier": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", "instanceIdentifier": "5bb8e7b5-0194-1000-5e19-bee2ad8d9a6e", - "name": "testingName", + "name": "open-meteo_data", "comments": "", "position": { - "x": -536.0, - "y": -328.0 + "x": -432.0, + "y": -213.5 }, "processGroups": [], "remoteProcessGroups": [], @@ -28,7 +28,7 @@ }, "properties": { "Regular Expression": "(?s)(^.*$)", - "Replacement Value": "energy,building=\"Delta\" kilowattHours=${energy_value}", + "Replacement Value": "weather,city=\"Tartu\" Temperature=${temperature},Wind=${wind_speed}", "Evaluation Mode": "Entire text", "Text to Prepend": null, "Line-by-Line Evaluation Mode": "All", @@ -126,8 +126,8 @@ "name": "InvokeHTTP", "comments": "", "position": { - "x": -1416.0, - "y": -752.0 + "x": -1424.0, + "y": -600.0 }, "type": "org.apache.nifi.processors.standard.InvokeHTTP", "bundle": { @@ -147,7 +147,7 @@ "Socket Read Timeout": "15 secs", "Socket Idle Connections": "5", "Request Body Enabled": "true", - "HTTP URL": "https://delta.iot.cs.ut.ee/measurement/measurements?source=780&dateFrom=${now():toNumber():minus(86400000):format(\"yyyy-MM-dd\")}T00:00:00Z&dateTo=${now():toNumber():minus(86400000):format(\"yyyy-MM-dd\")}T23:59:59Z&pageSize=200&type=KogEN", + "HTTP URL": "https://api.open-meteo.com/v1/forecast?latitude=58.38&longitude=26.72¤t=temperature_2m,wind_speed_10m", "Request OAuth2 Access Token Provider": null, "Socket Idle Timeout": "5 mins", "Response Redirects Enabled": "True", @@ -163,14 +163,13 @@ "Request User-Agent": null, "Response Header Request Attributes Enabled": "false", "HTTP Method": "GET", - "Request Username": "rasmus.luha", + "Request Username": null, "Request Content-Type": "${mime.type}", "Response Body Attribute Name": null, "Request Digest Authentication Enabled": "false", "Request Multipart Form-Data Name": null, "Response Cache Size": "10MB", - "Response Body Ignored": "false", - "Replacement Value": "energy,building=\"Delta\" kilowattHours=${energy_value}" + "Response Body Ignored": "false" }, "propertyDescriptors": { "Request Content-Encoding": { @@ -420,7 +419,7 @@ } }, "style": {}, - "schedulingPeriod": "86400 sec", + "schedulingPeriod": "5 sec", "schedulingStrategy": "TIMER_DRIVEN", "executionNode": "ALL", "penaltyDuration": "30 sec", @@ -440,73 +439,12 @@ "groupIdentifier": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274" }, { - "identifier": "fb9a5b80-aa9a-3e1b-86f5-c17db5783812", - "instanceIdentifier": "0bd7b16d-0195-1000-32ad-5b4055f37b22", - "name": "SplitJson", - "comments": "", - "position": { - "x": -1184.0, - "y": -440.0 - }, - "type": "org.apache.nifi.processors.standard.SplitJson", - "bundle": { - "group": "org.apache.nifi", - "artifact": "nifi-standard-nar", - "version": "2.1.0" - }, - "properties": { - "Max String Length": "20 MB", - "Null Value Representation": "empty string", - "JsonPath Expression": "$.measurements[*]" - }, - "propertyDescriptors": { - "Max String Length": { - "name": "Max String Length", - "displayName": "Max String Length", - "identifiesControllerService": false, - "sensitive": false, - "dynamic": false - }, - "Null Value Representation": { - "name": "Null Value Representation", - "displayName": "Null Value Representation", - "identifiesControllerService": false, - "sensitive": false, - "dynamic": false - }, - "JsonPath Expression": { - "name": "JsonPath Expression", - "displayName": "JsonPath Expression", - "identifiesControllerService": false, - "sensitive": false, - "dynamic": false - } - }, - "style": {}, - "schedulingPeriod": "0 sec", - "schedulingStrategy": "TIMER_DRIVEN", - "executionNode": "ALL", - "penaltyDuration": "30 sec", - "yieldDuration": "1 sec", - "bulletinLevel": "WARN", - "runDurationMillis": 0, - "concurrentlySchedulableTaskCount": 1, - "autoTerminatedRelationships": [], - "scheduledState": "ENABLED", - "retryCount": 10, - "retriedRelationships": [], - "backoffMechanism": "PENALIZE_FLOWFILE", - "maxBackoffPeriod": "10 mins", - "componentType": "PROCESSOR", - "groupIdentifier": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274" - }, - { "identifier": "b00e49a7-d25a-3d5a-8705-ef4c5e2919e7", "instanceIdentifier": "6802228d-1680-3d01-dcb3-83febf10560d", "name": "EvaluateJsonPath", "comments": "", "position": { - "x": -648.0, + "x": -800.0, "y": -608.0 }, "type": "org.apache.nifi.processors.standard.EvaluateJsonPath", @@ -519,9 +457,10 @@ "Destination": "flowfile-attribute", "Max String Length": "20 MB", "Return Type": "auto-detect", - "energy_value": "$.KogEN.T.value", + "latitude": "$.latitude", "Null Value Representation": "empty string", - "Path Not Found Behavior": "ignore" + "Path Not Found Behavior": "ignore", + "longitude": "$.longitude" }, "propertyDescriptors": { "Destination": { @@ -545,9 +484,16 @@ "sensitive": false, "dynamic": false }, - "energy_value": { - "name": "energy_value", - "displayName": "energy_value", + "latitude": { + "name": "latitude", + "displayName": "latitude", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": true + }, + "temperature": { + "name": "temperature", + "displayName": "temperature", "identifiesControllerService": false, "sensitive": false, "dynamic": true @@ -559,12 +505,26 @@ "sensitive": false, "dynamic": false }, + "wind_speed": { + "name": "wind_speed", + "displayName": "wind_speed", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": true + }, "Path Not Found Behavior": { "name": "Path Not Found Behavior", "displayName": "Path Not Found Behavior", "identifiesControllerService": false, "sensitive": false, "dynamic": false + }, + "longitude": { + "name": "longitude", + "displayName": "longitude", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": true } }, "style": {}, @@ -612,7 +572,7 @@ "Socket Read Timeout": "15 secs", "Socket Idle Connections": "5", "Request Body Enabled": "true", - "HTTP URL": "http://influxdb:8086/write?db=nifi_deltaEnergy", + "HTTP URL": "http://influxdb:8086/write?db=nifi_weatherData", "Request OAuth2 Access Token Provider": null, "Socket Idle Timeout": "5 mins", "Response Redirects Enabled": "True", @@ -994,16 +954,16 @@ "groupIdentifier": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274" }, { - "identifier": "2e2a9588-6e83-3fad-9e25-a7e4411f7cbb", - "instanceIdentifier": "0bd8e0f0-0195-1000-b5fa-59bff2ea7c05", + "identifier": "e8cf7e04-f875-3774-8234-7c44ae4c0c66", + "instanceIdentifier": "7e0990fa-432b-36c9-e56f-c856d2d253b6", "name": "", "source": { - "id": "fb9a5b80-aa9a-3e1b-86f5-c17db5783812", + "id": "ba013c53-d8f2-3718-b7dd-d935e8b1413f", "type": "PROCESSOR", "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", - "name": "SplitJson", + "name": "InvokeHTTP", "comments": "", - "instanceIdentifier": "0bd7b16d-0195-1000-32ad-5b4055f37b22" + "instanceIdentifier": "44bbe9ed-51fa-3d2b-2bff-e04fc0673ebd" }, "destination": { "id": "b00e49a7-d25a-3d5a-8705-ef4c5e2919e7", @@ -1016,43 +976,7 @@ "labelIndex": 0, "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": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274" - }, - { - "identifier": "f21c16db-0f95-31a0-9bcc-fc2034a8e5ad", - "instanceIdentifier": "0bd93b2d-0195-1000-1cf6-b09aec356f70", - "name": "", - "source": { - "id": "fb9a5b80-aa9a-3e1b-86f5-c17db5783812", - "type": "PROCESSOR", - "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", - "name": "SplitJson", - "comments": "", - "instanceIdentifier": "0bd7b16d-0195-1000-32ad-5b4055f37b22" - }, - "destination": { - "id": "eaff6f84-649b-3677-9935-911028a86f0e", - "type": "OUTPUT_PORT", - "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", - "name": "errors", - "instanceIdentifier": "c033503f-2cfe-354d-548c-7710831a646d" - }, - "labelIndex": 0, - "zIndex": 0, - "selectedRelationships": [ - "original", - "failure" + "Response" ], "backPressureObjectThreshold": 10000, "backPressureDataSizeThreshold": "1 GB", @@ -1212,42 +1136,6 @@ "loadBalanceCompression": "DO_NOT_COMPRESS", "componentType": "CONNECTION", "groupIdentifier": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274" - }, - { - "identifier": "e529f57e-174b-3adc-86ac-326b10703eef", - "instanceIdentifier": "0bd8a1cd-0195-1000-f564-5b19695e6b39", - "name": "", - "source": { - "id": "ba013c53-d8f2-3718-b7dd-d935e8b1413f", - "type": "PROCESSOR", - "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", - "name": "InvokeHTTP", - "comments": "", - "instanceIdentifier": "44bbe9ed-51fa-3d2b-2bff-e04fc0673ebd" - }, - "destination": { - "id": "fb9a5b80-aa9a-3e1b-86f5-c17db5783812", - "type": "PROCESSOR", - "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", - "name": "SplitJson", - "comments": "", - "instanceIdentifier": "0bd7b16d-0195-1000-32ad-5b4055f37b22" - }, - "labelIndex": 0, - "zIndex": 0, - "selectedRelationships": [ - "Response" - ], - "backPressureObjectThreshold": 10000, - "backPressureDataSizeThreshold": "1 GB", - "flowFileExpiration": "0 sec", - "prioritizers": [], - "bends": [], - "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", - "partitioningAttribute": "", - "loadBalanceCompression": "DO_NOT_COMPRESS", - "componentType": "CONNECTION", - "groupIdentifier": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274" } ], "labels": [], diff --git a/modules/nifi/templates/splitJsonETL.json b/modules/nifi/templates/splitJsonETL.json new file mode 100644 index 0000000..457c783 --- /dev/null +++ b/modules/nifi/templates/splitJsonETL.json @@ -0,0 +1,1272 @@ +{ + "flowContents": { + "identifier": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", + "instanceIdentifier": "5bb8e7b5-0194-1000-5e19-bee2ad8d9a6e", + "name": "testingName", + "comments": "", + "position": { + "x": -536.0, + "y": -328.0 + }, + "processGroups": [], + "remoteProcessGroups": [], + "processors": [ + { + "identifier": "d7963d52-e8a3-3b27-9543-20db6cc99f6f", + "instanceIdentifier": "9f1ceb8b-f048-3b47-5aec-773690811078", + "name": "ReplaceText", + "comments": "", + "position": { + "x": -208.0, + "y": -968.0 + }, + "type": "org.apache.nifi.processors.standard.ReplaceText", + "bundle": { + "group": "org.apache.nifi", + "artifact": "nifi-standard-nar", + "version": "2.1.0" + }, + "properties": { + "Regular Expression": "(?s)(^.*$)", + "Replacement Value": "energy,building=\"Delta\" kilowattHours=${energy_value}", + "Evaluation Mode": "Entire text", + "Text to Prepend": null, + "Line-by-Line Evaluation Mode": "All", + "Character Set": "UTF-8", + "Maximum Buffer Size": "1 MB", + "Replacement Strategy": "Regex Replace", + "Text to Append": null + }, + "propertyDescriptors": { + "Regular Expression": { + "name": "Regular Expression", + "displayName": "Search Value", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Replacement Value": { + "name": "Replacement Value", + "displayName": "Replacement Value", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Evaluation Mode": { + "name": "Evaluation Mode", + "displayName": "Evaluation Mode", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Text to Prepend": { + "name": "Text to Prepend", + "displayName": "Text to Prepend", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Line-by-Line Evaluation Mode": { + "name": "Line-by-Line Evaluation Mode", + "displayName": "Line-by-Line Evaluation Mode", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Character Set": { + "name": "Character Set", + "displayName": "Character Set", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Maximum Buffer Size": { + "name": "Maximum Buffer Size", + "displayName": "Maximum Buffer Size", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Replacement Strategy": { + "name": "Replacement Strategy", + "displayName": "Replacement Strategy", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Text to Append": { + "name": "Text to Append", + "displayName": "Text to Append", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + } + }, + "style": {}, + "schedulingPeriod": "0 sec", + "schedulingStrategy": "TIMER_DRIVEN", + "executionNode": "ALL", + "penaltyDuration": "30 sec", + "yieldDuration": "1 sec", + "bulletinLevel": "WARN", + "runDurationMillis": 25, + "concurrentlySchedulableTaskCount": 1, + "autoTerminatedRelationships": [], + "scheduledState": "ENABLED", + "retryCount": 10, + "retriedRelationships": [], + "backoffMechanism": "PENALIZE_FLOWFILE", + "maxBackoffPeriod": "10 mins", + "componentType": "PROCESSOR", + "groupIdentifier": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274" + }, + { + "identifier": "ba013c53-d8f2-3718-b7dd-d935e8b1413f", + "instanceIdentifier": "44bbe9ed-51fa-3d2b-2bff-e04fc0673ebd", + "name": "InvokeHTTP", + "comments": "", + "position": { + "x": -1416.0, + "y": -752.0 + }, + "type": "org.apache.nifi.processors.standard.InvokeHTTP", + "bundle": { + "group": "org.apache.nifi", + "artifact": "nifi-standard-nar", + "version": "2.1.0" + }, + "properties": { + "Request Content-Encoding": "DISABLED", + "proxy-configuration-service": null, + "Request Multipart Form-Data Filename Enabled": "true", + "Request Chunked Transfer-Encoding Enabled": "false", + "Response Header Request Attributes Prefix": null, + "HTTP/2 Disabled": "False", + "Connection Timeout": "5 secs", + "Response Cookie Strategy": "DISABLED", + "Socket Read Timeout": "15 secs", + "Socket Idle Connections": "5", + "Request Body Enabled": "true", + "HTTP URL": "https://delta.iot.cs.ut.ee/measurement/measurements?source=780&dateFrom=${now():toNumber():minus(86400000):format(\"yyyy-MM-dd\")}T00:00:00Z&dateTo=${now():toNumber():minus(86400000):format(\"yyyy-MM-dd\")}T23:59:59Z&pageSize=200&type=KogEN", + "Request OAuth2 Access Token Provider": null, + "Socket Idle Timeout": "5 mins", + "Response Redirects Enabled": "True", + "Socket Write Timeout": "15 secs", + "Request Header Attributes Pattern": null, + "Response FlowFile Naming Strategy": "RANDOM", + "Response Cache Enabled": "false", + "Request Date Header Enabled": "True", + "Request Failure Penalization Enabled": "false", + "Response Body Attribute Size": "256", + "SSL Context Service": null, + "Response Generation Required": "false", + "Request User-Agent": null, + "Response Header Request Attributes Enabled": "false", + "HTTP Method": "GET", + "Request Username": "rasmus.luha", + "Request Content-Type": "${mime.type}", + "Response Body Attribute Name": null, + "Request Digest Authentication Enabled": "false", + "Request Multipart Form-Data Name": null, + "Response Cache Size": "10MB", + "Response Body Ignored": "false", + "Replacement Value": "energy,building=\"Delta\" kilowattHours=${energy_value}" + }, + "propertyDescriptors": { + "Request Content-Encoding": { + "name": "Request Content-Encoding", + "displayName": "Request Content-Encoding", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "proxy-configuration-service": { + "name": "proxy-configuration-service", + "displayName": "Proxy Configuration Service", + "identifiesControllerService": true, + "sensitive": false, + "dynamic": false + }, + "Request Multipart Form-Data Filename Enabled": { + "name": "Request Multipart Form-Data Filename Enabled", + "displayName": "Request Multipart Form-Data Filename Enabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Chunked Transfer-Encoding Enabled": { + "name": "Request Chunked Transfer-Encoding Enabled", + "displayName": "Request Chunked Transfer-Encoding Enabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response Header Request Attributes Prefix": { + "name": "Response Header Request Attributes Prefix", + "displayName": "Response Header Request Attributes Prefix", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "HTTP/2 Disabled": { + "name": "HTTP/2 Disabled", + "displayName": "HTTP/2 Disabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Connection Timeout": { + "name": "Connection Timeout", + "displayName": "Connection Timeout", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response Cookie Strategy": { + "name": "Response Cookie Strategy", + "displayName": "Response Cookie Strategy", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Password": { + "name": "Request Password", + "displayName": "Request Password", + "identifiesControllerService": false, + "sensitive": true, + "dynamic": false + }, + "Socket Read Timeout": { + "name": "Socket Read Timeout", + "displayName": "Socket Read Timeout", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Socket Idle Connections": { + "name": "Socket Idle Connections", + "displayName": "Socket Idle Connections", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Body Enabled": { + "name": "Request Body Enabled", + "displayName": "Request Body Enabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "HTTP URL": { + "name": "HTTP URL", + "displayName": "HTTP URL", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request OAuth2 Access Token Provider": { + "name": "Request OAuth2 Access Token Provider", + "displayName": "Request OAuth2 Access Token Provider", + "identifiesControllerService": true, + "sensitive": false, + "dynamic": false + }, + "Socket Idle Timeout": { + "name": "Socket Idle Timeout", + "displayName": "Socket Idle Timeout", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response Redirects Enabled": { + "name": "Response Redirects Enabled", + "displayName": "Response Redirects Enabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Socket Write Timeout": { + "name": "Socket Write Timeout", + "displayName": "Socket Write Timeout", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Header Attributes Pattern": { + "name": "Request Header Attributes Pattern", + "displayName": "Request Header Attributes Pattern", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response FlowFile Naming Strategy": { + "name": "Response FlowFile Naming Strategy", + "displayName": "Response FlowFile Naming Strategy", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response Cache Enabled": { + "name": "Response Cache Enabled", + "displayName": "Response Cache Enabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Date Header Enabled": { + "name": "Request Date Header Enabled", + "displayName": "Request Date Header Enabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Failure Penalization Enabled": { + "name": "Request Failure Penalization Enabled", + "displayName": "Request Failure Penalization Enabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response Body Attribute Size": { + "name": "Response Body Attribute Size", + "displayName": "Response Body Attribute Size", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "SSL Context Service": { + "name": "SSL Context Service", + "displayName": "SSL Context Service", + "identifiesControllerService": true, + "sensitive": false, + "dynamic": false + }, + "Response Generation Required": { + "name": "Response Generation Required", + "displayName": "Response Generation Required", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request User-Agent": { + "name": "Request User-Agent", + "displayName": "Request User-Agent", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response Header Request Attributes Enabled": { + "name": "Response Header Request Attributes Enabled", + "displayName": "Response Header Request Attributes Enabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "HTTP Method": { + "name": "HTTP Method", + "displayName": "HTTP Method", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Username": { + "name": "Request Username", + "displayName": "Request Username", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Content-Type": { + "name": "Request Content-Type", + "displayName": "Request Content-Type", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response Body Attribute Name": { + "name": "Response Body Attribute Name", + "displayName": "Response Body Attribute Name", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Digest Authentication Enabled": { + "name": "Request Digest Authentication Enabled", + "displayName": "Request Digest Authentication Enabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Multipart Form-Data Name": { + "name": "Request Multipart Form-Data Name", + "displayName": "Request Multipart Form-Data Name", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response Cache Size": { + "name": "Response Cache Size", + "displayName": "Response Cache Size", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response Body Ignored": { + "name": "Response Body Ignored", + "displayName": "Response Body Ignored", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + } + }, + "style": {}, + "schedulingPeriod": "86400 sec", + "schedulingStrategy": "TIMER_DRIVEN", + "executionNode": "ALL", + "penaltyDuration": "30 sec", + "yieldDuration": "1 sec", + "bulletinLevel": "WARN", + "runDurationMillis": 0, + "concurrentlySchedulableTaskCount": 1, + "autoTerminatedRelationships": [ + "Original" + ], + "scheduledState": "ENABLED", + "retryCount": 10, + "retriedRelationships": [], + "backoffMechanism": "PENALIZE_FLOWFILE", + "maxBackoffPeriod": "10 mins", + "componentType": "PROCESSOR", + "groupIdentifier": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274" + }, + { + "identifier": "fb9a5b80-aa9a-3e1b-86f5-c17db5783812", + "instanceIdentifier": "0bd7b16d-0195-1000-32ad-5b4055f37b22", + "name": "SplitJson", + "comments": "", + "position": { + "x": -1184.0, + "y": -440.0 + }, + "type": "org.apache.nifi.processors.standard.SplitJson", + "bundle": { + "group": "org.apache.nifi", + "artifact": "nifi-standard-nar", + "version": "2.1.0" + }, + "properties": { + "Max String Length": "20 MB", + "Null Value Representation": "empty string", + "JsonPath Expression": "$.measurements[*]" + }, + "propertyDescriptors": { + "Max String Length": { + "name": "Max String Length", + "displayName": "Max String Length", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Null Value Representation": { + "name": "Null Value Representation", + "displayName": "Null Value Representation", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "JsonPath Expression": { + "name": "JsonPath Expression", + "displayName": "JsonPath Expression", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + } + }, + "style": {}, + "schedulingPeriod": "0 sec", + "schedulingStrategy": "TIMER_DRIVEN", + "executionNode": "ALL", + "penaltyDuration": "30 sec", + "yieldDuration": "1 sec", + "bulletinLevel": "WARN", + "runDurationMillis": 0, + "concurrentlySchedulableTaskCount": 1, + "autoTerminatedRelationships": [], + "scheduledState": "ENABLED", + "retryCount": 10, + "retriedRelationships": [], + "backoffMechanism": "PENALIZE_FLOWFILE", + "maxBackoffPeriod": "10 mins", + "componentType": "PROCESSOR", + "groupIdentifier": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274" + }, + { + "identifier": "b00e49a7-d25a-3d5a-8705-ef4c5e2919e7", + "instanceIdentifier": "6802228d-1680-3d01-dcb3-83febf10560d", + "name": "EvaluateJsonPath", + "comments": "", + "position": { + "x": -648.0, + "y": -608.0 + }, + "type": "org.apache.nifi.processors.standard.EvaluateJsonPath", + "bundle": { + "group": "org.apache.nifi", + "artifact": "nifi-standard-nar", + "version": "2.1.0" + }, + "properties": { + "Destination": "flowfile-attribute", + "Max String Length": "20 MB", + "Return Type": "auto-detect", + "energy_value": "$.KogEN.T.value", + "Null Value Representation": "empty string", + "Path Not Found Behavior": "ignore" + }, + "propertyDescriptors": { + "Destination": { + "name": "Destination", + "displayName": "Destination", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Max String Length": { + "name": "Max String Length", + "displayName": "Max String Length", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Return Type": { + "name": "Return Type", + "displayName": "Return Type", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "energy_value": { + "name": "energy_value", + "displayName": "energy_value", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": true + }, + "Null Value Representation": { + "name": "Null Value Representation", + "displayName": "Null Value Representation", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Path Not Found Behavior": { + "name": "Path Not Found Behavior", + "displayName": "Path Not Found Behavior", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + } + }, + "style": {}, + "schedulingPeriod": "0 sec", + "schedulingStrategy": "TIMER_DRIVEN", + "executionNode": "ALL", + "penaltyDuration": "30 sec", + "yieldDuration": "1 sec", + "bulletinLevel": "WARN", + "runDurationMillis": 0, + "concurrentlySchedulableTaskCount": 1, + "autoTerminatedRelationships": [], + "scheduledState": "ENABLED", + "retryCount": 10, + "retriedRelationships": [], + "backoffMechanism": "PENALIZE_FLOWFILE", + "maxBackoffPeriod": "10 mins", + "componentType": "PROCESSOR", + "groupIdentifier": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274" + }, + { + "identifier": "5834e54d-4509-3fb8-b672-fb1f450ef408", + "instanceIdentifier": "87c23d87-fa77-32d7-4a2b-d425cddba4c7", + "name": "InvokeHTTP", + "comments": "", + "position": { + "x": -128.0, + "y": -624.0 + }, + "type": "org.apache.nifi.processors.standard.InvokeHTTP", + "bundle": { + "group": "org.apache.nifi", + "artifact": "nifi-standard-nar", + "version": "2.1.0" + }, + "properties": { + "Request Content-Encoding": "DISABLED", + "proxy-configuration-service": null, + "Request Multipart Form-Data Filename Enabled": "true", + "Request Chunked Transfer-Encoding Enabled": "false", + "Response Header Request Attributes Prefix": null, + "HTTP/2 Disabled": "False", + "Connection Timeout": "5 secs", + "Response Cookie Strategy": "DISABLED", + "Socket Read Timeout": "15 secs", + "Socket Idle Connections": "5", + "Request Body Enabled": "true", + "HTTP URL": "http://influxdb:8086/write?db=nifi_deltaEnergy", + "Request OAuth2 Access Token Provider": null, + "Socket Idle Timeout": "5 mins", + "Response Redirects Enabled": "True", + "Socket Write Timeout": "15 secs", + "Request Header Attributes Pattern": null, + "Response FlowFile Naming Strategy": "RANDOM", + "Response Cache Enabled": "false", + "Request Date Header Enabled": "True", + "Request Failure Penalization Enabled": "false", + "Response Body Attribute Size": "256", + "SSL Context Service": null, + "Response Generation Required": "false", + "Request User-Agent": null, + "Response Header Request Attributes Enabled": "false", + "HTTP Method": "POST", + "Request Username": "admin", + "Request Content-Type": "${mime.type}", + "Response Body Attribute Name": null, + "Request Digest Authentication Enabled": "false", + "Request Multipart Form-Data Name": null, + "Response Cache Size": "10MB", + "Response Body Ignored": "false" + }, + "propertyDescriptors": { + "Request Content-Encoding": { + "name": "Request Content-Encoding", + "displayName": "Request Content-Encoding", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "proxy-configuration-service": { + "name": "proxy-configuration-service", + "displayName": "Proxy Configuration Service", + "identifiesControllerService": true, + "sensitive": false, + "dynamic": false + }, + "Request Multipart Form-Data Filename Enabled": { + "name": "Request Multipart Form-Data Filename Enabled", + "displayName": "Request Multipart Form-Data Filename Enabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Chunked Transfer-Encoding Enabled": { + "name": "Request Chunked Transfer-Encoding Enabled", + "displayName": "Request Chunked Transfer-Encoding Enabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response Header Request Attributes Prefix": { + "name": "Response Header Request Attributes Prefix", + "displayName": "Response Header Request Attributes Prefix", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "HTTP/2 Disabled": { + "name": "HTTP/2 Disabled", + "displayName": "HTTP/2 Disabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Connection Timeout": { + "name": "Connection Timeout", + "displayName": "Connection Timeout", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response Cookie Strategy": { + "name": "Response Cookie Strategy", + "displayName": "Response Cookie Strategy", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Password": { + "name": "Request Password", + "displayName": "Request Password", + "identifiesControllerService": false, + "sensitive": true, + "dynamic": false + }, + "Socket Read Timeout": { + "name": "Socket Read Timeout", + "displayName": "Socket Read Timeout", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Socket Idle Connections": { + "name": "Socket Idle Connections", + "displayName": "Socket Idle Connections", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Body Enabled": { + "name": "Request Body Enabled", + "displayName": "Request Body Enabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "HTTP URL": { + "name": "HTTP URL", + "displayName": "HTTP URL", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request OAuth2 Access Token Provider": { + "name": "Request OAuth2 Access Token Provider", + "displayName": "Request OAuth2 Access Token Provider", + "identifiesControllerService": true, + "sensitive": false, + "dynamic": false + }, + "Socket Idle Timeout": { + "name": "Socket Idle Timeout", + "displayName": "Socket Idle Timeout", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response Redirects Enabled": { + "name": "Response Redirects Enabled", + "displayName": "Response Redirects Enabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Socket Write Timeout": { + "name": "Socket Write Timeout", + "displayName": "Socket Write Timeout", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Header Attributes Pattern": { + "name": "Request Header Attributes Pattern", + "displayName": "Request Header Attributes Pattern", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response FlowFile Naming Strategy": { + "name": "Response FlowFile Naming Strategy", + "displayName": "Response FlowFile Naming Strategy", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response Cache Enabled": { + "name": "Response Cache Enabled", + "displayName": "Response Cache Enabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Date Header Enabled": { + "name": "Request Date Header Enabled", + "displayName": "Request Date Header Enabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Failure Penalization Enabled": { + "name": "Request Failure Penalization Enabled", + "displayName": "Request Failure Penalization Enabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response Body Attribute Size": { + "name": "Response Body Attribute Size", + "displayName": "Response Body Attribute Size", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "SSL Context Service": { + "name": "SSL Context Service", + "displayName": "SSL Context Service", + "identifiesControllerService": true, + "sensitive": false, + "dynamic": false + }, + "Response Generation Required": { + "name": "Response Generation Required", + "displayName": "Response Generation Required", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request User-Agent": { + "name": "Request User-Agent", + "displayName": "Request User-Agent", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response Header Request Attributes Enabled": { + "name": "Response Header Request Attributes Enabled", + "displayName": "Response Header Request Attributes Enabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "HTTP Method": { + "name": "HTTP Method", + "displayName": "HTTP Method", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Username": { + "name": "Request Username", + "displayName": "Request Username", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Content-Type": { + "name": "Request Content-Type", + "displayName": "Request Content-Type", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response Body Attribute Name": { + "name": "Response Body Attribute Name", + "displayName": "Response Body Attribute Name", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Digest Authentication Enabled": { + "name": "Request Digest Authentication Enabled", + "displayName": "Request Digest Authentication Enabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Multipart Form-Data Name": { + "name": "Request Multipart Form-Data Name", + "displayName": "Request Multipart Form-Data Name", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response Cache Size": { + "name": "Response Cache Size", + "displayName": "Response Cache Size", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response Body Ignored": { + "name": "Response Body Ignored", + "displayName": "Response Body Ignored", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + } + }, + "style": {}, + "schedulingPeriod": "0 sec", + "schedulingStrategy": "TIMER_DRIVEN", + "executionNode": "ALL", + "penaltyDuration": "30 sec", + "yieldDuration": "1 sec", + "bulletinLevel": "WARN", + "runDurationMillis": 0, + "concurrentlySchedulableTaskCount": 1, + "autoTerminatedRelationships": [], + "scheduledState": "ENABLED", + "retryCount": 10, + "retriedRelationships": [], + "backoffMechanism": "PENALIZE_FLOWFILE", + "maxBackoffPeriod": "10 mins", + "componentType": "PROCESSOR", + "groupIdentifier": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274" + } + ], + "inputPorts": [], + "outputPorts": [ + { + "identifier": "eaff6f84-649b-3677-9935-911028a86f0e", + "instanceIdentifier": "c033503f-2cfe-354d-548c-7710831a646d", + "name": "errors", + "position": { + "x": -760.0, + "y": -1016.0 + }, + "type": "OUTPUT_PORT", + "concurrentlySchedulableTaskCount": 1, + "scheduledState": "ENABLED", + "allowRemoteAccess": false, + "portFunction": "STANDARD", + "componentType": "OUTPUT_PORT", + "groupIdentifier": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274" + } + ], + "connections": [ + { + "identifier": "da4a1ac4-ab2b-3bef-889f-3a3783f8fff2", + "instanceIdentifier": "a70fb3b4-0bc5-3986-a9a8-b35cbe2749e2", + "name": "", + "source": { + "id": "d7963d52-e8a3-3b27-9543-20db6cc99f6f", + "type": "PROCESSOR", + "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", + "name": "ReplaceText", + "comments": "", + "instanceIdentifier": "9f1ceb8b-f048-3b47-5aec-773690811078" + }, + "destination": { + "id": "5834e54d-4509-3fb8-b672-fb1f450ef408", + "type": "PROCESSOR", + "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", + "name": "InvokeHTTP", + "comments": "", + "instanceIdentifier": "87c23d87-fa77-32d7-4a2b-d425cddba4c7" + }, + "labelIndex": 0, + "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": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274" + }, + { + "identifier": "8da480cb-332d-3518-a678-554a976ab177", + "instanceIdentifier": "ed8acac9-2ac0-3494-9787-d6889ca9d2ae", + "name": "", + "source": { + "id": "d7963d52-e8a3-3b27-9543-20db6cc99f6f", + "type": "PROCESSOR", + "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", + "name": "ReplaceText", + "comments": "", + "instanceIdentifier": "9f1ceb8b-f048-3b47-5aec-773690811078" + }, + "destination": { + "id": "eaff6f84-649b-3677-9935-911028a86f0e", + "type": "OUTPUT_PORT", + "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", + "name": "errors", + "instanceIdentifier": "c033503f-2cfe-354d-548c-7710831a646d" + }, + "labelIndex": 0, + "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": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274" + }, + { + "identifier": "2e2a9588-6e83-3fad-9e25-a7e4411f7cbb", + "instanceIdentifier": "0bd8e0f0-0195-1000-b5fa-59bff2ea7c05", + "name": "", + "source": { + "id": "fb9a5b80-aa9a-3e1b-86f5-c17db5783812", + "type": "PROCESSOR", + "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", + "name": "SplitJson", + "comments": "", + "instanceIdentifier": "0bd7b16d-0195-1000-32ad-5b4055f37b22" + }, + "destination": { + "id": "b00e49a7-d25a-3d5a-8705-ef4c5e2919e7", + "type": "PROCESSOR", + "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", + "name": "EvaluateJsonPath", + "comments": "", + "instanceIdentifier": "6802228d-1680-3d01-dcb3-83febf10560d" + }, + "labelIndex": 0, + "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": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274" + }, + { + "identifier": "f21c16db-0f95-31a0-9bcc-fc2034a8e5ad", + "instanceIdentifier": "0bd93b2d-0195-1000-1cf6-b09aec356f70", + "name": "", + "source": { + "id": "fb9a5b80-aa9a-3e1b-86f5-c17db5783812", + "type": "PROCESSOR", + "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", + "name": "SplitJson", + "comments": "", + "instanceIdentifier": "0bd7b16d-0195-1000-32ad-5b4055f37b22" + }, + "destination": { + "id": "eaff6f84-649b-3677-9935-911028a86f0e", + "type": "OUTPUT_PORT", + "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", + "name": "errors", + "instanceIdentifier": "c033503f-2cfe-354d-548c-7710831a646d" + }, + "labelIndex": 0, + "zIndex": 0, + "selectedRelationships": [ + "original", + "failure" + ], + "backPressureObjectThreshold": 10000, + "backPressureDataSizeThreshold": "1 GB", + "flowFileExpiration": "0 sec", + "prioritizers": [], + "bends": [], + "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", + "partitioningAttribute": "", + "loadBalanceCompression": "DO_NOT_COMPRESS", + "componentType": "CONNECTION", + "groupIdentifier": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274" + }, + { + "identifier": "b84a7c01-3942-3334-b543-6cf24a13e313", + "instanceIdentifier": "1bf7d1f1-d115-30a3-2584-4ecc72df55ee", + "name": "", + "source": { + "id": "b00e49a7-d25a-3d5a-8705-ef4c5e2919e7", + "type": "PROCESSOR", + "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", + "name": "EvaluateJsonPath", + "comments": "", + "instanceIdentifier": "6802228d-1680-3d01-dcb3-83febf10560d" + }, + "destination": { + "id": "eaff6f84-649b-3677-9935-911028a86f0e", + "type": "OUTPUT_PORT", + "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", + "name": "errors", + "instanceIdentifier": "c033503f-2cfe-354d-548c-7710831a646d" + }, + "labelIndex": 0, + "zIndex": 0, + "selectedRelationships": [ + "failure", + "unmatched" + ], + "backPressureObjectThreshold": 10000, + "backPressureDataSizeThreshold": "1 GB", + "flowFileExpiration": "0 sec", + "prioritizers": [], + "bends": [], + "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", + "partitioningAttribute": "", + "loadBalanceCompression": "DO_NOT_COMPRESS", + "componentType": "CONNECTION", + "groupIdentifier": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274" + }, + { + "identifier": "4146e7c5-2050-380e-9d1d-7794ce01b73d", + "instanceIdentifier": "58e1b5f6-2931-3f24-b849-6eaec7239b65", + "name": "", + "source": { + "id": "ba013c53-d8f2-3718-b7dd-d935e8b1413f", + "type": "PROCESSOR", + "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", + "name": "InvokeHTTP", + "comments": "", + "instanceIdentifier": "44bbe9ed-51fa-3d2b-2bff-e04fc0673ebd" + }, + "destination": { + "id": "eaff6f84-649b-3677-9935-911028a86f0e", + "type": "OUTPUT_PORT", + "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", + "name": "errors", + "instanceIdentifier": "c033503f-2cfe-354d-548c-7710831a646d" + }, + "labelIndex": 0, + "zIndex": 0, + "selectedRelationships": [ + "No Retry", + "Retry", + "Failure" + ], + "backPressureObjectThreshold": 10000, + "backPressureDataSizeThreshold": "1 GB", + "flowFileExpiration": "0 sec", + "prioritizers": [], + "bends": [], + "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", + "partitioningAttribute": "", + "loadBalanceCompression": "DO_NOT_COMPRESS", + "componentType": "CONNECTION", + "groupIdentifier": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274" + }, + { + "identifier": "17634682-cdb7-38bf-b259-343647a490a1", + "instanceIdentifier": "c5525bf4-5a39-331f-e451-36c7d7751286", + "name": "", + "source": { + "id": "5834e54d-4509-3fb8-b672-fb1f450ef408", + "type": "PROCESSOR", + "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", + "name": "InvokeHTTP", + "comments": "", + "instanceIdentifier": "87c23d87-fa77-32d7-4a2b-d425cddba4c7" + }, + "destination": { + "id": "eaff6f84-649b-3677-9935-911028a86f0e", + "type": "OUTPUT_PORT", + "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", + "name": "errors", + "instanceIdentifier": "c033503f-2cfe-354d-548c-7710831a646d" + }, + "labelIndex": 0, + "zIndex": 0, + "selectedRelationships": [ + "Response", + "No Retry", + "Retry", + "Original", + "Failure" + ], + "backPressureObjectThreshold": 10000, + "backPressureDataSizeThreshold": "1 GB", + "flowFileExpiration": "0 sec", + "prioritizers": [], + "bends": [], + "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", + "partitioningAttribute": "", + "loadBalanceCompression": "DO_NOT_COMPRESS", + "componentType": "CONNECTION", + "groupIdentifier": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274" + }, + { + "identifier": "bae53cad-4e26-36b7-a45b-60257d6a6ea7", + "instanceIdentifier": "9f06da23-1cf0-3bb1-b2c8-f3bf0f8d1308", + "name": "", + "source": { + "id": "b00e49a7-d25a-3d5a-8705-ef4c5e2919e7", + "type": "PROCESSOR", + "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", + "name": "EvaluateJsonPath", + "comments": "", + "instanceIdentifier": "6802228d-1680-3d01-dcb3-83febf10560d" + }, + "destination": { + "id": "d7963d52-e8a3-3b27-9543-20db6cc99f6f", + "type": "PROCESSOR", + "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", + "name": "ReplaceText", + "comments": "", + "instanceIdentifier": "9f1ceb8b-f048-3b47-5aec-773690811078" + }, + "labelIndex": 0, + "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": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274" + }, + { + "identifier": "e529f57e-174b-3adc-86ac-326b10703eef", + "instanceIdentifier": "0bd8a1cd-0195-1000-f564-5b19695e6b39", + "name": "", + "source": { + "id": "ba013c53-d8f2-3718-b7dd-d935e8b1413f", + "type": "PROCESSOR", + "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", + "name": "InvokeHTTP", + "comments": "", + "instanceIdentifier": "44bbe9ed-51fa-3d2b-2bff-e04fc0673ebd" + }, + "destination": { + "id": "fb9a5b80-aa9a-3e1b-86f5-c17db5783812", + "type": "PROCESSOR", + "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", + "name": "SplitJson", + "comments": "", + "instanceIdentifier": "0bd7b16d-0195-1000-32ad-5b4055f37b22" + }, + "labelIndex": 0, + "zIndex": 0, + "selectedRelationships": [ + "Response" + ], + "backPressureObjectThreshold": 10000, + "backPressureDataSizeThreshold": "1 GB", + "flowFileExpiration": "0 sec", + "prioritizers": [], + "bends": [], + "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", + "partitioningAttribute": "", + "loadBalanceCompression": "DO_NOT_COMPRESS", + "componentType": "CONNECTION", + "groupIdentifier": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274" + } + ], + "labels": [], + "funnels": [], + "controllerServices": [], + "defaultFlowFileExpiration": "0 sec", + "defaultBackPressureObjectThreshold": 10000, + "defaultBackPressureDataSizeThreshold": "1 GB", + "scheduledState": "ENABLED", + "executionEngine": "INHERITED", + "maxConcurrentTasks": 1, + "statelessFlowTimeout": "1 min", + "flowFileConcurrency": "UNBOUNDED", + "flowFileOutboundPolicy": "STREAM_WHEN_AVAILABLE", + "componentType": "PROCESS_GROUP" + }, + "externalControllerServices": {}, + "parameterContexts": {}, + "flowEncodingVersion": "1.0", + "parameterProviders": {}, + "latest": false +} diff --git a/pipelines/test_pipeline.json b/pipelines/test_pipeline.json new file mode 100644 index 0000000..2374eb7 --- /dev/null +++ b/pipelines/test_pipeline.json @@ -0,0 +1,1161 @@ +{ + "flowContents": { + "identifier": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", + "instanceIdentifier": "5bb8e7b5-0194-1000-5e19-bee2ad8d9a6e", + "name": "open-meteo_data", + "comments": "", + "position": { + "x": -432.0, + "y": -213.5 + }, + "processGroups": [], + "remoteProcessGroups": [], + "processors": [ + { + "identifier": "d7963d52-e8a3-3b27-9543-20db6cc99f6f", + "instanceIdentifier": "9f1ceb8b-f048-3b47-5aec-773690811078", + "name": "ReplaceText", + "comments": "", + "position": { + "x": -208.0, + "y": -968.0 + }, + "type": "org.apache.nifi.processors.standard.ReplaceText", + "bundle": { + "group": "org.apache.nifi", + "artifact": "nifi-standard-nar", + "version": "2.1.0" + }, + "properties": { + "Regular Expression": "(?s)(^.*$)", + "Replacement Value": "weather,city=\"Tartu\" Temperature=${temperature},Wind=${wind_speed}", + "Evaluation Mode": "Entire text", + "Text to Prepend": null, + "Line-by-Line Evaluation Mode": "All", + "Character Set": "UTF-8", + "Maximum Buffer Size": "1 MB", + "Replacement Strategy": "Regex Replace", + "Text to Append": null + }, + "propertyDescriptors": { + "Regular Expression": { + "name": "Regular Expression", + "displayName": "Search Value", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Replacement Value": { + "name": "Replacement Value", + "displayName": "Replacement Value", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Evaluation Mode": { + "name": "Evaluation Mode", + "displayName": "Evaluation Mode", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Text to Prepend": { + "name": "Text to Prepend", + "displayName": "Text to Prepend", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Line-by-Line Evaluation Mode": { + "name": "Line-by-Line Evaluation Mode", + "displayName": "Line-by-Line Evaluation Mode", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Character Set": { + "name": "Character Set", + "displayName": "Character Set", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Maximum Buffer Size": { + "name": "Maximum Buffer Size", + "displayName": "Maximum Buffer Size", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Replacement Strategy": { + "name": "Replacement Strategy", + "displayName": "Replacement Strategy", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Text to Append": { + "name": "Text to Append", + "displayName": "Text to Append", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + } + }, + "style": {}, + "schedulingPeriod": "0 sec", + "schedulingStrategy": "TIMER_DRIVEN", + "executionNode": "ALL", + "penaltyDuration": "30 sec", + "yieldDuration": "1 sec", + "bulletinLevel": "WARN", + "runDurationMillis": 25, + "concurrentlySchedulableTaskCount": 1, + "autoTerminatedRelationships": [], + "scheduledState": "ENABLED", + "retryCount": 10, + "retriedRelationships": [], + "backoffMechanism": "PENALIZE_FLOWFILE", + "maxBackoffPeriod": "10 mins", + "componentType": "PROCESSOR", + "groupIdentifier": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274" + }, + { + "identifier": "ba013c53-d8f2-3718-b7dd-d935e8b1413f", + "instanceIdentifier": "44bbe9ed-51fa-3d2b-2bff-e04fc0673ebd", + "name": "InvokeHTTP", + "comments": "", + "position": { + "x": -1424.0, + "y": -600.0 + }, + "type": "org.apache.nifi.processors.standard.InvokeHTTP", + "bundle": { + "group": "org.apache.nifi", + "artifact": "nifi-standard-nar", + "version": "2.1.0" + }, + "properties": { + "Request Content-Encoding": "DISABLED", + "proxy-configuration-service": null, + "Request Multipart Form-Data Filename Enabled": "true", + "Request Chunked Transfer-Encoding Enabled": "false", + "Response Header Request Attributes Prefix": null, + "HTTP/2 Disabled": "False", + "Connection Timeout": "5 secs", + "Response Cookie Strategy": "DISABLED", + "Socket Read Timeout": "15 secs", + "Socket Idle Connections": "5", + "Request Body Enabled": "true", + "HTTP URL": "https://api.open-meteo.com/v1/forecast?latitude=58.38&longitude=26.72¤t=temperature_2m,wind_speed_10m", + "Request OAuth2 Access Token Provider": null, + "Socket Idle Timeout": "5 mins", + "Response Redirects Enabled": "True", + "Socket Write Timeout": "15 secs", + "Request Header Attributes Pattern": null, + "Response FlowFile Naming Strategy": "RANDOM", + "Response Cache Enabled": "false", + "Request Date Header Enabled": "True", + "Request Failure Penalization Enabled": "false", + "Response Body Attribute Size": "256", + "SSL Context Service": null, + "Response Generation Required": "false", + "Request User-Agent": null, + "Response Header Request Attributes Enabled": "false", + "HTTP Method": "GET", + "Request Username": null, + "Request Content-Type": "${mime.type}", + "Response Body Attribute Name": null, + "Request Digest Authentication Enabled": "false", + "Request Multipart Form-Data Name": null, + "Response Cache Size": "10MB", + "Response Body Ignored": "false" + }, + "propertyDescriptors": { + "Request Content-Encoding": { + "name": "Request Content-Encoding", + "displayName": "Request Content-Encoding", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "proxy-configuration-service": { + "name": "proxy-configuration-service", + "displayName": "Proxy Configuration Service", + "identifiesControllerService": true, + "sensitive": false, + "dynamic": false + }, + "Request Multipart Form-Data Filename Enabled": { + "name": "Request Multipart Form-Data Filename Enabled", + "displayName": "Request Multipart Form-Data Filename Enabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Chunked Transfer-Encoding Enabled": { + "name": "Request Chunked Transfer-Encoding Enabled", + "displayName": "Request Chunked Transfer-Encoding Enabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response Header Request Attributes Prefix": { + "name": "Response Header Request Attributes Prefix", + "displayName": "Response Header Request Attributes Prefix", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "HTTP/2 Disabled": { + "name": "HTTP/2 Disabled", + "displayName": "HTTP/2 Disabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Connection Timeout": { + "name": "Connection Timeout", + "displayName": "Connection Timeout", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response Cookie Strategy": { + "name": "Response Cookie Strategy", + "displayName": "Response Cookie Strategy", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Password": { + "name": "Request Password", + "displayName": "Request Password", + "identifiesControllerService": false, + "sensitive": true, + "dynamic": false + }, + "Socket Read Timeout": { + "name": "Socket Read Timeout", + "displayName": "Socket Read Timeout", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Socket Idle Connections": { + "name": "Socket Idle Connections", + "displayName": "Socket Idle Connections", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Body Enabled": { + "name": "Request Body Enabled", + "displayName": "Request Body Enabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "HTTP URL": { + "name": "HTTP URL", + "displayName": "HTTP URL", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request OAuth2 Access Token Provider": { + "name": "Request OAuth2 Access Token Provider", + "displayName": "Request OAuth2 Access Token Provider", + "identifiesControllerService": true, + "sensitive": false, + "dynamic": false + }, + "Socket Idle Timeout": { + "name": "Socket Idle Timeout", + "displayName": "Socket Idle Timeout", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response Redirects Enabled": { + "name": "Response Redirects Enabled", + "displayName": "Response Redirects Enabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Socket Write Timeout": { + "name": "Socket Write Timeout", + "displayName": "Socket Write Timeout", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Header Attributes Pattern": { + "name": "Request Header Attributes Pattern", + "displayName": "Request Header Attributes Pattern", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response FlowFile Naming Strategy": { + "name": "Response FlowFile Naming Strategy", + "displayName": "Response FlowFile Naming Strategy", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response Cache Enabled": { + "name": "Response Cache Enabled", + "displayName": "Response Cache Enabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Date Header Enabled": { + "name": "Request Date Header Enabled", + "displayName": "Request Date Header Enabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Failure Penalization Enabled": { + "name": "Request Failure Penalization Enabled", + "displayName": "Request Failure Penalization Enabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response Body Attribute Size": { + "name": "Response Body Attribute Size", + "displayName": "Response Body Attribute Size", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "SSL Context Service": { + "name": "SSL Context Service", + "displayName": "SSL Context Service", + "identifiesControllerService": true, + "sensitive": false, + "dynamic": false + }, + "Response Generation Required": { + "name": "Response Generation Required", + "displayName": "Response Generation Required", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request User-Agent": { + "name": "Request User-Agent", + "displayName": "Request User-Agent", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response Header Request Attributes Enabled": { + "name": "Response Header Request Attributes Enabled", + "displayName": "Response Header Request Attributes Enabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "HTTP Method": { + "name": "HTTP Method", + "displayName": "HTTP Method", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Username": { + "name": "Request Username", + "displayName": "Request Username", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Content-Type": { + "name": "Request Content-Type", + "displayName": "Request Content-Type", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response Body Attribute Name": { + "name": "Response Body Attribute Name", + "displayName": "Response Body Attribute Name", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Digest Authentication Enabled": { + "name": "Request Digest Authentication Enabled", + "displayName": "Request Digest Authentication Enabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Multipart Form-Data Name": { + "name": "Request Multipart Form-Data Name", + "displayName": "Request Multipart Form-Data Name", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response Cache Size": { + "name": "Response Cache Size", + "displayName": "Response Cache Size", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response Body Ignored": { + "name": "Response Body Ignored", + "displayName": "Response Body Ignored", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + } + }, + "style": {}, + "schedulingPeriod": "5 sec", + "schedulingStrategy": "TIMER_DRIVEN", + "executionNode": "ALL", + "penaltyDuration": "30 sec", + "yieldDuration": "1 sec", + "bulletinLevel": "WARN", + "runDurationMillis": 0, + "concurrentlySchedulableTaskCount": 1, + "autoTerminatedRelationships": [ + "Original" + ], + "scheduledState": "ENABLED", + "retryCount": 10, + "retriedRelationships": [], + "backoffMechanism": "PENALIZE_FLOWFILE", + "maxBackoffPeriod": "10 mins", + "componentType": "PROCESSOR", + "groupIdentifier": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274" + }, + { + "identifier": "b00e49a7-d25a-3d5a-8705-ef4c5e2919e7", + "instanceIdentifier": "6802228d-1680-3d01-dcb3-83febf10560d", + "name": "EvaluateJsonPath", + "comments": "", + "position": { + "x": -800.0, + "y": -608.0 + }, + "type": "org.apache.nifi.processors.standard.EvaluateJsonPath", + "bundle": { + "group": "org.apache.nifi", + "artifact": "nifi-standard-nar", + "version": "2.1.0" + }, + "properties": { + "Destination": "flowfile-attribute", + "Max String Length": "20 MB", + "Return Type": "auto-detect", + "latitude": "$.latitude", + "Null Value Representation": "empty string", + "Path Not Found Behavior": "ignore", + "longitude": "$.longitude", + "temperature": ".current_weather.temperature" + }, + "propertyDescriptors": { + "Destination": { + "name": "Destination", + "displayName": "Destination", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Max String Length": { + "name": "Max String Length", + "displayName": "Max String Length", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Return Type": { + "name": "Return Type", + "displayName": "Return Type", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "latitude": { + "name": "latitude", + "displayName": "latitude", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": true + }, + "temperature": { + "name": "temperature", + "displayName": "temperature", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": true + }, + "Null Value Representation": { + "name": "Null Value Representation", + "displayName": "Null Value Representation", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "wind_speed": { + "name": "wind_speed", + "displayName": "wind_speed", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": true + }, + "Path Not Found Behavior": { + "name": "Path Not Found Behavior", + "displayName": "Path Not Found Behavior", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "longitude": { + "name": "longitude", + "displayName": "longitude", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": true + } + }, + "style": {}, + "schedulingPeriod": "0 sec", + "schedulingStrategy": "TIMER_DRIVEN", + "executionNode": "ALL", + "penaltyDuration": "30 sec", + "yieldDuration": "1 sec", + "bulletinLevel": "WARN", + "runDurationMillis": 0, + "concurrentlySchedulableTaskCount": 1, + "autoTerminatedRelationships": [], + "scheduledState": "ENABLED", + "retryCount": 10, + "retriedRelationships": [], + "backoffMechanism": "PENALIZE_FLOWFILE", + "maxBackoffPeriod": "10 mins", + "componentType": "PROCESSOR", + "groupIdentifier": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274" + }, + { + "identifier": "5834e54d-4509-3fb8-b672-fb1f450ef408", + "instanceIdentifier": "87c23d87-fa77-32d7-4a2b-d425cddba4c7", + "name": "InvokeHTTP", + "comments": "", + "position": { + "x": -128.0, + "y": -624.0 + }, + "type": "org.apache.nifi.processors.standard.InvokeHTTP", + "bundle": { + "group": "org.apache.nifi", + "artifact": "nifi-standard-nar", + "version": "2.1.0" + }, + "properties": { + "Request Content-Encoding": "DISABLED", + "proxy-configuration-service": null, + "Request Multipart Form-Data Filename Enabled": "true", + "Request Chunked Transfer-Encoding Enabled": "false", + "Response Header Request Attributes Prefix": null, + "HTTP/2 Disabled": "False", + "Connection Timeout": "5 secs", + "Response Cookie Strategy": "DISABLED", + "Socket Read Timeout": "15 secs", + "Socket Idle Connections": "5", + "Request Body Enabled": "true", + "HTTP URL": "http://influxdb:8086/write?db=nifi_weatherData", + "Request OAuth2 Access Token Provider": null, + "Socket Idle Timeout": "5 mins", + "Response Redirects Enabled": "True", + "Socket Write Timeout": "15 secs", + "Request Header Attributes Pattern": null, + "Response FlowFile Naming Strategy": "RANDOM", + "Response Cache Enabled": "false", + "Request Date Header Enabled": "True", + "Request Failure Penalization Enabled": "false", + "Response Body Attribute Size": "256", + "SSL Context Service": null, + "Response Generation Required": "false", + "Request User-Agent": null, + "Response Header Request Attributes Enabled": "false", + "HTTP Method": "POST", + "Request Username": "admin", + "Request Content-Type": "${mime.type}", + "Response Body Attribute Name": null, + "Request Digest Authentication Enabled": "false", + "Request Multipart Form-Data Name": null, + "Response Cache Size": "10MB", + "Response Body Ignored": "false" + }, + "propertyDescriptors": { + "Request Content-Encoding": { + "name": "Request Content-Encoding", + "displayName": "Request Content-Encoding", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "proxy-configuration-service": { + "name": "proxy-configuration-service", + "displayName": "Proxy Configuration Service", + "identifiesControllerService": true, + "sensitive": false, + "dynamic": false + }, + "Request Multipart Form-Data Filename Enabled": { + "name": "Request Multipart Form-Data Filename Enabled", + "displayName": "Request Multipart Form-Data Filename Enabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Chunked Transfer-Encoding Enabled": { + "name": "Request Chunked Transfer-Encoding Enabled", + "displayName": "Request Chunked Transfer-Encoding Enabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response Header Request Attributes Prefix": { + "name": "Response Header Request Attributes Prefix", + "displayName": "Response Header Request Attributes Prefix", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "HTTP/2 Disabled": { + "name": "HTTP/2 Disabled", + "displayName": "HTTP/2 Disabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Connection Timeout": { + "name": "Connection Timeout", + "displayName": "Connection Timeout", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response Cookie Strategy": { + "name": "Response Cookie Strategy", + "displayName": "Response Cookie Strategy", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Password": { + "name": "Request Password", + "displayName": "Request Password", + "identifiesControllerService": false, + "sensitive": true, + "dynamic": false + }, + "Socket Read Timeout": { + "name": "Socket Read Timeout", + "displayName": "Socket Read Timeout", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Socket Idle Connections": { + "name": "Socket Idle Connections", + "displayName": "Socket Idle Connections", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Body Enabled": { + "name": "Request Body Enabled", + "displayName": "Request Body Enabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "HTTP URL": { + "name": "HTTP URL", + "displayName": "HTTP URL", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request OAuth2 Access Token Provider": { + "name": "Request OAuth2 Access Token Provider", + "displayName": "Request OAuth2 Access Token Provider", + "identifiesControllerService": true, + "sensitive": false, + "dynamic": false + }, + "Socket Idle Timeout": { + "name": "Socket Idle Timeout", + "displayName": "Socket Idle Timeout", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response Redirects Enabled": { + "name": "Response Redirects Enabled", + "displayName": "Response Redirects Enabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Socket Write Timeout": { + "name": "Socket Write Timeout", + "displayName": "Socket Write Timeout", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Header Attributes Pattern": { + "name": "Request Header Attributes Pattern", + "displayName": "Request Header Attributes Pattern", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response FlowFile Naming Strategy": { + "name": "Response FlowFile Naming Strategy", + "displayName": "Response FlowFile Naming Strategy", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response Cache Enabled": { + "name": "Response Cache Enabled", + "displayName": "Response Cache Enabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Date Header Enabled": { + "name": "Request Date Header Enabled", + "displayName": "Request Date Header Enabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Failure Penalization Enabled": { + "name": "Request Failure Penalization Enabled", + "displayName": "Request Failure Penalization Enabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response Body Attribute Size": { + "name": "Response Body Attribute Size", + "displayName": "Response Body Attribute Size", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "SSL Context Service": { + "name": "SSL Context Service", + "displayName": "SSL Context Service", + "identifiesControllerService": true, + "sensitive": false, + "dynamic": false + }, + "Response Generation Required": { + "name": "Response Generation Required", + "displayName": "Response Generation Required", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request User-Agent": { + "name": "Request User-Agent", + "displayName": "Request User-Agent", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response Header Request Attributes Enabled": { + "name": "Response Header Request Attributes Enabled", + "displayName": "Response Header Request Attributes Enabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "HTTP Method": { + "name": "HTTP Method", + "displayName": "HTTP Method", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Username": { + "name": "Request Username", + "displayName": "Request Username", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Content-Type": { + "name": "Request Content-Type", + "displayName": "Request Content-Type", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response Body Attribute Name": { + "name": "Response Body Attribute Name", + "displayName": "Response Body Attribute Name", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Digest Authentication Enabled": { + "name": "Request Digest Authentication Enabled", + "displayName": "Request Digest Authentication Enabled", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Request Multipart Form-Data Name": { + "name": "Request Multipart Form-Data Name", + "displayName": "Request Multipart Form-Data Name", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response Cache Size": { + "name": "Response Cache Size", + "displayName": "Response Cache Size", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + }, + "Response Body Ignored": { + "name": "Response Body Ignored", + "displayName": "Response Body Ignored", + "identifiesControllerService": false, + "sensitive": false, + "dynamic": false + } + }, + "style": {}, + "schedulingPeriod": "0 sec", + "schedulingStrategy": "TIMER_DRIVEN", + "executionNode": "ALL", + "penaltyDuration": "30 sec", + "yieldDuration": "1 sec", + "bulletinLevel": "WARN", + "runDurationMillis": 0, + "concurrentlySchedulableTaskCount": 1, + "autoTerminatedRelationships": [], + "scheduledState": "ENABLED", + "retryCount": 10, + "retriedRelationships": [], + "backoffMechanism": "PENALIZE_FLOWFILE", + "maxBackoffPeriod": "10 mins", + "componentType": "PROCESSOR", + "groupIdentifier": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274" + } + ], + "inputPorts": [], + "outputPorts": [ + { + "identifier": "eaff6f84-649b-3677-9935-911028a86f0e", + "instanceIdentifier": "c033503f-2cfe-354d-548c-7710831a646d", + "name": "errors", + "position": { + "x": -760.0, + "y": -1016.0 + }, + "type": "OUTPUT_PORT", + "concurrentlySchedulableTaskCount": 1, + "scheduledState": "ENABLED", + "allowRemoteAccess": false, + "portFunction": "STANDARD", + "componentType": "OUTPUT_PORT", + "groupIdentifier": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274" + } + ], + "connections": [ + { + "identifier": "da4a1ac4-ab2b-3bef-889f-3a3783f8fff2", + "instanceIdentifier": "a70fb3b4-0bc5-3986-a9a8-b35cbe2749e2", + "name": "", + "source": { + "id": "d7963d52-e8a3-3b27-9543-20db6cc99f6f", + "type": "PROCESSOR", + "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", + "name": "ReplaceText", + "comments": "", + "instanceIdentifier": "9f1ceb8b-f048-3b47-5aec-773690811078" + }, + "destination": { + "id": "5834e54d-4509-3fb8-b672-fb1f450ef408", + "type": "PROCESSOR", + "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", + "name": "InvokeHTTP", + "comments": "", + "instanceIdentifier": "87c23d87-fa77-32d7-4a2b-d425cddba4c7" + }, + "labelIndex": 0, + "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": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274" + }, + { + "identifier": "8da480cb-332d-3518-a678-554a976ab177", + "instanceIdentifier": "ed8acac9-2ac0-3494-9787-d6889ca9d2ae", + "name": "", + "source": { + "id": "d7963d52-e8a3-3b27-9543-20db6cc99f6f", + "type": "PROCESSOR", + "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", + "name": "ReplaceText", + "comments": "", + "instanceIdentifier": "9f1ceb8b-f048-3b47-5aec-773690811078" + }, + "destination": { + "id": "eaff6f84-649b-3677-9935-911028a86f0e", + "type": "OUTPUT_PORT", + "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", + "name": "errors", + "instanceIdentifier": "c033503f-2cfe-354d-548c-7710831a646d" + }, + "labelIndex": 0, + "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": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274" + }, + { + "identifier": "e8cf7e04-f875-3774-8234-7c44ae4c0c66", + "instanceIdentifier": "7e0990fa-432b-36c9-e56f-c856d2d253b6", + "name": "", + "source": { + "id": "ba013c53-d8f2-3718-b7dd-d935e8b1413f", + "type": "PROCESSOR", + "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", + "name": "InvokeHTTP", + "comments": "", + "instanceIdentifier": "44bbe9ed-51fa-3d2b-2bff-e04fc0673ebd" + }, + "destination": { + "id": "b00e49a7-d25a-3d5a-8705-ef4c5e2919e7", + "type": "PROCESSOR", + "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", + "name": "EvaluateJsonPath", + "comments": "", + "instanceIdentifier": "6802228d-1680-3d01-dcb3-83febf10560d" + }, + "labelIndex": 0, + "zIndex": 0, + "selectedRelationships": [ + "Response" + ], + "backPressureObjectThreshold": 10000, + "backPressureDataSizeThreshold": "1 GB", + "flowFileExpiration": "0 sec", + "prioritizers": [], + "bends": [], + "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", + "partitioningAttribute": "", + "loadBalanceCompression": "DO_NOT_COMPRESS", + "componentType": "CONNECTION", + "groupIdentifier": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274" + }, + { + "identifier": "b84a7c01-3942-3334-b543-6cf24a13e313", + "instanceIdentifier": "1bf7d1f1-d115-30a3-2584-4ecc72df55ee", + "name": "", + "source": { + "id": "b00e49a7-d25a-3d5a-8705-ef4c5e2919e7", + "type": "PROCESSOR", + "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", + "name": "EvaluateJsonPath", + "comments": "", + "instanceIdentifier": "6802228d-1680-3d01-dcb3-83febf10560d" + }, + "destination": { + "id": "eaff6f84-649b-3677-9935-911028a86f0e", + "type": "OUTPUT_PORT", + "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", + "name": "errors", + "instanceIdentifier": "c033503f-2cfe-354d-548c-7710831a646d" + }, + "labelIndex": 0, + "zIndex": 0, + "selectedRelationships": [ + "failure", + "unmatched" + ], + "backPressureObjectThreshold": 10000, + "backPressureDataSizeThreshold": "1 GB", + "flowFileExpiration": "0 sec", + "prioritizers": [], + "bends": [], + "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", + "partitioningAttribute": "", + "loadBalanceCompression": "DO_NOT_COMPRESS", + "componentType": "CONNECTION", + "groupIdentifier": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274" + }, + { + "identifier": "4146e7c5-2050-380e-9d1d-7794ce01b73d", + "instanceIdentifier": "58e1b5f6-2931-3f24-b849-6eaec7239b65", + "name": "", + "source": { + "id": "ba013c53-d8f2-3718-b7dd-d935e8b1413f", + "type": "PROCESSOR", + "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", + "name": "InvokeHTTP", + "comments": "", + "instanceIdentifier": "44bbe9ed-51fa-3d2b-2bff-e04fc0673ebd" + }, + "destination": { + "id": "eaff6f84-649b-3677-9935-911028a86f0e", + "type": "OUTPUT_PORT", + "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", + "name": "errors", + "instanceIdentifier": "c033503f-2cfe-354d-548c-7710831a646d" + }, + "labelIndex": 0, + "zIndex": 0, + "selectedRelationships": [ + "No Retry", + "Retry", + "Failure" + ], + "backPressureObjectThreshold": 10000, + "backPressureDataSizeThreshold": "1 GB", + "flowFileExpiration": "0 sec", + "prioritizers": [], + "bends": [], + "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", + "partitioningAttribute": "", + "loadBalanceCompression": "DO_NOT_COMPRESS", + "componentType": "CONNECTION", + "groupIdentifier": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274" + }, + { + "identifier": "17634682-cdb7-38bf-b259-343647a490a1", + "instanceIdentifier": "c5525bf4-5a39-331f-e451-36c7d7751286", + "name": "", + "source": { + "id": "5834e54d-4509-3fb8-b672-fb1f450ef408", + "type": "PROCESSOR", + "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", + "name": "InvokeHTTP", + "comments": "", + "instanceIdentifier": "87c23d87-fa77-32d7-4a2b-d425cddba4c7" + }, + "destination": { + "id": "eaff6f84-649b-3677-9935-911028a86f0e", + "type": "OUTPUT_PORT", + "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", + "name": "errors", + "instanceIdentifier": "c033503f-2cfe-354d-548c-7710831a646d" + }, + "labelIndex": 0, + "zIndex": 0, + "selectedRelationships": [ + "Response", + "No Retry", + "Retry", + "Original", + "Failure" + ], + "backPressureObjectThreshold": 10000, + "backPressureDataSizeThreshold": "1 GB", + "flowFileExpiration": "0 sec", + "prioritizers": [], + "bends": [], + "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE", + "partitioningAttribute": "", + "loadBalanceCompression": "DO_NOT_COMPRESS", + "componentType": "CONNECTION", + "groupIdentifier": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274" + }, + { + "identifier": "bae53cad-4e26-36b7-a45b-60257d6a6ea7", + "instanceIdentifier": "9f06da23-1cf0-3bb1-b2c8-f3bf0f8d1308", + "name": "", + "source": { + "id": "b00e49a7-d25a-3d5a-8705-ef4c5e2919e7", + "type": "PROCESSOR", + "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", + "name": "EvaluateJsonPath", + "comments": "", + "instanceIdentifier": "6802228d-1680-3d01-dcb3-83febf10560d" + }, + "destination": { + "id": "d7963d52-e8a3-3b27-9543-20db6cc99f6f", + "type": "PROCESSOR", + "groupId": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274", + "name": "ReplaceText", + "comments": "", + "instanceIdentifier": "9f1ceb8b-f048-3b47-5aec-773690811078" + }, + "labelIndex": 0, + "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": "2ae4bcd4-1c30-34e2-8206-1a0b567f7274" + } + ], + "labels": [], + "funnels": [], + "controllerServices": [], + "defaultFlowFileExpiration": "0 sec", + "defaultBackPressureObjectThreshold": 10000, + "defaultBackPressureDataSizeThreshold": "1 GB", + "scheduledState": "ENABLED", + "executionEngine": "INHERITED", + "maxConcurrentTasks": 1, + "statelessFlowTimeout": "1 min", + "flowFileConcurrency": "UNBOUNDED", + "flowFileOutboundPolicy": "STREAM_WHEN_AVAILABLE", + "componentType": "PROCESS_GROUP" + }, + "externalControllerServices": {}, + "parameterContexts": {}, + "flowEncodingVersion": "1.0", + "parameterProviders": {}, + "latest": false +}
\ No newline at end of file |