[{"data":1,"prerenderedAt":8259},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fnode-red\u002Fintegration-technologies\u002Frest\u002F":3,"featureCatalog":6805,"docs-nav":7210},{"id":4,"title":5,"body":6,"description":16,"editUrl":6793,"extension":6794,"layout":6795,"meta":6796,"metaTitle":5,"navGroup":6795,"navGroupOrder":6795,"navOrder":6797,"navTitle":6798,"navigation":6799,"originalPath":6795,"path":6800,"redirect":6795,"seo":6801,"stem":6802,"updated":6803,"version":6795,"__hash__":6804},"docs\u002Fdocs\u002Fnode-red\u002Fintegration-technologies\u002Frest.md","Creating REST API's with Node-RED",{"type":7,"value":8,"toc":6776},"minimark",[9,13,17,22,43,746,750,767,1352,2061,2731,2740,2744,2747,2752,2755,2771,2774,2795,2799,2806,2814,2817,2821,2824,2828,2831,2970,2973,2977,2983,2989,3000,3004,3007,3018,3021,3709,3712,3720,3727,3743,3754,3761,3765,3773,3783,3795,3809,3819,3825,3828,3833,3847,3857,3864,3867,3873,3877,3889,3902,6772],[10,11,5],"h1",{"id":12},"creating-rest-apis-with-node-red",[14,15,16],"p",{},"REST APIs are how applications talk to each other over the web. They use standard HTTP methods (GET, POST, PUT, DELETE) to send and receive data, usually in JSON format. This guide shows you how to build your own REST APIs in Node-RED and how to pull data from existing APIs.",[18,19,21],"h2",{"id":20},"creating-a-get-api","Creating a GET API",[23,24,25,29,37,40],"ol",{},[26,27,28],"li",{},"Drag an \"http-in\" onto the workspace, double click on it and select the Method to for which operation you need, set URL endpoint.",[26,30,31,32,36],{},"Drag an chagne node onto the workspace and set the ",[33,34,35],"code",{},"msg.payload"," to data you want to send as response.",[26,38,39],{},"Then Drag an http response node, in it and set the status code if want.",[26,41,42],{},"Connect the \"http-in\" node's output to the input of the function node and the function node's output to the input of the http response node.",[44,45,46],"render-flow",{},[47,48,53],"pre",{"className":49,"code":50,"language":51,"meta":52,"style":52},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","[{\"id\":\"27333f67794bdc72\",\"type\":\"http in\",\"z\":\"977143edb097b685\",\"name\":\"\",\"url\":\"\u002Ftest\",\"method\":\"get\",\"upload\":false,\"swaggerDoc\":\"\",\"x\":320,\"y\":220,\"wires\":[[\"f351033226953150\"]]},{\"id\":\"a7ee48616541a36a\",\"type\":\"http response\",\"z\":\"977143edb097b685\",\"name\":\"\",\"statusCode\":\"200\",\"headers\":{},\"x\":760,\"y\":220,\"wires\":[]},{\"id\":\"dcfc8d1126f139d5\",\"type\":\"comment\",\"z\":\"977143edb097b685\",\"name\":\"Http-in node created API sending todo list as response\",\"info\":\"\",\"x\":540,\"y\":140,\"wires\":[]},{\"id\":\"f351033226953150\",\"type\":\"change\",\"z\":\"977143edb097b685\",\"name\":\"\",\"rules\":[{\"t\":\"set\",\"p\":\"payload\",\"pt\":\"msg\",\"to\":\"todos\",\"tot\":\"global\"}],\"action\":\"\",\"property\":\"\",\"from\":\"\",\"to\":\"\",\"reg\":false,\"x\":540,\"y\":220,\"wires\":[[\"a7ee48616541a36a\"]]}]\n","json","",[33,54,55],{"__ignoreMap":52},[56,57,60,64,67,71,73,76,78,82,84,87,89,92,94,96,98,101,103,105,107,110,112,114,116,119,121,123,125,128,130,132,135,137,139,142,144,146,148,151,153,155,157,160,162,164,166,169,171,173,175,178,180,183,185,188,190,192,194,196,198,201,203,205,209,211,213,216,218,220,223,225,227,230,232,235,237,240,242,245,247,249,251,253,255,258,260,262,264,266,268,270,272,275,277,279,281,283,285,287,289,291,293,295,297,299,301,303,305,307,309,312,314,316,318,321,323,325,327,330,332,335,337,339,341,343,346,348,350,352,354,356,358,360,362,364,366,369,371,373,375,377,379,382,384,386,388,390,392,394,396,399,401,403,405,407,409,411,413,415,417,419,421,423,425,427,429,432,434,436,438,441,443,445,447,449,451,453,455,457,460,462,464,466,468,470,473,475,477,479,481,483,485,487,489,491,493,495,497,499,501,503,505,507,509,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,549,551,554,556,560,562,564,566,569,571,573,575,577,579,581,583,586,588,590,592,595,597,599,601,604,606,608,610,613,615,617,619,622,624,626,628,631,633,635,637,640,642,645,647,650,652,654,656,658,660,663,665,667,669,671,673,676,678,680,682,684,686,688,690,692,694,696,698,701,703,705,707,709,711,713,715,717,719,721,723,725,727,729,731,733,735,737,739,741,743],"span",{"class":58,"line":59},"line",1,[56,61,63],{"class":62},"sMK4o","[{",[56,65,66],{"class":62},"\"",[56,68,70],{"class":69},"spNyl","id",[56,72,66],{"class":62},[56,74,75],{"class":62},":",[56,77,66],{"class":62},[56,79,81],{"class":80},"sfazB","27333f67794bdc72",[56,83,66],{"class":62},[56,85,86],{"class":62},",",[56,88,66],{"class":62},[56,90,91],{"class":69},"type",[56,93,66],{"class":62},[56,95,75],{"class":62},[56,97,66],{"class":62},[56,99,100],{"class":80},"http in",[56,102,66],{"class":62},[56,104,86],{"class":62},[56,106,66],{"class":62},[56,108,109],{"class":69},"z",[56,111,66],{"class":62},[56,113,75],{"class":62},[56,115,66],{"class":62},[56,117,118],{"class":80},"977143edb097b685",[56,120,66],{"class":62},[56,122,86],{"class":62},[56,124,66],{"class":62},[56,126,127],{"class":69},"name",[56,129,66],{"class":62},[56,131,75],{"class":62},[56,133,134],{"class":62},"\"\"",[56,136,86],{"class":62},[56,138,66],{"class":62},[56,140,141],{"class":69},"url",[56,143,66],{"class":62},[56,145,75],{"class":62},[56,147,66],{"class":62},[56,149,150],{"class":80},"\u002Ftest",[56,152,66],{"class":62},[56,154,86],{"class":62},[56,156,66],{"class":62},[56,158,159],{"class":69},"method",[56,161,66],{"class":62},[56,163,75],{"class":62},[56,165,66],{"class":62},[56,167,168],{"class":80},"get",[56,170,66],{"class":62},[56,172,86],{"class":62},[56,174,66],{"class":62},[56,176,177],{"class":69},"upload",[56,179,66],{"class":62},[56,181,182],{"class":62},":false,",[56,184,66],{"class":62},[56,186,187],{"class":69},"swaggerDoc",[56,189,66],{"class":62},[56,191,75],{"class":62},[56,193,134],{"class":62},[56,195,86],{"class":62},[56,197,66],{"class":62},[56,199,200],{"class":69},"x",[56,202,66],{"class":62},[56,204,75],{"class":62},[56,206,208],{"class":207},"sbssI","320",[56,210,86],{"class":62},[56,212,66],{"class":62},[56,214,215],{"class":69},"y",[56,217,66],{"class":62},[56,219,75],{"class":62},[56,221,222],{"class":207},"220",[56,224,86],{"class":62},[56,226,66],{"class":62},[56,228,229],{"class":69},"wires",[56,231,66],{"class":62},[56,233,234],{"class":62},":[[",[56,236,66],{"class":62},[56,238,239],{"class":80},"f351033226953150",[56,241,66],{"class":62},[56,243,244],{"class":62},"]]},{",[56,246,66],{"class":62},[56,248,70],{"class":69},[56,250,66],{"class":62},[56,252,75],{"class":62},[56,254,66],{"class":62},[56,256,257],{"class":80},"a7ee48616541a36a",[56,259,66],{"class":62},[56,261,86],{"class":62},[56,263,66],{"class":62},[56,265,91],{"class":69},[56,267,66],{"class":62},[56,269,75],{"class":62},[56,271,66],{"class":62},[56,273,274],{"class":80},"http response",[56,276,66],{"class":62},[56,278,86],{"class":62},[56,280,66],{"class":62},[56,282,109],{"class":69},[56,284,66],{"class":62},[56,286,75],{"class":62},[56,288,66],{"class":62},[56,290,118],{"class":80},[56,292,66],{"class":62},[56,294,86],{"class":62},[56,296,66],{"class":62},[56,298,127],{"class":69},[56,300,66],{"class":62},[56,302,75],{"class":62},[56,304,134],{"class":62},[56,306,86],{"class":62},[56,308,66],{"class":62},[56,310,311],{"class":69},"statusCode",[56,313,66],{"class":62},[56,315,75],{"class":62},[56,317,66],{"class":62},[56,319,320],{"class":80},"200",[56,322,66],{"class":62},[56,324,86],{"class":62},[56,326,66],{"class":62},[56,328,329],{"class":69},"headers",[56,331,66],{"class":62},[56,333,334],{"class":62},":{},",[56,336,66],{"class":62},[56,338,200],{"class":69},[56,340,66],{"class":62},[56,342,75],{"class":62},[56,344,345],{"class":207},"760",[56,347,86],{"class":62},[56,349,66],{"class":62},[56,351,215],{"class":69},[56,353,66],{"class":62},[56,355,75],{"class":62},[56,357,222],{"class":207},[56,359,86],{"class":62},[56,361,66],{"class":62},[56,363,229],{"class":69},[56,365,66],{"class":62},[56,367,368],{"class":62},":[]},{",[56,370,66],{"class":62},[56,372,70],{"class":69},[56,374,66],{"class":62},[56,376,75],{"class":62},[56,378,66],{"class":62},[56,380,381],{"class":80},"dcfc8d1126f139d5",[56,383,66],{"class":62},[56,385,86],{"class":62},[56,387,66],{"class":62},[56,389,91],{"class":69},[56,391,66],{"class":62},[56,393,75],{"class":62},[56,395,66],{"class":62},[56,397,398],{"class":80},"comment",[56,400,66],{"class":62},[56,402,86],{"class":62},[56,404,66],{"class":62},[56,406,109],{"class":69},[56,408,66],{"class":62},[56,410,75],{"class":62},[56,412,66],{"class":62},[56,414,118],{"class":80},[56,416,66],{"class":62},[56,418,86],{"class":62},[56,420,66],{"class":62},[56,422,127],{"class":69},[56,424,66],{"class":62},[56,426,75],{"class":62},[56,428,66],{"class":62},[56,430,431],{"class":80},"Http-in node created API sending todo list as response",[56,433,66],{"class":62},[56,435,86],{"class":62},[56,437,66],{"class":62},[56,439,440],{"class":69},"info",[56,442,66],{"class":62},[56,444,75],{"class":62},[56,446,134],{"class":62},[56,448,86],{"class":62},[56,450,66],{"class":62},[56,452,200],{"class":69},[56,454,66],{"class":62},[56,456,75],{"class":62},[56,458,459],{"class":207},"540",[56,461,86],{"class":62},[56,463,66],{"class":62},[56,465,215],{"class":69},[56,467,66],{"class":62},[56,469,75],{"class":62},[56,471,472],{"class":207},"140",[56,474,86],{"class":62},[56,476,66],{"class":62},[56,478,229],{"class":69},[56,480,66],{"class":62},[56,482,368],{"class":62},[56,484,66],{"class":62},[56,486,70],{"class":69},[56,488,66],{"class":62},[56,490,75],{"class":62},[56,492,66],{"class":62},[56,494,239],{"class":80},[56,496,66],{"class":62},[56,498,86],{"class":62},[56,500,66],{"class":62},[56,502,91],{"class":69},[56,504,66],{"class":62},[56,506,75],{"class":62},[56,508,66],{"class":62},[56,510,511],{"class":80},"change",[56,513,66],{"class":62},[56,515,86],{"class":62},[56,517,66],{"class":62},[56,519,109],{"class":69},[56,521,66],{"class":62},[56,523,75],{"class":62},[56,525,66],{"class":62},[56,527,118],{"class":80},[56,529,66],{"class":62},[56,531,86],{"class":62},[56,533,66],{"class":62},[56,535,127],{"class":69},[56,537,66],{"class":62},[56,539,75],{"class":62},[56,541,134],{"class":62},[56,543,86],{"class":62},[56,545,66],{"class":62},[56,547,548],{"class":69},"rules",[56,550,66],{"class":62},[56,552,553],{"class":62},":[{",[56,555,66],{"class":62},[56,557,559],{"class":558},"sBMFI","t",[56,561,66],{"class":62},[56,563,75],{"class":62},[56,565,66],{"class":62},[56,567,568],{"class":80},"set",[56,570,66],{"class":62},[56,572,86],{"class":62},[56,574,66],{"class":62},[56,576,14],{"class":558},[56,578,66],{"class":62},[56,580,75],{"class":62},[56,582,66],{"class":62},[56,584,585],{"class":80},"payload",[56,587,66],{"class":62},[56,589,86],{"class":62},[56,591,66],{"class":62},[56,593,594],{"class":558},"pt",[56,596,66],{"class":62},[56,598,75],{"class":62},[56,600,66],{"class":62},[56,602,603],{"class":80},"msg",[56,605,66],{"class":62},[56,607,86],{"class":62},[56,609,66],{"class":62},[56,611,612],{"class":558},"to",[56,614,66],{"class":62},[56,616,75],{"class":62},[56,618,66],{"class":62},[56,620,621],{"class":80},"todos",[56,623,66],{"class":62},[56,625,86],{"class":62},[56,627,66],{"class":62},[56,629,630],{"class":558},"tot",[56,632,66],{"class":62},[56,634,75],{"class":62},[56,636,66],{"class":62},[56,638,639],{"class":80},"global",[56,641,66],{"class":62},[56,643,644],{"class":62},"}],",[56,646,66],{"class":62},[56,648,649],{"class":69},"action",[56,651,66],{"class":62},[56,653,75],{"class":62},[56,655,134],{"class":62},[56,657,86],{"class":62},[56,659,66],{"class":62},[56,661,662],{"class":69},"property",[56,664,66],{"class":62},[56,666,75],{"class":62},[56,668,134],{"class":62},[56,670,86],{"class":62},[56,672,66],{"class":62},[56,674,675],{"class":69},"from",[56,677,66],{"class":62},[56,679,75],{"class":62},[56,681,134],{"class":62},[56,683,86],{"class":62},[56,685,66],{"class":62},[56,687,612],{"class":69},[56,689,66],{"class":62},[56,691,75],{"class":62},[56,693,134],{"class":62},[56,695,86],{"class":62},[56,697,66],{"class":62},[56,699,700],{"class":69},"reg",[56,702,66],{"class":62},[56,704,182],{"class":62},[56,706,66],{"class":62},[56,708,200],{"class":69},[56,710,66],{"class":62},[56,712,75],{"class":62},[56,714,459],{"class":207},[56,716,86],{"class":62},[56,718,66],{"class":62},[56,720,215],{"class":69},[56,722,66],{"class":62},[56,724,75],{"class":62},[56,726,222],{"class":207},[56,728,86],{"class":62},[56,730,66],{"class":62},[56,732,229],{"class":69},[56,734,66],{"class":62},[56,736,234],{"class":62},[56,738,66],{"class":62},[56,740,257],{"class":80},[56,742,66],{"class":62},[56,744,745],{"class":62},"]]}]\n",[18,747,749],{"id":748},"creating-a-post-put-and-delete-api","Creating a POST, PUT, and DELETE API",[23,751,752,755,761,764],{},[26,753,754],{},"Drag an \"HTTP In\" node onto the workspace. Double-click on it and select the desired method (POST, PUT, DELETE).",[26,756,757,758,760],{},"Add a node to the canvas based on your application's needs. For example, if you've selected DELETE, you may use a Change node to perform operations to delete data stored in Node-RED context. Set ",[33,759,35],{}," to the response data you want to send, make sure the msg.payload is originated from \"http-in\" node.",[26,762,763],{},"Drag an \"HTTP Response\" node onto the workspace. Configure it and set the status code if needed.",[26,765,766],{},"Connect the output of the \"HTTP In\" node to the input of the node handling your application logic (e.g., Change node for DELETE operation). Then, connect the output of this node to the input of the HTTP Response node.",[44,768,769],{},[47,770,772],{"className":49,"code":771,"language":51,"meta":52,"style":52},"[{\"id\":\"8893fc84b3391b34\",\"type\":\"http in\",\"z\":\"977143edb097b685\",\"name\":\"\",\"url\":\"\u002Ftodo\u002Fdelete\",\"method\":\"delete\",\"upload\":true,\"swaggerDoc\":\"\",\"x\":250,\"y\":720,\"wires\":[[\"088808484586fdc1\"]]},{\"id\":\"04a60e7af4d6d522\",\"type\":\"http response\",\"z\":\"977143edb097b685\",\"name\":\"\",\"statusCode\":\"204\",\"headers\":{},\"x\":740,\"y\":720,\"wires\":[]},{\"id\":\"088808484586fdc1\",\"type\":\"function\",\"z\":\"977143edb097b685\",\"name\":\"Delete the todo item\",\"func\":\"let todoList = global.get('todos') || [];\\nlet id = msg.payload.id;\\n\\n\u002F\u002F Find the index of the item to delete\\nlet index = todoList.findIndex(item => item.id === id);\\n\\nif (index !== -1) {\\n    \u002F\u002F Remove the item from the todoList array\\n    todoList.splice(index, 1);\\n    global.set('todos', todoList);\\n    msg.payload = \\\"Item deleted successfully.\\\";\\n    msg.statusCode = 204; \u002F\u002F No Content\\n} else {\\n    msg.payload = \\\"Item not found.\\\";\\n    msg.statusCode = 404; \u002F\u002F Not Found\\n}\\n\\nreturn msg;\\n\",\"outputs\":1,\"timeout\":0,\"noerr\":0,\"initialize\":\"\",\"finalize\":\"\",\"libs\":[],\"x\":520,\"y\":720,\"wires\":[[\"04a60e7af4d6d522\"]]}]\n",[33,773,774],{"__ignoreMap":52},[56,775,776,778,780,782,784,786,788,791,793,795,797,799,801,803,805,807,809,811,813,815,817,819,821,823,825,827,829,831,833,835,837,839,841,843,845,847,849,852,854,856,858,860,862,864,866,869,871,873,875,877,879,882,884,886,888,890,892,894,896,898,900,902,905,907,909,911,913,915,918,920,922,924,926,928,930,933,935,937,939,941,943,945,947,950,952,954,956,958,960,962,964,966,968,970,972,974,976,978,980,982,984,986,988,990,992,994,996,998,1000,1002,1004,1006,1008,1011,1013,1015,1017,1019,1021,1023,1025,1027,1029,1031,1034,1036,1038,1040,1042,1044,1046,1048,1050,1052,1054,1056,1058,1060,1062,1064,1066,1068,1070,1072,1074,1076,1078,1080,1082,1085,1087,1089,1091,1093,1095,1097,1099,1101,1103,1105,1107,1109,1111,1113,1115,1118,1120,1122,1124,1127,1129,1131,1133,1136,1140,1143,1146,1149,1151,1154,1156,1159,1161,1164,1166,1169,1171,1174,1176,1179,1182,1185,1187,1190,1192,1195,1197,1200,1202,1204,1206,1209,1211,1213,1215,1218,1220,1223,1225,1228,1230,1232,1234,1236,1239,1241,1243,1246,1248,1250,1253,1255,1257,1260,1262,1264,1267,1269,1271,1273,1275,1277,1280,1282,1284,1286,1288,1290,1293,1295,1297,1299,1301,1303,1306,1308,1311,1313,1315,1317,1319,1322,1324,1326,1328,1330,1332,1334,1336,1338,1340,1342,1344,1346,1348,1350],{"class":58,"line":59},[56,777,63],{"class":62},[56,779,66],{"class":62},[56,781,70],{"class":69},[56,783,66],{"class":62},[56,785,75],{"class":62},[56,787,66],{"class":62},[56,789,790],{"class":80},"8893fc84b3391b34",[56,792,66],{"class":62},[56,794,86],{"class":62},[56,796,66],{"class":62},[56,798,91],{"class":69},[56,800,66],{"class":62},[56,802,75],{"class":62},[56,804,66],{"class":62},[56,806,100],{"class":80},[56,808,66],{"class":62},[56,810,86],{"class":62},[56,812,66],{"class":62},[56,814,109],{"class":69},[56,816,66],{"class":62},[56,818,75],{"class":62},[56,820,66],{"class":62},[56,822,118],{"class":80},[56,824,66],{"class":62},[56,826,86],{"class":62},[56,828,66],{"class":62},[56,830,127],{"class":69},[56,832,66],{"class":62},[56,834,75],{"class":62},[56,836,134],{"class":62},[56,838,86],{"class":62},[56,840,66],{"class":62},[56,842,141],{"class":69},[56,844,66],{"class":62},[56,846,75],{"class":62},[56,848,66],{"class":62},[56,850,851],{"class":80},"\u002Ftodo\u002Fdelete",[56,853,66],{"class":62},[56,855,86],{"class":62},[56,857,66],{"class":62},[56,859,159],{"class":69},[56,861,66],{"class":62},[56,863,75],{"class":62},[56,865,66],{"class":62},[56,867,868],{"class":80},"delete",[56,870,66],{"class":62},[56,872,86],{"class":62},[56,874,66],{"class":62},[56,876,177],{"class":69},[56,878,66],{"class":62},[56,880,881],{"class":62},":true,",[56,883,66],{"class":62},[56,885,187],{"class":69},[56,887,66],{"class":62},[56,889,75],{"class":62},[56,891,134],{"class":62},[56,893,86],{"class":62},[56,895,66],{"class":62},[56,897,200],{"class":69},[56,899,66],{"class":62},[56,901,75],{"class":62},[56,903,904],{"class":207},"250",[56,906,86],{"class":62},[56,908,66],{"class":62},[56,910,215],{"class":69},[56,912,66],{"class":62},[56,914,75],{"class":62},[56,916,917],{"class":207},"720",[56,919,86],{"class":62},[56,921,66],{"class":62},[56,923,229],{"class":69},[56,925,66],{"class":62},[56,927,234],{"class":62},[56,929,66],{"class":62},[56,931,932],{"class":80},"088808484586fdc1",[56,934,66],{"class":62},[56,936,244],{"class":62},[56,938,66],{"class":62},[56,940,70],{"class":69},[56,942,66],{"class":62},[56,944,75],{"class":62},[56,946,66],{"class":62},[56,948,949],{"class":80},"04a60e7af4d6d522",[56,951,66],{"class":62},[56,953,86],{"class":62},[56,955,66],{"class":62},[56,957,91],{"class":69},[56,959,66],{"class":62},[56,961,75],{"class":62},[56,963,66],{"class":62},[56,965,274],{"class":80},[56,967,66],{"class":62},[56,969,86],{"class":62},[56,971,66],{"class":62},[56,973,109],{"class":69},[56,975,66],{"class":62},[56,977,75],{"class":62},[56,979,66],{"class":62},[56,981,118],{"class":80},[56,983,66],{"class":62},[56,985,86],{"class":62},[56,987,66],{"class":62},[56,989,127],{"class":69},[56,991,66],{"class":62},[56,993,75],{"class":62},[56,995,134],{"class":62},[56,997,86],{"class":62},[56,999,66],{"class":62},[56,1001,311],{"class":69},[56,1003,66],{"class":62},[56,1005,75],{"class":62},[56,1007,66],{"class":62},[56,1009,1010],{"class":80},"204",[56,1012,66],{"class":62},[56,1014,86],{"class":62},[56,1016,66],{"class":62},[56,1018,329],{"class":69},[56,1020,66],{"class":62},[56,1022,334],{"class":62},[56,1024,66],{"class":62},[56,1026,200],{"class":69},[56,1028,66],{"class":62},[56,1030,75],{"class":62},[56,1032,1033],{"class":207},"740",[56,1035,86],{"class":62},[56,1037,66],{"class":62},[56,1039,215],{"class":69},[56,1041,66],{"class":62},[56,1043,75],{"class":62},[56,1045,917],{"class":207},[56,1047,86],{"class":62},[56,1049,66],{"class":62},[56,1051,229],{"class":69},[56,1053,66],{"class":62},[56,1055,368],{"class":62},[56,1057,66],{"class":62},[56,1059,70],{"class":69},[56,1061,66],{"class":62},[56,1063,75],{"class":62},[56,1065,66],{"class":62},[56,1067,932],{"class":80},[56,1069,66],{"class":62},[56,1071,86],{"class":62},[56,1073,66],{"class":62},[56,1075,91],{"class":69},[56,1077,66],{"class":62},[56,1079,75],{"class":62},[56,1081,66],{"class":62},[56,1083,1084],{"class":80},"function",[56,1086,66],{"class":62},[56,1088,86],{"class":62},[56,1090,66],{"class":62},[56,1092,109],{"class":69},[56,1094,66],{"class":62},[56,1096,75],{"class":62},[56,1098,66],{"class":62},[56,1100,118],{"class":80},[56,1102,66],{"class":62},[56,1104,86],{"class":62},[56,1106,66],{"class":62},[56,1108,127],{"class":69},[56,1110,66],{"class":62},[56,1112,75],{"class":62},[56,1114,66],{"class":62},[56,1116,1117],{"class":80},"Delete the todo item",[56,1119,66],{"class":62},[56,1121,86],{"class":62},[56,1123,66],{"class":62},[56,1125,1126],{"class":69},"func",[56,1128,66],{"class":62},[56,1130,75],{"class":62},[56,1132,66],{"class":62},[56,1134,1135],{"class":80},"let todoList = global.get('todos') || [];",[56,1137,1139],{"class":1138},"sTEyZ","\\n",[56,1141,1142],{"class":80},"let id = msg.payload.id;",[56,1144,1145],{"class":1138},"\\n\\n",[56,1147,1148],{"class":80},"\u002F\u002F Find the index of the item to delete",[56,1150,1139],{"class":1138},[56,1152,1153],{"class":80},"let index = todoList.findIndex(item => item.id === id);",[56,1155,1145],{"class":1138},[56,1157,1158],{"class":80},"if (index !== -1) {",[56,1160,1139],{"class":1138},[56,1162,1163],{"class":80},"    \u002F\u002F Remove the item from the todoList array",[56,1165,1139],{"class":1138},[56,1167,1168],{"class":80},"    todoList.splice(index, 1);",[56,1170,1139],{"class":1138},[56,1172,1173],{"class":80},"    global.set('todos', todoList);",[56,1175,1139],{"class":1138},[56,1177,1178],{"class":80},"    msg.payload = ",[56,1180,1181],{"class":1138},"\\\"",[56,1183,1184],{"class":80},"Item deleted successfully.",[56,1186,1181],{"class":1138},[56,1188,1189],{"class":80},";",[56,1191,1139],{"class":1138},[56,1193,1194],{"class":80},"    msg.statusCode = 204; \u002F\u002F No Content",[56,1196,1139],{"class":1138},[56,1198,1199],{"class":80},"} else {",[56,1201,1139],{"class":1138},[56,1203,1178],{"class":80},[56,1205,1181],{"class":1138},[56,1207,1208],{"class":80},"Item not found.",[56,1210,1181],{"class":1138},[56,1212,1189],{"class":80},[56,1214,1139],{"class":1138},[56,1216,1217],{"class":80},"    msg.statusCode = 404; \u002F\u002F Not Found",[56,1219,1139],{"class":1138},[56,1221,1222],{"class":80},"}",[56,1224,1145],{"class":1138},[56,1226,1227],{"class":80},"return msg;",[56,1229,1139],{"class":1138},[56,1231,66],{"class":62},[56,1233,86],{"class":62},[56,1235,66],{"class":62},[56,1237,1238],{"class":69},"outputs",[56,1240,66],{"class":62},[56,1242,75],{"class":62},[56,1244,1245],{"class":207},"1",[56,1247,86],{"class":62},[56,1249,66],{"class":62},[56,1251,1252],{"class":69},"timeout",[56,1254,66],{"class":62},[56,1256,75],{"class":62},[56,1258,1259],{"class":207},"0",[56,1261,86],{"class":62},[56,1263,66],{"class":62},[56,1265,1266],{"class":69},"noerr",[56,1268,66],{"class":62},[56,1270,75],{"class":62},[56,1272,1259],{"class":207},[56,1274,86],{"class":62},[56,1276,66],{"class":62},[56,1278,1279],{"class":69},"initialize",[56,1281,66],{"class":62},[56,1283,75],{"class":62},[56,1285,134],{"class":62},[56,1287,86],{"class":62},[56,1289,66],{"class":62},[56,1291,1292],{"class":69},"finalize",[56,1294,66],{"class":62},[56,1296,75],{"class":62},[56,1298,134],{"class":62},[56,1300,86],{"class":62},[56,1302,66],{"class":62},[56,1304,1305],{"class":69},"libs",[56,1307,66],{"class":62},[56,1309,1310],{"class":62},":[],",[56,1312,66],{"class":62},[56,1314,200],{"class":69},[56,1316,66],{"class":62},[56,1318,75],{"class":62},[56,1320,1321],{"class":207},"520",[56,1323,86],{"class":62},[56,1325,66],{"class":62},[56,1327,215],{"class":69},[56,1329,66],{"class":62},[56,1331,75],{"class":62},[56,1333,917],{"class":207},[56,1335,86],{"class":62},[56,1337,66],{"class":62},[56,1339,229],{"class":69},[56,1341,66],{"class":62},[56,1343,234],{"class":62},[56,1345,66],{"class":62},[56,1347,949],{"class":80},[56,1349,66],{"class":62},[56,1351,745],{"class":62},[44,1353,1354],{},[47,1355,1357],{"className":49,"code":1356,"language":51,"meta":52,"style":52},"[{\"id\":\"825a6296456b7c27\",\"type\":\"http in\",\"z\":\"977143edb097b685\",\"name\":\"\",\"url\":\"\u002Ftodo\",\"method\":\"post\",\"upload\":true,\"swaggerDoc\":\"\",\"x\":260,\"y\":1460,\"wires\":[[\"0133494821cf99ca\",\"9fe48410514631f8\"]]},{\"id\":\"0133494821cf99ca\",\"type\":\"debug\",\"z\":\"977143edb097b685\",\"name\":\"debug 1\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"true\",\"targetType\":\"full\",\"statusVal\":\"\",\"statusType\":\"auto\",\"x\":540,\"y\":1420,\"wires\":[]},{\"id\":\"5284a06365a7f8f7\",\"type\":\"http response\",\"z\":\"977143edb097b685\",\"name\":\"\",\"statusCode\":\"201\",\"headers\":{},\"x\":860,\"y\":1500,\"wires\":[]},{\"id\":\"9fe48410514631f8\",\"type\":\"function\",\"z\":\"977143edb097b685\",\"name\":\"store todo in todolist \",\"func\":\"let todoList = global.get('todos') || [];\\nlet newTodo = msg.payload;\\n\\ntodoList.push(newTodo);\\nglobal.set('todos',todoList)\\nreturn msg;\",\"outputs\":1,\"timeout\":0,\"noerr\":0,\"initialize\":\"\",\"finalize\":\"\",\"libs\":[],\"x\":560,\"y\":1500,\"wires\":[[\"5284a06365a7f8f7\"]]}]\n",[33,1358,1359],{"__ignoreMap":52},[56,1360,1361,1363,1365,1367,1369,1371,1373,1376,1378,1380,1382,1384,1386,1388,1390,1392,1394,1396,1398,1400,1402,1404,1406,1408,1410,1412,1414,1416,1418,1420,1422,1424,1426,1428,1430,1432,1434,1437,1439,1441,1443,1445,1447,1449,1451,1454,1456,1458,1460,1462,1464,1466,1468,1470,1472,1474,1476,1478,1480,1482,1484,1486,1489,1491,1493,1495,1497,1499,1502,1504,1506,1508,1510,1512,1514,1517,1519,1521,1523,1526,1528,1530,1532,1534,1536,1538,1540,1542,1544,1546,1548,1550,1552,1554,1556,1559,1561,1563,1565,1567,1569,1571,1573,1575,1577,1579,1581,1583,1585,1587,1589,1592,1594,1596,1598,1601,1603,1605,1607,1610,1612,1614,1616,1619,1621,1623,1625,1628,1630,1632,1634,1637,1639,1641,1643,1646,1648,1650,1652,1655,1657,1659,1661,1664,1666,1668,1670,1673,1675,1677,1679,1681,1683,1686,1688,1690,1692,1695,1697,1699,1701,1703,1705,1707,1709,1711,1713,1715,1717,1719,1722,1724,1726,1728,1730,1732,1734,1736,1738,1740,1742,1745,1747,1749,1751,1753,1755,1757,1759,1761,1763,1765,1767,1769,1771,1773,1775,1777,1779,1781,1783,1785,1787,1789,1791,1793,1795,1797,1799,1801,1803,1806,1808,1810,1812,1814,1816,1818,1820,1822,1824,1826,1829,1831,1833,1835,1837,1839,1842,1844,1846,1848,1850,1852,1854,1856,1858,1860,1862,1864,1866,1868,1870,1872,1874,1876,1878,1880,1882,1884,1886,1888,1890,1892,1894,1896,1898,1900,1902,1904,1906,1908,1910,1913,1915,1917,1919,1921,1923,1925,1927,1929,1931,1934,1936,1939,1941,1944,1946,1948,1950,1952,1954,1956,1958,1960,1962,1964,1966,1968,1970,1972,1974,1976,1978,1980,1982,1984,1986,1988,1990,1992,1994,1996,1998,2000,2002,2004,2006,2008,2010,2012,2014,2016,2018,2020,2022,2024,2026,2028,2031,2033,2035,2037,2039,2041,2043,2045,2047,2049,2051,2053,2055,2057,2059],{"class":58,"line":59},[56,1362,63],{"class":62},[56,1364,66],{"class":62},[56,1366,70],{"class":69},[56,1368,66],{"class":62},[56,1370,75],{"class":62},[56,1372,66],{"class":62},[56,1374,1375],{"class":80},"825a6296456b7c27",[56,1377,66],{"class":62},[56,1379,86],{"class":62},[56,1381,66],{"class":62},[56,1383,91],{"class":69},[56,1385,66],{"class":62},[56,1387,75],{"class":62},[56,1389,66],{"class":62},[56,1391,100],{"class":80},[56,1393,66],{"class":62},[56,1395,86],{"class":62},[56,1397,66],{"class":62},[56,1399,109],{"class":69},[56,1401,66],{"class":62},[56,1403,75],{"class":62},[56,1405,66],{"class":62},[56,1407,118],{"class":80},[56,1409,66],{"class":62},[56,1411,86],{"class":62},[56,1413,66],{"class":62},[56,1415,127],{"class":69},[56,1417,66],{"class":62},[56,1419,75],{"class":62},[56,1421,134],{"class":62},[56,1423,86],{"class":62},[56,1425,66],{"class":62},[56,1427,141],{"class":69},[56,1429,66],{"class":62},[56,1431,75],{"class":62},[56,1433,66],{"class":62},[56,1435,1436],{"class":80},"\u002Ftodo",[56,1438,66],{"class":62},[56,1440,86],{"class":62},[56,1442,66],{"class":62},[56,1444,159],{"class":69},[56,1446,66],{"class":62},[56,1448,75],{"class":62},[56,1450,66],{"class":62},[56,1452,1453],{"class":80},"post",[56,1455,66],{"class":62},[56,1457,86],{"class":62},[56,1459,66],{"class":62},[56,1461,177],{"class":69},[56,1463,66],{"class":62},[56,1465,881],{"class":62},[56,1467,66],{"class":62},[56,1469,187],{"class":69},[56,1471,66],{"class":62},[56,1473,75],{"class":62},[56,1475,134],{"class":62},[56,1477,86],{"class":62},[56,1479,66],{"class":62},[56,1481,200],{"class":69},[56,1483,66],{"class":62},[56,1485,75],{"class":62},[56,1487,1488],{"class":207},"260",[56,1490,86],{"class":62},[56,1492,66],{"class":62},[56,1494,215],{"class":69},[56,1496,66],{"class":62},[56,1498,75],{"class":62},[56,1500,1501],{"class":207},"1460",[56,1503,86],{"class":62},[56,1505,66],{"class":62},[56,1507,229],{"class":69},[56,1509,66],{"class":62},[56,1511,234],{"class":62},[56,1513,66],{"class":62},[56,1515,1516],{"class":80},"0133494821cf99ca",[56,1518,66],{"class":62},[56,1520,86],{"class":62},[56,1522,66],{"class":62},[56,1524,1525],{"class":80},"9fe48410514631f8",[56,1527,66],{"class":62},[56,1529,244],{"class":62},[56,1531,66],{"class":62},[56,1533,70],{"class":69},[56,1535,66],{"class":62},[56,1537,75],{"class":62},[56,1539,66],{"class":62},[56,1541,1516],{"class":80},[56,1543,66],{"class":62},[56,1545,86],{"class":62},[56,1547,66],{"class":62},[56,1549,91],{"class":69},[56,1551,66],{"class":62},[56,1553,75],{"class":62},[56,1555,66],{"class":62},[56,1557,1558],{"class":80},"debug",[56,1560,66],{"class":62},[56,1562,86],{"class":62},[56,1564,66],{"class":62},[56,1566,109],{"class":69},[56,1568,66],{"class":62},[56,1570,75],{"class":62},[56,1572,66],{"class":62},[56,1574,118],{"class":80},[56,1576,66],{"class":62},[56,1578,86],{"class":62},[56,1580,66],{"class":62},[56,1582,127],{"class":69},[56,1584,66],{"class":62},[56,1586,75],{"class":62},[56,1588,66],{"class":62},[56,1590,1591],{"class":80},"debug 1",[56,1593,66],{"class":62},[56,1595,86],{"class":62},[56,1597,66],{"class":62},[56,1599,1600],{"class":69},"active",[56,1602,66],{"class":62},[56,1604,881],{"class":62},[56,1606,66],{"class":62},[56,1608,1609],{"class":69},"tosidebar",[56,1611,66],{"class":62},[56,1613,881],{"class":62},[56,1615,66],{"class":62},[56,1617,1618],{"class":69},"console",[56,1620,66],{"class":62},[56,1622,182],{"class":62},[56,1624,66],{"class":62},[56,1626,1627],{"class":69},"tostatus",[56,1629,66],{"class":62},[56,1631,182],{"class":62},[56,1633,66],{"class":62},[56,1635,1636],{"class":69},"complete",[56,1638,66],{"class":62},[56,1640,75],{"class":62},[56,1642,66],{"class":62},[56,1644,1645],{"class":80},"true",[56,1647,66],{"class":62},[56,1649,86],{"class":62},[56,1651,66],{"class":62},[56,1653,1654],{"class":69},"targetType",[56,1656,66],{"class":62},[56,1658,75],{"class":62},[56,1660,66],{"class":62},[56,1662,1663],{"class":80},"full",[56,1665,66],{"class":62},[56,1667,86],{"class":62},[56,1669,66],{"class":62},[56,1671,1672],{"class":69},"statusVal",[56,1674,66],{"class":62},[56,1676,75],{"class":62},[56,1678,134],{"class":62},[56,1680,86],{"class":62},[56,1682,66],{"class":62},[56,1684,1685],{"class":69},"statusType",[56,1687,66],{"class":62},[56,1689,75],{"class":62},[56,1691,66],{"class":62},[56,1693,1694],{"class":80},"auto",[56,1696,66],{"class":62},[56,1698,86],{"class":62},[56,1700,66],{"class":62},[56,1702,200],{"class":69},[56,1704,66],{"class":62},[56,1706,75],{"class":62},[56,1708,459],{"class":207},[56,1710,86],{"class":62},[56,1712,66],{"class":62},[56,1714,215],{"class":69},[56,1716,66],{"class":62},[56,1718,75],{"class":62},[56,1720,1721],{"class":207},"1420",[56,1723,86],{"class":62},[56,1725,66],{"class":62},[56,1727,229],{"class":69},[56,1729,66],{"class":62},[56,1731,368],{"class":62},[56,1733,66],{"class":62},[56,1735,70],{"class":69},[56,1737,66],{"class":62},[56,1739,75],{"class":62},[56,1741,66],{"class":62},[56,1743,1744],{"class":80},"5284a06365a7f8f7",[56,1746,66],{"class":62},[56,1748,86],{"class":62},[56,1750,66],{"class":62},[56,1752,91],{"class":69},[56,1754,66],{"class":62},[56,1756,75],{"class":62},[56,1758,66],{"class":62},[56,1760,274],{"class":80},[56,1762,66],{"class":62},[56,1764,86],{"class":62},[56,1766,66],{"class":62},[56,1768,109],{"class":69},[56,1770,66],{"class":62},[56,1772,75],{"class":62},[56,1774,66],{"class":62},[56,1776,118],{"class":80},[56,1778,66],{"class":62},[56,1780,86],{"class":62},[56,1782,66],{"class":62},[56,1784,127],{"class":69},[56,1786,66],{"class":62},[56,1788,75],{"class":62},[56,1790,134],{"class":62},[56,1792,86],{"class":62},[56,1794,66],{"class":62},[56,1796,311],{"class":69},[56,1798,66],{"class":62},[56,1800,75],{"class":62},[56,1802,66],{"class":62},[56,1804,1805],{"class":80},"201",[56,1807,66],{"class":62},[56,1809,86],{"class":62},[56,1811,66],{"class":62},[56,1813,329],{"class":69},[56,1815,66],{"class":62},[56,1817,334],{"class":62},[56,1819,66],{"class":62},[56,1821,200],{"class":69},[56,1823,66],{"class":62},[56,1825,75],{"class":62},[56,1827,1828],{"class":207},"860",[56,1830,86],{"class":62},[56,1832,66],{"class":62},[56,1834,215],{"class":69},[56,1836,66],{"class":62},[56,1838,75],{"class":62},[56,1840,1841],{"class":207},"1500",[56,1843,86],{"class":62},[56,1845,66],{"class":62},[56,1847,229],{"class":69},[56,1849,66],{"class":62},[56,1851,368],{"class":62},[56,1853,66],{"class":62},[56,1855,70],{"class":69},[56,1857,66],{"class":62},[56,1859,75],{"class":62},[56,1861,66],{"class":62},[56,1863,1525],{"class":80},[56,1865,66],{"class":62},[56,1867,86],{"class":62},[56,1869,66],{"class":62},[56,1871,91],{"class":69},[56,1873,66],{"class":62},[56,1875,75],{"class":62},[56,1877,66],{"class":62},[56,1879,1084],{"class":80},[56,1881,66],{"class":62},[56,1883,86],{"class":62},[56,1885,66],{"class":62},[56,1887,109],{"class":69},[56,1889,66],{"class":62},[56,1891,75],{"class":62},[56,1893,66],{"class":62},[56,1895,118],{"class":80},[56,1897,66],{"class":62},[56,1899,86],{"class":62},[56,1901,66],{"class":62},[56,1903,127],{"class":69},[56,1905,66],{"class":62},[56,1907,75],{"class":62},[56,1909,66],{"class":62},[56,1911,1912],{"class":80},"store todo in todolist ",[56,1914,66],{"class":62},[56,1916,86],{"class":62},[56,1918,66],{"class":62},[56,1920,1126],{"class":69},[56,1922,66],{"class":62},[56,1924,75],{"class":62},[56,1926,66],{"class":62},[56,1928,1135],{"class":80},[56,1930,1139],{"class":1138},[56,1932,1933],{"class":80},"let newTodo = msg.payload;",[56,1935,1145],{"class":1138},[56,1937,1938],{"class":80},"todoList.push(newTodo);",[56,1940,1139],{"class":1138},[56,1942,1943],{"class":80},"global.set('todos',todoList)",[56,1945,1139],{"class":1138},[56,1947,1227],{"class":80},[56,1949,66],{"class":62},[56,1951,86],{"class":62},[56,1953,66],{"class":62},[56,1955,1238],{"class":69},[56,1957,66],{"class":62},[56,1959,75],{"class":62},[56,1961,1245],{"class":207},[56,1963,86],{"class":62},[56,1965,66],{"class":62},[56,1967,1252],{"class":69},[56,1969,66],{"class":62},[56,1971,75],{"class":62},[56,1973,1259],{"class":207},[56,1975,86],{"class":62},[56,1977,66],{"class":62},[56,1979,1266],{"class":69},[56,1981,66],{"class":62},[56,1983,75],{"class":62},[56,1985,1259],{"class":207},[56,1987,86],{"class":62},[56,1989,66],{"class":62},[56,1991,1279],{"class":69},[56,1993,66],{"class":62},[56,1995,75],{"class":62},[56,1997,134],{"class":62},[56,1999,86],{"class":62},[56,2001,66],{"class":62},[56,2003,1292],{"class":69},[56,2005,66],{"class":62},[56,2007,75],{"class":62},[56,2009,134],{"class":62},[56,2011,86],{"class":62},[56,2013,66],{"class":62},[56,2015,1305],{"class":69},[56,2017,66],{"class":62},[56,2019,1310],{"class":62},[56,2021,66],{"class":62},[56,2023,200],{"class":69},[56,2025,66],{"class":62},[56,2027,75],{"class":62},[56,2029,2030],{"class":207},"560",[56,2032,86],{"class":62},[56,2034,66],{"class":62},[56,2036,215],{"class":69},[56,2038,66],{"class":62},[56,2040,75],{"class":62},[56,2042,1841],{"class":207},[56,2044,86],{"class":62},[56,2046,66],{"class":62},[56,2048,229],{"class":69},[56,2050,66],{"class":62},[56,2052,234],{"class":62},[56,2054,66],{"class":62},[56,2056,1744],{"class":80},[56,2058,66],{"class":62},[56,2060,745],{"class":62},[44,2062,2063],{},[47,2064,2066],{"className":49,"code":2065,"language":51,"meta":52,"style":52},"[{\"id\":\"8893fc84b3391b34\",\"type\":\"http in\",\"z\":\"977143edb097b685\",\"name\":\"\",\"url\":\"\u002Ftodo\u002Fupdate\",\"method\":\"put\",\"upload\":true,\"swaggerDoc\":\"\",\"x\":400,\"y\":280,\"wires\":[[\"088808484586fdc1\"]]},{\"id\":\"04a60e7af4d6d522\",\"type\":\"http response\",\"z\":\"977143edb097b685\",\"name\":\"\",\"statusCode\":\"200\",\"headers\":{},\"x\":900,\"y\":280,\"wires\":[]},{\"id\":\"088808484586fdc1\",\"type\":\"function\",\"z\":\"977143edb097b685\",\"name\":\"update the todo item\",\"func\":\"let todoList = global.get('todos') || [];\\nlet id = msg.payload.id;\\nlet newTodo = msg.payload.newtodo;\\n\\n\u002F\u002F Find the index of the item to update\\nlet index = todoList.findIndex(item => item.id === id);\\n\\nif (index !== -1) {\\n    \u002F\u002F Update the todo item\\n    todoList[index].task = newTodo;\\n    global.set('todos', todoList);\\n    msg.payload = \\\"Item updated successfully.\\\";\\n    msg.statusCode = 200; \u002F\u002F OK\\n} else {\\n    msg.payload = \\\"Item not found.\\\";\\n    msg.statusCode = 404; \u002F\u002F Not Found\\n}\\n\\nreturn msg;\\n\",\"outputs\":1,\"timeout\":0,\"noerr\":0,\"initialize\":\"\",\"finalize\":\"\",\"libs\":[],\"x\":660,\"y\":280,\"wires\":[[\"04a60e7af4d6d522\"]]},{\"id\":\"ea3e7e96bbccf530\",\"type\":\"comment\",\"z\":\"977143edb097b685\",\"name\":\"Http in node created api for updating the todo item\",\"info\":\"\",\"x\":650,\"y\":200,\"wires\":[]}]\n",[33,2067,2068],{"__ignoreMap":52},[56,2069,2070,2072,2074,2076,2078,2080,2082,2084,2086,2088,2090,2092,2094,2096,2098,2100,2102,2104,2106,2108,2110,2112,2114,2116,2118,2120,2122,2124,2126,2128,2130,2132,2134,2136,2138,2140,2142,2145,2147,2149,2151,2153,2155,2157,2159,2162,2164,2166,2168,2170,2172,2174,2176,2178,2180,2182,2184,2186,2188,2190,2192,2194,2197,2199,2201,2203,2205,2207,2210,2212,2214,2216,2218,2220,2222,2224,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2254,2256,2258,2260,2262,2264,2266,2268,2270,2272,2274,2276,2278,2280,2282,2284,2286,2288,2290,2292,2294,2296,2298,2300,2302,2304,2306,2308,2310,2312,2314,2316,2318,2320,2323,2325,2327,2329,2331,2333,2335,2337,2339,2341,2343,2345,2347,2349,2351,2353,2355,2357,2359,2361,2363,2365,2367,2369,2371,2373,2375,2377,2379,2381,2383,2385,2387,2389,2391,2393,2395,2397,2399,2401,2403,2406,2408,2410,2412,2414,2416,2418,2420,2422,2424,2426,2428,2431,2433,2436,2438,2440,2442,2444,2446,2449,2451,2454,2456,2458,2460,2462,2464,2467,2469,2471,2473,2476,2478,2480,2482,2484,2486,2488,2490,2492,2494,2496,2498,2500,2502,2504,2506,2508,2510,2512,2514,2516,2518,2520,2522,2524,2526,2528,2530,2532,2534,2536,2538,2540,2542,2544,2546,2548,2550,2552,2554,2556,2558,2560,2562,2564,2566,2568,2570,2572,2574,2576,2578,2580,2582,2584,2586,2589,2591,2593,2595,2597,2599,2601,2603,2605,2607,2609,2611,2613,2615,2617,2619,2621,2623,2625,2627,2629,2632,2634,2636,2638,2640,2642,2644,2646,2648,2650,2652,2654,2656,2658,2660,2662,2664,2666,2668,2670,2672,2674,2676,2678,2681,2683,2685,2687,2689,2691,2693,2695,2697,2699,2701,2703,2705,2708,2710,2712,2714,2716,2718,2720,2722,2724,2726,2728],{"class":58,"line":59},[56,2071,63],{"class":62},[56,2073,66],{"class":62},[56,2075,70],{"class":69},[56,2077,66],{"class":62},[56,2079,75],{"class":62},[56,2081,66],{"class":62},[56,2083,790],{"class":80},[56,2085,66],{"class":62},[56,2087,86],{"class":62},[56,2089,66],{"class":62},[56,2091,91],{"class":69},[56,2093,66],{"class":62},[56,2095,75],{"class":62},[56,2097,66],{"class":62},[56,2099,100],{"class":80},[56,2101,66],{"class":62},[56,2103,86],{"class":62},[56,2105,66],{"class":62},[56,2107,109],{"class":69},[56,2109,66],{"class":62},[56,2111,75],{"class":62},[56,2113,66],{"class":62},[56,2115,118],{"class":80},[56,2117,66],{"class":62},[56,2119,86],{"class":62},[56,2121,66],{"class":62},[56,2123,127],{"class":69},[56,2125,66],{"class":62},[56,2127,75],{"class":62},[56,2129,134],{"class":62},[56,2131,86],{"class":62},[56,2133,66],{"class":62},[56,2135,141],{"class":69},[56,2137,66],{"class":62},[56,2139,75],{"class":62},[56,2141,66],{"class":62},[56,2143,2144],{"class":80},"\u002Ftodo\u002Fupdate",[56,2146,66],{"class":62},[56,2148,86],{"class":62},[56,2150,66],{"class":62},[56,2152,159],{"class":69},[56,2154,66],{"class":62},[56,2156,75],{"class":62},[56,2158,66],{"class":62},[56,2160,2161],{"class":80},"put",[56,2163,66],{"class":62},[56,2165,86],{"class":62},[56,2167,66],{"class":62},[56,2169,177],{"class":69},[56,2171,66],{"class":62},[56,2173,881],{"class":62},[56,2175,66],{"class":62},[56,2177,187],{"class":69},[56,2179,66],{"class":62},[56,2181,75],{"class":62},[56,2183,134],{"class":62},[56,2185,86],{"class":62},[56,2187,66],{"class":62},[56,2189,200],{"class":69},[56,2191,66],{"class":62},[56,2193,75],{"class":62},[56,2195,2196],{"class":207},"400",[56,2198,86],{"class":62},[56,2200,66],{"class":62},[56,2202,215],{"class":69},[56,2204,66],{"class":62},[56,2206,75],{"class":62},[56,2208,2209],{"class":207},"280",[56,2211,86],{"class":62},[56,2213,66],{"class":62},[56,2215,229],{"class":69},[56,2217,66],{"class":62},[56,2219,234],{"class":62},[56,2221,66],{"class":62},[56,2223,932],{"class":80},[56,2225,66],{"class":62},[56,2227,244],{"class":62},[56,2229,66],{"class":62},[56,2231,70],{"class":69},[56,2233,66],{"class":62},[56,2235,75],{"class":62},[56,2237,66],{"class":62},[56,2239,949],{"class":80},[56,2241,66],{"class":62},[56,2243,86],{"class":62},[56,2245,66],{"class":62},[56,2247,91],{"class":69},[56,2249,66],{"class":62},[56,2251,75],{"class":62},[56,2253,66],{"class":62},[56,2255,274],{"class":80},[56,2257,66],{"class":62},[56,2259,86],{"class":62},[56,2261,66],{"class":62},[56,2263,109],{"class":69},[56,2265,66],{"class":62},[56,2267,75],{"class":62},[56,2269,66],{"class":62},[56,2271,118],{"class":80},[56,2273,66],{"class":62},[56,2275,86],{"class":62},[56,2277,66],{"class":62},[56,2279,127],{"class":69},[56,2281,66],{"class":62},[56,2283,75],{"class":62},[56,2285,134],{"class":62},[56,2287,86],{"class":62},[56,2289,66],{"class":62},[56,2291,311],{"class":69},[56,2293,66],{"class":62},[56,2295,75],{"class":62},[56,2297,66],{"class":62},[56,2299,320],{"class":80},[56,2301,66],{"class":62},[56,2303,86],{"class":62},[56,2305,66],{"class":62},[56,2307,329],{"class":69},[56,2309,66],{"class":62},[56,2311,334],{"class":62},[56,2313,66],{"class":62},[56,2315,200],{"class":69},[56,2317,66],{"class":62},[56,2319,75],{"class":62},[56,2321,2322],{"class":207},"900",[56,2324,86],{"class":62},[56,2326,66],{"class":62},[56,2328,215],{"class":69},[56,2330,66],{"class":62},[56,2332,75],{"class":62},[56,2334,2209],{"class":207},[56,2336,86],{"class":62},[56,2338,66],{"class":62},[56,2340,229],{"class":69},[56,2342,66],{"class":62},[56,2344,368],{"class":62},[56,2346,66],{"class":62},[56,2348,70],{"class":69},[56,2350,66],{"class":62},[56,2352,75],{"class":62},[56,2354,66],{"class":62},[56,2356,932],{"class":80},[56,2358,66],{"class":62},[56,2360,86],{"class":62},[56,2362,66],{"class":62},[56,2364,91],{"class":69},[56,2366,66],{"class":62},[56,2368,75],{"class":62},[56,2370,66],{"class":62},[56,2372,1084],{"class":80},[56,2374,66],{"class":62},[56,2376,86],{"class":62},[56,2378,66],{"class":62},[56,2380,109],{"class":69},[56,2382,66],{"class":62},[56,2384,75],{"class":62},[56,2386,66],{"class":62},[56,2388,118],{"class":80},[56,2390,66],{"class":62},[56,2392,86],{"class":62},[56,2394,66],{"class":62},[56,2396,127],{"class":69},[56,2398,66],{"class":62},[56,2400,75],{"class":62},[56,2402,66],{"class":62},[56,2404,2405],{"class":80},"update the todo item",[56,2407,66],{"class":62},[56,2409,86],{"class":62},[56,2411,66],{"class":62},[56,2413,1126],{"class":69},[56,2415,66],{"class":62},[56,2417,75],{"class":62},[56,2419,66],{"class":62},[56,2421,1135],{"class":80},[56,2423,1139],{"class":1138},[56,2425,1142],{"class":80},[56,2427,1139],{"class":1138},[56,2429,2430],{"class":80},"let newTodo = msg.payload.newtodo;",[56,2432,1145],{"class":1138},[56,2434,2435],{"class":80},"\u002F\u002F Find the index of the item to update",[56,2437,1139],{"class":1138},[56,2439,1153],{"class":80},[56,2441,1145],{"class":1138},[56,2443,1158],{"class":80},[56,2445,1139],{"class":1138},[56,2447,2448],{"class":80},"    \u002F\u002F Update the todo item",[56,2450,1139],{"class":1138},[56,2452,2453],{"class":80},"    todoList[index].task = newTodo;",[56,2455,1139],{"class":1138},[56,2457,1173],{"class":80},[56,2459,1139],{"class":1138},[56,2461,1178],{"class":80},[56,2463,1181],{"class":1138},[56,2465,2466],{"class":80},"Item updated successfully.",[56,2468,1181],{"class":1138},[56,2470,1189],{"class":80},[56,2472,1139],{"class":1138},[56,2474,2475],{"class":80},"    msg.statusCode = 200; \u002F\u002F OK",[56,2477,1139],{"class":1138},[56,2479,1199],{"class":80},[56,2481,1139],{"class":1138},[56,2483,1178],{"class":80},[56,2485,1181],{"class":1138},[56,2487,1208],{"class":80},[56,2489,1181],{"class":1138},[56,2491,1189],{"class":80},[56,2493,1139],{"class":1138},[56,2495,1217],{"class":80},[56,2497,1139],{"class":1138},[56,2499,1222],{"class":80},[56,2501,1145],{"class":1138},[56,2503,1227],{"class":80},[56,2505,1139],{"class":1138},[56,2507,66],{"class":62},[56,2509,86],{"class":62},[56,2511,66],{"class":62},[56,2513,1238],{"class":69},[56,2515,66],{"class":62},[56,2517,75],{"class":62},[56,2519,1245],{"class":207},[56,2521,86],{"class":62},[56,2523,66],{"class":62},[56,2525,1252],{"class":69},[56,2527,66],{"class":62},[56,2529,75],{"class":62},[56,2531,1259],{"class":207},[56,2533,86],{"class":62},[56,2535,66],{"class":62},[56,2537,1266],{"class":69},[56,2539,66],{"class":62},[56,2541,75],{"class":62},[56,2543,1259],{"class":207},[56,2545,86],{"class":62},[56,2547,66],{"class":62},[56,2549,1279],{"class":69},[56,2551,66],{"class":62},[56,2553,75],{"class":62},[56,2555,134],{"class":62},[56,2557,86],{"class":62},[56,2559,66],{"class":62},[56,2561,1292],{"class":69},[56,2563,66],{"class":62},[56,2565,75],{"class":62},[56,2567,134],{"class":62},[56,2569,86],{"class":62},[56,2571,66],{"class":62},[56,2573,1305],{"class":69},[56,2575,66],{"class":62},[56,2577,1310],{"class":62},[56,2579,66],{"class":62},[56,2581,200],{"class":69},[56,2583,66],{"class":62},[56,2585,75],{"class":62},[56,2587,2588],{"class":207},"660",[56,2590,86],{"class":62},[56,2592,66],{"class":62},[56,2594,215],{"class":69},[56,2596,66],{"class":62},[56,2598,75],{"class":62},[56,2600,2209],{"class":207},[56,2602,86],{"class":62},[56,2604,66],{"class":62},[56,2606,229],{"class":69},[56,2608,66],{"class":62},[56,2610,234],{"class":62},[56,2612,66],{"class":62},[56,2614,949],{"class":80},[56,2616,66],{"class":62},[56,2618,244],{"class":62},[56,2620,66],{"class":62},[56,2622,70],{"class":69},[56,2624,66],{"class":62},[56,2626,75],{"class":62},[56,2628,66],{"class":62},[56,2630,2631],{"class":80},"ea3e7e96bbccf530",[56,2633,66],{"class":62},[56,2635,86],{"class":62},[56,2637,66],{"class":62},[56,2639,91],{"class":69},[56,2641,66],{"class":62},[56,2643,75],{"class":62},[56,2645,66],{"class":62},[56,2647,398],{"class":80},[56,2649,66],{"class":62},[56,2651,86],{"class":62},[56,2653,66],{"class":62},[56,2655,109],{"class":69},[56,2657,66],{"class":62},[56,2659,75],{"class":62},[56,2661,66],{"class":62},[56,2663,118],{"class":80},[56,2665,66],{"class":62},[56,2667,86],{"class":62},[56,2669,66],{"class":62},[56,2671,127],{"class":69},[56,2673,66],{"class":62},[56,2675,75],{"class":62},[56,2677,66],{"class":62},[56,2679,2680],{"class":80},"Http in node created api for updating the todo item",[56,2682,66],{"class":62},[56,2684,86],{"class":62},[56,2686,66],{"class":62},[56,2688,440],{"class":69},[56,2690,66],{"class":62},[56,2692,75],{"class":62},[56,2694,134],{"class":62},[56,2696,86],{"class":62},[56,2698,66],{"class":62},[56,2700,200],{"class":69},[56,2702,66],{"class":62},[56,2704,75],{"class":62},[56,2706,2707],{"class":207},"650",[56,2709,86],{"class":62},[56,2711,66],{"class":62},[56,2713,215],{"class":69},[56,2715,66],{"class":62},[56,2717,75],{"class":62},[56,2719,320],{"class":207},[56,2721,86],{"class":62},[56,2723,66],{"class":62},[56,2725,229],{"class":69},[56,2727,66],{"class":62},[56,2729,2730],{"class":62},":[]}]\n",[14,2732,2733,2734,2739],{},"For more details, refer to the ",[2735,2736,2738],"a",{"href":2737},"\u002Fblueprints\u002Fgetting-started\u002Fcrud\u002F","CRUD API Blueprint",", where we have created CRUD APIs to store, retrieve, delete, and update the data from MongoDB database.",[18,2741,2743],{"id":2742},"securing-your-apis","Securing Your APIs",[14,2745,2746],{},"APIs without security are open doors to your application. Here are essential practices for protecting your endpoints:",[2748,2749,2751],"h3",{"id":2750},"authentication","Authentication",[14,2753,2754],{},"The simplest approach is HTTP Basic Authentication. Add authentication to your http-in nodes:",[23,2756,2757,2765,2768],{},[26,2758,2759,2760,2764],{},"Open your ",[2761,2762,2763],"strong",{},"http-in"," node",[26,2766,2767],{},"Enable \"Use authentication\"",[26,2769,2770],{},"Set a username and password",[14,2772,2773],{},"Node-RED will reject requests without valid credentials. For production systems, consider more robust options like:",[2775,2776,2777,2783,2789],"ul",{},[26,2778,2779,2782],{},[2761,2780,2781],{},"API Keys",": Send a secret key in headers that your flow validates",[26,2784,2785,2788],{},[2761,2786,2787],{},"OAuth 2.0",": Industry-standard authorization for third-party access",[26,2790,2791,2794],{},[2761,2792,2793],{},"JWT Tokens",": Stateless authentication tokens that carry user information",[2748,2796,2798],{"id":2797},"rate-limiting","Rate Limiting",[14,2800,2801,2802,2805],{},"Prevent abuse by limiting how often someone can hit your endpoints. Use the ",[33,2803,2804],{},"node-red-contrib-rate-limit"," node to throttle requests:",[47,2807,2812],{"className":2808,"code":2810,"language":2811},[2809],"language-text","npm install node-red-contrib-rate-limit\n","text",[33,2813,2810],{"__ignoreMap":52},[14,2815,2816],{},"Place it after your http-in node to block excessive requests from the same source.",[2748,2818,2820],{"id":2819},"https-only","HTTPS Only",[14,2822,2823],{},"Never expose APIs over plain HTTP in production. Always use HTTPS to encrypt data in transit. If you're using FlowFuse, HTTPS is handled automatically. For self-hosted instances, configure Node-RED behind a reverse proxy (nginx, Apache) with SSL certificates.",[2748,2825,2827],{"id":2826},"input-validation","Input Validation",[14,2829,2830],{},"Always validate incoming data. Don't trust anything users send:",[47,2832,2836],{"className":2833,"code":2834,"language":2835,"meta":52,"style":52},"language-javascript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F In a function node\nif (!msg.payload.id || typeof msg.payload.id !== 'string') {\n    msg.statusCode = 400;\n    msg.payload = { error: \"Invalid ID\" };\n    return msg;\n}\n","javascript",[33,2837,2838,2844,2904,2923,2954,2964],{"__ignoreMap":52},[56,2839,2840],{"class":58,"line":59},[56,2841,2843],{"class":2842},"sHwdD","\u002F\u002F In a function node\n",[56,2845,2847,2851,2854,2857,2859,2862,2864,2866,2869,2872,2875,2878,2880,2882,2884,2886,2889,2892,2895,2898,2901],{"class":58,"line":2846},2,[56,2848,2850],{"class":2849},"s7zQu","if",[56,2852,2853],{"class":1138}," (",[56,2855,2856],{"class":62},"!",[56,2858,603],{"class":1138},[56,2860,2861],{"class":62},".",[56,2863,585],{"class":1138},[56,2865,2861],{"class":62},[56,2867,2868],{"class":1138},"id ",[56,2870,2871],{"class":62},"||",[56,2873,2874],{"class":62}," typeof",[56,2876,2877],{"class":1138}," msg",[56,2879,2861],{"class":62},[56,2881,585],{"class":1138},[56,2883,2861],{"class":62},[56,2885,2868],{"class":1138},[56,2887,2888],{"class":62},"!==",[56,2890,2891],{"class":62}," '",[56,2893,2894],{"class":80},"string",[56,2896,2897],{"class":62},"'",[56,2899,2900],{"class":1138},") ",[56,2902,2903],{"class":62},"{\n",[56,2905,2907,2910,2912,2914,2917,2920],{"class":58,"line":2906},3,[56,2908,2909],{"class":1138},"    msg",[56,2911,2861],{"class":62},[56,2913,311],{"class":1138},[56,2915,2916],{"class":62}," =",[56,2918,2919],{"class":207}," 400",[56,2921,2922],{"class":62},";\n",[56,2924,2926,2928,2930,2932,2934,2937,2941,2943,2946,2949,2951],{"class":58,"line":2925},4,[56,2927,2909],{"class":1138},[56,2929,2861],{"class":62},[56,2931,585],{"class":1138},[56,2933,2916],{"class":62},[56,2935,2936],{"class":62}," {",[56,2938,2940],{"class":2939},"swJcz"," error",[56,2942,75],{"class":62},[56,2944,2945],{"class":62}," \"",[56,2947,2948],{"class":80},"Invalid ID",[56,2950,66],{"class":62},[56,2952,2953],{"class":62}," };\n",[56,2955,2957,2960,2962],{"class":58,"line":2956},5,[56,2958,2959],{"class":2849},"    return",[56,2961,2877],{"class":1138},[56,2963,2922],{"class":62},[56,2965,2967],{"class":58,"line":2966},6,[56,2968,2969],{"class":62},"}\n",[14,2971,2972],{},"Check data types, required fields, and acceptable values before processing.",[2748,2974,2976],{"id":2975},"cors-configuration","CORS Configuration",[14,2978,2979,2980,2982],{},"If your API is called from web browsers, configure CORS properly. Add an ",[2761,2981,274],{}," node and set headers:",[47,2984,2987],{"className":2985,"code":2986,"language":2811},[2809],"Access-Control-Allow-Origin: https:\u002F\u002Fyourdomain.com\nAccess-Control-Allow-Methods: GET, POST, PUT, DELETE\nAccess-Control-Allow-Headers: Content-Type, Authorization\n",[33,2988,2986],{"__ignoreMap":52},[14,2990,2991,2992,2995,2996,2999],{},"Never use ",[33,2993,2994],{},"*"," for ",[33,2997,2998],{},"Allow-Origin"," in production, specify exact domains.",[18,3001,3003],{"id":3002},"example-reading-data","Example: Reading Data",[14,3005,3006],{},"Now that you've learned how to create REST APIs in Node-RED, let's explore an example of reading data using a HTTP GET request. This example will demonstrate how to fetch data from an external API and process it and display on dashboard chart.",[14,3008,3009,3010,3014,3015,2861],{},"For the example we will fetch the data of ",[2735,3011,3013],{"href":3012},"\u002Fplatform\u002Fdashboard\u002F","Node-RED Dashboard 2.0"," Downloads from npm registry api.\n",[33,3016,3017],{},"https:\u002F\u002Fapi.npmjs.org\u002Fdownloads\u002Frange\u002Flast-month\u002F@flowforge\u002Fnode-red-dashboard",[14,3019,3020],{},"A simple flow to fetch data from npm registry  would be:",[44,3022,3023],{},[47,3024,3026],{"className":49,"code":3025,"language":51,"meta":52,"style":52},"[{\"id\":\"32b083d0ca67265f\",\"type\":\"inject\",\"z\":\"977143edb097b685\",\"name\":\"\",\"props\":[{\"p\":\"payload\"},{\"p\":\"topic\",\"vt\":\"str\"}],\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"topic\":\"\",\"payload\":\"\",\"payloadType\":\"date\",\"x\":240,\"y\":1100,\"wires\":[[\"53db14b9a848d5ce\"]]},{\"id\":\"53db14b9a848d5ce\",\"type\":\"http request\",\"z\":\"977143edb097b685\",\"name\":\"\",\"method\":\"GET\",\"ret\":\"obj\",\"paytoqs\":\"ignore\",\"url\":\"https:\u002F\u002Fapi.npmjs.org\u002Fdownloads\u002Frange\u002Flast-month\u002F@flowforge\u002Fnode-red-dashboard\",\"tls\":\"\",\"persist\":false,\"proxy\":\"\",\"insecureHTTPParser\":false,\"authType\":\"\",\"senderr\":false,\"headers\":[],\"x\":410,\"y\":1100,\"wires\":[[\"9e08fa8d25a19f24\"]]},{\"id\":\"9e08fa8d25a19f24\",\"type\":\"debug\",\"z\":\"977143edb097b685\",\"name\":\"debug 1\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"false\",\"statusVal\":\"\",\"statusType\":\"auto\",\"x\":580,\"y\":1100,\"wires\":[]}]\n",[33,3027,3028],{"__ignoreMap":52},[56,3029,3030,3032,3034,3036,3038,3040,3042,3045,3047,3049,3051,3053,3055,3057,3059,3062,3064,3066,3068,3070,3072,3074,3076,3078,3080,3082,3084,3086,3088,3090,3092,3094,3096,3099,3101,3103,3105,3107,3109,3111,3113,3115,3117,3120,3122,3124,3126,3128,3130,3133,3135,3137,3139,3142,3144,3146,3148,3151,3153,3155,3157,3160,3162,3164,3166,3168,3170,3173,3175,3177,3179,3181,3183,3186,3188,3190,3192,3195,3197,3199,3202,3204,3206,3208,3210,3212,3214,3216,3218,3220,3222,3224,3226,3228,3230,3233,3235,3237,3239,3242,3244,3246,3248,3250,3252,3254,3257,3259,3261,3263,3265,3267,3270,3272,3274,3276,3278,3280,3282,3285,3287,3289,3291,3293,3295,3297,3299,3301,3303,3305,3307,3309,3311,3313,3315,3318,3320,3322,3324,3326,3328,3330,3332,3334,3336,3338,3340,3342,3344,3346,3348,3350,3352,3354,3356,3358,3360,3363,3365,3367,3369,3372,3374,3376,3378,3381,3383,3385,3387,3390,3392,3394,3396,3399,3401,3403,3405,3407,3409,3411,3413,3415,3417,3419,3421,3424,3426,3428,3430,3432,3434,3437,3439,3441,3443,3446,3448,3450,3452,3454,3456,3459,3461,3463,3465,3468,3470,3472,3474,3476,3478,3481,3483,3485,3487,3489,3491,3493,3495,3497,3499,3501,3504,3506,3508,3510,3512,3514,3516,3518,3520,3522,3524,3526,3528,3531,3533,3535,3537,3539,3541,3543,3545,3547,3549,3551,3553,3555,3557,3559,3561,3563,3565,3567,3569,3571,3573,3575,3577,3579,3581,3583,3585,3587,3589,3591,3593,3595,3597,3599,3601,3603,3605,3607,3609,3611,3613,3615,3617,3619,3621,3623,3625,3627,3629,3631,3633,3635,3637,3639,3641,3644,3646,3648,3650,3652,3654,3656,3658,3660,3662,3664,3666,3668,3670,3672,3674,3676,3678,3680,3682,3684,3687,3689,3691,3693,3695,3697,3699,3701,3703,3705,3707],{"class":58,"line":59},[56,3031,63],{"class":62},[56,3033,66],{"class":62},[56,3035,70],{"class":69},[56,3037,66],{"class":62},[56,3039,75],{"class":62},[56,3041,66],{"class":62},[56,3043,3044],{"class":80},"32b083d0ca67265f",[56,3046,66],{"class":62},[56,3048,86],{"class":62},[56,3050,66],{"class":62},[56,3052,91],{"class":69},[56,3054,66],{"class":62},[56,3056,75],{"class":62},[56,3058,66],{"class":62},[56,3060,3061],{"class":80},"inject",[56,3063,66],{"class":62},[56,3065,86],{"class":62},[56,3067,66],{"class":62},[56,3069,109],{"class":69},[56,3071,66],{"class":62},[56,3073,75],{"class":62},[56,3075,66],{"class":62},[56,3077,118],{"class":80},[56,3079,66],{"class":62},[56,3081,86],{"class":62},[56,3083,66],{"class":62},[56,3085,127],{"class":69},[56,3087,66],{"class":62},[56,3089,75],{"class":62},[56,3091,134],{"class":62},[56,3093,86],{"class":62},[56,3095,66],{"class":62},[56,3097,3098],{"class":69},"props",[56,3100,66],{"class":62},[56,3102,553],{"class":62},[56,3104,66],{"class":62},[56,3106,14],{"class":558},[56,3108,66],{"class":62},[56,3110,75],{"class":62},[56,3112,66],{"class":62},[56,3114,585],{"class":80},[56,3116,66],{"class":62},[56,3118,3119],{"class":62},"},{",[56,3121,66],{"class":62},[56,3123,14],{"class":558},[56,3125,66],{"class":62},[56,3127,75],{"class":62},[56,3129,66],{"class":62},[56,3131,3132],{"class":80},"topic",[56,3134,66],{"class":62},[56,3136,86],{"class":62},[56,3138,66],{"class":62},[56,3140,3141],{"class":558},"vt",[56,3143,66],{"class":62},[56,3145,75],{"class":62},[56,3147,66],{"class":62},[56,3149,3150],{"class":80},"str",[56,3152,66],{"class":62},[56,3154,644],{"class":62},[56,3156,66],{"class":62},[56,3158,3159],{"class":69},"repeat",[56,3161,66],{"class":62},[56,3163,75],{"class":62},[56,3165,134],{"class":62},[56,3167,86],{"class":62},[56,3169,66],{"class":62},[56,3171,3172],{"class":69},"crontab",[56,3174,66],{"class":62},[56,3176,75],{"class":62},[56,3178,134],{"class":62},[56,3180,86],{"class":62},[56,3182,66],{"class":62},[56,3184,3185],{"class":69},"once",[56,3187,66],{"class":62},[56,3189,182],{"class":62},[56,3191,66],{"class":62},[56,3193,3194],{"class":69},"onceDelay",[56,3196,66],{"class":62},[56,3198,75],{"class":62},[56,3200,3201],{"class":207},"0.1",[56,3203,86],{"class":62},[56,3205,66],{"class":62},[56,3207,3132],{"class":69},[56,3209,66],{"class":62},[56,3211,75],{"class":62},[56,3213,134],{"class":62},[56,3215,86],{"class":62},[56,3217,66],{"class":62},[56,3219,585],{"class":69},[56,3221,66],{"class":62},[56,3223,75],{"class":62},[56,3225,134],{"class":62},[56,3227,86],{"class":62},[56,3229,66],{"class":62},[56,3231,3232],{"class":69},"payloadType",[56,3234,66],{"class":62},[56,3236,75],{"class":62},[56,3238,66],{"class":62},[56,3240,3241],{"class":80},"date",[56,3243,66],{"class":62},[56,3245,86],{"class":62},[56,3247,66],{"class":62},[56,3249,200],{"class":69},[56,3251,66],{"class":62},[56,3253,75],{"class":62},[56,3255,3256],{"class":207},"240",[56,3258,86],{"class":62},[56,3260,66],{"class":62},[56,3262,215],{"class":69},[56,3264,66],{"class":62},[56,3266,75],{"class":62},[56,3268,3269],{"class":207},"1100",[56,3271,86],{"class":62},[56,3273,66],{"class":62},[56,3275,229],{"class":69},[56,3277,66],{"class":62},[56,3279,234],{"class":62},[56,3281,66],{"class":62},[56,3283,3284],{"class":80},"53db14b9a848d5ce",[56,3286,66],{"class":62},[56,3288,244],{"class":62},[56,3290,66],{"class":62},[56,3292,70],{"class":69},[56,3294,66],{"class":62},[56,3296,75],{"class":62},[56,3298,66],{"class":62},[56,3300,3284],{"class":80},[56,3302,66],{"class":62},[56,3304,86],{"class":62},[56,3306,66],{"class":62},[56,3308,91],{"class":69},[56,3310,66],{"class":62},[56,3312,75],{"class":62},[56,3314,66],{"class":62},[56,3316,3317],{"class":80},"http request",[56,3319,66],{"class":62},[56,3321,86],{"class":62},[56,3323,66],{"class":62},[56,3325,109],{"class":69},[56,3327,66],{"class":62},[56,3329,75],{"class":62},[56,3331,66],{"class":62},[56,3333,118],{"class":80},[56,3335,66],{"class":62},[56,3337,86],{"class":62},[56,3339,66],{"class":62},[56,3341,127],{"class":69},[56,3343,66],{"class":62},[56,3345,75],{"class":62},[56,3347,134],{"class":62},[56,3349,86],{"class":62},[56,3351,66],{"class":62},[56,3353,159],{"class":69},[56,3355,66],{"class":62},[56,3357,75],{"class":62},[56,3359,66],{"class":62},[56,3361,3362],{"class":80},"GET",[56,3364,66],{"class":62},[56,3366,86],{"class":62},[56,3368,66],{"class":62},[56,3370,3371],{"class":69},"ret",[56,3373,66],{"class":62},[56,3375,75],{"class":62},[56,3377,66],{"class":62},[56,3379,3380],{"class":80},"obj",[56,3382,66],{"class":62},[56,3384,86],{"class":62},[56,3386,66],{"class":62},[56,3388,3389],{"class":69},"paytoqs",[56,3391,66],{"class":62},[56,3393,75],{"class":62},[56,3395,66],{"class":62},[56,3397,3398],{"class":80},"ignore",[56,3400,66],{"class":62},[56,3402,86],{"class":62},[56,3404,66],{"class":62},[56,3406,141],{"class":69},[56,3408,66],{"class":62},[56,3410,75],{"class":62},[56,3412,66],{"class":62},[56,3414,3017],{"class":80},[56,3416,66],{"class":62},[56,3418,86],{"class":62},[56,3420,66],{"class":62},[56,3422,3423],{"class":69},"tls",[56,3425,66],{"class":62},[56,3427,75],{"class":62},[56,3429,134],{"class":62},[56,3431,86],{"class":62},[56,3433,66],{"class":62},[56,3435,3436],{"class":69},"persist",[56,3438,66],{"class":62},[56,3440,182],{"class":62},[56,3442,66],{"class":62},[56,3444,3445],{"class":69},"proxy",[56,3447,66],{"class":62},[56,3449,75],{"class":62},[56,3451,134],{"class":62},[56,3453,86],{"class":62},[56,3455,66],{"class":62},[56,3457,3458],{"class":69},"insecureHTTPParser",[56,3460,66],{"class":62},[56,3462,182],{"class":62},[56,3464,66],{"class":62},[56,3466,3467],{"class":69},"authType",[56,3469,66],{"class":62},[56,3471,75],{"class":62},[56,3473,134],{"class":62},[56,3475,86],{"class":62},[56,3477,66],{"class":62},[56,3479,3480],{"class":69},"senderr",[56,3482,66],{"class":62},[56,3484,182],{"class":62},[56,3486,66],{"class":62},[56,3488,329],{"class":69},[56,3490,66],{"class":62},[56,3492,1310],{"class":62},[56,3494,66],{"class":62},[56,3496,200],{"class":69},[56,3498,66],{"class":62},[56,3500,75],{"class":62},[56,3502,3503],{"class":207},"410",[56,3505,86],{"class":62},[56,3507,66],{"class":62},[56,3509,215],{"class":69},[56,3511,66],{"class":62},[56,3513,75],{"class":62},[56,3515,3269],{"class":207},[56,3517,86],{"class":62},[56,3519,66],{"class":62},[56,3521,229],{"class":69},[56,3523,66],{"class":62},[56,3525,234],{"class":62},[56,3527,66],{"class":62},[56,3529,3530],{"class":80},"9e08fa8d25a19f24",[56,3532,66],{"class":62},[56,3534,244],{"class":62},[56,3536,66],{"class":62},[56,3538,70],{"class":69},[56,3540,66],{"class":62},[56,3542,75],{"class":62},[56,3544,66],{"class":62},[56,3546,3530],{"class":80},[56,3548,66],{"class":62},[56,3550,86],{"class":62},[56,3552,66],{"class":62},[56,3554,91],{"class":69},[56,3556,66],{"class":62},[56,3558,75],{"class":62},[56,3560,66],{"class":62},[56,3562,1558],{"class":80},[56,3564,66],{"class":62},[56,3566,86],{"class":62},[56,3568,66],{"class":62},[56,3570,109],{"class":69},[56,3572,66],{"class":62},[56,3574,75],{"class":62},[56,3576,66],{"class":62},[56,3578,118],{"class":80},[56,3580,66],{"class":62},[56,3582,86],{"class":62},[56,3584,66],{"class":62},[56,3586,127],{"class":69},[56,3588,66],{"class":62},[56,3590,75],{"class":62},[56,3592,66],{"class":62},[56,3594,1591],{"class":80},[56,3596,66],{"class":62},[56,3598,86],{"class":62},[56,3600,66],{"class":62},[56,3602,1600],{"class":69},[56,3604,66],{"class":62},[56,3606,881],{"class":62},[56,3608,66],{"class":62},[56,3610,1609],{"class":69},[56,3612,66],{"class":62},[56,3614,881],{"class":62},[56,3616,66],{"class":62},[56,3618,1618],{"class":69},[56,3620,66],{"class":62},[56,3622,182],{"class":62},[56,3624,66],{"class":62},[56,3626,1627],{"class":69},[56,3628,66],{"class":62},[56,3630,182],{"class":62},[56,3632,66],{"class":62},[56,3634,1636],{"class":69},[56,3636,66],{"class":62},[56,3638,75],{"class":62},[56,3640,66],{"class":62},[56,3642,3643],{"class":80},"false",[56,3645,66],{"class":62},[56,3647,86],{"class":62},[56,3649,66],{"class":62},[56,3651,1672],{"class":69},[56,3653,66],{"class":62},[56,3655,75],{"class":62},[56,3657,134],{"class":62},[56,3659,86],{"class":62},[56,3661,66],{"class":62},[56,3663,1685],{"class":69},[56,3665,66],{"class":62},[56,3667,75],{"class":62},[56,3669,66],{"class":62},[56,3671,1694],{"class":80},[56,3673,66],{"class":62},[56,3675,86],{"class":62},[56,3677,66],{"class":62},[56,3679,200],{"class":69},[56,3681,66],{"class":62},[56,3683,75],{"class":62},[56,3685,3686],{"class":207},"580",[56,3688,86],{"class":62},[56,3690,66],{"class":62},[56,3692,215],{"class":69},[56,3694,66],{"class":62},[56,3696,75],{"class":62},[56,3698,3269],{"class":207},[56,3700,86],{"class":62},[56,3702,66],{"class":62},[56,3704,229],{"class":69},[56,3706,66],{"class":62},[56,3708,2730],{"class":62},[14,3710,3711],{},"Where we paste the API URL into the settings panel:",[14,3713,3714],{},[3715,3716],"img",{"alt":3717,"src":3718,"title":3719},"\"HTTP GET URL setting\"","\u002Fdocs\u002Fnode-red\u002Fintegration-technologies\u002Fimages\u002Fhttp-get-npmapi.png","HTTP GET URL setting",[14,3721,3722,3723,3726],{},"When running this flow you'll see a blob of text in the ",[33,3724,3725],{},"Debug"," pane. This is a\ngreat first start, but a blob isn't useful for the rest of the flow.",[14,3728,3729,3730,3734,3735,3738,3739,3742],{},"We need to parse the data as JSON. While the ",[2735,3731,3733],{"href":3732},"\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fparsers\u002Fjson\u002F","JSON node","\nwould work, the HTTP request node can do this natively. Let ",[33,3736,3737],{},"a parsed JSON object","\nthe ",[33,3740,3741],{},"Return"," settings of the HTTP request node.",[14,3744,3745,3746,3749,3750,2861],{},"So now we got the data, and a little more than we need, so let's change the\nmessage output to keep only what we're interested in; ",[33,3747,3748],{},"payload.downloads",". To\ndo this, we'll use the ",[2735,3751,3753],{"href":3752},"\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Ffunction\u002Fchange\u002F","change node",[14,3755,3756],{},[3715,3757],{"alt":3758,"src":3759,"title":3760},"Change node to set the payload with downloads","\u002Fdocs\u002Fnode-red\u002Fintegration-technologies\u002Fimages\u002Fchange-node-set-downloads-payload.png","Change node to set the payload",[2748,3762,3764],{"id":3763},"building-the-dashboard","Building the Dashboard",[14,3766,3767,3768,3772],{},"Follow the ",[2735,3769,3771],{"href":3770},"\u002Fblog\u002F2024\u002F03\u002Fdashboard-getting-started\u002F","Dashboard getting started guide"," to get up and running.",[14,3774,3775,3776,3779,3780,3782],{},"Now we drag in the ",[33,3777,3778],{},"chart"," node that's available after installing the dashboard\npackage and make sure it' input comes from the configured ",[33,3781,511],{}," node. Before\nhitting the deploy button the dashboard itself needs configuring:",[14,3784,3785,3786,3789,3790],{},"First add configuration for the ",[33,3787,3788],{},"ui-group",": ",[3715,3791],{"alt":3792,"src":3793,"title":3794},"Configure the UI Group","\u002Fdocs\u002Fnode-red\u002Fintegration-technologies\u002Fimages\u002Fdashboard-config-chart.png","Configure the chart",[14,3796,3797,3798,3800,3801,3789,3804,2861],{},"To setup the ",[33,3799,3788],{}," correctly you'll need to add configuration for the ",[33,3802,3803],{},"ui-page",[3715,3805],{"alt":3806,"src":3807,"title":3808},"\"Configure the ui-group\"","\u002Fdocs\u002Fnode-red\u002Fintegration-technologies\u002Fimages\u002Fdashboard-config-ui-group.png","Configure the UI group",[14,3810,3811,3812,3815,3816,2861],{},"To create the UI page it requires another 2 config settings, ",[33,3813,3814],{},"ui-base",", and the theming through ",[33,3817,3818],{},"ui-theme",[14,3820,3821],{},[3715,3822],{"alt":3823,"src":3824},"Configure the UI Base","\u002Fdocs\u002Fnode-red\u002Fintegration-technologies\u002Fimages\u002Fdashboard-config-ui-base.png",[14,3826,3827],{},"The default theme is great, so just accept that, and save all dialogs to continue the chart creation.",[3829,3830,3832],"h4",{"id":3831},"normalizing-the-data","Normalizing the data",[14,3834,3835,3836,3838,3839,3841,3842,3846],{},"The data for the chart needs to be changed before we can show it. The messages should have a ",[33,3837,200],{}," and ",[33,3840,215],{}," key. So let's prepare the data with\na combination of the ",[2735,3843,3845],{"href":3844},"\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fsequence\u002Fsplit\u002F","Split"," and change node.",[14,3848,3849,3850,3838,3853,3856],{},"The Split node with the default configuration allows to 30 elements of the array\nto be mapped individually. The change node will set the ",[33,3851,3852],{},"payload.x",[33,3854,3855],{},"payload.y","\non the message:",[14,3858,3859],{},[3715,3860],{"alt":3861,"src":3862,"title":3863},"Change node to prepare the data for a chart","\u002Fdocs\u002Fnode-red\u002Fintegration-technologies\u002Fimages\u002Fchange-node-prepare-data-chart.png","Prepare data for the chart",[14,3865,3866],{},"Connect the change node output to a new chart node, and voila:",[14,3868,3869],{},[3715,3870],{"alt":3871,"src":3872},"Data in the chart node","\u002Fdocs\u002Fnode-red\u002Fintegration-technologies\u002Fimages\u002Fchart-with-data.png",[2748,3874,3876],{"id":3875},"keeping-the-data-up-to-date","Keeping the data up-to-date",[14,3878,3879,3880,3883,3884,3888],{},"While we created a chart and it has some data, there's one more thing to explain.\nHow can the data be kept up-to-date? It's straight forward to have the ",[33,3881,3882],{},"Inject","\nnode ",[2735,3885,3887],{"href":3886},"\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fcommon\u002Finject\u002F","run every night",",\nbut the chart would now have multiple data points\nfor the same day. This paints multiple lines on top of each other. While that works,\nthe hover of the chart will display the duplication and it's wastefull.",[14,3890,3891,3892,3901],{},"So before we update the chart we need to send a message to the chart where the\n",[2735,3893,3897,3898],{"href":3894,"rel":3895},"https:\u002F\u002Fdashboard.flowfuse.com\u002Fnodes\u002Fwidgets\u002Fui-chart.html#removing-data",[3896],"nofollow","payload is ",[33,3899,3900],{},"[]",".\nThat way the chart is emptied first, and right afterwards it will\nreceive the new data to write.",[44,3903,3904],{},[47,3905,3907],{"className":49,"code":3906,"language":51,"meta":52,"style":52},"[{\"id\":\"da9a67e8c3ea7742\",\"type\":\"inject\",\"z\":\"977143edb097b685\",\"name\":\"\",\"props\":[{\"p\":\"payload\"}],\"repeat\":\"\",\"crontab\":\"00 12 * * *\",\"once\":false,\"onceDelay\":0.1,\"topic\":\"\",\"payload\":\"[]\",\"payloadType\":\"json\",\"x\":250,\"y\":960,\"wires\":[[\"efd22a89abc3c06f\",\"a6851a41dba2c39b\"]]},{\"id\":\"a6851a41dba2c39b\",\"type\":\"http request\",\"z\":\"977143edb097b685\",\"name\":\"\",\"method\":\"GET\",\"ret\":\"obj\",\"paytoqs\":\"ignore\",\"url\":\"https:\u002F\u002Fapi.npmjs.org\u002Fdownloads\u002Frange\u002Flast-month\u002F@flowforge\u002Fnode-red-dashboard\",\"tls\":\"\",\"persist\":false,\"proxy\":\"\",\"insecureHTTPParser\":false,\"authType\":\"\",\"senderr\":false,\"headers\":[],\"x\":430,\"y\":960,\"wires\":[[\"7931f7457880f7c3\"]]},{\"id\":\"7931f7457880f7c3\",\"type\":\"change\",\"z\":\"977143edb097b685\",\"name\":\"Only get the Downloads\",\"rules\":[{\"t\":\"set\",\"p\":\"payload\",\"pt\":\"msg\",\"to\":\"payload.downloads\",\"tot\":\"msg\"}],\"action\":\"\",\"property\":\"\",\"from\":\"\",\"to\":\"\",\"reg\":false,\"x\":650,\"y\":960,\"wires\":[[\"74e3b15c7b09726a\"]]},{\"id\":\"74e3b15c7b09726a\",\"type\":\"link out\",\"z\":\"977143edb097b685\",\"name\":\"link out 1\",\"mode\":\"link\",\"links\":[\"43e4aff34b989e83\"],\"x\":815,\"y\":960,\"wires\":[]},{\"id\":\"43e4aff34b989e83\",\"type\":\"link in\",\"z\":\"977143edb097b685\",\"name\":\"Normalize daily data\",\"links\":[\"74e3b15c7b09726a\"],\"x\":195,\"y\":1040,\"wires\":[[\"ca8c62bfbdf75715\"]]},{\"id\":\"ca8c62bfbdf75715\",\"type\":\"split\",\"z\":\"977143edb097b685\",\"name\":\"\",\"splt\":\"\\\\n\",\"spltType\":\"str\",\"arraySplt\":1,\"arraySpltType\":\"len\",\"stream\":false,\"addname\":\"\",\"x\":310,\"y\":1040,\"wires\":[[\"3f462d2c7e3bca50\"]]},{\"id\":\"3f462d2c7e3bca50\",\"type\":\"change\",\"z\":\"977143edb097b685\",\"name\":\"Prepare data for the chart\",\"rules\":[{\"t\":\"set\",\"p\":\"payload.x\",\"pt\":\"msg\",\"to\":\"$toMillis(payload.day)\",\"tot\":\"jsonata\"},{\"t\":\"set\",\"p\":\"payload.y\",\"pt\":\"msg\",\"to\":\"payload.downloads\",\"tot\":\"msg\"},{\"t\":\"delete\",\"p\":\"payload.day\",\"pt\":\"msg\"},{\"t\":\"delete\",\"p\":\"payload.downloads\",\"pt\":\"msg\"}],\"action\":\"\",\"property\":\"\",\"from\":\"\",\"to\":\"\",\"reg\":false,\"x\":510,\"y\":1040,\"wires\":[[\"f4e6a85b8cb8dac0\"]]},{\"id\":\"4b71fc28c2da66e7\",\"type\":\"ui-chart\",\"z\":\"977143edb097b685\",\"group\":\"bac8effac57694e1\",\"name\":\"\",\"label\":\"Daily Downloads\",\"order\":9007199254740991,\"chartType\":\"line\",\"xAxisType\":\"time\",\"removeOlder\":1,\"removeOlderUnit\":\"3600\",\"removeOlderPoints\":\"\",\"colors\":[\"#1f77b4\",\"#aec7e8\",\"#ff7f0e\",\"#2ca02c\",\"#98df8a\",\"#d62728\",\"#ff9896\",\"#9467bd\",\"#c5b0d5\"],\"width\":0,\"height\":0,\"className\":\"\",\"x\":330,\"y\":1120,\"wires\":[[]]},{\"id\":\"f4e6a85b8cb8dac0\",\"type\":\"link out\",\"z\":\"977143edb097b685\",\"name\":\"link out 2\",\"mode\":\"link\",\"links\":[\"6f7068445bfe4311\"],\"x\":675,\"y\":1040,\"wires\":[]},{\"id\":\"6f7068445bfe4311\",\"type\":\"link in\",\"z\":\"977143edb097b685\",\"name\":\"Update the chart\",\"links\":[\"f4e6a85b8cb8dac0\",\"79067215ee592ec9\",\"efd22a89abc3c06f\"],\"x\":195,\"y\":1120,\"wires\":[[\"4b71fc28c2da66e7\"]]},{\"id\":\"efd22a89abc3c06f\",\"type\":\"link out\",\"z\":\"977143edb097b685\",\"name\":\"link out 3\",\"mode\":\"link\",\"links\":[\"6f7068445bfe4311\"],\"x\":415,\"y\":920,\"wires\":[]},{\"id\":\"bac8effac57694e1\",\"type\":\"ui-group\",\"name\":\"NPM Downloads\",\"page\":\"f10b4d0259e43aeb\",\"width\":\"6\",\"height\":\"1\",\"order\":-1},{\"id\":\"f10b4d0259e43aeb\",\"type\":\"ui-page\",\"name\":\"Main\",\"ui\":\"cb79bc4520925e32\",\"path\":\"\u002F\",\"layout\":\"grid\",\"theme\":\"2c5d702b11de7dd1\",\"order\":-1},{\"id\":\"cb79bc4520925e32\",\"type\":\"ui-base\",\"name\":\"My UI\",\"path\":\"\u002Fdashboard\",\"includeClientData\":true,\"acceptsClientConfig\":[\"ui-notification\",\"ui-control\"],\"showPathInSidebar\":false},{\"id\":\"2c5d702b11de7dd1\",\"type\":\"ui-theme\",\"name\":\"Theme Name\",\"colors\":{\"surface\":\"#ffffff\",\"primary\":\"#0094ce\",\"bgPage\":\"#eeeeee\",\"groupBg\":\"#ffffff\",\"groupOutline\":\"#cccccc\"}}]\n",[33,3908,3909],{"__ignoreMap":52},[56,3910,3911,3913,3915,3917,3919,3921,3923,3926,3928,3930,3932,3934,3936,3938,3940,3942,3944,3946,3948,3950,3952,3954,3956,3958,3960,3962,3964,3966,3968,3970,3972,3974,3976,3978,3980,3982,3984,3986,3988,3990,3992,3994,3996,3998,4000,4002,4004,4006,4008,4010,4012,4014,4016,4018,4020,4023,4025,4027,4029,4031,4033,4035,4037,4039,4041,4043,4045,4047,4049,4051,4053,4055,4057,4059,4061,4063,4065,4067,4069,4071,4073,4075,4077,4079,4081,4083,4085,4087,4089,4091,4093,4095,4097,4099,4101,4103,4105,4107,4109,4111,4114,4116,4118,4120,4122,4124,4126,4129,4131,4133,4135,4138,4140,4142,4144,4146,4148,4150,4152,4154,4156,4158,4160,4162,4164,4166,4168,4170,4172,4174,4176,4178,4180,4182,4184,4186,4188,4190,4192,4194,4196,4198,4200,4202,4204,4206,4208,4210,4212,4214,4216,4218,4220,4222,4224,4226,4228,4230,4232,4234,4236,4238,4240,4242,4244,4246,4248,4250,4252,4254,4256,4258,4260,4262,4264,4266,4268,4270,4272,4274,4276,4278,4280,4282,4284,4286,4288,4290,4292,4294,4296,4298,4300,4302,4304,4306,4308,4310,4312,4314,4316,4318,4320,4322,4324,4326,4328,4330,4332,4334,4336,4338,4340,4342,4345,4347,4349,4351,4353,4355,4357,4359,4361,4363,4365,4367,4369,4372,4374,4376,4378,4380,4382,4384,4386,4388,4390,4392,4394,4396,4398,4400,4402,4404,4406,4408,4410,4412,4414,4416,4418,4420,4422,4424,4426,4428,4430,4432,4434,4437,4439,4441,4443,4445,4447,4449,4451,4453,4455,4457,4459,4461,4463,4465,4467,4469,4471,4473,4475,4477,4479,4481,4483,4485,4487,4489,4491,4493,4495,4497,4499,4501,4503,4505,4507,4509,4511,4513,4515,4517,4519,4521,4523,4525,4527,4529,4531,4533,4535,4537,4539,4541,4543,4545,4547,4549,4551,4553,4555,4557,4559,4561,4563,4565,4567,4569,4571,4573,4575,4577,4579,4581,4583,4585,4587,4589,4591,4593,4595,4597,4599,4601,4603,4605,4607,4609,4611,4613,4615,4617,4619,4622,4624,4626,4628,4630,4632,4634,4636,4638,4640,4642,4644,4646,4648,4650,4652,4655,4657,4659,4661,4663,4665,4667,4669,4671,4673,4675,4677,4679,4681,4683,4685,4688,4690,4692,4694,4697,4699,4701,4703,4706,4708,4710,4712,4715,4717,4720,4722,4725,4727,4730,4732,4734,4736,4738,4741,4743,4745,4747,4749,4751,4753,4755,4757,4759,4761,4763,4765,4767,4769,4771,4773,4775,4777,4779,4781,4783,4785,4787,4789,4792,4794,4796,4798,4800,4802,4804,4806,4808,4810,4812,4814,4816,4818,4820,4822,4825,4827,4829,4831,4833,4835,4837,4839,4841,4843,4845,4847,4849,4851,4853,4856,4858,4860,4862,4864,4866,4869,4871,4873,4875,4877,4879,4881,4884,4886,4888,4890,4892,4894,4896,4898,4900,4902,4904,4906,4908,4910,4912,4914,4917,4919,4921,4923,4925,4927,4929,4931,4933,4935,4937,4939,4941,4943,4945,4947,4949,4951,4954,4956,4958,4960,4963,4966,4968,4970,4972,4975,4977,4979,4981,4983,4985,4987,4989,4992,4994,4996,4998,5000,5002,5005,5007,5009,5011,5014,5016,5018,5020,5023,5025,5027,5029,5032,5034,5036,5038,5040,5042,5044,5046,5048,5051,5053,5055,5057,5059,5061,5063,5065,5067,5069,5071,5073,5075,5078,5080,5082,5084,5086,5088,5090,5092,5094,5096,5098,5100,5102,5104,5106,5108,5110,5112,5114,5116,5118,5120,5122,5124,5126,5128,5130,5132,5134,5136,5138,5140,5142,5144,5146,5148,5150,5152,5154,5156,5158,5160,5162,5164,5166,5168,5170,5172,5174,5176,5178,5180,5182,5184,5186,5188,5190,5192,5194,5196,5198,5200,5202,5204,5206,5208,5210,5212,5215,5217,5219,5221,5223,5225,5227,5229,5232,5234,5236,5238,5240,5242,5244,5246,5248,5250,5252,5254,5256,5258,5260,5262,5264,5266,5268,5270,5272,5274,5276,5278,5280,5282,5284,5286,5288,5290,5292,5294,5296,5298,5300,5302,5304,5306,5308,5310,5312,5314,5316,5318,5320,5322,5324,5326,5328,5330,5332,5334,5336,5338,5340,5342,5345,5347,5349,5351,5353,5355,5357,5359,5361,5363,5365,5367,5369,5371,5373,5375,5377,5379,5381,5383,5385,5387,5389,5391,5393,5395,5397,5399,5401,5403,5405,5407,5409,5411,5413,5415,5417,5419,5421,5423,5425,5427,5429,5431,5433,5435,5437,5439,5441,5443,5445,5447,5449,5451,5453,5455,5457,5459,5461,5463,5465,5467,5469,5471,5473,5475,5477,5480,5482,5484,5486,5488,5490,5492,5494,5496,5498,5500,5502,5504,5507,5509,5511,5513,5515,5517,5519,5521,5524,5526,5528,5530,5532,5534,5536,5538,5541,5543,5545,5547,5549,5551,5553,5555,5557,5559,5561,5563,5566,5568,5570,5572,5575,5577,5579,5581,5583,5585,5587,5589,5591,5593,5596,5598,5600,5602,5605,5607,5609,5611,5614,5616,5618,5621,5623,5625,5628,5630,5632,5634,5636,5638,5640,5642,5645,5647,5649,5651,5654,5656,5658,5660,5663,5665,5667,5669,5671,5673,5676,5678,5680,5682,5685,5687,5689,5691,5694,5696,5698,5700,5702,5704,5707,5709,5711,5713,5716,5718,5720,5722,5725,5727,5729,5731,5734,5736,5738,5740,5743,5745,5747,5749,5752,5754,5756,5758,5761,5763,5765,5767,5770,5772,5774,5776,5779,5781,5783,5785,5788,5790,5792,5794,5797,5799,5801,5803,5805,5807,5810,5812,5814,5816,5818,5820,5823,5825,5827,5829,5831,5833,5835,5837,5839,5842,5844,5846,5848,5850,5852,5855,5857,5859,5861,5863,5866,5868,5870,5872,5874,5876,5878,5880,5882,5884,5886,5888,5890,5892,5894,5896,5898,5900,5902,5904,5906,5908,5910,5912,5914,5916,5918,5920,5922,5924,5927,5929,5931,5933,5935,5937,5939,5941,5943,5945,5947,5949,5951,5953,5955,5957,5960,5962,5964,5966,5968,5970,5972,5975,5977,5979,5981,5983,5985,5987,5989,5991,5993,5995,5997,5999,6001,6003,6005,6007,6009,6011,6013,6015,6017,6019,6021,6023,6025,6027,6029,6031,6033,6035,6037,6039,6041,6043,6045,6047,6049,6051,6053,6055,6058,6060,6062,6064,6066,6068,6070,6072,6074,6076,6078,6080,6083,6085,6087,6089,6091,6093,6095,6097,6099,6101,6103,6105,6107,6109,6111,6113,6115,6117,6119,6121,6123,6125,6127,6129,6131,6133,6135,6137,6139,6141,6143,6145,6147,6149,6151,6153,6155,6157,6159,6161,6163,6165,6167,6169,6171,6173,6175,6177,6179,6181,6183,6185,6187,6189,6191,6193,6196,6198,6200,6202,6204,6206,6208,6210,6212,6214,6216,6218,6220,6222,6224,6226,6228,6230,6232,6234,6236,6238,6240,6243,6245,6247,6249,6251,6253,6256,6258,6260,6262,6264,6266,6268,6270,6272,6274,6276,6278,6280,6282,6284,6286,6288,6290,6292,6294,6296,6298,6300,6302,6304,6306,6308,6311,6313,6315,6317,6320,6322,6324,6326,6329,6331,6333,6335,6337,6339,6341,6343,6346,6348,6350,6352,6354,6356,6358,6360,6362,6364,6366,6368,6370,6372,6374,6377,6379,6381,6383,6385,6387,6389,6391,6393,6395,6397,6399,6401,6403,6405,6407,6409,6411,6413,6415,6417,6419,6421,6424,6426,6428,6430,6433,6435,6437,6439,6442,6444,6446,6448,6451,6453,6455,6457,6460,6462,6464,6466,6469,6471,6473,6475,6478,6480,6482,6484,6487,6489,6491,6493,6496,6498,6500,6502,6504,6506,6508,6510,6512,6514,6516,6518,6520,6522,6524,6526,6528,6530,6532,6534,6536,6538,6540,6542,6544,6546,6548,6550,6552,6554,6557,6559,6561,6563,6565,6567,6569,6571,6574,6576,6578,6580,6583,6585,6587,6589,6592,6594,6596,6598,6601,6603,6605,6607,6610,6612,6614,6616,6619,6621,6624,6626,6628,6630,6632,6634,6636,6638,6640,6642,6644,6646,6648,6650,6652,6654,6656,6658,6660,6662,6664,6666,6669,6671,6673,6675,6677,6679,6682,6684,6687,6689,6691,6693,6696,6698,6700,6702,6705,6707,6709,6711,6714,6716,6718,6720,6723,6725,6727,6729,6732,6734,6736,6738,6741,6743,6745,6747,6749,6751,6753,6755,6758,6760,6762,6764,6767,6769],{"class":58,"line":59},[56,3912,63],{"class":62},[56,3914,66],{"class":62},[56,3916,70],{"class":69},[56,3918,66],{"class":62},[56,3920,75],{"class":62},[56,3922,66],{"class":62},[56,3924,3925],{"class":80},"da9a67e8c3ea7742",[56,3927,66],{"class":62},[56,3929,86],{"class":62},[56,3931,66],{"class":62},[56,3933,91],{"class":69},[56,3935,66],{"class":62},[56,3937,75],{"class":62},[56,3939,66],{"class":62},[56,3941,3061],{"class":80},[56,3943,66],{"class":62},[56,3945,86],{"class":62},[56,3947,66],{"class":62},[56,3949,109],{"class":69},[56,3951,66],{"class":62},[56,3953,75],{"class":62},[56,3955,66],{"class":62},[56,3957,118],{"class":80},[56,3959,66],{"class":62},[56,3961,86],{"class":62},[56,3963,66],{"class":62},[56,3965,127],{"class":69},[56,3967,66],{"class":62},[56,3969,75],{"class":62},[56,3971,134],{"class":62},[56,3973,86],{"class":62},[56,3975,66],{"class":62},[56,3977,3098],{"class":69},[56,3979,66],{"class":62},[56,3981,553],{"class":62},[56,3983,66],{"class":62},[56,3985,14],{"class":558},[56,3987,66],{"class":62},[56,3989,75],{"class":62},[56,3991,66],{"class":62},[56,3993,585],{"class":80},[56,3995,66],{"class":62},[56,3997,644],{"class":62},[56,3999,66],{"class":62},[56,4001,3159],{"class":69},[56,4003,66],{"class":62},[56,4005,75],{"class":62},[56,4007,134],{"class":62},[56,4009,86],{"class":62},[56,4011,66],{"class":62},[56,4013,3172],{"class":69},[56,4015,66],{"class":62},[56,4017,75],{"class":62},[56,4019,66],{"class":62},[56,4021,4022],{"class":80},"00 12 * * *",[56,4024,66],{"class":62},[56,4026,86],{"class":62},[56,4028,66],{"class":62},[56,4030,3185],{"class":69},[56,4032,66],{"class":62},[56,4034,182],{"class":62},[56,4036,66],{"class":62},[56,4038,3194],{"class":69},[56,4040,66],{"class":62},[56,4042,75],{"class":62},[56,4044,3201],{"class":207},[56,4046,86],{"class":62},[56,4048,66],{"class":62},[56,4050,3132],{"class":69},[56,4052,66],{"class":62},[56,4054,75],{"class":62},[56,4056,134],{"class":62},[56,4058,86],{"class":62},[56,4060,66],{"class":62},[56,4062,585],{"class":69},[56,4064,66],{"class":62},[56,4066,75],{"class":62},[56,4068,66],{"class":62},[56,4070,3900],{"class":80},[56,4072,66],{"class":62},[56,4074,86],{"class":62},[56,4076,66],{"class":62},[56,4078,3232],{"class":69},[56,4080,66],{"class":62},[56,4082,75],{"class":62},[56,4084,66],{"class":62},[56,4086,51],{"class":80},[56,4088,66],{"class":62},[56,4090,86],{"class":62},[56,4092,66],{"class":62},[56,4094,200],{"class":69},[56,4096,66],{"class":62},[56,4098,75],{"class":62},[56,4100,904],{"class":207},[56,4102,86],{"class":62},[56,4104,66],{"class":62},[56,4106,215],{"class":69},[56,4108,66],{"class":62},[56,4110,75],{"class":62},[56,4112,4113],{"class":207},"960",[56,4115,86],{"class":62},[56,4117,66],{"class":62},[56,4119,229],{"class":69},[56,4121,66],{"class":62},[56,4123,234],{"class":62},[56,4125,66],{"class":62},[56,4127,4128],{"class":80},"efd22a89abc3c06f",[56,4130,66],{"class":62},[56,4132,86],{"class":62},[56,4134,66],{"class":62},[56,4136,4137],{"class":80},"a6851a41dba2c39b",[56,4139,66],{"class":62},[56,4141,244],{"class":62},[56,4143,66],{"class":62},[56,4145,70],{"class":69},[56,4147,66],{"class":62},[56,4149,75],{"class":62},[56,4151,66],{"class":62},[56,4153,4137],{"class":80},[56,4155,66],{"class":62},[56,4157,86],{"class":62},[56,4159,66],{"class":62},[56,4161,91],{"class":69},[56,4163,66],{"class":62},[56,4165,75],{"class":62},[56,4167,66],{"class":62},[56,4169,3317],{"class":80},[56,4171,66],{"class":62},[56,4173,86],{"class":62},[56,4175,66],{"class":62},[56,4177,109],{"class":69},[56,4179,66],{"class":62},[56,4181,75],{"class":62},[56,4183,66],{"class":62},[56,4185,118],{"class":80},[56,4187,66],{"class":62},[56,4189,86],{"class":62},[56,4191,66],{"class":62},[56,4193,127],{"class":69},[56,4195,66],{"class":62},[56,4197,75],{"class":62},[56,4199,134],{"class":62},[56,4201,86],{"class":62},[56,4203,66],{"class":62},[56,4205,159],{"class":69},[56,4207,66],{"class":62},[56,4209,75],{"class":62},[56,4211,66],{"class":62},[56,4213,3362],{"class":80},[56,4215,66],{"class":62},[56,4217,86],{"class":62},[56,4219,66],{"class":62},[56,4221,3371],{"class":69},[56,4223,66],{"class":62},[56,4225,75],{"class":62},[56,4227,66],{"class":62},[56,4229,3380],{"class":80},[56,4231,66],{"class":62},[56,4233,86],{"class":62},[56,4235,66],{"class":62},[56,4237,3389],{"class":69},[56,4239,66],{"class":62},[56,4241,75],{"class":62},[56,4243,66],{"class":62},[56,4245,3398],{"class":80},[56,4247,66],{"class":62},[56,4249,86],{"class":62},[56,4251,66],{"class":62},[56,4253,141],{"class":69},[56,4255,66],{"class":62},[56,4257,75],{"class":62},[56,4259,66],{"class":62},[56,4261,3017],{"class":80},[56,4263,66],{"class":62},[56,4265,86],{"class":62},[56,4267,66],{"class":62},[56,4269,3423],{"class":69},[56,4271,66],{"class":62},[56,4273,75],{"class":62},[56,4275,134],{"class":62},[56,4277,86],{"class":62},[56,4279,66],{"class":62},[56,4281,3436],{"class":69},[56,4283,66],{"class":62},[56,4285,182],{"class":62},[56,4287,66],{"class":62},[56,4289,3445],{"class":69},[56,4291,66],{"class":62},[56,4293,75],{"class":62},[56,4295,134],{"class":62},[56,4297,86],{"class":62},[56,4299,66],{"class":62},[56,4301,3458],{"class":69},[56,4303,66],{"class":62},[56,4305,182],{"class":62},[56,4307,66],{"class":62},[56,4309,3467],{"class":69},[56,4311,66],{"class":62},[56,4313,75],{"class":62},[56,4315,134],{"class":62},[56,4317,86],{"class":62},[56,4319,66],{"class":62},[56,4321,3480],{"class":69},[56,4323,66],{"class":62},[56,4325,182],{"class":62},[56,4327,66],{"class":62},[56,4329,329],{"class":69},[56,4331,66],{"class":62},[56,4333,1310],{"class":62},[56,4335,66],{"class":62},[56,4337,200],{"class":69},[56,4339,66],{"class":62},[56,4341,75],{"class":62},[56,4343,4344],{"class":207},"430",[56,4346,86],{"class":62},[56,4348,66],{"class":62},[56,4350,215],{"class":69},[56,4352,66],{"class":62},[56,4354,75],{"class":62},[56,4356,4113],{"class":207},[56,4358,86],{"class":62},[56,4360,66],{"class":62},[56,4362,229],{"class":69},[56,4364,66],{"class":62},[56,4366,234],{"class":62},[56,4368,66],{"class":62},[56,4370,4371],{"class":80},"7931f7457880f7c3",[56,4373,66],{"class":62},[56,4375,244],{"class":62},[56,4377,66],{"class":62},[56,4379,70],{"class":69},[56,4381,66],{"class":62},[56,4383,75],{"class":62},[56,4385,66],{"class":62},[56,4387,4371],{"class":80},[56,4389,66],{"class":62},[56,4391,86],{"class":62},[56,4393,66],{"class":62},[56,4395,91],{"class":69},[56,4397,66],{"class":62},[56,4399,75],{"class":62},[56,4401,66],{"class":62},[56,4403,511],{"class":80},[56,4405,66],{"class":62},[56,4407,86],{"class":62},[56,4409,66],{"class":62},[56,4411,109],{"class":69},[56,4413,66],{"class":62},[56,4415,75],{"class":62},[56,4417,66],{"class":62},[56,4419,118],{"class":80},[56,4421,66],{"class":62},[56,4423,86],{"class":62},[56,4425,66],{"class":62},[56,4427,127],{"class":69},[56,4429,66],{"class":62},[56,4431,75],{"class":62},[56,4433,66],{"class":62},[56,4435,4436],{"class":80},"Only get the Downloads",[56,4438,66],{"class":62},[56,4440,86],{"class":62},[56,4442,66],{"class":62},[56,4444,548],{"class":69},[56,4446,66],{"class":62},[56,4448,553],{"class":62},[56,4450,66],{"class":62},[56,4452,559],{"class":558},[56,4454,66],{"class":62},[56,4456,75],{"class":62},[56,4458,66],{"class":62},[56,4460,568],{"class":80},[56,4462,66],{"class":62},[56,4464,86],{"class":62},[56,4466,66],{"class":62},[56,4468,14],{"class":558},[56,4470,66],{"class":62},[56,4472,75],{"class":62},[56,4474,66],{"class":62},[56,4476,585],{"class":80},[56,4478,66],{"class":62},[56,4480,86],{"class":62},[56,4482,66],{"class":62},[56,4484,594],{"class":558},[56,4486,66],{"class":62},[56,4488,75],{"class":62},[56,4490,66],{"class":62},[56,4492,603],{"class":80},[56,4494,66],{"class":62},[56,4496,86],{"class":62},[56,4498,66],{"class":62},[56,4500,612],{"class":558},[56,4502,66],{"class":62},[56,4504,75],{"class":62},[56,4506,66],{"class":62},[56,4508,3748],{"class":80},[56,4510,66],{"class":62},[56,4512,86],{"class":62},[56,4514,66],{"class":62},[56,4516,630],{"class":558},[56,4518,66],{"class":62},[56,4520,75],{"class":62},[56,4522,66],{"class":62},[56,4524,603],{"class":80},[56,4526,66],{"class":62},[56,4528,644],{"class":62},[56,4530,66],{"class":62},[56,4532,649],{"class":69},[56,4534,66],{"class":62},[56,4536,75],{"class":62},[56,4538,134],{"class":62},[56,4540,86],{"class":62},[56,4542,66],{"class":62},[56,4544,662],{"class":69},[56,4546,66],{"class":62},[56,4548,75],{"class":62},[56,4550,134],{"class":62},[56,4552,86],{"class":62},[56,4554,66],{"class":62},[56,4556,675],{"class":69},[56,4558,66],{"class":62},[56,4560,75],{"class":62},[56,4562,134],{"class":62},[56,4564,86],{"class":62},[56,4566,66],{"class":62},[56,4568,612],{"class":69},[56,4570,66],{"class":62},[56,4572,75],{"class":62},[56,4574,134],{"class":62},[56,4576,86],{"class":62},[56,4578,66],{"class":62},[56,4580,700],{"class":69},[56,4582,66],{"class":62},[56,4584,182],{"class":62},[56,4586,66],{"class":62},[56,4588,200],{"class":69},[56,4590,66],{"class":62},[56,4592,75],{"class":62},[56,4594,2707],{"class":207},[56,4596,86],{"class":62},[56,4598,66],{"class":62},[56,4600,215],{"class":69},[56,4602,66],{"class":62},[56,4604,75],{"class":62},[56,4606,4113],{"class":207},[56,4608,86],{"class":62},[56,4610,66],{"class":62},[56,4612,229],{"class":69},[56,4614,66],{"class":62},[56,4616,234],{"class":62},[56,4618,66],{"class":62},[56,4620,4621],{"class":80},"74e3b15c7b09726a",[56,4623,66],{"class":62},[56,4625,244],{"class":62},[56,4627,66],{"class":62},[56,4629,70],{"class":69},[56,4631,66],{"class":62},[56,4633,75],{"class":62},[56,4635,66],{"class":62},[56,4637,4621],{"class":80},[56,4639,66],{"class":62},[56,4641,86],{"class":62},[56,4643,66],{"class":62},[56,4645,91],{"class":69},[56,4647,66],{"class":62},[56,4649,75],{"class":62},[56,4651,66],{"class":62},[56,4653,4654],{"class":80},"link out",[56,4656,66],{"class":62},[56,4658,86],{"class":62},[56,4660,66],{"class":62},[56,4662,109],{"class":69},[56,4664,66],{"class":62},[56,4666,75],{"class":62},[56,4668,66],{"class":62},[56,4670,118],{"class":80},[56,4672,66],{"class":62},[56,4674,86],{"class":62},[56,4676,66],{"class":62},[56,4678,127],{"class":69},[56,4680,66],{"class":62},[56,4682,75],{"class":62},[56,4684,66],{"class":62},[56,4686,4687],{"class":80},"link out 1",[56,4689,66],{"class":62},[56,4691,86],{"class":62},[56,4693,66],{"class":62},[56,4695,4696],{"class":69},"mode",[56,4698,66],{"class":62},[56,4700,75],{"class":62},[56,4702,66],{"class":62},[56,4704,4705],{"class":80},"link",[56,4707,66],{"class":62},[56,4709,86],{"class":62},[56,4711,66],{"class":62},[56,4713,4714],{"class":69},"links",[56,4716,66],{"class":62},[56,4718,4719],{"class":62},":[",[56,4721,66],{"class":62},[56,4723,4724],{"class":80},"43e4aff34b989e83",[56,4726,66],{"class":62},[56,4728,4729],{"class":62},"],",[56,4731,66],{"class":62},[56,4733,200],{"class":69},[56,4735,66],{"class":62},[56,4737,75],{"class":62},[56,4739,4740],{"class":207},"815",[56,4742,86],{"class":62},[56,4744,66],{"class":62},[56,4746,215],{"class":69},[56,4748,66],{"class":62},[56,4750,75],{"class":62},[56,4752,4113],{"class":207},[56,4754,86],{"class":62},[56,4756,66],{"class":62},[56,4758,229],{"class":69},[56,4760,66],{"class":62},[56,4762,368],{"class":62},[56,4764,66],{"class":62},[56,4766,70],{"class":69},[56,4768,66],{"class":62},[56,4770,75],{"class":62},[56,4772,66],{"class":62},[56,4774,4724],{"class":80},[56,4776,66],{"class":62},[56,4778,86],{"class":62},[56,4780,66],{"class":62},[56,4782,91],{"class":69},[56,4784,66],{"class":62},[56,4786,75],{"class":62},[56,4788,66],{"class":62},[56,4790,4791],{"class":80},"link in",[56,4793,66],{"class":62},[56,4795,86],{"class":62},[56,4797,66],{"class":62},[56,4799,109],{"class":69},[56,4801,66],{"class":62},[56,4803,75],{"class":62},[56,4805,66],{"class":62},[56,4807,118],{"class":80},[56,4809,66],{"class":62},[56,4811,86],{"class":62},[56,4813,66],{"class":62},[56,4815,127],{"class":69},[56,4817,66],{"class":62},[56,4819,75],{"class":62},[56,4821,66],{"class":62},[56,4823,4824],{"class":80},"Normalize daily data",[56,4826,66],{"class":62},[56,4828,86],{"class":62},[56,4830,66],{"class":62},[56,4832,4714],{"class":69},[56,4834,66],{"class":62},[56,4836,4719],{"class":62},[56,4838,66],{"class":62},[56,4840,4621],{"class":80},[56,4842,66],{"class":62},[56,4844,4729],{"class":62},[56,4846,66],{"class":62},[56,4848,200],{"class":69},[56,4850,66],{"class":62},[56,4852,75],{"class":62},[56,4854,4855],{"class":207},"195",[56,4857,86],{"class":62},[56,4859,66],{"class":62},[56,4861,215],{"class":69},[56,4863,66],{"class":62},[56,4865,75],{"class":62},[56,4867,4868],{"class":207},"1040",[56,4870,86],{"class":62},[56,4872,66],{"class":62},[56,4874,229],{"class":69},[56,4876,66],{"class":62},[56,4878,234],{"class":62},[56,4880,66],{"class":62},[56,4882,4883],{"class":80},"ca8c62bfbdf75715",[56,4885,66],{"class":62},[56,4887,244],{"class":62},[56,4889,66],{"class":62},[56,4891,70],{"class":69},[56,4893,66],{"class":62},[56,4895,75],{"class":62},[56,4897,66],{"class":62},[56,4899,4883],{"class":80},[56,4901,66],{"class":62},[56,4903,86],{"class":62},[56,4905,66],{"class":62},[56,4907,91],{"class":69},[56,4909,66],{"class":62},[56,4911,75],{"class":62},[56,4913,66],{"class":62},[56,4915,4916],{"class":80},"split",[56,4918,66],{"class":62},[56,4920,86],{"class":62},[56,4922,66],{"class":62},[56,4924,109],{"class":69},[56,4926,66],{"class":62},[56,4928,75],{"class":62},[56,4930,66],{"class":62},[56,4932,118],{"class":80},[56,4934,66],{"class":62},[56,4936,86],{"class":62},[56,4938,66],{"class":62},[56,4940,127],{"class":69},[56,4942,66],{"class":62},[56,4944,75],{"class":62},[56,4946,134],{"class":62},[56,4948,86],{"class":62},[56,4950,66],{"class":62},[56,4952,4953],{"class":69},"splt",[56,4955,66],{"class":62},[56,4957,75],{"class":62},[56,4959,66],{"class":62},[56,4961,4962],{"class":1138},"\\\\",[56,4964,4965],{"class":80},"n",[56,4967,66],{"class":62},[56,4969,86],{"class":62},[56,4971,66],{"class":62},[56,4973,4974],{"class":69},"spltType",[56,4976,66],{"class":62},[56,4978,75],{"class":62},[56,4980,66],{"class":62},[56,4982,3150],{"class":80},[56,4984,66],{"class":62},[56,4986,86],{"class":62},[56,4988,66],{"class":62},[56,4990,4991],{"class":69},"arraySplt",[56,4993,66],{"class":62},[56,4995,75],{"class":62},[56,4997,1245],{"class":207},[56,4999,86],{"class":62},[56,5001,66],{"class":62},[56,5003,5004],{"class":69},"arraySpltType",[56,5006,66],{"class":62},[56,5008,75],{"class":62},[56,5010,66],{"class":62},[56,5012,5013],{"class":80},"len",[56,5015,66],{"class":62},[56,5017,86],{"class":62},[56,5019,66],{"class":62},[56,5021,5022],{"class":69},"stream",[56,5024,66],{"class":62},[56,5026,182],{"class":62},[56,5028,66],{"class":62},[56,5030,5031],{"class":69},"addname",[56,5033,66],{"class":62},[56,5035,75],{"class":62},[56,5037,134],{"class":62},[56,5039,86],{"class":62},[56,5041,66],{"class":62},[56,5043,200],{"class":69},[56,5045,66],{"class":62},[56,5047,75],{"class":62},[56,5049,5050],{"class":207},"310",[56,5052,86],{"class":62},[56,5054,66],{"class":62},[56,5056,215],{"class":69},[56,5058,66],{"class":62},[56,5060,75],{"class":62},[56,5062,4868],{"class":207},[56,5064,86],{"class":62},[56,5066,66],{"class":62},[56,5068,229],{"class":69},[56,5070,66],{"class":62},[56,5072,234],{"class":62},[56,5074,66],{"class":62},[56,5076,5077],{"class":80},"3f462d2c7e3bca50",[56,5079,66],{"class":62},[56,5081,244],{"class":62},[56,5083,66],{"class":62},[56,5085,70],{"class":69},[56,5087,66],{"class":62},[56,5089,75],{"class":62},[56,5091,66],{"class":62},[56,5093,5077],{"class":80},[56,5095,66],{"class":62},[56,5097,86],{"class":62},[56,5099,66],{"class":62},[56,5101,91],{"class":69},[56,5103,66],{"class":62},[56,5105,75],{"class":62},[56,5107,66],{"class":62},[56,5109,511],{"class":80},[56,5111,66],{"class":62},[56,5113,86],{"class":62},[56,5115,66],{"class":62},[56,5117,109],{"class":69},[56,5119,66],{"class":62},[56,5121,75],{"class":62},[56,5123,66],{"class":62},[56,5125,118],{"class":80},[56,5127,66],{"class":62},[56,5129,86],{"class":62},[56,5131,66],{"class":62},[56,5133,127],{"class":69},[56,5135,66],{"class":62},[56,5137,75],{"class":62},[56,5139,66],{"class":62},[56,5141,3863],{"class":80},[56,5143,66],{"class":62},[56,5145,86],{"class":62},[56,5147,66],{"class":62},[56,5149,548],{"class":69},[56,5151,66],{"class":62},[56,5153,553],{"class":62},[56,5155,66],{"class":62},[56,5157,559],{"class":558},[56,5159,66],{"class":62},[56,5161,75],{"class":62},[56,5163,66],{"class":62},[56,5165,568],{"class":80},[56,5167,66],{"class":62},[56,5169,86],{"class":62},[56,5171,66],{"class":62},[56,5173,14],{"class":558},[56,5175,66],{"class":62},[56,5177,75],{"class":62},[56,5179,66],{"class":62},[56,5181,3852],{"class":80},[56,5183,66],{"class":62},[56,5185,86],{"class":62},[56,5187,66],{"class":62},[56,5189,594],{"class":558},[56,5191,66],{"class":62},[56,5193,75],{"class":62},[56,5195,66],{"class":62},[56,5197,603],{"class":80},[56,5199,66],{"class":62},[56,5201,86],{"class":62},[56,5203,66],{"class":62},[56,5205,612],{"class":558},[56,5207,66],{"class":62},[56,5209,75],{"class":62},[56,5211,66],{"class":62},[56,5213,5214],{"class":80},"$toMillis(payload.day)",[56,5216,66],{"class":62},[56,5218,86],{"class":62},[56,5220,66],{"class":62},[56,5222,630],{"class":558},[56,5224,66],{"class":62},[56,5226,75],{"class":62},[56,5228,66],{"class":62},[56,5230,5231],{"class":80},"jsonata",[56,5233,66],{"class":62},[56,5235,3119],{"class":62},[56,5237,66],{"class":62},[56,5239,559],{"class":558},[56,5241,66],{"class":62},[56,5243,75],{"class":62},[56,5245,66],{"class":62},[56,5247,568],{"class":80},[56,5249,66],{"class":62},[56,5251,86],{"class":62},[56,5253,66],{"class":62},[56,5255,14],{"class":558},[56,5257,66],{"class":62},[56,5259,75],{"class":62},[56,5261,66],{"class":62},[56,5263,3855],{"class":80},[56,5265,66],{"class":62},[56,5267,86],{"class":62},[56,5269,66],{"class":62},[56,5271,594],{"class":558},[56,5273,66],{"class":62},[56,5275,75],{"class":62},[56,5277,66],{"class":62},[56,5279,603],{"class":80},[56,5281,66],{"class":62},[56,5283,86],{"class":62},[56,5285,66],{"class":62},[56,5287,612],{"class":558},[56,5289,66],{"class":62},[56,5291,75],{"class":62},[56,5293,66],{"class":62},[56,5295,3748],{"class":80},[56,5297,66],{"class":62},[56,5299,86],{"class":62},[56,5301,66],{"class":62},[56,5303,630],{"class":558},[56,5305,66],{"class":62},[56,5307,75],{"class":62},[56,5309,66],{"class":62},[56,5311,603],{"class":80},[56,5313,66],{"class":62},[56,5315,3119],{"class":62},[56,5317,66],{"class":62},[56,5319,559],{"class":558},[56,5321,66],{"class":62},[56,5323,75],{"class":62},[56,5325,66],{"class":62},[56,5327,868],{"class":80},[56,5329,66],{"class":62},[56,5331,86],{"class":62},[56,5333,66],{"class":62},[56,5335,14],{"class":558},[56,5337,66],{"class":62},[56,5339,75],{"class":62},[56,5341,66],{"class":62},[56,5343,5344],{"class":80},"payload.day",[56,5346,66],{"class":62},[56,5348,86],{"class":62},[56,5350,66],{"class":62},[56,5352,594],{"class":558},[56,5354,66],{"class":62},[56,5356,75],{"class":62},[56,5358,66],{"class":62},[56,5360,603],{"class":80},[56,5362,66],{"class":62},[56,5364,3119],{"class":62},[56,5366,66],{"class":62},[56,5368,559],{"class":558},[56,5370,66],{"class":62},[56,5372,75],{"class":62},[56,5374,66],{"class":62},[56,5376,868],{"class":80},[56,5378,66],{"class":62},[56,5380,86],{"class":62},[56,5382,66],{"class":62},[56,5384,14],{"class":558},[56,5386,66],{"class":62},[56,5388,75],{"class":62},[56,5390,66],{"class":62},[56,5392,3748],{"class":80},[56,5394,66],{"class":62},[56,5396,86],{"class":62},[56,5398,66],{"class":62},[56,5400,594],{"class":558},[56,5402,66],{"class":62},[56,5404,75],{"class":62},[56,5406,66],{"class":62},[56,5408,603],{"class":80},[56,5410,66],{"class":62},[56,5412,644],{"class":62},[56,5414,66],{"class":62},[56,5416,649],{"class":69},[56,5418,66],{"class":62},[56,5420,75],{"class":62},[56,5422,134],{"class":62},[56,5424,86],{"class":62},[56,5426,66],{"class":62},[56,5428,662],{"class":69},[56,5430,66],{"class":62},[56,5432,75],{"class":62},[56,5434,134],{"class":62},[56,5436,86],{"class":62},[56,5438,66],{"class":62},[56,5440,675],{"class":69},[56,5442,66],{"class":62},[56,5444,75],{"class":62},[56,5446,134],{"class":62},[56,5448,86],{"class":62},[56,5450,66],{"class":62},[56,5452,612],{"class":69},[56,5454,66],{"class":62},[56,5456,75],{"class":62},[56,5458,134],{"class":62},[56,5460,86],{"class":62},[56,5462,66],{"class":62},[56,5464,700],{"class":69},[56,5466,66],{"class":62},[56,5468,182],{"class":62},[56,5470,66],{"class":62},[56,5472,200],{"class":69},[56,5474,66],{"class":62},[56,5476,75],{"class":62},[56,5478,5479],{"class":207},"510",[56,5481,86],{"class":62},[56,5483,66],{"class":62},[56,5485,215],{"class":69},[56,5487,66],{"class":62},[56,5489,75],{"class":62},[56,5491,4868],{"class":207},[56,5493,86],{"class":62},[56,5495,66],{"class":62},[56,5497,229],{"class":69},[56,5499,66],{"class":62},[56,5501,234],{"class":62},[56,5503,66],{"class":62},[56,5505,5506],{"class":80},"f4e6a85b8cb8dac0",[56,5508,66],{"class":62},[56,5510,244],{"class":62},[56,5512,66],{"class":62},[56,5514,70],{"class":69},[56,5516,66],{"class":62},[56,5518,75],{"class":62},[56,5520,66],{"class":62},[56,5522,5523],{"class":80},"4b71fc28c2da66e7",[56,5525,66],{"class":62},[56,5527,86],{"class":62},[56,5529,66],{"class":62},[56,5531,91],{"class":69},[56,5533,66],{"class":62},[56,5535,75],{"class":62},[56,5537,66],{"class":62},[56,5539,5540],{"class":80},"ui-chart",[56,5542,66],{"class":62},[56,5544,86],{"class":62},[56,5546,66],{"class":62},[56,5548,109],{"class":69},[56,5550,66],{"class":62},[56,5552,75],{"class":62},[56,5554,66],{"class":62},[56,5556,118],{"class":80},[56,5558,66],{"class":62},[56,5560,86],{"class":62},[56,5562,66],{"class":62},[56,5564,5565],{"class":69},"group",[56,5567,66],{"class":62},[56,5569,75],{"class":62},[56,5571,66],{"class":62},[56,5573,5574],{"class":80},"bac8effac57694e1",[56,5576,66],{"class":62},[56,5578,86],{"class":62},[56,5580,66],{"class":62},[56,5582,127],{"class":69},[56,5584,66],{"class":62},[56,5586,75],{"class":62},[56,5588,134],{"class":62},[56,5590,86],{"class":62},[56,5592,66],{"class":62},[56,5594,5595],{"class":69},"label",[56,5597,66],{"class":62},[56,5599,75],{"class":62},[56,5601,66],{"class":62},[56,5603,5604],{"class":80},"Daily Downloads",[56,5606,66],{"class":62},[56,5608,86],{"class":62},[56,5610,66],{"class":62},[56,5612,5613],{"class":69},"order",[56,5615,66],{"class":62},[56,5617,75],{"class":62},[56,5619,5620],{"class":207},"9007199254740991",[56,5622,86],{"class":62},[56,5624,66],{"class":62},[56,5626,5627],{"class":69},"chartType",[56,5629,66],{"class":62},[56,5631,75],{"class":62},[56,5633,66],{"class":62},[56,5635,58],{"class":80},[56,5637,66],{"class":62},[56,5639,86],{"class":62},[56,5641,66],{"class":62},[56,5643,5644],{"class":69},"xAxisType",[56,5646,66],{"class":62},[56,5648,75],{"class":62},[56,5650,66],{"class":62},[56,5652,5653],{"class":80},"time",[56,5655,66],{"class":62},[56,5657,86],{"class":62},[56,5659,66],{"class":62},[56,5661,5662],{"class":69},"removeOlder",[56,5664,66],{"class":62},[56,5666,75],{"class":62},[56,5668,1245],{"class":207},[56,5670,86],{"class":62},[56,5672,66],{"class":62},[56,5674,5675],{"class":69},"removeOlderUnit",[56,5677,66],{"class":62},[56,5679,75],{"class":62},[56,5681,66],{"class":62},[56,5683,5684],{"class":80},"3600",[56,5686,66],{"class":62},[56,5688,86],{"class":62},[56,5690,66],{"class":62},[56,5692,5693],{"class":69},"removeOlderPoints",[56,5695,66],{"class":62},[56,5697,75],{"class":62},[56,5699,134],{"class":62},[56,5701,86],{"class":62},[56,5703,66],{"class":62},[56,5705,5706],{"class":69},"colors",[56,5708,66],{"class":62},[56,5710,4719],{"class":62},[56,5712,66],{"class":62},[56,5714,5715],{"class":80},"#1f77b4",[56,5717,66],{"class":62},[56,5719,86],{"class":62},[56,5721,66],{"class":62},[56,5723,5724],{"class":80},"#aec7e8",[56,5726,66],{"class":62},[56,5728,86],{"class":62},[56,5730,66],{"class":62},[56,5732,5733],{"class":80},"#ff7f0e",[56,5735,66],{"class":62},[56,5737,86],{"class":62},[56,5739,66],{"class":62},[56,5741,5742],{"class":80},"#2ca02c",[56,5744,66],{"class":62},[56,5746,86],{"class":62},[56,5748,66],{"class":62},[56,5750,5751],{"class":80},"#98df8a",[56,5753,66],{"class":62},[56,5755,86],{"class":62},[56,5757,66],{"class":62},[56,5759,5760],{"class":80},"#d62728",[56,5762,66],{"class":62},[56,5764,86],{"class":62},[56,5766,66],{"class":62},[56,5768,5769],{"class":80},"#ff9896",[56,5771,66],{"class":62},[56,5773,86],{"class":62},[56,5775,66],{"class":62},[56,5777,5778],{"class":80},"#9467bd",[56,5780,66],{"class":62},[56,5782,86],{"class":62},[56,5784,66],{"class":62},[56,5786,5787],{"class":80},"#c5b0d5",[56,5789,66],{"class":62},[56,5791,4729],{"class":62},[56,5793,66],{"class":62},[56,5795,5796],{"class":69},"width",[56,5798,66],{"class":62},[56,5800,75],{"class":62},[56,5802,1259],{"class":207},[56,5804,86],{"class":62},[56,5806,66],{"class":62},[56,5808,5809],{"class":69},"height",[56,5811,66],{"class":62},[56,5813,75],{"class":62},[56,5815,1259],{"class":207},[56,5817,86],{"class":62},[56,5819,66],{"class":62},[56,5821,5822],{"class":69},"className",[56,5824,66],{"class":62},[56,5826,75],{"class":62},[56,5828,134],{"class":62},[56,5830,86],{"class":62},[56,5832,66],{"class":62},[56,5834,200],{"class":69},[56,5836,66],{"class":62},[56,5838,75],{"class":62},[56,5840,5841],{"class":207},"330",[56,5843,86],{"class":62},[56,5845,66],{"class":62},[56,5847,215],{"class":69},[56,5849,66],{"class":62},[56,5851,75],{"class":62},[56,5853,5854],{"class":207},"1120",[56,5856,86],{"class":62},[56,5858,66],{"class":62},[56,5860,229],{"class":69},[56,5862,66],{"class":62},[56,5864,5865],{"class":62},":[[]]},{",[56,5867,66],{"class":62},[56,5869,70],{"class":69},[56,5871,66],{"class":62},[56,5873,75],{"class":62},[56,5875,66],{"class":62},[56,5877,5506],{"class":80},[56,5879,66],{"class":62},[56,5881,86],{"class":62},[56,5883,66],{"class":62},[56,5885,91],{"class":69},[56,5887,66],{"class":62},[56,5889,75],{"class":62},[56,5891,66],{"class":62},[56,5893,4654],{"class":80},[56,5895,66],{"class":62},[56,5897,86],{"class":62},[56,5899,66],{"class":62},[56,5901,109],{"class":69},[56,5903,66],{"class":62},[56,5905,75],{"class":62},[56,5907,66],{"class":62},[56,5909,118],{"class":80},[56,5911,66],{"class":62},[56,5913,86],{"class":62},[56,5915,66],{"class":62},[56,5917,127],{"class":69},[56,5919,66],{"class":62},[56,5921,75],{"class":62},[56,5923,66],{"class":62},[56,5925,5926],{"class":80},"link out 2",[56,5928,66],{"class":62},[56,5930,86],{"class":62},[56,5932,66],{"class":62},[56,5934,4696],{"class":69},[56,5936,66],{"class":62},[56,5938,75],{"class":62},[56,5940,66],{"class":62},[56,5942,4705],{"class":80},[56,5944,66],{"class":62},[56,5946,86],{"class":62},[56,5948,66],{"class":62},[56,5950,4714],{"class":69},[56,5952,66],{"class":62},[56,5954,4719],{"class":62},[56,5956,66],{"class":62},[56,5958,5959],{"class":80},"6f7068445bfe4311",[56,5961,66],{"class":62},[56,5963,4729],{"class":62},[56,5965,66],{"class":62},[56,5967,200],{"class":69},[56,5969,66],{"class":62},[56,5971,75],{"class":62},[56,5973,5974],{"class":207},"675",[56,5976,86],{"class":62},[56,5978,66],{"class":62},[56,5980,215],{"class":69},[56,5982,66],{"class":62},[56,5984,75],{"class":62},[56,5986,4868],{"class":207},[56,5988,86],{"class":62},[56,5990,66],{"class":62},[56,5992,229],{"class":69},[56,5994,66],{"class":62},[56,5996,368],{"class":62},[56,5998,66],{"class":62},[56,6000,70],{"class":69},[56,6002,66],{"class":62},[56,6004,75],{"class":62},[56,6006,66],{"class":62},[56,6008,5959],{"class":80},[56,6010,66],{"class":62},[56,6012,86],{"class":62},[56,6014,66],{"class":62},[56,6016,91],{"class":69},[56,6018,66],{"class":62},[56,6020,75],{"class":62},[56,6022,66],{"class":62},[56,6024,4791],{"class":80},[56,6026,66],{"class":62},[56,6028,86],{"class":62},[56,6030,66],{"class":62},[56,6032,109],{"class":69},[56,6034,66],{"class":62},[56,6036,75],{"class":62},[56,6038,66],{"class":62},[56,6040,118],{"class":80},[56,6042,66],{"class":62},[56,6044,86],{"class":62},[56,6046,66],{"class":62},[56,6048,127],{"class":69},[56,6050,66],{"class":62},[56,6052,75],{"class":62},[56,6054,66],{"class":62},[56,6056,6057],{"class":80},"Update the chart",[56,6059,66],{"class":62},[56,6061,86],{"class":62},[56,6063,66],{"class":62},[56,6065,4714],{"class":69},[56,6067,66],{"class":62},[56,6069,4719],{"class":62},[56,6071,66],{"class":62},[56,6073,5506],{"class":80},[56,6075,66],{"class":62},[56,6077,86],{"class":62},[56,6079,66],{"class":62},[56,6081,6082],{"class":80},"79067215ee592ec9",[56,6084,66],{"class":62},[56,6086,86],{"class":62},[56,6088,66],{"class":62},[56,6090,4128],{"class":80},[56,6092,66],{"class":62},[56,6094,4729],{"class":62},[56,6096,66],{"class":62},[56,6098,200],{"class":69},[56,6100,66],{"class":62},[56,6102,75],{"class":62},[56,6104,4855],{"class":207},[56,6106,86],{"class":62},[56,6108,66],{"class":62},[56,6110,215],{"class":69},[56,6112,66],{"class":62},[56,6114,75],{"class":62},[56,6116,5854],{"class":207},[56,6118,86],{"class":62},[56,6120,66],{"class":62},[56,6122,229],{"class":69},[56,6124,66],{"class":62},[56,6126,234],{"class":62},[56,6128,66],{"class":62},[56,6130,5523],{"class":80},[56,6132,66],{"class":62},[56,6134,244],{"class":62},[56,6136,66],{"class":62},[56,6138,70],{"class":69},[56,6140,66],{"class":62},[56,6142,75],{"class":62},[56,6144,66],{"class":62},[56,6146,4128],{"class":80},[56,6148,66],{"class":62},[56,6150,86],{"class":62},[56,6152,66],{"class":62},[56,6154,91],{"class":69},[56,6156,66],{"class":62},[56,6158,75],{"class":62},[56,6160,66],{"class":62},[56,6162,4654],{"class":80},[56,6164,66],{"class":62},[56,6166,86],{"class":62},[56,6168,66],{"class":62},[56,6170,109],{"class":69},[56,6172,66],{"class":62},[56,6174,75],{"class":62},[56,6176,66],{"class":62},[56,6178,118],{"class":80},[56,6180,66],{"class":62},[56,6182,86],{"class":62},[56,6184,66],{"class":62},[56,6186,127],{"class":69},[56,6188,66],{"class":62},[56,6190,75],{"class":62},[56,6192,66],{"class":62},[56,6194,6195],{"class":80},"link out 3",[56,6197,66],{"class":62},[56,6199,86],{"class":62},[56,6201,66],{"class":62},[56,6203,4696],{"class":69},[56,6205,66],{"class":62},[56,6207,75],{"class":62},[56,6209,66],{"class":62},[56,6211,4705],{"class":80},[56,6213,66],{"class":62},[56,6215,86],{"class":62},[56,6217,66],{"class":62},[56,6219,4714],{"class":69},[56,6221,66],{"class":62},[56,6223,4719],{"class":62},[56,6225,66],{"class":62},[56,6227,5959],{"class":80},[56,6229,66],{"class":62},[56,6231,4729],{"class":62},[56,6233,66],{"class":62},[56,6235,200],{"class":69},[56,6237,66],{"class":62},[56,6239,75],{"class":62},[56,6241,6242],{"class":207},"415",[56,6244,86],{"class":62},[56,6246,66],{"class":62},[56,6248,215],{"class":69},[56,6250,66],{"class":62},[56,6252,75],{"class":62},[56,6254,6255],{"class":207},"920",[56,6257,86],{"class":62},[56,6259,66],{"class":62},[56,6261,229],{"class":69},[56,6263,66],{"class":62},[56,6265,368],{"class":62},[56,6267,66],{"class":62},[56,6269,70],{"class":69},[56,6271,66],{"class":62},[56,6273,75],{"class":62},[56,6275,66],{"class":62},[56,6277,5574],{"class":80},[56,6279,66],{"class":62},[56,6281,86],{"class":62},[56,6283,66],{"class":62},[56,6285,91],{"class":69},[56,6287,66],{"class":62},[56,6289,75],{"class":62},[56,6291,66],{"class":62},[56,6293,3788],{"class":80},[56,6295,66],{"class":62},[56,6297,86],{"class":62},[56,6299,66],{"class":62},[56,6301,127],{"class":69},[56,6303,66],{"class":62},[56,6305,75],{"class":62},[56,6307,66],{"class":62},[56,6309,6310],{"class":80},"NPM Downloads",[56,6312,66],{"class":62},[56,6314,86],{"class":62},[56,6316,66],{"class":62},[56,6318,6319],{"class":69},"page",[56,6321,66],{"class":62},[56,6323,75],{"class":62},[56,6325,66],{"class":62},[56,6327,6328],{"class":80},"f10b4d0259e43aeb",[56,6330,66],{"class":62},[56,6332,86],{"class":62},[56,6334,66],{"class":62},[56,6336,5796],{"class":69},[56,6338,66],{"class":62},[56,6340,75],{"class":62},[56,6342,66],{"class":62},[56,6344,6345],{"class":80},"6",[56,6347,66],{"class":62},[56,6349,86],{"class":62},[56,6351,66],{"class":62},[56,6353,5809],{"class":69},[56,6355,66],{"class":62},[56,6357,75],{"class":62},[56,6359,66],{"class":62},[56,6361,1245],{"class":80},[56,6363,66],{"class":62},[56,6365,86],{"class":62},[56,6367,66],{"class":62},[56,6369,5613],{"class":69},[56,6371,66],{"class":62},[56,6373,75],{"class":62},[56,6375,6376],{"class":207},"-1",[56,6378,3119],{"class":62},[56,6380,66],{"class":62},[56,6382,70],{"class":69},[56,6384,66],{"class":62},[56,6386,75],{"class":62},[56,6388,66],{"class":62},[56,6390,6328],{"class":80},[56,6392,66],{"class":62},[56,6394,86],{"class":62},[56,6396,66],{"class":62},[56,6398,91],{"class":69},[56,6400,66],{"class":62},[56,6402,75],{"class":62},[56,6404,66],{"class":62},[56,6406,3803],{"class":80},[56,6408,66],{"class":62},[56,6410,86],{"class":62},[56,6412,66],{"class":62},[56,6414,127],{"class":69},[56,6416,66],{"class":62},[56,6418,75],{"class":62},[56,6420,66],{"class":62},[56,6422,6423],{"class":80},"Main",[56,6425,66],{"class":62},[56,6427,86],{"class":62},[56,6429,66],{"class":62},[56,6431,6432],{"class":69},"ui",[56,6434,66],{"class":62},[56,6436,75],{"class":62},[56,6438,66],{"class":62},[56,6440,6441],{"class":80},"cb79bc4520925e32",[56,6443,66],{"class":62},[56,6445,86],{"class":62},[56,6447,66],{"class":62},[56,6449,6450],{"class":69},"path",[56,6452,66],{"class":62},[56,6454,75],{"class":62},[56,6456,66],{"class":62},[56,6458,6459],{"class":80},"\u002F",[56,6461,66],{"class":62},[56,6463,86],{"class":62},[56,6465,66],{"class":62},[56,6467,6468],{"class":69},"layout",[56,6470,66],{"class":62},[56,6472,75],{"class":62},[56,6474,66],{"class":62},[56,6476,6477],{"class":80},"grid",[56,6479,66],{"class":62},[56,6481,86],{"class":62},[56,6483,66],{"class":62},[56,6485,6486],{"class":69},"theme",[56,6488,66],{"class":62},[56,6490,75],{"class":62},[56,6492,66],{"class":62},[56,6494,6495],{"class":80},"2c5d702b11de7dd1",[56,6497,66],{"class":62},[56,6499,86],{"class":62},[56,6501,66],{"class":62},[56,6503,5613],{"class":69},[56,6505,66],{"class":62},[56,6507,75],{"class":62},[56,6509,6376],{"class":207},[56,6511,3119],{"class":62},[56,6513,66],{"class":62},[56,6515,70],{"class":69},[56,6517,66],{"class":62},[56,6519,75],{"class":62},[56,6521,66],{"class":62},[56,6523,6441],{"class":80},[56,6525,66],{"class":62},[56,6527,86],{"class":62},[56,6529,66],{"class":62},[56,6531,91],{"class":69},[56,6533,66],{"class":62},[56,6535,75],{"class":62},[56,6537,66],{"class":62},[56,6539,3814],{"class":80},[56,6541,66],{"class":62},[56,6543,86],{"class":62},[56,6545,66],{"class":62},[56,6547,127],{"class":69},[56,6549,66],{"class":62},[56,6551,75],{"class":62},[56,6553,66],{"class":62},[56,6555,6556],{"class":80},"My UI",[56,6558,66],{"class":62},[56,6560,86],{"class":62},[56,6562,66],{"class":62},[56,6564,6450],{"class":69},[56,6566,66],{"class":62},[56,6568,75],{"class":62},[56,6570,66],{"class":62},[56,6572,6573],{"class":80},"\u002Fdashboard",[56,6575,66],{"class":62},[56,6577,86],{"class":62},[56,6579,66],{"class":62},[56,6581,6582],{"class":69},"includeClientData",[56,6584,66],{"class":62},[56,6586,881],{"class":62},[56,6588,66],{"class":62},[56,6590,6591],{"class":69},"acceptsClientConfig",[56,6593,66],{"class":62},[56,6595,4719],{"class":62},[56,6597,66],{"class":62},[56,6599,6600],{"class":80},"ui-notification",[56,6602,66],{"class":62},[56,6604,86],{"class":62},[56,6606,66],{"class":62},[56,6608,6609],{"class":80},"ui-control",[56,6611,66],{"class":62},[56,6613,4729],{"class":62},[56,6615,66],{"class":62},[56,6617,6618],{"class":69},"showPathInSidebar",[56,6620,66],{"class":62},[56,6622,6623],{"class":62},":false},{",[56,6625,66],{"class":62},[56,6627,70],{"class":69},[56,6629,66],{"class":62},[56,6631,75],{"class":62},[56,6633,66],{"class":62},[56,6635,6495],{"class":80},[56,6637,66],{"class":62},[56,6639,86],{"class":62},[56,6641,66],{"class":62},[56,6643,91],{"class":69},[56,6645,66],{"class":62},[56,6647,75],{"class":62},[56,6649,66],{"class":62},[56,6651,3818],{"class":80},[56,6653,66],{"class":62},[56,6655,86],{"class":62},[56,6657,66],{"class":62},[56,6659,127],{"class":69},[56,6661,66],{"class":62},[56,6663,75],{"class":62},[56,6665,66],{"class":62},[56,6667,6668],{"class":80},"Theme Name",[56,6670,66],{"class":62},[56,6672,86],{"class":62},[56,6674,66],{"class":62},[56,6676,5706],{"class":69},[56,6678,66],{"class":62},[56,6680,6681],{"class":62},":{",[56,6683,66],{"class":62},[56,6685,6686],{"class":558},"surface",[56,6688,66],{"class":62},[56,6690,75],{"class":62},[56,6692,66],{"class":62},[56,6694,6695],{"class":80},"#ffffff",[56,6697,66],{"class":62},[56,6699,86],{"class":62},[56,6701,66],{"class":62},[56,6703,6704],{"class":558},"primary",[56,6706,66],{"class":62},[56,6708,75],{"class":62},[56,6710,66],{"class":62},[56,6712,6713],{"class":80},"#0094ce",[56,6715,66],{"class":62},[56,6717,86],{"class":62},[56,6719,66],{"class":62},[56,6721,6722],{"class":558},"bgPage",[56,6724,66],{"class":62},[56,6726,75],{"class":62},[56,6728,66],{"class":62},[56,6730,6731],{"class":80},"#eeeeee",[56,6733,66],{"class":62},[56,6735,86],{"class":62},[56,6737,66],{"class":62},[56,6739,6740],{"class":558},"groupBg",[56,6742,66],{"class":62},[56,6744,75],{"class":62},[56,6746,66],{"class":62},[56,6748,6695],{"class":80},[56,6750,66],{"class":62},[56,6752,86],{"class":62},[56,6754,66],{"class":62},[56,6756,6757],{"class":558},"groupOutline",[56,6759,66],{"class":62},[56,6761,75],{"class":62},[56,6763,66],{"class":62},[56,6765,6766],{"class":80},"#cccccc",[56,6768,66],{"class":62},[56,6770,6771],{"class":62},"}}]\n",[6773,6774,6775],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}",{"title":52,"searchDepth":2925,"depth":2925,"links":6777},[6778,6779,6780,6787],{"id":20,"depth":2846,"text":21},{"id":748,"depth":2846,"text":749},{"id":2742,"depth":2846,"text":2743,"children":6781},[6782,6783,6784,6785,6786],{"id":2750,"depth":2906,"text":2751},{"id":2797,"depth":2906,"text":2798},{"id":2819,"depth":2906,"text":2820},{"id":2826,"depth":2906,"text":2827},{"id":2975,"depth":2906,"text":2976},{"id":3002,"depth":2846,"text":3003,"children":6788},[6789,6792],{"id":3763,"depth":2906,"text":3764,"children":6790},[6791],{"id":3831,"depth":2925,"text":3832},{"id":3875,"depth":2906,"text":3876},"https:\u002F\u002Fgithub.com\u002FFlowFuse\u002Fwebsite\u002Fedit\u002Fmain\u002Fnuxt\u002Fcontent-guides\u002Fnode-red\u002Fintegration-technologies\u002Frest.md","md",null,{},50,"REST API",true,"\u002Fdocs\u002Fnode-red\u002Fintegration-technologies\u002Frest",{"title":5,"description":16},"docs\u002Fnode-red\u002Fintegration-technologies\u002Frest","2026-09-08 11:28:21 +0200","Xi-0ODq_8PFXaYonn-1EtnmD4VeEkwphlcMK5B6zUJc",{"id":6806,"extension":6807,"meta":6808,"sections":6809,"stem":7208,"__hash__":7209},"featureCatalog\u002Ffeature-catalog.yml","yml",{},[6810,6871,6972,7034,7111,7190],{"id":6811,"title":6812,"features":6813},"ai-automation","AI & Automation",[6814,6824,6834,6844,6850,6860,6866],{"id":6815,"title":6816,"description":6817,"docsLink":6818,"changelog":6819,"tiers":6823},"flowfuse-expert-ai","FlowFuse Expert AI","Build industrial apps with agents, and query the state of the factory with an agent. Adapt your current hardware and machines so agentic work can be done against them, without ripping and replacing what's already on the plant floor.","\u002Fdocs\u002Fuser\u002Fexpert\u002F",[6820],{"url":6821,"release":6822},"\u002Fchangelog\u002F2026\u002F02\u002Fff-expert-update-banner\u002F","2.28",{"edge":6799,"hub":6799,"fleet":6799},{"id":6825,"title":6826,"description":6827,"docsLink":6828,"changelog":6829,"subfeature":6799,"showOnPricing":6832,"tiers":6833},"flowfuse-expert-support-mode","Support Mode","Chat-based assistance for FlowFuse and Node-RED, including Node-RED instance management through natural language.","\u002Fdocs\u002Fuser\u002Fexpert\u002Fchat\u002F#support-mode",[6830],{"url":6831,"release":6822},"\u002Fchangelog\u002F2026\u002F02\u002Fff-expert-debug-log-context\u002F",false,{"edge":6799,"hub":6799,"fleet":6799},{"id":6835,"title":6836,"description":6837,"docsLink":6838,"changelog":6839,"subfeature":6799,"showOnPricing":6832,"tiers":6843},"flowfuse-expert-application-building","Application Building","Describe what you want to build and FlowFuse Expert assembles it on your workspace, adding tabs, wiring nodes, and configuring properties.","\u002Fdocs\u002Fuser\u002Fexpert\u002Fchat\u002F",[6840],{"url":6841,"release":6842},"\u002Fchangelog\u002F2026\u002F05\u002Fexpert-application-building\u002F","2.30",{"edge":6799,"hub":6799,"fleet":6799},{"id":6845,"title":6846,"description":6847,"docsLink":6848,"subfeature":6799,"beta":6799,"showOnPricing":6832,"tiers":6849},"flowfuse-expert-insights-mode","Insights Mode","Connects FlowFuse Expert to MCP servers in your Node-RED instances, enabling real-time data queries and actions through a single chat interface.","\u002Fdocs\u002Fuser\u002Fexpert\u002Fchat\u002F#insights-mode",{"edge":6799,"hub":6799,"fleet":6799},{"id":6851,"title":6852,"description":6853,"docsLink":6854,"changelog":6855,"tiers":6859},"third-party-agents","Connect Your Own AI Agent","Point the AI agent your company already uses at FlowFuse, so it can query your teams and instances and build Node-RED applications, with you deciding which teams it reaches and whether it can make changes.","\u002Fdocs\u002Fuser\u002Fexpert\u002Fthird-party-agents\u002F",[6856],{"url":6857,"release":6858},"\u002Fchangelog\u002F2026\u002F08\u002Fconnect-your-own-ai-agent\u002F","3.0",{"edge":6799,"hub":6799,"fleet":6799},{"id":6861,"title":6862,"description":6863,"docsLink":6864,"tiers":6865},"mcp-servers","Agentic Operations","Expose your Node-RED flows as tools an AI agent can call directly, so agents can query the state of the factory or trigger actions without custom integration work.","\u002Fdocs\u002Fflowfuse-nodes\u002Fmcp\u002F",{"edge":6799,"hub":6799,"fleet":6799},{"id":6867,"title":6868,"description":6869,"tiers":6870},"onnx-integration","ONNX Integration","Run trained machine learning models directly in your flows, including on edge hardware, without sending data out to an external inference service.",{"edge":6799,"hub":6799,"fleet":6799},{"id":6872,"title":6873,"features":6874},"build","Build",[6875,6881,6887,6897,6903,6909,6913,6919,6925,6933,6939,6943,6947,6956,6964],{"id":6876,"title":6877,"description":6878,"docsLink":6879,"tiers":6880},"edge-development","Edge Development","Develop and test Node-RED flows directly on edge devices with a remote editor proxy.","\u002Fdocs\u002Fdevice-agent\u002Fquickstart\u002F",{"edge":6799,"hub":6832,"fleet":6799},{"id":6882,"title":6883,"description":6884,"docsLink":6885,"tiers":6886},"private-npm-registry","Custom Node-RED Nodes","Create and manage your own private npm registry for Node-RED nodes, so you can share custom nodes across your team and devices without publishing them publicly.","\u002Fdocs\u002Fuser\u002Fcustom-npm-packages\u002F",{"edge":6799,"hub":6799,"fleet":6799},{"id":6888,"title":6889,"description":6890,"docsLink":6891,"changelog":6892,"tiers":6896},"flowfuse-tables","FlowFuse Tables","A managed PostgreSQL database for every application, so you can store and query structured data without standing up and maintaining your own database.","\u002Fdocs\u002Fuser\u002Fff-tables\u002F",[6893],{"url":6894,"release":6895},"\u002Fchangelog\u002F2026\u002F07\u002Fexpert-tables-automation\u002F","2.33",{"edge":6799,"hub":6799,"fleet":6799},{"id":6898,"title":6899,"description":6900,"docsLink":6901,"tiers":6902},"persistent-files","File Storage","Store and retrieve files from your Node-RED flows, with automatic replication and backup across your devices and hosted instances.","\u002Fdocs\u002Finstall\u002Ffile-storage\u002F",{"edge":6799,"hub":6799,"fleet":6799},{"id":6904,"title":6905,"description":6906,"docsLink":6907,"showOnPricing":6832,"tiers":6908},"persistent-context","Persistent Context","In-memory values defined in a Node-RED flow persist across project restarts and upgrades.","\u002Fdocs\u002Fuser\u002Fpersistent-context\u002F",{"edge":6799,"hub":6799,"fleet":6799},{"id":6910,"title":6911,"showOnPricing":6832,"tiers":6912},"static-assets","Static Assets",{"edge":6799,"hub":6799,"fleet":6799},{"id":6914,"title":6915,"description":6916,"docsLink":6917,"tiers":6918},"team-library","Team Library","Set up standard nodes and flows that can be shared with all team members across your organisation.","\u002Fdocs\u002Fuser\u002Fshared-library\u002F",{"edge":6799,"hub":6799,"fleet":6799},{"id":6920,"title":6921,"description":6922,"docsLink":6923,"tiers":6924},"personalised-multi-user-dashboards","Personalised Multi-User Dashboards","Build applications that provide unique data to each logged-in user using personalised multi-user dashboards.","https:\u002F\u002Fdashboard.flowfuse.com\u002Fuser\u002Fmulti-tenancy.html",{"edge":6799,"hub":6799,"fleet":6799},{"id":6926,"title":6927,"description":6928,"changelog":6929,"subfeature":6799,"showOnPricing":6832,"tiers":6932},"dashboards-view","Dashboards View","Browse and open every dashboard across your team from a dedicated Dashboards view, at both team and application level, without leaving FlowFuse.",[6930],{"url":6931,"release":6895},"\u002Fchangelog\u002F2026\u002F07\u002Fteam-and-application-dashboards\u002F",{"edge":6799,"hub":6799,"fleet":6799},{"id":6934,"title":6935,"description":6936,"docsLink":6937,"tiers":6938},"blueprints-converge","Blueprints","Ready-made starting points for your apps, from cross-team Converge templates to OT and IT specific blueprints.","\u002Fdocs\u002Fuser\u002Fconcepts\u002F#blueprint",{"edge":6799,"hub":6799,"fleet":6799},{"id":6940,"title":6941,"subfeature":6799,"showOnPricing":6832,"tiers":6942},"blueprints-ot-apps","Blueprints - OT APPS",{"edge":6799,"hub":6832,"fleet":6799},{"id":6944,"title":6945,"subfeature":6799,"showOnPricing":6832,"tiers":6946},"blueprints-it-apps","Blueprints - IT APPS",{"edge":6832,"hub":6799,"fleet":6832},{"id":6948,"title":6949,"description":6950,"changelog":6951,"showOnPricing":6832,"tiers":6955},"immersive-editor-snapshots","Snapshot Details in Immersive Editor","View and manage snapshot details directly inside the immersive editor without leaving your editing session.",[6952],{"url":6953,"release":6954},"\u002Fchangelog\u002F2026\u002F03\u002Fsnapshot-detail-modal-immersive-editor\u002F","2.29",{"edge":6799,"hub":6799,"fleet":6799},{"id":6957,"title":6958,"description":6959,"changelog":6960,"showOnPricing":6832,"tiers":6963},"immersive-editor-drawer","Customisable Immersive Editor Drawer","Pin, move, resize, or full-screen the immersive editor drawer. Your preferences are remembered between sessions.",[6961],{"url":6962,"release":6842},"\u002Fchangelog\u002F2026\u002F04\u002Fimmersive-editor-drawer\u002F",{"edge":6799,"hub":6799,"fleet":6799},{"id":6965,"title":6966,"description":6967,"changelog":6968,"showOnPricing":6832,"tiers":6971},"embedded-editor-tab-title","Embedded Editor Browser Tab Title","The browser tab title updates to reflect the active Node-RED canvas tab when working in the embedded editor.",[6969],{"url":6970,"release":6954},"\u002Fchangelog\u002F2026\u002F03\u002Fembedded-editor-tab-title\u002F",{"edge":6799,"hub":6799,"fleet":6799},{"id":6973,"title":6974,"features":6975},"deploy","Deploy",[6976,6982,6991,6997,7003,7009,7015,7021,7026],{"id":6977,"title":6978,"description":6979,"docsLink":6980,"tiers":6981},"hosted-instances","Cloud Instances","Run Node-RED instances managed and hosted by FlowFuse.","\u002Fdocs\u002Fuser\u002Fintroduction\u002F#creating-a-node-red-instance",{"edge":6799,"hub":6799,"fleet":6799},{"id":6983,"title":6984,"description":6985,"docsLink":6986,"changelog":6987,"tiers":6990},"edge-devices","Edge Instances","Deploy and mange your Node-RED instances on edge PLCs and gateways, with full visibility and control from the cloud.","\u002Fdocs\u002Fdevice-agent\u002Fintroduction\u002F",[6988],{"url":6989,"release":6822},"\u002Fchangelog\u002F2026\u002F02\u002Fdevice-agent-nodejs-options\u002F",{"edge":6799,"hub":6832,"fleet":6799},{"id":6992,"title":6993,"description":6994,"docsLink":6995,"tiers":6996},"custom-hostnames","Custom Hostnames","Access your Node-RED application via your own domain name.","\u002Fdocs\u002Fuser\u002Fcustom-hostnames\u002F",{"edge":6832,"hub":6799,"fleet":6832},{"id":6998,"title":6999,"description":7000,"docsLink":7001,"tiers":7002},"mqtt-broker","MQTT Broker","Manage and create MQTT clients to transport data for efficient messaging and communication within your applications.","\u002Fdocs\u002Fuser\u002Fteambroker\u002F",{"edge":6799,"hub":6832,"fleet":6799},{"id":7004,"title":7005,"description":7006,"docsLink":7007,"showOnPricing":6832,"tiers":7008},"project-nodes","Project Nodes aka seamless project comms","FlowFuse Project Nodes enable the passing of data and messages between your Node-RED projects.","\u002Fdocs\u002Fuser\u002Fprojectnodes\u002F",{"edge":6799,"hub":6799,"fleet":6799},{"id":7010,"title":7011,"description":7012,"docsLink":7013,"tiers":7014},"devops-pipelines","DevOps Pipelines","Set up different environments for development, testing, and production Node-RED instances to support a full software delivery lifecycle.","\u002Fdocs\u002Fuser\u002Fdevops-pipelines\u002F",{"edge":6799,"hub":6799,"fleet":6799},{"id":7016,"title":7017,"description":7018,"docsLink":7019,"tiers":7020},"git-integration","Git Integration","Back up your flows to a remote Git repository through a DevOps Pipeline. Supports GitHub and Azure DevOps repositories.","\u002Fdocs\u002Fuser\u002Fdevops-pipelines\u002F#git-repository-stage",{"edge":6832,"hub":6799,"fleet":6832},{"id":7022,"title":7023,"description":7024,"docsLink":7019,"subfeature":6799,"showOnPricing":6832,"tiers":7025},"git-integration-github","GitHub","Push and pull snapshots to GitHub repositories through DevOps Pipeline Git Stages.",{"edge":6832,"hub":6799,"fleet":6832},{"id":7027,"title":7028,"description":7029,"docsLink":7019,"changelog":7030,"subfeature":6799,"showOnPricing":6832,"tiers":7033},"git-integration-azure","Azure DevOps","Push and pull snapshots to Azure DevOps repositories through DevOps Pipeline Git Stages.",[7031],{"url":7032,"release":6954},"\u002Fchangelog\u002F2026\u002F03\u002Fazure-dev-ops-gitops\u002F",{"edge":6832,"hub":6799,"fleet":6832},{"id":7035,"title":7036,"features":7037},"operate-maintain","Operate & Maintain",[7038,7044,7050,7055,7063,7067,7071,7076,7082,7088,7093,7099,7103,7107],{"id":7039,"title":7040,"description":7041,"docsLink":7042,"tiers":7043},"snapshots","Snapshots & Version History","Automatic snapshots on remote devices and hosted instances, plus a full version history timeline so you can roll back to any prior state.","\u002Fdocs\u002Fuser\u002Fsnapshots\u002F",{"edge":6799,"hub":6799,"fleet":6799},{"id":7045,"title":7046,"description":7047,"docsLink":7048,"subfeature":6799,"showOnPricing":6832,"tiers":7049},"auto-snapshot-remote","Auto Snapshot (Remote)","Automatically capture a snapshot every time a remote instance is deployed, so you always have a recoverable history of what was running on each device.","\u002Fdocs\u002Fuser\u002Fsnapshots\u002F#auto-snapshots",{"edge":6799,"hub":6799,"fleet":6799},{"id":7051,"title":7052,"description":7053,"docsLink":7048,"subfeature":6799,"showOnPricing":6832,"tiers":7054},"auto-snapshot-hosted","Auto Snapshot (Hosted)","Automatically capture a snapshot every time a hosted instance is deployed, so you always have a recoverable history of what was running.",{"edge":6799,"hub":6799,"fleet":6799},{"id":7056,"title":7057,"description":7058,"changelog":7059,"subfeature":6799,"showOnPricing":6832,"tiers":7062},"snapshot-comparison","Snapshot Comparison","Compare two snapshots side-by-side with a navigable diff view. Step through every changed, added, or deleted node and see property and code diffs.",[7060],{"url":7061,"release":6954},"\u002Fchangelog\u002F2026\u002F04\u002Fsnapshot-diff-viewer\u002F",{"edge":6799,"hub":6799,"fleet":6799},{"id":7064,"title":7065,"subfeature":6799,"showOnPricing":6832,"tiers":7066},"version-history-timeline","Version History Timeline",{"edge":6799,"hub":6799,"fleet":6799},{"id":7068,"title":7069,"tiers":7070},"unlimited-workflow-executions","Unlimited Workflow Executions",{"edge":6799,"hub":6799,"fleet":6799},{"id":7072,"title":7073,"description":7074,"tiers":7075},"device-fleet-updates","Device Fleet Updates","Connect to edge devices to quickly assess and update logic. Debug one device and roll out improvements to your fleet in minutes, securely without requiring full device access for your whole organisation.",{"edge":6799,"hub":6832,"fleet":6799},{"id":7077,"title":7078,"description":7079,"docsLink":7080,"tiers":7081},"device-group-management","Device Group Management","Logically group devices assigned to an application and integrate device groups into your DevOps Pipeline for coordinated fleet updates.","\u002Fdocs\u002Fuser\u002Fdevice-groups\u002F",{"edge":6799,"hub":6832,"fleet":6799},{"id":7083,"title":7084,"description":7085,"docsLink":7086,"tiers":7087},"high-availability","High Availability","Leverage horizontal scaling for reliable and scalable processing of your data through Node-RED.","\u002Fdocs\u002Fuser\u002Fhigh-availability\u002F",{"edge":6832,"hub":6799,"fleet":6832},{"id":7089,"title":7090,"description":7091,"tiers":7092},"performance-monitoring","Performance Monitoring & Alerts","Track CPU, memory, and event loop performance across your instances and devices, with email alerts when something needs your attention.",{"edge":6799,"hub":6799,"fleet":6799},{"id":7094,"title":7095,"description":7096,"docsLink":7097,"subfeature":6799,"showOnPricing":6832,"tiers":7098},"instance-monitoring","Instance Monitoring","Enable alerts to be sent via email when your Node-RED instances encounter issues.","\u002Fdocs\u002Fuser\u002Finstance-settings\u002F#alerts",{"edge":6799,"hub":6799,"fleet":6799},{"id":7100,"title":7101,"subfeature":6799,"showOnPricing":6832,"tiers":7102},"email-alerts","Email Alerts",{"edge":6799,"hub":6799,"fleet":6799},{"id":7104,"title":7105,"showOnPricing":6832,"tiers":7106},"api-debug-length-limit","API\u002FDebug Length Limit",{"edge":6799,"hub":6799,"fleet":6799},{"id":7108,"title":7109,"tiers":7110},"protected-instances","Protected Instances",{"edge":6832,"hub":6799,"fleet":6832},{"id":7112,"title":7113,"features":7114},"govern-secure","Govern and Secure",[7115,7124,7130,7136,7141,7147,7153,7159,7167,7173,7179,7185],{"id":7116,"title":7117,"description":7118,"docsLink":7119,"changelog":7120,"tiers":7123},"single-sign-on","Single Sign-On (SSO)","Configure FlowFuse to work with your own SSO provider, allowing users to access FlowFuse with a single set of login credentials.","\u002Fdocs\u002Fadmin\u002Fsso\u002F",[7121],{"url":7122,"release":6895},"\u002Fchangelog\u002F2026\u002F07\u002Fapplication-sso-groups\u002F",{"edge":6799,"hub":6799,"fleet":6799},{"id":7125,"title":7126,"description":7127,"docsLink":7128,"tiers":7129},"two-factor-authentication","Two-Factor Authentication","Two-factor authentication adds an extra layer of security to your FlowFuse account.","\u002Fdocs\u002Fuser\u002Fuser-settings\u002F#two-factor-authentication",{"edge":6799,"hub":6799,"fleet":6799},{"id":7131,"title":7132,"description":7133,"docsLink":7134,"tiers":7135},"certified-nodes-it","Certified Nodes - IT","IT certified node bundle includes: Redis, MQTT, HTTP Request, AI nodes (Gemini, Claude, ChatGPT, Ollama), MCP Server","\u002Fblog\u002F2025\u002F07\u002Fcertified-nodes-v2\u002F",{"edge":6832,"hub":6799,"fleet":6799},{"id":7137,"title":7138,"description":7139,"tiers":7140},"certified-nodes-ot","Certified OT Connections - OPC-UA, Modbus, etc.","OT certified node bundle includes: OPC-UA, Modbus TCP & RTU, RTSP, EtherNet\u002FIP, AI nodes (Gemini, Claude, ChatGPT, Ollama), MCP Server",{"edge":6799,"hub":6832,"fleet":6832},{"id":7142,"title":7143,"description":7144,"docsLink":7145,"tiers":7146},"audit-log","Audit Log","Keep track of everything going on in your Node-RED instances and FlowFuse. Audit Logs provide details on what actions have taken place, when they happened, and who did them.","\u002Fdocs\u002Fuser\u002Flogs\u002F#audit-log",{"edge":6799,"hub":6799,"fleet":6799},{"id":7148,"title":7149,"description":7150,"docsLink":7151,"tiers":7152},"role-based-access-control","Role-Based Access Control","Control who can do what at both the team and application level, from viewers to admins.","\u002Fdocs\u002Fuser\u002Frole-based-access-control\u002F",{"edge":6799,"hub":6799,"fleet":6799},{"id":7154,"title":7155,"description":7156,"docsLink":7157,"subfeature":6799,"showOnPricing":6832,"tiers":7158},"application-level-rbac","Application-Level RBAC","Fine-grained access control per application, allowing team members to have different permission levels across different applications without requiring separate teams.","\u002Fdocs\u002Fuser\u002Frole-based-access-control\u002F#application-level-rbac",{"edge":6799,"hub":6799,"fleet":6799},{"id":7160,"title":7161,"description":7162,"changelog":7163,"subfeature":6799,"showOnPricing":6832,"tiers":7166},"scoped-personal-access-tokens","Scoped Personal Access Tokens","Restrict a Personal Access Token to specific teams, limit it to read-only operations, or control whether it carries admin privileges.",[7164],{"url":7165,"release":6895},"\u002Fchangelog\u002F2026\u002F07\u002Fscoped-pats\u002F",{"edge":6799,"hub":6799,"fleet":6799},{"id":7168,"title":7169,"description":7170,"docsLink":7171,"showOnPricing":6832,"tiers":7172},"team-members","Team Members","Invite multiple team members to collaborate on the same Node-RED flows.","\u002Fdocs\u002Fuser\u002Fteam\u002F#teams",{"edge":6799,"hub":6799,"fleet":6799},{"id":7174,"title":7175,"description":7176,"docsLink":7177,"showOnPricing":6832,"tiers":7178},"endpoint-security","Endpoint Security","Secure HTTP endpoints for hosted Node-RED instances using FlowFuse credentials.","\u002Fdocs\u002Fuser\u002Finstance-settings\u002F#security",{"edge":6799,"hub":6799,"fleet":6799},{"id":7180,"title":7181,"description":7182,"docsLink":7183,"tiers":7184},"baa-for-hipaa","BAA for HIPAA","FlowFuse can sign a Business Associate Agreement to ensure proper safeguarding of protected health information handled on your behalf.","\u002Fhandbook\u002Fsales\u002Fsubscription-agreement-1.6\u002F",{"edge":6832,"hub":6799,"fleet":6832},{"id":7186,"title":7187,"description":7188,"tiers":7189},"sbom","Software Bill of Materials","A complete list of all software components used in your Node-RED instances and hosted applications, including version numbers and license information.",{"edge":6832,"hub":6799,"fleet":6832},{"id":7191,"title":7192,"features":7193},"support","Support",[7194,7199,7203],{"id":7195,"title":7196,"docsLink":7197,"tiers":7198},"installation-support","Installation Support","\u002Fdocs\u002Finstall\u002Fintroduction\u002F#do-you-need-help-installation-service",{"edge":6799,"hub":6799,"fleet":6799},{"id":7200,"title":7201,"showOnPricing":6832,"tiers":7202},"live-chat-support","Live Chat Support",{"edge":6799,"hub":6799,"fleet":6799},{"id":7204,"title":7205,"docsLink":7206,"tiers":7207},"enterprise-support","Enterprise Support","\u002Fdocs\u002Fpremium-support\u002F",{"edge":6799,"hub":6799,"fleet":6799},"feature-catalog","v5NjPsqOkQexQ0Fk82nqY6ZEXj128lclDvrIkmsKbpM",[7211,7297,7535,7605,7618,7758,7768,7849],{"name":7212,"order":7213,"children":7214},"Application Guide",0,[7215,7263],{"title":7216,"path":7217,"group":7212,"groupOrder":7213,"order":59,"children":7218},"Building FlowFuse applications","\u002Fdocs\u002Fapplication-guide",[7219,7223,7235,7239,7255],{"title":7220,"path":7221,"order":59,"children":7222},"Foundations","\u002Fdocs\u002Fapplication-guide\u002Ffoundations",[],{"title":7224,"path":7225,"order":2846,"children":7226},"App delivery methods","\u002Fdocs\u002Fapplication-guide\u002Fapp-delivery-methods",[7227,7231],{"title":7228,"path":7229,"order":59,"children":7230},"Hardware apps","\u002Fdocs\u002Fapplication-guide\u002Fapp-delivery-methods\u002Fhardware-apps",[],{"title":7232,"path":7233,"order":2846,"children":7234},"Software apps","\u002Fdocs\u002Fapplication-guide\u002Fapp-delivery-methods\u002Fsoftware-apps",[],{"title":7236,"path":7237,"order":2906,"children":7238},"Data plane","\u002Fdocs\u002Fapplication-guide\u002Fdata-plane",[],{"title":7240,"path":7241,"order":2925,"children":7242},"Architectures","\u002Fdocs\u002Fapplication-guide\u002Farchitectures",[7243,7247,7251],{"title":7244,"path":7245,"order":59,"children":7246},"IT architectures","\u002Fdocs\u002Fapplication-guide\u002Farchitectures\u002Fit",[],{"title":7248,"path":7249,"order":2846,"children":7250},"OT architectures","\u002Fdocs\u002Fapplication-guide\u002Farchitectures\u002Fot",[],{"title":7252,"path":7253,"order":2906,"children":7254},"IIoT architectures","\u002Fdocs\u002Fapplication-guide\u002Farchitectures\u002Fiiot",[],{"title":7256,"path":7257,"order":2956,"children":7258},"Worked examples","\u002Fdocs\u002Fapplication-guide\u002Fworked-examples",[7259],{"title":7260,"path":7261,"order":59,"children":7262},"OEE, end to end","\u002Fdocs\u002Fapplication-guide\u002Fworked-examples\u002Foee",[],{"title":7264,"path":7265,"group":7212,"groupOrder":7213,"order":2846,"children":7266},"Designing Node-RED flows","\u002Fdocs\u002Fnode-red-guide",[7267,7270,7286],{"title":7220,"path":7268,"order":59,"children":7269},"\u002Fdocs\u002Fnode-red-guide\u002Ffoundations",[],{"title":7271,"path":7272,"order":2846,"children":7273},"Patterns","\u002Fdocs\u002Fnode-red-guide\u002Fpatterns",[7274,7278,7282],{"title":7275,"path":7276,"order":59,"children":7277},"Design patterns","\u002Fdocs\u002Fnode-red-guide\u002Fpatterns\u002Fdesign-patterns",[],{"title":7279,"path":7280,"order":2846,"children":7281},"Handling data","\u002Fdocs\u002Fnode-red-guide\u002Fpatterns\u002Fhandling-data",[],{"title":7283,"path":7284,"order":2906,"children":7285},"Good form","\u002Fdocs\u002Fnode-red-guide\u002Fpatterns\u002Fgood-form",[],{"title":7256,"path":7287,"order":2906,"children":7288},"\u002Fdocs\u002Fnode-red-guide\u002Fworked-examples",[7289,7293],{"title":7290,"path":7291,"order":59,"children":7292},"OEE - Edge Aggregator","\u002Fdocs\u002Fnode-red-guide\u002Fworked-examples\u002Foee-edge-aggregator",[],{"title":7294,"path":7295,"order":2846,"children":7296},"OEE - Central Dashboard","\u002Fdocs\u002Fnode-red-guide\u002Fworked-examples\u002Foee-central-dashboard",[],{"name":7298,"order":59,"children":7299},"FlowFuse User Manuals",[7300,7425,7429,7441],{"title":7301,"path":7302,"group":7298,"groupOrder":59,"order":59,"children":7303,"link":6832},"Using FlowFuse","\u002Fdocs\u002Fuser",[7304,7308,7312,7316,7320,7325,7329,7332,7336,7340,7343,7347,7363,7367,7371,7375,7379,7382,7386,7390,7394,7398,7402,7405,7409,7413,7417,7421],{"title":7305,"path":7306,"order":59,"children":7307},"Getting Started","\u002Fdocs\u002Fuser\u002Fintroduction",[],{"title":7309,"path":7310,"order":59,"children":7311},"Static asset service","\u002Fdocs\u002Fuser\u002Fstatic-asset-service",[],{"title":7313,"path":7314,"order":2846,"children":7315},"Bill of Materials","\u002Fdocs\u002Fuser\u002Fbill-of-materials",[],{"title":7317,"path":7318,"order":2846,"children":7319},"FlowFuse Concepts","\u002Fdocs\u002Fuser\u002Fconcepts",[],{"title":7321,"path":7322,"order":7323,"children":7324},"Instance States","\u002Fdocs\u002Fuser\u002Finstance-states",10,[],{"title":7326,"path":7327,"order":6795,"children":7328},"Changing the Stack","\u002Fdocs\u002Fuser\u002Fchangestack",[],{"title":6993,"path":7330,"order":6795,"children":7331},"\u002Fdocs\u002Fuser\u002Fcustom-hostnames",[],{"title":7333,"path":7334,"order":6795,"children":7335},"Custom Node Packages","\u002Fdocs\u002Fuser\u002Fcustom-npm-packages",[],{"title":7337,"path":7338,"order":6795,"children":7339},"Dashboards","\u002Fdocs\u002Fuser\u002Fdashboards",[],{"title":7011,"path":7341,"order":6795,"children":7342},"\u002Fdocs\u002Fuser\u002Fdevops-pipelines",[],{"title":7344,"path":7345,"order":6795,"children":7346},"Environment Variables","\u002Fdocs\u002Fuser\u002Fenvvar",[],{"title":7348,"path":7349,"order":6795,"children":7350},"FlowFuse Expert","\u002Fdocs\u002Fuser\u002Fexpert",[7351,7355,7359],{"title":7352,"path":7353,"order":6795,"children":7354},"AI in Node-RED","\u002Fdocs\u002Fuser\u002Fexpert\u002Fnode-red-embedded-ai",[],{"title":7356,"path":7357,"order":6795,"children":7358},"Chat Interface","\u002Fdocs\u002Fuser\u002Fexpert\u002Fchat",[],{"title":7360,"path":7361,"order":6795,"children":7362},"Connect Your Own Agent","\u002Fdocs\u002Fuser\u002Fexpert\u002Fthird-party-agents",[],{"title":7364,"path":7365,"order":6795,"children":7366},"FlowFuse File Nodes","\u002Fdocs\u002Fuser\u002Ffilenodes",[],{"title":7368,"path":7369,"order":6795,"children":7370},"FlowFuse MQTT Nodes","\u002Fdocs\u002Fuser\u002Fmqtt-nodes",[],{"title":7372,"path":7373,"order":6795,"children":7374},"FlowFuse Persistent Context","\u002Fdocs\u002Fuser\u002Fpersistent-context",[],{"title":7376,"path":7377,"order":6795,"children":7378},"FlowFuse Project Nodes","\u002Fdocs\u002Fuser\u002Fprojectnodes",[],{"title":6889,"path":7380,"order":6795,"children":7381},"\u002Fdocs\u002Fuser\u002Fff-tables",[],{"title":7383,"path":7384,"order":6795,"children":7385},"Groups","\u002Fdocs\u002Fuser\u002Fdevice-groups",[],{"title":7387,"path":7388,"order":6795,"children":7389},"High Availability mode","\u002Fdocs\u002Fuser\u002Fhigh-availability",[],{"title":7391,"path":7392,"order":6795,"children":7393},"HTTP Access Tokens","\u002Fdocs\u002Fuser\u002Fhttp-access-tokens",[],{"title":7395,"path":7396,"order":6795,"children":7397},"Instance Settings","\u002Fdocs\u002Fuser\u002Finstance-settings",[],{"title":7399,"path":7400,"order":6795,"children":7401},"Logging","\u002Fdocs\u002Fuser\u002Flogs",[],{"title":7149,"path":7403,"order":6795,"children":7404},"\u002Fdocs\u002Fuser\u002Frole-based-access-control",[],{"title":7406,"path":7407,"order":6795,"children":7408},"Shared Team Library","\u002Fdocs\u002Fuser\u002Fshared-library",[],{"title":7410,"path":7411,"order":6795,"children":7412},"Snapshots","\u002Fdocs\u002Fuser\u002Fsnapshots",[],{"title":7414,"path":7415,"order":6795,"children":7416},"Team Broker","\u002Fdocs\u002Fuser\u002Fteambroker",[],{"title":7418,"path":7419,"order":6795,"children":7420},"Teams","\u002Fdocs\u002Fuser\u002Fteam",[],{"title":7422,"path":7423,"order":6795,"children":7424},"User Settings","\u002Fdocs\u002Fuser\u002Fuser-settings",[],{"title":7426,"path":7427,"group":7298,"groupOrder":59,"order":2846,"children":7428},"FlowFuse API","\u002Fdocs\u002Fapi",[],{"title":7430,"path":7431,"group":7298,"groupOrder":59,"order":2906,"children":7432,"link":6832},"Migrating a Node-RED project to FlowFuse","\u002Fdocs\u002Fmigration",[7433,7437],{"title":7434,"path":7435,"order":59,"children":7436},"Introduction","\u002Fdocs\u002Fmigration\u002Fintroduction",[],{"title":7438,"path":7439,"order":6795,"children":7440},"Node-RED Tools plugin","\u002Fdocs\u002Fmigration\u002Fnode-red-tools",[],{"title":7442,"path":7443,"group":7298,"groupOrder":59,"order":2925,"children":7444},"FlowFuse Node-RED nodes","\u002Fdocs\u002Fflowfuse-nodes",[7445,7469,7489,7496,7516,7527],{"title":7446,"path":7447,"order":59,"children":7448},"AI","\u002Fdocs\u002Fflowfuse-nodes\u002Fai",[7449,7453,7457,7461,7465],{"title":7450,"path":7451,"order":2956,"children":7452},"LLM Nodes","\u002Fdocs\u002Fflowfuse-nodes\u002Fai\u002Fllm-nodes",[],{"title":7454,"path":7455,"order":6797,"children":7456},"Depth Estimation","\u002Fdocs\u002Fflowfuse-nodes\u002Fai\u002Fdepth-estimation",[],{"title":7458,"path":7459,"order":6797,"children":7460},"Image Classification","\u002Fdocs\u002Fflowfuse-nodes\u002Fai\u002Fimage-classification",[],{"title":7462,"path":7463,"order":6797,"children":7464},"Object Detection","\u002Fdocs\u002Fflowfuse-nodes\u002Fai\u002Fobject-detection",[],{"title":7466,"path":7467,"order":6797,"children":7468},"ONXX","\u002Fdocs\u002Fflowfuse-nodes\u002Fai\u002Fonxx",[],{"title":7470,"path":7471,"order":2846,"children":7472},"MCP","\u002Fdocs\u002Fflowfuse-nodes\u002Fmcp",[7473,7477,7481,7485],{"title":7474,"path":7475,"order":6797,"children":7476},"MCP Prompt","\u002Fdocs\u002Fflowfuse-nodes\u002Fmcp\u002Fmcp-prompt",[],{"title":7478,"path":7479,"order":6797,"children":7480},"MCP Resource","\u002Fdocs\u002Fflowfuse-nodes\u002Fmcp\u002Fmcp-resource",[],{"title":7482,"path":7483,"order":6797,"children":7484},"MCP Responses","\u002Fdocs\u002Fflowfuse-nodes\u002Fmcp\u002Fmcp-response",[],{"title":7486,"path":7487,"order":6797,"children":7488},"MCP Tool","\u002Fdocs\u002Fflowfuse-nodes\u002Fmcp\u002Fmcp-tool",[],{"title":6889,"path":7490,"order":2906,"children":7491},"\u002Fdocs\u002Fflowfuse-nodes\u002Fflowfuse-tables",[7492],{"title":7493,"path":7494,"order":6797,"children":7495},"Query","\u002Fdocs\u002Fflowfuse-nodes\u002Fflowfuse-tables\u002Fquery",[],{"title":7497,"path":7498,"order":2925,"children":7499},"Edge","\u002Fdocs\u002Fflowfuse-nodes\u002Fedge",[7500,7504,7508,7512],{"title":7501,"path":7502,"order":59,"children":7503},"RTSP Video Feed","\u002Fdocs\u002Fflowfuse-nodes\u002Fedge\u002Frtsp",[],{"title":7505,"path":7506,"order":2846,"children":7507},"CIP Suite, EtherNet\u002FIP Nodes","\u002Fdocs\u002Fflowfuse-nodes\u002Fedge\u002Fcip-suite",[],{"title":7509,"path":7510,"order":2906,"children":7511},"Modbus","\u002Fdocs\u002Fflowfuse-nodes\u002Fedge\u002Fmodbus",[],{"title":7513,"path":7514,"order":6797,"children":7515},"OPC UA","\u002Fdocs\u002Fflowfuse-nodes\u002Fedge\u002Fopcua",[],{"title":7368,"path":7517,"order":2956,"children":7518},"\u002Fdocs\u002Fflowfuse-nodes\u002Fmqtt",[7519,7523],{"title":7520,"path":7521,"order":6797,"children":7522},"MQTT In","\u002Fdocs\u002Fflowfuse-nodes\u002Fmqtt\u002Fmqtt-in",[],{"title":7524,"path":7525,"order":6797,"children":7526},"MQTT Out","\u002Fdocs\u002Fflowfuse-nodes\u002Fmqtt\u002Fmqtt-out",[],{"title":7528,"path":7529,"order":2956,"children":7530},"Hub","\u002Fdocs\u002Fflowfuse-nodes\u002Fhub",[7531],{"title":7532,"path":7533,"order":59,"children":7534},"Redis","\u002Fdocs\u002Fflowfuse-nodes\u002Fhub\u002Fredis",[],{"name":7536,"order":2846,"children":7537},"Device Agent",[7538,7586],{"title":7536,"path":7539,"group":7536,"groupOrder":2846,"order":59,"children":7540,"link":6832},"\u002Fdocs\u002Fdevice-agent",[7541,7545,7549,7574,7578,7582],{"title":7542,"path":7543,"order":59,"children":7544},"FlowFuse Device Agent Introduction","\u002Fdocs\u002Fdevice-agent\u002Fintroduction",[],{"title":7546,"path":7547,"order":2846,"children":7548},"Quick Start","\u002Fdocs\u002Fdevice-agent\u002Fquickstart",[],{"title":7550,"path":7551,"group":7552,"order":2906,"children":7553,"link":6832},"Installation","\u002Fdocs\u002Fdevice-agent\u002Finstall","DeviceAgentInstallation",[7554,7558,7562,7566,7570],{"title":7555,"path":7556,"group":7552,"order":59,"children":7557},"Overview","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Foverview",[],{"title":7559,"path":7560,"group":7552,"order":2846,"children":7561},"Device Agent Installer","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fdevice-agent-installer",[],{"title":7563,"path":7564,"group":7552,"order":2906,"children":7565},"Docker Install","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fdocker",[],{"title":7567,"path":7568,"group":7552,"order":2925,"children":7569},"Kubernetes Install","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fkubernetes",[],{"title":7571,"path":7572,"group":7552,"order":2956,"children":7573},"Manual Install with NPM","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fmanual",[],{"title":7575,"path":7576,"order":2925,"children":7577},"Register your Remote Instance","\u002Fdocs\u002Fdevice-agent\u002Fregister",[],{"title":7579,"path":7580,"order":2956,"children":7581},"Running the Agent","\u002Fdocs\u002Fdevice-agent\u002Frunning",[],{"title":7583,"path":7584,"order":2966,"children":7585},"Deploying your Flows","\u002Fdocs\u002Fdevice-agent\u002Fdeploy",[],{"title":7587,"path":7588,"group":7536,"groupOrder":2846,"order":2846,"children":7589,"link":6832},"Hardware Guides","\u002Fdocs\u002Fhardware",[7590,7593,7597,7601],{"title":7555,"path":7591,"order":59,"children":7592},"\u002Fdocs\u002Fhardware\u002Fintroduction",[],{"title":7594,"path":7595,"order":2846,"children":7596},"ctrlX - Node-RED","\u002Fdocs\u002Fhardware\u002Fctrlx-node-red",[],{"title":7598,"path":7599,"order":2906,"children":7600},"ctrlX - Device Agent","\u002Fdocs\u002Fhardware\u002Fctrlx-device-agent",[],{"title":7602,"path":7603,"order":2906,"children":7604},"Raspberry Pi with Raspbian","\u002Fdocs\u002Fhardware\u002Fraspbian",[],{"name":7606,"order":2906,"children":7607},"FlowFuse Cloud",[7608],{"title":7606,"path":7609,"group":7606,"groupOrder":2906,"order":2906,"children":7610,"link":6832},"\u002Fdocs\u002Fcloud",[7611,7614],{"title":7434,"path":7612,"order":59,"children":7613},"\u002Fdocs\u002Fcloud\u002Fintroduction",[],{"title":7615,"path":7616,"order":6795,"children":7617},"FlowFuse Cloud Billing","\u002Fdocs\u002Fcloud\u002Fbilling",[],{"name":7619,"order":2925,"children":7620},"FlowFuse Self-Hosted",[7621,7624,7699,7711],{"title":7546,"path":7622,"group":7619,"groupOrder":2925,"order":59,"children":7623},"\u002Fdocs\u002Fquick-start",[],{"title":7625,"path":7626,"group":7619,"groupOrder":2925,"order":2846,"children":7627,"link":6832},"Installing FlowFuse","\u002Fdocs\u002Finstall",[7628,7631,7635,7639,7659,7663,7667,7671],{"title":7555,"path":7629,"order":59,"children":7630},"\u002Fdocs\u002Finstall\u002Fintroduction",[],{"title":7632,"path":7633,"order":6795,"children":7634},"Configuring FlowFuse","\u002Fdocs\u002Finstall\u002Fconfiguration",[],{"title":7636,"path":7637,"order":6795,"children":7638},"DNS Setup","\u002Fdocs\u002Finstall\u002Fdns-setup",[],{"title":7640,"path":7641,"order":6795,"children":7642},"Docker install","\u002Fdocs\u002Finstall\u002Fdocker",[7643,7647,7651,7655],{"title":7644,"path":7645,"order":6795,"children":7646},"Add Project Stacks on Docker","\u002Fdocs\u002Finstall\u002Fdocker\u002Fstacks",[],{"title":7648,"path":7649,"order":6795,"children":7650},"Docker Engine on Windows","\u002Fdocs\u002Finstall\u002Fdocker\u002Fwindows-docker-ce",[],{"title":7652,"path":7653,"order":6795,"children":7654},"Docker from AWS Market Place","\u002Fdocs\u002Finstall\u002Fdocker\u002Faws-marketplace",[],{"title":7656,"path":7657,"order":6795,"children":7658},"Docker on Digital Ocean","\u002Fdocs\u002Finstall\u002Fdocker\u002Fdigital-ocean",[],{"title":7660,"path":7661,"order":6795,"children":7662},"Email configuration","\u002Fdocs\u002Finstall\u002Femail-providers",[],{"title":7664,"path":7665,"order":6795,"children":7666},"First Run Setup","\u002Fdocs\u002Finstall\u002Ffirst-run",[],{"title":7668,"path":7669,"order":6795,"children":7670},"FlowFuse File Storage","\u002Fdocs\u002Finstall\u002Ffile-storage",[],{"title":7672,"path":7673,"order":6795,"children":7674},"Install FlowFuse on Kubernetes","\u002Fdocs\u002Finstall\u002Fkubernetes",[7675,7679,7683,7687,7691,7695],{"title":7676,"path":7677,"order":6795,"children":7678},"AWS EKS Installation","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Faws",[],{"title":7680,"path":7681,"order":6795,"children":7682},"AWS EKS Installation with Terraform and Helm","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Faws-terraform",[],{"title":7684,"path":7685,"order":6795,"children":7686},"Digital Ocean Kubernetes Installation","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fdigital-ocean",[],{"title":7688,"path":7689,"order":6795,"children":7690},"Ingress Controller Migration","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fingress-controller-migration",[],{"title":7692,"path":7693,"order":6795,"children":7694},"Kubernetes Project Stacks","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fstacks",[],{"title":7696,"path":7697,"order":6795,"children":7698},"OpenShift Installation","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fopenshift",[],{"title":7700,"path":7701,"group":7619,"groupOrder":2925,"order":2906,"children":7702},"Upgrading FlowFuse","\u002Fdocs\u002Fupgrade",[7703,7707],{"title":7704,"path":7705,"order":6795,"children":7706},"Installing a license","\u002Fdocs\u002Fupgrade\u002Fopen-source-to-premium",[],{"title":7708,"path":7709,"order":6795,"children":7710},"Upgrading the Node-RED version","\u002Fdocs\u002Fupgrade\u002Fnodered-version",[],{"title":7712,"path":7713,"group":7619,"groupOrder":2925,"order":2925,"children":7714,"link":6832},"Administering FlowFuse","\u002Fdocs\u002Fadmin",[7715,7718,7730,7738,7742,7746,7750,7754],{"title":7712,"path":7716,"order":59,"children":7717},"\u002Fdocs\u002Fadmin\u002Fintroduction",[],{"title":7719,"path":7720,"order":6795,"children":7721},"Configuring Single Sign-On (SSO)","\u002Fdocs\u002Fadmin\u002Fsso",[7722,7726],{"title":7723,"path":7724,"order":6795,"children":7725},"LDAP SSO","\u002Fdocs\u002Fadmin\u002Fsso\u002Fldap",[],{"title":7727,"path":7728,"order":6795,"children":7729},"SAML SSO","\u002Fdocs\u002Fadmin\u002Fsso\u002Fsaml",[],{"title":7731,"path":7732,"order":6795,"children":7733,"link":6832},"Hardening","\u002Fdocs\u002Fadmin\u002Fhardening",[7734],{"title":7735,"path":7736,"order":6795,"children":7737},"Kubernetes Hardening","\u002Fdocs\u002Fadmin\u002Fhardening\u002Fkubernetes",[],{"title":7739,"path":7740,"order":6795,"children":7741},"Monitoring","\u002Fdocs\u002Fadmin\u002Fmonitoring",[],{"title":7743,"path":7744,"order":6795,"children":7745},"Observability","\u002Fdocs\u002Fadmin\u002Fobservability",[],{"title":7747,"path":7748,"order":6795,"children":7749},"Soft Launch Enablement","\u002Fdocs\u002Fadmin\u002Ffeature-flags",[],{"title":7751,"path":7752,"order":6795,"children":7753},"Telemetry","\u002Fdocs\u002Fadmin\u002Ftelemetry",[],{"title":7755,"path":7756,"order":6795,"children":7757},"User Management","\u002Fdocs\u002Fadmin\u002Fuser-management",[],{"name":7192,"order":2956,"children":7759},[7760,7764],{"title":7761,"path":7762,"group":7192,"groupOrder":2956,"order":2906,"children":7763},"Premium Support","\u002Fdocs\u002Fpremium-support",[],{"title":7765,"path":7766,"group":7192,"groupOrder":2956,"order":6795,"children":7767},"Debugging Node-RED issues","\u002Fdocs\u002Fdebugging",[],{"name":7769,"order":2966,"children":7770},"Contributing",[7771],{"title":7772,"path":7773,"group":7769,"groupOrder":2966,"order":6795,"children":7774,"link":6832},"Contributing to FlowFuse","\u002Fdocs\u002Fcontribute",[7775,7778,7782,7786,7790,7794,7798,7806,7842,7845],{"title":7434,"path":7776,"order":59,"children":7777},"\u002Fdocs\u002Fcontribute\u002Fintroduction",[],{"title":7779,"path":7780,"order":6795,"children":7781},"Adding Template Settings","\u002Fdocs\u002Fcontribute\u002Fadding-template-settings",[],{"title":7783,"path":7784,"order":6795,"children":7785},"API Design","\u002Fdocs\u002Fcontribute\u002Fapi-design",[],{"title":7787,"path":7788,"order":6795,"children":7789},"Creating debug stack containers","\u002Fdocs\u002Fcontribute\u002Fcreating-debug-stack-containers",[],{"title":7791,"path":7792,"order":6795,"children":7793},"Database migrations","\u002Fdocs\u002Fcontribute\u002Fdb-migrations",[],{"title":7795,"path":7796,"order":6795,"children":7797},"FlowFuse Architecture","\u002Fdocs\u002Fcontribute\u002Farchitecture",[],{"title":7799,"path":7800,"order":6795,"children":7801},"Local Install","\u002Fdocs\u002Fcontribute\u002Flocal",[7802],{"title":7803,"path":7804,"order":6795,"children":7805},"Local Stacks","\u002Fdocs\u002Fcontribute\u002Flocal\u002Fstacks",[],{"title":7807,"path":7808,"order":6795,"children":7809},"State Flows","\u002Fdocs\u002Fcontribute\u002Fworkflows",[7810,7814,7818,7822,7826,7830,7834,7838],{"title":7811,"path":7812,"order":6795,"children":7813},"Device Editor","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fdevice-editor",[],{"title":7815,"path":7816,"order":6795,"children":7817},"Instance states","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fproject-states",[],{"title":7819,"path":7820,"order":6795,"children":7821},"Invite External Users","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Finvite-external-user",[],{"title":7823,"path":7824,"order":6795,"children":7825},"Project Creation","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fproject-create",[],{"title":7827,"path":7828,"order":6795,"children":7829},"Reset Password Flow","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fpassword-reset",[],{"title":7831,"path":7832,"order":6795,"children":7833},"Team creation Flow","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fteam-create",[],{"title":7835,"path":7836,"order":6795,"children":7837},"User Login Flows","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Flogin",[],{"title":7839,"path":7840,"order":6795,"children":7841},"User Sign up Flow","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fsignup",[],{"title":7414,"path":7843,"order":6795,"children":7844},"\u002Fdocs\u002Fcontribute\u002Fteam-broker",[],{"title":7846,"path":7847,"order":6795,"children":7848},"Working with Feature Flags","\u002Fdocs\u002Fcontribute\u002Ffeature-flags",[],{"name":7850,"order":7851,"children":7852},"Node-RED",7,[7853],{"title":7854,"path":7855,"group":7850,"groupOrder":7851,"order":59,"children":7856},"Using Node-RED","\u002Fdocs\u002Fnode-red",[7857,7930,8106,8133,8172,8186,8202,8230,8250,8254],{"title":7858,"path":7859,"order":2846,"children":7860},"Getting started","\u002Fdocs\u002Fnode-red\u002Fgetting-started",[7861,7881,7885,7889,7893,7897,7901,7905,7909],{"title":7862,"path":7863,"order":59,"children":7864},"Editor","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor",[7865,7869,7873,7877],{"title":7866,"path":7867,"order":6797,"children":7868},"Header","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fheader",[],{"title":7870,"path":7871,"order":6797,"children":7872},"Palette","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fpalette",[],{"title":7874,"path":7875,"order":6797,"children":7876},"Sidebar","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fsidebar",[],{"title":7878,"path":7879,"order":6797,"children":7880},"Workspace","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fworkspace",[],{"title":7882,"path":7883,"order":2846,"children":7884},"Port Configuration","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Fnode-red-port",[],{"title":7886,"path":7887,"order":2906,"children":7888},"Node-RED Library","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Flibrary",[],{"title":7890,"path":7891,"order":2906,"children":7892},"Update Node-RED","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Fupdate-node-red",[],{"title":7894,"path":7895,"order":2925,"children":7896},"Node-RED On Android","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Fnode-red-android",[],{"title":7898,"path":7899,"order":2956,"children":7900},"Working with Messages","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Fnode-red-messages",[],{"title":7902,"path":7903,"order":2966,"children":7904},"String","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Fstring",[],{"title":7906,"path":7907,"order":7851,"children":7908},"Date & Time","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Fdate-and-time",[],{"title":7910,"path":7911,"order":7912,"children":7913},"Programming","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Fprogramming",8,[7914,7918,7922,7926],{"title":7915,"path":7916,"order":6797,"children":7917},"Data Tranformation","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Fprogramming\u002Fdata-tranformation",[],{"title":7919,"path":7920,"order":6797,"children":7921},"Debugging","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Fprogramming\u002Fdebugging-flows",[],{"title":7923,"path":7924,"order":6797,"children":7925},"If-Else","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Fprogramming\u002Fif-else",[],{"title":7927,"path":7928,"order":6797,"children":7929},"Loop","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Fprogramming\u002Floop",[],{"title":7931,"path":7932,"order":2906,"children":7933},"Core nodes","\u002Fdocs\u002Fnode-red\u002Fcore-nodes",[7934,7968,8009,8051,8070,8094],{"title":7935,"path":7936,"order":59,"children":7937},"Common nodes","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fcommon",[7938,7941,7944,7948,7952,7956,7960,7964],{"title":3882,"path":7939,"order":59,"children":7940},"\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fcommon\u002Finject",[],{"title":3725,"path":7942,"order":2846,"children":7943},"\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fcommon\u002Fdebug",[],{"title":7945,"path":7946,"order":2906,"children":7947},"Complete","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fcommon\u002Fcomplete",[],{"title":7949,"path":7950,"order":2925,"children":7951},"Catch","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fcommon\u002Fcatch",[],{"title":7953,"path":7954,"order":2956,"children":7955},"Status","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fcommon\u002Fstatus",[],{"title":7957,"path":7958,"order":2966,"children":7959},"Link","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fcommon\u002Flink",[],{"title":7961,"path":7962,"order":7851,"children":7963},"Comment","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fcommon\u002Fcomment",[],{"title":7965,"path":7966,"order":7912,"children":7967},"Unknown","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fcommon\u002Funknown",[],{"title":7969,"path":7970,"order":2846,"children":7971},"Function nodes","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Ffunction",[7972,7976,7980,7984,7988,7992,7996,8000,8004],{"title":7973,"path":7974,"order":59,"children":7975},"Function","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Ffunction\u002Ffunction",[],{"title":7977,"path":7978,"order":2846,"children":7979},"Switch","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Ffunction\u002Fswitch",[],{"title":7981,"path":7982,"order":2906,"children":7983},"Change","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Ffunction\u002Fchange",[],{"title":7985,"path":7986,"order":2925,"children":7987},"Range","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Ffunction\u002Frange",[],{"title":7989,"path":7990,"order":2956,"children":7991},"Template","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Ffunction\u002Ftemplate",[],{"title":7993,"path":7994,"order":2966,"children":7995},"Delay","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Ffunction\u002Fdelay",[],{"title":7997,"path":7998,"order":7851,"children":7999},"Trigger","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Ffunction\u002Ftrigger",[],{"title":8001,"path":8002,"order":7912,"children":8003},"Exec","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Ffunction\u002Fexec",[],{"title":8005,"path":8006,"order":8007,"children":8008},"Filter","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Ffunction\u002Ffilter",9,[],{"title":8010,"path":8011,"order":2906,"children":8012},"Network nodes","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fnetwork",[8013,8017,8021,8024,8027,8031,8035,8039,8043,8047],{"title":8014,"path":8015,"order":59,"children":8016},"TLS","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fnetwork\u002Ftls",[],{"title":8018,"path":8019,"order":2846,"children":8020},"HTTP Proxy","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fnetwork\u002Fhttp-proxy",[],{"title":7520,"path":8022,"order":2906,"children":8023},"\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fnetwork\u002Fmqtt-in",[],{"title":7524,"path":8025,"order":2925,"children":8026},"\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fnetwork\u002Fmqtt-out",[],{"title":8028,"path":8029,"order":2956,"children":8030},"HTTP in","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fnetwork\u002Fhttp-in",[],{"title":8032,"path":8033,"order":2966,"children":8034},"HTTP request","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fnetwork\u002Fhttp-request",[],{"title":8036,"path":8037,"order":7851,"children":8038},"WebSocket","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fnetwork\u002Fwebsocket",[],{"title":8040,"path":8041,"order":7912,"children":8042},"TCP in","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fnetwork\u002Ftcp-in",[],{"title":8044,"path":8045,"order":8007,"children":8046},"UDP In","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fnetwork\u002Fudp-in",[],{"title":8048,"path":8049,"order":7323,"children":8050},"UDP Out","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fnetwork\u002Fudp-out",[],{"title":8052,"path":8053,"order":2925,"children":8054},"Sequence nodes","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fsequence",[8055,8058,8062,8066],{"title":3845,"path":8056,"order":59,"children":8057},"\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fsequence\u002Fsplit",[],{"title":8059,"path":8060,"order":2846,"children":8061},"Sort","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fsequence\u002Fsort",[],{"title":8063,"path":8064,"order":2906,"children":8065},"Batch","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fsequence\u002Fbatch",[],{"title":8067,"path":8068,"order":2925,"children":8069},"Join","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fsequence\u002Fjoin",[],{"title":8071,"path":8072,"order":2956,"children":8073},"Parser nodes","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fparsers",[8074,8078,8082,8086,8090],{"title":8075,"path":8076,"order":59,"children":8077},"CSV","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fparsers\u002Fcsv",[],{"title":8079,"path":8080,"order":2846,"children":8081},"HTML","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fparsers\u002Fhtml",[],{"title":8083,"path":8084,"order":2906,"children":8085},"JSON","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fparsers\u002Fjson",[],{"title":8087,"path":8088,"order":2925,"children":8089},"XML","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fparsers\u002Fxml",[],{"title":8091,"path":8092,"order":2956,"children":8093},"YAML","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fparsers\u002Fyaml",[],{"title":8095,"path":8096,"order":2966,"children":8097},"Storage nodes","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fstorage",[8098,8102],{"title":8099,"path":8100,"order":59,"children":8101},"Write File","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fstorage\u002Fwrite-file",[],{"title":8103,"path":8104,"order":2846,"children":8105},"Read File","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fstorage\u002Fread-file",[],{"title":8107,"path":8108,"order":2925,"children":8109},"Communication protocols","\u002Fdocs\u002Fnode-red\u002Fprotocol",[8110,8114,8118,8121,8125,8129],{"title":8111,"path":8112,"order":6797,"children":8113},"AMQP","\u002Fdocs\u002Fnode-red\u002Fprotocol\u002Famqp",[],{"title":8115,"path":8116,"order":6797,"children":8117},"LwM2M","\u002Fdocs\u002Fnode-red\u002Fprotocol\u002Flwm2m",[],{"title":7509,"path":8119,"order":6797,"children":8120},"\u002Fdocs\u002Fnode-red\u002Fprotocol\u002Fmodbus",[],{"title":8122,"path":8123,"order":6797,"children":8124},"MQTT","\u002Fdocs\u002Fnode-red\u002Fprotocol\u002Fmqtt",[],{"title":8126,"path":8127,"order":6797,"children":8128},"OPC-UA","\u002Fdocs\u002Fnode-red\u002Fprotocol\u002Fopc-ua",[],{"title":8130,"path":8131,"order":6797,"children":8132},"Websocket","\u002Fdocs\u002Fnode-red\u002Fprotocol\u002Fwebsocket",[],{"title":8134,"path":8135,"order":2956,"children":8136},"Databases","\u002Fdocs\u002Fnode-red\u002Fdatabase",[8137,8141,8145,8149,8153,8157,8161,8164,8168],{"title":8138,"path":8139,"order":6797,"children":8140},"DynamoDB","\u002Fdocs\u002Fnode-red\u002Fdatabase\u002Fdynamodb",[],{"title":8142,"path":8143,"order":6797,"children":8144},"Firebase","\u002Fdocs\u002Fnode-red\u002Fdatabase\u002Ffirebase",[],{"title":8146,"path":8147,"order":6797,"children":8148},"InfluxDB","\u002Fdocs\u002Fnode-red\u002Fdatabase\u002Finfluxdb",[],{"title":8150,"path":8151,"order":6797,"children":8152},"MongoDB","\u002Fdocs\u002Fnode-red\u002Fdatabase\u002Fmongodb",[],{"title":8154,"path":8155,"order":6797,"children":8156},"MySQL","\u002Fdocs\u002Fnode-red\u002Fdatabase\u002Fmysql",[],{"title":8158,"path":8159,"order":6797,"children":8160},"PostgreSQL","\u002Fdocs\u002Fnode-red\u002Fdatabase\u002Fpostgresql",[],{"title":7532,"path":8162,"order":6797,"children":8163},"\u002Fdocs\u002Fnode-red\u002Fdatabase\u002Fredis",[],{"title":8165,"path":8166,"order":6797,"children":8167},"SQLite","\u002Fdocs\u002Fnode-red\u002Fdatabase\u002Fsqlite",[],{"title":8169,"path":8170,"order":6797,"children":8171},"TimescaleDB","\u002Fdocs\u002Fnode-red\u002Fdatabase\u002Ftimescaledb",[],{"title":8173,"path":8174,"order":2966,"children":8175},"Integration technologies","\u002Fdocs\u002Fnode-red\u002Fintegration-technologies",[8176,8180,8182],{"title":8177,"path":8178,"order":6797,"children":8179},"GraphQL API","\u002Fdocs\u002Fnode-red\u002Fintegration-technologies\u002Fgraphql",[],{"title":6798,"path":6800,"order":6797,"children":8181},[],{"title":8183,"path":8184,"order":6797,"children":8185},"Webhook","\u002Fdocs\u002Fnode-red\u002Fintegration-technologies\u002Fwebhook",[],{"title":8187,"path":8188,"order":7851,"children":8189},"Notification services","\u002Fdocs\u002Fnode-red\u002Fnotification",[8190,8194,8198],{"title":8191,"path":8192,"order":6797,"children":8193},"Discord","\u002Fdocs\u002Fnode-red\u002Fnotification\u002Fdiscord",[],{"title":8195,"path":8196,"order":6797,"children":8197},"Email","\u002Fdocs\u002Fnode-red\u002Fnotification\u002Femail",[],{"title":8199,"path":8200,"order":6797,"children":8201},"Telegram","\u002Fdocs\u002Fnode-red\u002Fnotification\u002Ftelegram",[],{"title":8203,"path":8204,"order":7912,"children":8205},"Hardware","\u002Fdocs\u002Fnode-red\u002Fhardware",[8206,8210,8214,8218,8222,8226],{"title":8207,"path":8208,"order":6797,"children":8209},"BLIIOT ARMxy BL340","\u002Fdocs\u002Fnode-red\u002Fhardware\u002Farmxy-bl340",[],{"title":8211,"path":8212,"order":6797,"children":8213},"Opto-22 Groov Epic","\u002Fdocs\u002Fnode-red\u002Fhardware\u002Fopto-22-groove-rio-7-mm2001-10",[],{"title":8215,"path":8216,"order":6797,"children":8217},"Raspberry Pi 4","\u002Fdocs\u002Fnode-red\u002Fhardware\u002Fraspberry-pi-4",[],{"title":8219,"path":8220,"order":6797,"children":8221},"Raspberry Pi 5","\u002Fdocs\u002Fnode-red\u002Fhardware\u002Fraspberry-pi-5",[],{"title":8223,"path":8224,"order":6797,"children":8225},"Robustel EG5120","\u002Fdocs\u002Fnode-red\u002Fhardware\u002Frobustel-eg5120",[],{"title":8227,"path":8228,"order":6797,"children":8229},"Siemens IoT2050","\u002Fdocs\u002Fnode-red\u002Fhardware\u002Fsiemens-iot-2050",[],{"title":8231,"path":8232,"order":8007,"children":8233},"Peripheral devices","\u002Fdocs\u002Fnode-red\u002Fperipheral",[8234,8238,8242,8246],{"title":8235,"path":8236,"order":6797,"children":8237},"Arduino","\u002Fdocs\u002Fnode-red\u002Fperipheral\u002Fardiuno",[],{"title":8239,"path":8240,"order":6797,"children":8241},"Barcode Scanner","\u002Fdocs\u002Fnode-red\u002Fperipheral\u002Fbarcodescanner",[],{"title":8243,"path":8244,"order":6797,"children":8245},"ESP32","\u002Fdocs\u002Fnode-red\u002Fperipheral\u002Fesp32",[],{"title":8247,"path":8248,"order":6797,"children":8249},"Webcam","\u002Fdocs\u002Fnode-red\u002Fperipheral\u002Fwebcam",[],{"title":8251,"path":8252,"order":7323,"children":8253},"Terminology","\u002Fdocs\u002Fnode-red\u002Fterminology",[],{"title":8255,"path":8256,"order":8257,"children":8258},"Keyboard shortcuts","\u002Fdocs\u002Fnode-red\u002Fkeyboard",11,[],1788888671250]