{ "name": "Cloud Noodl Tests", "components": [ { "name": "/#__cloud__/API Tests/Files", "id": "6c7d63a6-939f-d63b-2ab2-59d6ee4d3823", "graph": { "connections": [ { "fromId": "68446c6b-fa26-4251-34ca-ecaf1b94d89e", "fromProperty": "receive", "toId": "a428ec30-89f4-3471-3730-18a3507f4bf3", "toProperty": "run" }, { "fromId": "68446c6b-fa26-4251-34ca-ecaf1b94d89e", "fromProperty": "pm-FileName", "toId": "a428ec30-89f4-3471-3730-18a3507f4bf3", "toProperty": "in-FileName" }, { "fromId": "a428ec30-89f4-3471-3730-18a3507f4bf3", "fromProperty": "out-Done", "toId": "ca8be22a-601f-61a6-f5ed-39be647eb8d0", "toProperty": "send" } ], "roots": [ { "id": "68446c6b-fa26-4251-34ca-ecaf1b94d89e", "type": "noodl.cloud.request", "x": -174, "y": 1, "parameters": { "params": "FileName" }, "ports": [], "dynamicports": [ { "type": "*", "plug": "output", "group": "Parameters", "name": "pm-FileName", "displayName": "FileName", "index": 5 } ], "children": [] }, { "id": "ca8be22a-601f-61a6-f5ed-39be647eb8d0", "type": "noodl.cloud.response", "x": 414, "y": 4, "parameters": {}, "ports": [], "dynamicports": [], "children": [] }, { "id": "a428ec30-89f4-3471-3730-18a3507f4bf3", "type": "JavaScriptFunction", "x": 104, "y": -12.5, "parameters": { "functionScript": "await Noodl.Files.delete(Inputs.FileName);\n\nOutputs.Done();" }, "ports": [], "dynamicports": [ { "name": "in-FileName", "displayName": "FileName", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 5 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } } ], "visualRoots": [] } }, { "name": "/#__cloud__/API Tests/JSCall", "id": "54ca77e0-35a3-fa9b-aacc-35993ece1314", "graph": { "connections": [ { "fromId": "da6ad196-bc8c-ec08-dfcc-c4b265c29ae8", "fromProperty": "savedValue", "toId": "9c5d19bc-7fa9-7f00-f9dd-fa1ac7233caa", "toProperty": "pm-Test" }, { "fromId": "b24e2e0e-ff2d-ec92-7c21-dce7617a9984", "fromProperty": "receive", "toId": "9c5d19bc-7fa9-7f00-f9dd-fa1ac7233caa", "toProperty": "send" } ], "roots": [ { "id": "b24e2e0e-ff2d-ec92-7c21-dce7617a9984", "type": "noodl.cloud.request", "x": -187, "y": 52, "parameters": {}, "ports": [], "dynamicports": [], "children": [] }, { "id": "9c5d19bc-7fa9-7f00-f9dd-fa1ac7233caa", "type": "noodl.cloud.response", "x": 300, "y": 0, "parameters": { "params": "Test" }, "ports": [], "dynamicports": [ { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-Test", "displayName": "Test", "index": 4 } ], "children": [] }, { "id": "da6ad196-bc8c-ec08-dfcc-c4b265c29ae8", "type": "String", "x": 21, "y": -79, "parameters": { "value": "wagga" }, "ports": [], "dynamicports": [], "children": [] } ], "visualRoots": [] } }, { "name": "/#__cloud__/API Tests/Records", "id": "01217e44-696c-373c-800e-93ce66853852", "graph": { "connections": [ { "fromId": "03a9dfa7-2e2f-95d2-91ea-7f935df33de0", "fromProperty": "receive", "toId": "8588b023-bf35-ed48-ba78-2736074ff485", "toProperty": "run" }, { "fromId": "8588b023-bf35-ed48-ba78-2736074ff485", "fromProperty": "out-QueryOK", "toId": "a1f3686b-193a-c618-d0c8-33e42ce5bab3", "toProperty": "pm-QueryOK" }, { "fromId": "8588b023-bf35-ed48-ba78-2736074ff485", "fromProperty": "out-Done", "toId": "cd94120b-5c8f-49e7-32ed-886b1a1595b9", "toProperty": "run" }, { "fromId": "cd94120b-5c8f-49e7-32ed-886b1a1595b9", "fromProperty": "out-Done", "toId": "a1f3686b-193a-c618-d0c8-33e42ce5bab3", "toProperty": "send" }, { "fromId": "81e6692d-e183-da3d-5a62-c9d7ac104215", "fromProperty": "out-Done", "toId": "cd94120b-5c8f-49e7-32ed-886b1a1595b9", "toProperty": "run" }, { "fromId": "81e6692d-e183-da3d-5a62-c9d7ac104215", "fromProperty": "out-FetchOK", "toId": "a1f3686b-193a-c618-d0c8-33e42ce5bab3", "toProperty": "pm-FetchOK" }, { "fromId": "2c65c290-5414-45c3-e843-de281098c6fd", "fromProperty": "out-Done", "toId": "cd94120b-5c8f-49e7-32ed-886b1a1595b9", "toProperty": "run" }, { "fromId": "2c65c290-5414-45c3-e843-de281098c6fd", "fromProperty": "out-CreateAndSaveOK", "toId": "a1f3686b-193a-c618-d0c8-33e42ce5bab3", "toProperty": "pm-CreateAndSaveOK" }, { "fromId": "2c65c290-5414-45c3-e843-de281098c6fd", "fromProperty": "out-FirstId", "toId": "799a3e74-cc43-e1ca-22c8-9b9db3a7354a", "toProperty": "in-FirstId" }, { "fromId": "2c65c290-5414-45c3-e843-de281098c6fd", "fromProperty": "out-SecondId", "toId": "799a3e74-cc43-e1ca-22c8-9b9db3a7354a", "toProperty": "in-SecondId" }, { "fromId": "799a3e74-cc43-e1ca-22c8-9b9db3a7354a", "fromProperty": "out-Done", "toId": "cd94120b-5c8f-49e7-32ed-886b1a1595b9", "toProperty": "run" }, { "fromId": "799a3e74-cc43-e1ca-22c8-9b9db3a7354a", "fromProperty": "out-DeleteOK", "toId": "a1f3686b-193a-c618-d0c8-33e42ce5bab3", "toProperty": "pm-DeleteOK" }, { "fromId": "2c65c290-5414-45c3-e843-de281098c6fd", "fromProperty": "out-Done", "toId": "799a3e74-cc43-e1ca-22c8-9b9db3a7354a", "toProperty": "run" }, { "fromId": "d1c03ca2-8b75-b8d5-48d1-167ca366f911", "fromProperty": "out-Done", "toId": "cd94120b-5c8f-49e7-32ed-886b1a1595b9", "toProperty": "run" }, { "fromId": "d1c03ca2-8b75-b8d5-48d1-167ca366f911", "fromProperty": "out-RelationsOK", "toId": "a1f3686b-193a-c618-d0c8-33e42ce5bab3", "toProperty": "pm-RelationsOK" }, { "fromId": "03a9dfa7-2e2f-95d2-91ea-7f935df33de0", "fromProperty": "receive", "toId": "d1c03ca2-8b75-b8d5-48d1-167ca366f911", "toProperty": "run" }, { "fromId": "03a9dfa7-2e2f-95d2-91ea-7f935df33de0", "fromProperty": "receive", "toId": "2c65c290-5414-45c3-e843-de281098c6fd", "toProperty": "run" }, { "fromId": "03a9dfa7-2e2f-95d2-91ea-7f935df33de0", "fromProperty": "receive", "toId": "81e6692d-e183-da3d-5a62-c9d7ac104215", "toProperty": "run" }, { "fromId": "c82a17f6-3cdb-30d6-0691-008d01ba55f9", "fromProperty": "out-CountOK", "toId": "a1f3686b-193a-c618-d0c8-33e42ce5bab3", "toProperty": "pm-CountOK" }, { "fromId": "c82a17f6-3cdb-30d6-0691-008d01ba55f9", "fromProperty": "out-Done", "toId": "cd94120b-5c8f-49e7-32ed-886b1a1595b9", "toProperty": "run" }, { "fromId": "03a9dfa7-2e2f-95d2-91ea-7f935df33de0", "fromProperty": "receive", "toId": "c82a17f6-3cdb-30d6-0691-008d01ba55f9", "toProperty": "run" }, { "fromId": "03a9dfa7-2e2f-95d2-91ea-7f935df33de0", "fromProperty": "receive", "toId": "dabc712f-dc12-8edd-dc80-ad58d366a22b", "toProperty": "run" }, { "fromId": "dabc712f-dc12-8edd-dc80-ad58d366a22b", "fromProperty": "out-Done", "toId": "cd94120b-5c8f-49e7-32ed-886b1a1595b9", "toProperty": "run" }, { "fromId": "dabc712f-dc12-8edd-dc80-ad58d366a22b", "fromProperty": "out-DistinctOK", "toId": "a1f3686b-193a-c618-d0c8-33e42ce5bab3", "toProperty": "pm-DistinctOK" }, { "fromId": "03a9dfa7-2e2f-95d2-91ea-7f935df33de0", "fromProperty": "receive", "toId": "20f25fa4-9222-663a-d2f7-18336f7d8ed7", "toProperty": "run" }, { "fromId": "20f25fa4-9222-663a-d2f7-18336f7d8ed7", "fromProperty": "out-Done", "toId": "cd94120b-5c8f-49e7-32ed-886b1a1595b9", "toProperty": "run" }, { "fromId": "20f25fa4-9222-663a-d2f7-18336f7d8ed7", "fromProperty": "out-AggregateOK", "toId": "a1f3686b-193a-c618-d0c8-33e42ce5bab3", "toProperty": "pm-AggregateOK" } ], "roots": [ { "id": "03a9dfa7-2e2f-95d2-91ea-7f935df33de0", "type": "noodl.cloud.request", "x": -349.7218145058766, "y": 3.9897308099131124, "parameters": {}, "ports": [], "dynamicports": [], "children": [] }, { "id": "a1f3686b-193a-c618-d0c8-33e42ce5bab3", "type": "noodl.cloud.response", "x": 721.4160117557499, "y": 110.20949147777247, "parameters": { "params": "QueryOK,FetchOK,CreateAndSaveOK,DeleteOK,RelationsOK,CountOK,DistinctOK,AggregateOK" }, "ports": [], "dynamicports": [ { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-QueryOK", "displayName": "QueryOK", "index": 4 }, { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-FetchOK", "displayName": "FetchOK", "index": 5 }, { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-CreateAndSaveOK", "displayName": "CreateAndSaveOK", "index": 6 }, { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-DeleteOK", "displayName": "DeleteOK", "index": 7 }, { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-RelationsOK", "displayName": "RelationsOK", "index": 8 }, { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-CountOK", "displayName": "CountOK", "index": 9 }, { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-DistinctOK", "displayName": "DistinctOK", "index": 10 }, { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-AggregateOK", "displayName": "AggregateOK", "index": 11 } ], "children": [] }, { "id": "8588b023-bf35-ed48-ba78-2736074ff485", "type": "JavaScriptFunction", "label": "Query", "x": 165.3973080991313, "y": -89.16636087940745, "parameters": { "functionScript": "const res = await Noodl.Records.query(\"TestQuery\",{},{\n sort:['Age']\n})\n\nconst res2 = await Noodl.Records.query(\"TestQuery\",{\n Age:{greaterThan:20}\n},{\n sort:['-Age'],\n limit:1,\n skip:1\n})\n\nconst res3 = await Noodl.Records.query(\"TestQuery\",{\n Age:{greaterThan:20}\n},{\n limit:1,\n count:true\n})\n\nOutputs.QueryOK = \nres.length === 5 &&\nres[0].Name === 'Maggie' &&\nres[4].Name === 'Homer' &&\n\nres2.length === 1 &&\nres2[0].Name === 'Marge' &&\n\nres3.results.length == 1 &&\nres3.count === 2;\n\nOutputs.Done()\n" }, "ports": [], "dynamicports": [ { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 4 }, { "name": "out-QueryOK", "displayName": "QueryOK", "plug": "output", "type": "*", "group": "Outputs", "index": 5 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "cd94120b-5c8f-49e7-32ed-886b1a1595b9", "type": "JavaScriptFunction", "label": "Wait For All", "x": 502.0668592927956, "y": 66.44157517373611, "parameters": { "functionScript": "const num_tests = 8\n\nconst request = Noodl.Objects.Request;\n\nif(request.TestsRun === undefined) request.TestsRun = num_tests\n\nrequest.TestsRun--;\nif(request.TestsRun === 0) {\n Outputs.Done()\n}" }, "ports": [], "dynamicports": [ { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 4 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "81e6692d-e183-da3d-5a62-c9d7ac104215", "type": "JavaScriptFunction", "label": "Fetch", "x": -70.10588221512592, "y": 5.318344892693403, "parameters": { "functionScript": "const find = await Noodl.Records.query(\"Test\",{\n Text:{equalTo:\"fetch-test\"}\n})\nconst fetchTestId = find[0].id\n\nconst res = await Noodl.Records.fetch(fetchTestId,{className:\"Test\"})\nawait Noodl.Records.fetch(res) // Once fetched, this should work too\n\nOutputs.FetchOK =\nres.ANumber === 15 &&\nres.ADate.toISOString() == \"2022-11-07T10:23:52.301Z\" &&\nres.AString === \"Test\" &&\nres.ABoolean === true &&\nres.AnObject.hej === \"ho\" &&\nres.AnArray[0] === \"a\" && res.AnArray[1] === \"b\";\n\nOutputs.Done()" }, "ports": [], "dynamicports": [ { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 4 }, { "name": "out-FetchOK", "displayName": "FetchOK", "plug": "output", "type": "*", "group": "Outputs", "index": 5 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "2c65c290-5414-45c3-e843-de281098c6fd", "type": "JavaScriptFunction", "label": "Create and save", "x": -71.10793605314348, "y": 163.6407974614217, "parameters": { "functionScript": "const res = await Noodl.Records.create(\"Test\",{\n AString:\"wohoo\",\n ANumber:13,\n},{\n acl:{\n \"*\":{read:true,write:true}\n }\n})\n\nconst res2 = await Noodl.Records.create(\"Test\",{\n ABool:true,\n AnObject:{some:\"hej\"},\n})\n\n// Save with object\nres.ANumber = 15\nawait Noodl.Records.save(res)\n\n// Save with id\nres2.AString = \"hej\"\nres2.AnArray = [{label:'A'},{label:'B'}]\nawait Noodl.Records.save(res2.id,null,{className:\"Test\"})\n\n// Save only selected properties\nawait Noodl.Records.save(res2,{\n ANumber:75,\n})\nconst saveOK = res2.ANumber === 75\n\n// Test increment\nawait Noodl.Records.increment(res2,{\"ANumber\":1})\nawait Noodl.Records.increment(res2.id,{\"ANumber\":2},{className:\"Test\"})\n\nconst incrementOK = res2.ANumber === 78;\n\nawait Noodl.Records.fetch(res)\nawait Noodl.Records.fetch(res2)\n\nOutputs.CreateAndSaveOK =\nres.AString === \"wohoo\" &&\nres.ANumber === 15 &&\nres2.AString === \"hej\" && saveOK &&\nres2.ANumber === 78 && incrementOK && // (includes increment)\nres2.AnObject.some === 'hej' &&\nres2.ABool === true &&\nArray.isArray(res2.AnArray) && res2.AnArray.length === 2 && res2.AnArray[0].label === 'A';\n\nOutputs.FirstId = res.id;\nOutputs.SecondId = res2.id;\n\nOutputs.Done()" }, "ports": [], "dynamicports": [ { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 4 }, { "name": "out-CreateAndSaveOK", "displayName": "CreateAndSaveOK", "plug": "output", "type": "*", "group": "Outputs", "index": 5 }, { "name": "out-FirstId", "displayName": "FirstId", "plug": "output", "type": "*", "group": "Outputs", "index": 6 }, { "name": "out-SecondId", "displayName": "SecondId", "plug": "output", "type": "*", "group": "Outputs", "index": 7 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "799a3e74-cc43-e1ca-22c8-9b9db3a7354a", "type": "JavaScriptFunction", "label": "Delete", "x": 191.43016950740912, "y": 320.9632500301499, "parameters": { "functionScript": "await Noodl.Records.delete(Inputs.FirstId,{className:\"Test\"})\n\nawait Noodl.Records.delete(Noodl.Objects[Inputs.SecondId])\n\nlet firstE;\ntry {\n await Noodl.Records.fetch(Inputs.FirstId,{className:\"Test\"})\n} catch(e) {\n firstE = e\n}\n\nlet secondE;\ntry {\n await Noodl.Records.fetch(Inputs.SecondId,{className:\"Test\"})\n} catch(e) {\n secondE = e\n}\n\nOutputs.DeleteOK =\nsecondE !== undefined &&\nfirstE !== undefined;\n\nOutputs.Done()" }, "ports": [], "dynamicports": [ { "name": "in-FirstId", "displayName": "FirstId", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "in-SecondId", "displayName": "SecondId", "plug": "input", "type": "*", "group": "Inputs", "index": 5 }, { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 6 }, { "name": "out-DeleteOK", "displayName": "DeleteOK", "plug": "output", "type": "*", "group": "Outputs", "index": 7 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "d1c03ca2-8b75-b8d5-48d1-167ca366f911", "type": "JavaScriptFunction", "label": "Relations", "x": -66.09766686305682, "y": 404.1337185855923, "parameters": { "functionScript": "const post1 = await Noodl.Records.create(\"Post\",{\n Title:\"P1\"\n})\n\nconst post2 = await Noodl.Records.create(\"Post\",{\n Title:\"P2\"\n})\n\nconst group1 = await Noodl.Records.create(\"Group\",{\n Name:\"G1\"\n})\n\nawait Noodl.Records.addRelation({\n record:group1,\n key:'posts',\n targetRecord:post1\n})\n\nawait Noodl.Records.addRelation({\n recordId:group1.id,\n className:'Group',\n key:'posts',\n targetRecordId:post2.id,\n targetRecordClass:\"Post\"\n})\n\nconst res = await Noodl.Records.query(\"Post\",{\n relatedTo:{\n id: group1.id,\n key:'posts'\n }\n},{\n sort:['Title']\n})\n\nawait Noodl.Records.removeRelation({\n record:group1,\n key:'posts',\n targetRecord:post2\n})\n\nconst res2 = await Noodl.Records.query(\"Post\",{\n relatedTo:{\n id: group1.id,\n key:'posts'\n }\n})\n\nOutputs.RelationsOK =\nres.length === 2 &&\nres[0].Title === \"P1\" &&\nres[1].Title === \"P2\" &&\n\nres2.length === 1 &&\nres2[0].Title === \"P1\";\n\n// clear up\nawait Noodl.Records.delete(post1)\nawait Noodl.Records.delete(post2)\nawait Noodl.Records.delete(group1)\n\nOutputs.Done()" }, "ports": [], "dynamicports": [ { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 4 }, { "name": "out-RelationsOK", "displayName": "RelationsOK", "plug": "output", "type": "*", "group": "Outputs", "index": 5 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "c82a17f6-3cdb-30d6-0691-008d01ba55f9", "type": "JavaScriptFunction", "label": "Count", "x": 156.27818549412336, "y": -224.30868155601604, "parameters": { "functionScript": "const res = await Noodl.Records.count(\"TestQuery\",{Sex:{equalTo:'Female'}})\nconst res2 = await Noodl.Records.count(\"TestQuery\")\n\nOutputs.CountOK = \nres === 3 &&\nres2 === 5;\n\nOutputs.Done()\n" }, "ports": [], "dynamicports": [ { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 4 }, { "name": "out-CountOK", "displayName": "CountOK", "plug": "output", "type": "*", "group": "Outputs", "index": 5 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "dabc712f-dc12-8edd-dc80-ad58d366a22b", "type": "JavaScriptFunction", "label": "Distinct", "x": 154.27818549412336, "y": -339.30868155601604, "parameters": { "functionScript": "const res = await Noodl.Records.distinct(\"TestQuery\",\"Sex\")\n\nOutputs.DistinctOK = \nres.includes('Female') && res.includes('Male') && res.length === 2;\n\nOutputs.Done()\n" }, "ports": [], "dynamicports": [ { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 4 }, { "name": "out-DistinctOK", "displayName": "DistinctOK", "plug": "output", "type": "*", "group": "Outputs", "index": 5 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "20f25fa4-9222-663a-d2f7-18336f7d8ed7", "type": "JavaScriptFunction", "label": "Aggregate", "x": 153.88334200061297, "y": -464.508681556016, "parameters": { "functionScript": "const agg1 = await Noodl.Records.aggregate(\"TestQuery\",{\n res1:{sum:'Age'},\n res2:{avg:'Age'},\n res3:{max:'Age'},\n res4:{min:'Age'},\n})\n\nconst agg2 = await Noodl.Records.aggregate(\"TestQuery\",{\n res1:{min:'Age'},\n res2:{max:'Age'},\n},\n{\n Sex:{equalTo:'Female'}\n})\n\nOutputs.AggregateOK = agg1.res1===108 &&\nagg1.res2 === 21.6 && agg1.res3 === 42 && agg1.res4 === 2 &&\nagg2.res1 === 2 && agg2.res2 === 40;\nOutputs.Done()\n\n" }, "ports": [], "dynamicports": [ { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 4 }, { "name": "out-AggregateOK", "displayName": "AggregateOK", "plug": "output", "type": "*", "group": "Outputs", "index": 5 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } } ], "visualRoots": [] } }, { "name": "/#__cloud__/API Tests/Users", "id": "e543336b-6d67-b143-7b34-0ab439901e20", "graph": { "connections": [ { "fromId": "d67a3f1f-e73c-68c4-a988-b796ed5b6521", "fromProperty": "receive", "toId": "efa93ddc-7b97-e80d-2834-6ff196907c71", "toProperty": "run" }, { "fromId": "efa93ddc-7b97-e80d-2834-6ff196907c71", "fromProperty": "out-Valid", "toId": "02f303af-1687-2216-3ef9-77a69d35a957", "toProperty": "pm-Valid" }, { "fromId": "d67a3f1f-e73c-68c4-a988-b796ed5b6521", "fromProperty": "auth", "toId": "efa93ddc-7b97-e80d-2834-6ff196907c71", "toProperty": "in-Auth" }, { "fromId": "d67a3f1f-e73c-68c4-a988-b796ed5b6521", "fromProperty": "userId", "toId": "efa93ddc-7b97-e80d-2834-6ff196907c71", "toProperty": "in-UserId" }, { "fromId": "efa93ddc-7b97-e80d-2834-6ff196907c71", "fromProperty": "out-Valid2", "toId": "02f303af-1687-2216-3ef9-77a69d35a957", "toProperty": "pm-Valid2" }, { "fromId": "efa93ddc-7b97-e80d-2834-6ff196907c71", "fromProperty": "out-Done", "toId": "02f303af-1687-2216-3ef9-77a69d35a957", "toProperty": "send" } ], "roots": [ { "id": "d67a3f1f-e73c-68c4-a988-b796ed5b6521", "type": "noodl.cloud.request", "x": -295.5, "y": -36, "parameters": {}, "ports": [], "dynamicports": [], "children": [] }, { "id": "02f303af-1687-2216-3ef9-77a69d35a957", "type": "noodl.cloud.response", "x": 307.5, "y": -30, "parameters": { "params": "Valid,Valid2" }, "ports": [], "dynamicports": [ { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-Valid", "displayName": "Valid", "index": 3 }, { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-Valid2", "displayName": "Valid2", "index": 4 } ], "children": [] }, { "id": "efa93ddc-7b97-e80d-2834-6ff196907c71", "type": "JavaScriptFunction", "x": 22.5, "y": -25, "parameters": { "functionScript": "const user = Noodl.Users.Current\n\nOutputs.Valid = \nInputs.Auth === true &&\nInputs.UserId === user.UserId;\n\nuser.Properties.emailVerified = true\nawait user.save()\nawait user.fetch()\n\nuser.Properties.emailVerified = false\nawait user.save()\nawait user.fetch()\n\nOutputs.Valid2 = user.Properties.emailVerified === false\n\nOutputs.Done()\n\n" }, "ports": [], "dynamicports": [ { "name": "in-Auth", "displayName": "Auth", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "in-UserId", "displayName": "UserId", "plug": "input", "type": "*", "group": "Inputs", "index": 5 }, { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 6 }, { "name": "out-Valid", "displayName": "Valid", "plug": "output", "type": "*", "group": "Outputs", "index": 7 }, { "name": "out-Valid2", "displayName": "Valid2", "plug": "output", "type": "*", "group": "Outputs", "index": 8 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } } ], "visualRoots": [] } }, { "name": "/#__cloud__/API/paramtest/:test/PUT", "id": "5ac79e36-b4eb-a345-5059-4f29f2f2aeb5", "graph": { "connections": [ { "fromId": "75ef5318-475b-2fee-6240-6425f1a342d9", "fromProperty": "pm-test", "toId": "4a0894e6-4889-39ae-94f6-9307b69b8aa3", "toProperty": "param" }, { "fromId": "75ef5318-475b-2fee-6240-6425f1a342d9", "fromProperty": "receive", "toId": "548a72c4-c8ff-309a-c502-1f5a154eaf16", "toProperty": "send" }, { "fromId": "4a0894e6-4889-39ae-94f6-9307b69b8aa3", "fromProperty": "formatted", "toId": "548a72c4-c8ff-309a-c502-1f5a154eaf16", "toProperty": "pm-test" } ], "roots": [ { "id": "75ef5318-475b-2fee-6240-6425f1a342d9", "type": "noodl.cloud.request", "x": -223, "y": 13, "parameters": { "params": "test", "allowNoAuth": true }, "ports": [], "dynamicports": [ { "type": "*", "plug": "output", "group": "Parameters", "name": "pm-test", "displayName": "test", "index": 5 } ], "children": [] }, { "id": "548a72c4-c8ff-309a-c502-1f5a154eaf16", "type": "noodl.cloud.response", "x": 300, "y": 0, "parameters": { "params": "test" }, "ports": [], "dynamicports": [ { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-test", "displayName": "test", "index": 4 } ], "children": [] }, { "id": "4a0894e6-4889-39ae-94f6-9307b69b8aa3", "type": "String Format", "x": 32, "y": -60, "parameters": { "format": "{param} put ok" }, "ports": [], "dynamicports": [ { "name": "param", "type": "string", "plug": "input", "index": 2 } ], "children": [] } ], "visualRoots": [] } }, { "name": "/#__cloud__/API/test/GET", "id": "d9201367-d06a-dfb6-6fdf-1ed5ff9417f7", "graph": { "connections": [ { "fromId": "b8a52b91-f7c4-c4c9-18d4-ab6c08d4060f", "fromProperty": "savedValue", "toId": "13862f98-9351-30f3-945f-b48d1a4dc9d2", "toProperty": "pm-test" }, { "fromId": "4070d0d1-2b92-a5b4-fcb9-fec4471ba17b", "fromProperty": "receive", "toId": "13862f98-9351-30f3-945f-b48d1a4dc9d2", "toProperty": "send" } ], "roots": [ { "id": "4070d0d1-2b92-a5b4-fcb9-fec4471ba17b", "type": "noodl.cloud.request", "x": -176, "y": 9, "parameters": { "allowNoAuth": true }, "ports": [], "dynamicports": [], "children": [] }, { "id": "13862f98-9351-30f3-945f-b48d1a4dc9d2", "type": "noodl.cloud.response", "x": 300, "y": 0, "parameters": { "params": "test" }, "ports": [], "dynamicports": [ { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-test", "displayName": "test", "index": 4 } ], "children": [] }, { "id": "b8a52b91-f7c4-c4c9-18d4-ab6c08d4060f", "type": "String", "x": 54.5, "y": -74.5, "parameters": { "value": "hej" }, "ports": [], "dynamicports": [], "children": [] } ], "visualRoots": [] } }, { "name": "/#__cloud__/API/test/POST", "id": "b2eae9d5-65f9-8f98-624c-29d0566b301f", "graph": { "connections": [ { "fromId": "7fa0a444-f31f-7fb4-4d72-40f0b0fbef95", "fromProperty": "receive", "toId": "4a4088b0-c549-6e6a-3ecd-fc43f84cb389", "toProperty": "send" }, { "fromId": "7fa0a444-f31f-7fb4-4d72-40f0b0fbef95", "fromProperty": "pm-param1", "toId": "0c0fe634-a2b5-4660-0fd6-3c65a47be41a", "toProperty": "param" }, { "fromId": "0c0fe634-a2b5-4660-0fd6-3c65a47be41a", "fromProperty": "formatted", "toId": "4a4088b0-c549-6e6a-3ecd-fc43f84cb389", "toProperty": "pm-test" } ], "roots": [ { "id": "7fa0a444-f31f-7fb4-4d72-40f0b0fbef95", "type": "noodl.cloud.request", "x": -191, "y": 21, "parameters": { "params": "param1", "allowNoAuth": true }, "ports": [], "dynamicports": [ { "type": "*", "plug": "output", "group": "Parameters", "name": "pm-param1", "displayName": "param1", "index": 5 } ], "children": [] }, { "id": "4a4088b0-c549-6e6a-3ecd-fc43f84cb389", "type": "noodl.cloud.response", "x": 300, "y": 0, "parameters": { "params": "test" }, "ports": [], "dynamicports": [ { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-test", "displayName": "test", "index": 4 } ], "children": [] }, { "id": "0c0fe634-a2b5-4660-0fd6-3c65a47be41a", "type": "String Format", "x": 82.5, "y": -58.83333333333337, "parameters": { "format": "{param} post ok" }, "ports": [], "dynamicports": [ { "name": "param", "type": "string", "plug": "input", "index": 2 } ], "children": [] } ], "visualRoots": [] } }, { "name": "/#__cloud__/Core/REST", "id": "894290a6-4c54-799a-43bd-2ee8549f2cf2", "graph": { "connections": [ { "fromId": "1abedea6-5fd7-2485-db48-1645fd6f48b4", "fromProperty": "out-Items", "toId": "f02c15e7-446a-a37f-8155-16085cf8ad04", "toProperty": "in-Todos" }, { "fromId": "92246ed5-1233-605f-6404-cd8225b4a0d9", "fromProperty": "savedValue", "toId": "d24b874e-9ada-31be-44cf-fb3894615452", "toProperty": "in-Title" }, { "fromId": "e4bd4254-e140-e0a8-4d7e-a473b0144533", "fromProperty": "savedValue", "toId": "d24b874e-9ada-31be-44cf-fb3894615452", "toProperty": "in-Body" }, { "fromId": "d24b874e-9ada-31be-44cf-fb3894615452", "fromProperty": "out-Res", "toId": "b265572f-62c5-9427-b25d-ddcef0f7cebd", "toProperty": "in-Res" }, { "fromId": "b0a6d8e9-6263-6530-9416-232032faa7d4", "fromProperty": "out-Res", "toId": "bbdd7bb8-2b0f-4dcb-a8e6-e03ca3a0071c", "toProperty": "in-Res" }, { "fromId": "e4bd4254-e140-e0a8-4d7e-a473b0144533", "fromProperty": "savedValue", "toId": "b0a6d8e9-6263-6530-9416-232032faa7d4", "toProperty": "in-Test" }, { "fromId": "cabfe93f-09e1-55c3-a315-1e704bede50a", "fromProperty": "receive", "toId": "1abedea6-5fd7-2485-db48-1645fd6f48b4", "toProperty": "fetch" }, { "fromId": "cabfe93f-09e1-55c3-a315-1e704bede50a", "fromProperty": "receive", "toId": "d24b874e-9ada-31be-44cf-fb3894615452", "toProperty": "fetch" }, { "fromId": "cabfe93f-09e1-55c3-a315-1e704bede50a", "fromProperty": "receive", "toId": "b0a6d8e9-6263-6530-9416-232032faa7d4", "toProperty": "fetch" }, { "fromId": "d24b874e-9ada-31be-44cf-fb3894615452", "fromProperty": "success", "toId": "b265572f-62c5-9427-b25d-ddcef0f7cebd", "toProperty": "run" }, { "fromId": "b0a6d8e9-6263-6530-9416-232032faa7d4", "fromProperty": "success", "toId": "bbdd7bb8-2b0f-4dcb-a8e6-e03ca3a0071c", "toProperty": "run" }, { "fromId": "f02c15e7-446a-a37f-8155-16085cf8ad04", "fromProperty": "out-FetchOK", "toId": "f707ea4a-fa8c-cd15-14eb-fcdc93591aa4", "toProperty": "pm-FetchOK" }, { "fromId": "b265572f-62c5-9427-b25d-ddcef0f7cebd", "fromProperty": "out-PostWithInputsOK", "toId": "f707ea4a-fa8c-cd15-14eb-fcdc93591aa4", "toProperty": "pm-PostWithInputsOK" }, { "fromId": "bbdd7bb8-2b0f-4dcb-a8e6-e03ca3a0071c", "fromProperty": "out-InputsInResponseOK", "toId": "f707ea4a-fa8c-cd15-14eb-fcdc93591aa4", "toProperty": "pm-InputsInResponseOK" }, { "fromId": "f02c15e7-446a-a37f-8155-16085cf8ad04", "fromProperty": "out-Done", "toId": "23c18c6b-45de-edd9-b93b-d1a1b5a65f7b", "toProperty": "run" }, { "fromId": "b265572f-62c5-9427-b25d-ddcef0f7cebd", "fromProperty": "out-Done", "toId": "23c18c6b-45de-edd9-b93b-d1a1b5a65f7b", "toProperty": "run" }, { "fromId": "bbdd7bb8-2b0f-4dcb-a8e6-e03ca3a0071c", "fromProperty": "out-Done", "toId": "23c18c6b-45de-edd9-b93b-d1a1b5a65f7b", "toProperty": "run" }, { "fromId": "23c18c6b-45de-edd9-b93b-d1a1b5a65f7b", "fromProperty": "out-Done", "toId": "f707ea4a-fa8c-cd15-14eb-fcdc93591aa4", "toProperty": "send" }, { "fromId": "1abedea6-5fd7-2485-db48-1645fd6f48b4", "fromProperty": "success", "toId": "f02c15e7-446a-a37f-8155-16085cf8ad04", "toProperty": "run" } ], "roots": [ { "id": "cabfe93f-09e1-55c3-a315-1e704bede50a", "type": "noodl.cloud.request", "x": -375, "y": -10, "parameters": { "allowNoAuth": true }, "ports": [], "dynamicports": [], "children": [] }, { "id": "f707ea4a-fa8c-cd15-14eb-fcdc93591aa4", "type": "noodl.cloud.response", "x": 908, "y": 153, "parameters": { "params": "FetchOK,PostWithInputsOK,InputsInResponseOK" }, "ports": [], "dynamicports": [ { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-FetchOK", "displayName": "FetchOK", "index": 4 }, { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-PostWithInputsOK", "displayName": "PostWithInputsOK", "index": 5 }, { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-InputsInResponseOK", "displayName": "InputsInResponseOK", "index": 6 } ], "children": [] }, { "id": "1abedea6-5fd7-2485-db48-1645fd6f48b4", "type": "REST2", "x": 183, "y": -58, "parameters": { "resource": "https://jsonplaceholder.typicode.com/todos", "responseScript": "// Add custom code to convert the response content to outputs\n//\n//*Response.status The status code of the response\n//*Response.content The content of the response as a javascript\n// object.\n//*Response.request The request object that resulted in the response.\n//\n//*Inputs and *Outputs contain the inputs and outputs of the node.\nOutputs.Items = Response.content" }, "ports": [], "dynamicports": [ { "name": "out-Items", "displayName": "Items", "plug": "output", "type": "*", "group": "Outputs", "index": 8 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "responseScript" ] } } }, { "id": "f02c15e7-446a-a37f-8155-16085cf8ad04", "type": "JavaScriptFunction", "x": 427, "y": -64, "parameters": { "functionScript": "Outputs.FetchOK = Inputs.Todos.length === 200\n\nOutputs.Done()" }, "ports": [], "dynamicports": [ { "name": "in-Todos", "displayName": "Todos", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 5 }, { "name": "out-FetchOK", "displayName": "FetchOK", "plug": "output", "type": "*", "group": "Outputs", "index": 6 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "d24b874e-9ada-31be-44cf-fb3894615452", "type": "REST2", "label": "Request func and inputs", "x": 191, "y": 159, "parameters": { "resource": "https://jsonplaceholder.typicode.com/posts", "responseScript": "// Add custom code to convert the response content to outputs\n//\n//*Response.status The status code of the response\n//*Response.content The content of the response as a javascript\n// object.\n//*Response.request The request object that resulted in the response.\n//\n//*Inputs and *Outputs contain the inputs and outputs of the node.\nOutputs.Res = Response.content", "requestScript": "//Add custom code to setup the request object before the request\n//is made.\n//\n//*Request.resource contains the resource path of the request.\n//*Request.method contains the method, GET, POST, PUT or DELETE.\n//*Request.headers is a map where you can add additional headers.\n//*Request.parameters is a map the parameters that will be appended\n// to the url.\n//*Request.content contains the content of the request as a javascript\n// object.\n//\nRequest.content = {\n title:Inputs.Title,\n body:Inputs.Body,\n id:101,\n userId:1\n}", "method": "POST" }, "ports": [], "dynamicports": [ { "name": "in-Title", "displayName": "Title", "plug": "input", "type": "*", "group": "Inputs", "index": 8 }, { "name": "in-Body", "displayName": "Body", "plug": "input", "type": "*", "group": "Inputs", "index": 9 }, { "name": "out-Res", "displayName": "Res", "plug": "output", "type": "*", "group": "Outputs", "index": 10 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "responseScript", "requestScript" ] } } }, { "id": "92246ed5-1233-605f-6404-cd8225b4a0d9", "type": "String", "x": -186, "y": 174, "parameters": { "value": "wagga" }, "ports": [], "dynamicports": [], "children": [] }, { "id": "e4bd4254-e140-e0a8-4d7e-a473b0144533", "type": "String", "x": -196, "y": 313, "parameters": { "value": "woff" }, "ports": [], "dynamicports": [], "children": [] }, { "id": "b265572f-62c5-9427-b25d-ddcef0f7cebd", "type": "JavaScriptFunction", "x": 434, "y": 183, "parameters": { "functionScript": "Outputs.PostWithInputsOK =\nInputs.Res.id === 101 &&\nInputs.Res.title === \"wagga\" &&\nInputs.Res.body === \"woff\";\n\nOutputs.Done()\n" }, "ports": [], "dynamicports": [ { "name": "in-Res", "displayName": "Res", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 5 }, { "name": "out-PostWithInputsOK", "displayName": "PostWithInputsOK", "plug": "output", "type": "*", "group": "Outputs", "index": 6 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "b0a6d8e9-6263-6530-9416-232032faa7d4", "type": "REST2", "label": "Inputs in response func", "x": 180.65785781423546, "y": 361.1206234502456, "parameters": { "resource": "https://jsonplaceholder.typicode.com/posts", "responseScript": "// Add custom code to convert the response content to outputs\n//\n//*Response.status The status code of the response\n//*Response.content The content of the response as a javascript\n// object.\n//*Response.request The request object that resulted in the response.\n//\n//*Inputs and *Outputs contain the inputs and outputs of the node.\nOutputs.Res = {\n test:Inputs.Test\n}" }, "ports": [], "dynamicports": [ { "name": "in-Test", "displayName": "Test", "plug": "input", "type": "*", "group": "Inputs", "index": 8 }, { "name": "out-Res", "displayName": "Res", "plug": "output", "type": "*", "group": "Outputs", "index": 9 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "responseScript" ] } } }, { "id": "bbdd7bb8-2b0f-4dcb-a8e6-e03ca3a0071c", "type": "JavaScriptFunction", "x": 429.65785781423546, "y": 386.1206234502456, "parameters": { "functionScript": "Outputs.InputsInResponseOK = Inputs.Res.test === \"woff\"\n\nOutputs.Done()" }, "ports": [], "dynamicports": [ { "name": "in-Res", "displayName": "Res", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 5 }, { "name": "out-InputsInResponseOK", "displayName": "InputsInResponseOK", "plug": "output", "type": "*", "group": "Outputs", "index": 6 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "23c18c6b-45de-edd9-b93b-d1a1b5a65f7b", "type": "JavaScriptFunction", "label": "Wait For All", "x": 702.7315715628471, "y": 65.72412469004911, "parameters": { "functionScript": "const num_tests = Inputs.NumTests;\n\nconst request = Noodl.Objects.Request;\n\nif(request.TestsRun === undefined) request.TestsRun = num_tests\n\nrequest.TestsRun--;\nif(request.TestsRun === 0) {\n Outputs.Done()\n}", "scriptInputs": [ { "id": "25f0", "label": "NumTests" } ], "intype-NumTests": "number", "in-NumTests": 3 }, "ports": [], "dynamicports": [ { "name": "intype-NumTests", "displayName": "Type", "editorName": "NumTests | Type", "plug": "input", "type": { "name": "enum", "enums": [ { "value": "string", "label": "String" }, { "value": "boolean", "label": "Boolean" }, { "value": "number", "label": "Number" }, { "value": "object", "label": "Object" }, { "value": "date", "label": "Date" }, { "value": "array", "label": "Array" }, { "value": "color", "label": "Color" } ], "allowEditOnly": true }, "default": "string", "parent": "scriptInputs", "parentItemId": "25f0", "index": 4 }, { "name": "in-NumTests", "displayName": "NumTests", "plug": "input", "type": "number", "group": "Inputs", "index": 5 }, { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 6 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } } ], "visualRoots": [] } }, { "name": "/#__cloud__/Core/Run Tasks", "id": "f0fbcc6c-d793-5fca-9820-fc885a99514c", "graph": { "connections": [ { "fromId": "de00ddb2-958a-7c3b-51d7-5772d19050a5", "fromProperty": "out-Items", "toId": "4059f9be-1e21-611d-c03f-d7de65d1bd9e", "toProperty": "items" }, { "fromId": "4059f9be-1e21-611d-c03f-d7de65d1bd9e", "fromProperty": "success", "toId": "3ed17cb9-f170-a1f0-da35-89061ef34f8c", "toProperty": "run" }, { "fromId": "3ed17cb9-f170-a1f0-da35-89061ef34f8c", "fromProperty": "out-RunTasksOK", "toId": "2768f31f-4ed0-3540-226e-437a127c1239", "toProperty": "pm-RunTasksOK" }, { "fromId": "111a466e-e58a-180d-4ea8-c82d5ddffe9c", "fromProperty": "receive", "toId": "80aca85c-da9e-852b-577e-05851e132c5b", "toProperty": "run" }, { "fromId": "80aca85c-da9e-852b-577e-05851e132c5b", "fromProperty": "success", "toId": "9f8828e2-38bd-cb9d-8104-a8bad5455331", "toProperty": "run" }, { "fromId": "9f8828e2-38bd-cb9d-8104-a8bad5455331", "fromProperty": "out-RunTasksWaterfallOK", "toId": "2768f31f-4ed0-3540-226e-437a127c1239", "toProperty": "pm-RunTasksWaterfallOK" }, { "fromId": "3ed17cb9-f170-a1f0-da35-89061ef34f8c", "fromProperty": "out-Done", "toId": "b28c13e9-707d-603f-fbf1-4c95cd6b37de", "toProperty": "run" }, { "fromId": "9f8828e2-38bd-cb9d-8104-a8bad5455331", "fromProperty": "out-Done", "toId": "b28c13e9-707d-603f-fbf1-4c95cd6b37de", "toProperty": "run" }, { "fromId": "b28c13e9-707d-603f-fbf1-4c95cd6b37de", "fromProperty": "out-Done", "toId": "2768f31f-4ed0-3540-226e-437a127c1239", "toProperty": "send" }, { "fromId": "de00ddb2-958a-7c3b-51d7-5772d19050a5", "fromProperty": "out-Items", "toId": "80aca85c-da9e-852b-577e-05851e132c5b", "toProperty": "items" }, { "fromId": "111a466e-e58a-180d-4ea8-c82d5ddffe9c", "fromProperty": "receive", "toId": "4059f9be-1e21-611d-c03f-d7de65d1bd9e", "toProperty": "run" }, { "fromId": "111a466e-e58a-180d-4ea8-c82d5ddffe9c", "fromProperty": "receive", "toId": "53d4f536-559d-aad9-e843-96050195e488", "toProperty": "run" }, { "fromId": "3fe95127-95a8-0944-fd1e-d2d24e9e0d64", "fromProperty": "out-Done", "toId": "b28c13e9-707d-603f-fbf1-4c95cd6b37de", "toProperty": "run" }, { "fromId": "de00ddb2-958a-7c3b-51d7-5772d19050a5", "fromProperty": "out-Items", "toId": "53d4f536-559d-aad9-e843-96050195e488", "toProperty": "items" }, { "fromId": "53d4f536-559d-aad9-e843-96050195e488", "fromProperty": "aborted", "toId": "3fe95127-95a8-0944-fd1e-d2d24e9e0d64", "toProperty": "run" }, { "fromId": "3fe95127-95a8-0944-fd1e-d2d24e9e0d64", "fromProperty": "out-StopOnFailureOK", "toId": "2768f31f-4ed0-3540-226e-437a127c1239", "toProperty": "pm-StopOnFailureOK" }, { "fromId": "de00ddb2-958a-7c3b-51d7-5772d19050a5", "fromProperty": "out-Items", "toId": "eff299b2-9edf-ed56-5f11-b2d359c85a46", "toProperty": "items" }, { "fromId": "111a466e-e58a-180d-4ea8-c82d5ddffe9c", "fromProperty": "receive", "toId": "eff299b2-9edf-ed56-5f11-b2d359c85a46", "toProperty": "run" }, { "fromId": "eff299b2-9edf-ed56-5f11-b2d359c85a46", "fromProperty": "success", "toId": "ed56e5fc-fe4e-0f72-044a-e8ca8e3b7996", "toProperty": "run" }, { "fromId": "ed56e5fc-fe4e-0f72-044a-e8ca8e3b7996", "fromProperty": "out-ComponentInputsOK", "toId": "2768f31f-4ed0-3540-226e-437a127c1239", "toProperty": "pm-ComponentInputsOK" }, { "fromId": "ed56e5fc-fe4e-0f72-044a-e8ca8e3b7996", "fromProperty": "out-Done", "toId": "b28c13e9-707d-603f-fbf1-4c95cd6b37de", "toProperty": "run" }, { "fromId": "111a466e-e58a-180d-4ea8-c82d5ddffe9c", "fromProperty": "receive", "toId": "fe4cfa7d-d161-68eb-04c5-5a7fad769ba4", "toProperty": "run" }, { "fromId": "fe4cfa7d-d161-68eb-04c5-5a7fad769ba4", "fromProperty": "out-Done", "toId": "a6b17410-e1dc-57bc-f7ed-2a4280824dcd", "toProperty": "storageFetch" }, { "fromId": "a6b17410-e1dc-57bc-f7ed-2a4280824dcd", "fromProperty": "items", "toId": "da8b919f-c479-079f-9cc0-319c1c169dce", "toProperty": "items" }, { "fromId": "da8b919f-c479-079f-9cc0-319c1c169dce", "fromProperty": "success", "toId": "18692e94-2cbd-6099-7b02-b6810de88d22", "toProperty": "run" }, { "fromId": "18692e94-2cbd-6099-7b02-b6810de88d22", "fromProperty": "out-Done", "toId": "b28c13e9-707d-603f-fbf1-4c95cd6b37de", "toProperty": "run" }, { "fromId": "18692e94-2cbd-6099-7b02-b6810de88d22", "fromProperty": "out-DeleteRecordsOK", "toId": "2768f31f-4ed0-3540-226e-437a127c1239", "toProperty": "pm-DeleteRecordsOK" }, { "fromId": "a6b17410-e1dc-57bc-f7ed-2a4280824dcd", "fromProperty": "count", "toId": "18692e94-2cbd-6099-7b02-b6810de88d22", "toProperty": "in-CountBefore" }, { "fromId": "a6b17410-e1dc-57bc-f7ed-2a4280824dcd", "fromProperty": "fetched", "toId": "da8b919f-c479-079f-9cc0-319c1c169dce", "toProperty": "run" } ], "roots": [ { "id": "111a466e-e58a-180d-4ea8-c82d5ddffe9c", "type": "noodl.cloud.request", "x": -364, "y": -5, "parameters": { "allowNoAuth": true }, "ports": [], "dynamicports": [], "children": [] }, { "id": "2768f31f-4ed0-3540-226e-437a127c1239", "type": "noodl.cloud.response", "x": 893, "y": -4, "parameters": { "params": "RunTasksOK,RunTasksWaterfallOK,StopOnFailureOK,ComponentInputsOK,DeleteRecordsOK" }, "ports": [], "dynamicports": [ { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-RunTasksOK", "displayName": "RunTasksOK", "index": 4 }, { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-RunTasksWaterfallOK", "displayName": "RunTasksWaterfallOK", "index": 5 }, { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-StopOnFailureOK", "displayName": "StopOnFailureOK", "index": 6 }, { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-ComponentInputsOK", "displayName": "ComponentInputsOK", "index": 7 }, { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-DeleteRecordsOK", "displayName": "DeleteRecordsOK", "index": 8 } ], "children": [] }, { "id": "4059f9be-1e21-611d-c03f-d7de65d1bd9e", "type": "RunTasks", "label": "Parallel", "x": -21.5, "y": -94, "parameters": { "taskTemplate": "/#__cloud__/Core/Run Tasks/Task" }, "ports": [], "dynamicports": [], "children": [] }, { "id": "de00ddb2-958a-7c3b-51d7-5772d19050a5", "type": "JavaScriptFunction", "x": -311.5, "y": -189.33333333333331, "parameters": { "functionScript": "Outputs.Items = [\n {\n Test:\"1,\"\n },\n {\n Test:\"2,\"\n }, \n {\n Test:\"3\"\n }, \n]" }, "ports": [], "dynamicports": [ { "name": "out-Items", "displayName": "Items", "plug": "output", "type": "*", "group": "Outputs", "index": 4 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "3ed17cb9-f170-a1f0-da35-89061ef34f8c", "type": "JavaScriptFunction", "x": 223.5, "y": -91.33333333333326, "parameters": { "functionScript": "Outputs.RunTasksOK = \nNoodl.Objects['Result'].Res === \"1,2,3\";\n\nOutputs.Done()" }, "ports": [], "dynamicports": [ { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 4 }, { "name": "out-RunTasksOK", "displayName": "RunTasksOK", "plug": "output", "type": "*", "group": "Outputs", "index": 5 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "80aca85c-da9e-852b-577e-05851e132c5b", "type": "RunTasks", "label": "Waterfall", "x": -24.299999999999955, "y": 98.86666666666667, "parameters": { "taskTemplate": "/#__cloud__/Core/Run Tasks/Task 2", "maxRunningTasks": 1 }, "ports": [], "dynamicports": [], "children": [] }, { "id": "9f8828e2-38bd-cb9d-8104-a8bad5455331", "type": "JavaScriptFunction", "x": 209.70000000000005, "y": 139.86666666666667, "parameters": { "functionScript": "Outputs.RunTasksWaterfallOK = \nNoodl.Objects['Result'].Res2 === \"1,2,3\";\n\nOutputs.Done()" }, "ports": [], "dynamicports": [ { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 4 }, { "name": "out-RunTasksWaterfallOK", "displayName": "RunTasksWaterfallOK", "plug": "output", "type": "*", "group": "Outputs", "index": 5 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "b28c13e9-707d-603f-fbf1-4c95cd6b37de", "type": "JavaScriptFunction", "label": "Wait For All", "x": 597.9857142857143, "y": -51.84761904761905, "parameters": { "functionScript": "const num_tests = Inputs.NumTests;\n\nconst request = Noodl.Objects.Request;\n\nif(request.TestsRun === undefined) request.TestsRun = num_tests\n\nrequest.TestsRun--;\nif(request.TestsRun === 0) {\n Outputs.Done()\n}", "scriptInputs": [ { "id": "25f0", "label": "NumTests" } ], "intype-NumTests": "number", "in-NumTests": 5 }, "ports": [], "dynamicports": [ { "name": "intype-NumTests", "displayName": "Type", "editorName": "NumTests | Type", "plug": "input", "type": { "name": "enum", "enums": [ { "value": "string", "label": "String" }, { "value": "boolean", "label": "Boolean" }, { "value": "number", "label": "Number" }, { "value": "object", "label": "Object" }, { "value": "date", "label": "Date" }, { "value": "array", "label": "Array" }, { "value": "color", "label": "Color" } ], "allowEditOnly": true }, "default": "string", "parent": "scriptInputs", "parentItemId": "25f0", "index": 4 }, { "name": "in-NumTests", "displayName": "NumTests", "plug": "input", "type": "number", "group": "Inputs", "index": 5 }, { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 6 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "53d4f536-559d-aad9-e843-96050195e488", "type": "RunTasks", "label": "Stop on failure", "x": -24.639285714285734, "y": 264.52738095238095, "parameters": { "taskTemplate": "/#__cloud__/Core/Run Tasks/Task 3", "maxRunningTasks": 1, "stopOnFailure": true }, "ports": [], "dynamicports": [], "children": [] }, { "id": "3fe95127-95a8-0944-fd1e-d2d24e9e0d64", "type": "JavaScriptFunction", "x": 216.36071428571427, "y": 309.52738095238095, "parameters": { "functionScript": "Outputs.StopOnFailureOK = \nNoodl.Objects['Result'].Res3 === \"1,2,\";\n\nOutputs.Done()" }, "ports": [], "dynamicports": [ { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 4 }, { "name": "out-StopOnFailureOK", "displayName": "StopOnFailureOK", "plug": "output", "type": "*", "group": "Outputs", "index": 5 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "eff299b2-9edf-ed56-5f11-b2d359c85a46", "type": "RunTasks", "label": "Component Inputs", "x": -24.53928571428571, "y": 427.5273809523809, "parameters": { "taskTemplate": "/#__cloud__/Core/Run Tasks/Task 4" }, "ports": [], "dynamicports": [], "children": [] }, { "id": "ed56e5fc-fe4e-0f72-044a-e8ca8e3b7996", "type": "JavaScriptFunction", "x": 215.5516233766234, "y": 462.4364718614719, "parameters": { "functionScript": "Outputs.ComponentInputsOK = \nNoodl.Objects['Result'].Res4 === \"1,2,3\";\n\nOutputs.Done()" }, "ports": [], "dynamicports": [ { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 4 }, { "name": "out-ComponentInputsOK", "displayName": "ComponentInputsOK", "plug": "output", "type": "*", "group": "Outputs", "index": 5 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "fe4cfa7d-d161-68eb-04c5-5a7fad769ba4", "type": "JavaScriptFunction", "label": "Create some test records", "x": -115.86504329004322, "y": 616.5198051948053, "parameters": { "functionScript": "for(let i = 0; i < 5; i++) {\n await Noodl.Records.create(\"Test\",{\n AString:'m48dh6f'\n })\n}\n\nOutputs.Done()" }, "ports": [], "dynamicports": [ { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 4 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "a6b17410-e1dc-57bc-f7ed-2a4280824dcd", "type": "DbCollection2", "x": 111.13495670995678, "y": 631.5198051948053, "parameters": { "collectionName": "Test", "visualFilter": { "combinator": "or", "rules": [ { "combinator": "and", "rules": [ { "property": "AString", "value": "m48dh6f", "operator": "equal to" } ] } ] } }, "ports": [], "dynamicports": [ { "name": "collectionName", "type": { "name": "enum", "enums": [ { "label": "User", "value": "_User" }, { "label": "Role", "value": "_Role" }, { "value": "Test", "label": "Test" }, { "value": "Post", "label": "Post" }, { "value": "Group", "label": "Group" }, { "value": "TestQuery", "label": "TestQuery" } ], "allowEditOnly": true }, "displayName": "Class", "plug": "input", "group": "General", "index": 6 }, { "name": "storageFilterType", "type": { "name": "enum", "allowEditOnly": true, "enums": [ { "value": "simple", "label": "Visual" }, { "value": "json", "label": "Javascript" } ] }, "displayName": "Filter", "default": "simple", "plug": "input", "group": "General", "index": 7 }, { "type": "boolean", "plug": "input", "group": "Limit", "name": "storageEnableLimit", "displayName": "Use limit", "index": 8 }, { "type": "signal", "plug": "input", "group": "Actions", "name": "storageFetch", "displayName": "Do", "index": 9 }, { "type": "boolean", "plug": "input", "group": "Total Count", "name": "storageEnableCount", "displayName": "Fetch total count", "index": 10 }, { "name": "visualFilter", "plug": "input", "type": { "name": "query-filter", "schema": { "properties": { "createdAt": { "type": "Date" }, "updatedAt": { "type": "Date" }, "AString": { "type": "String" }, "ANumber": { "type": "Number" }, "ABool": { "type": "Boolean" }, "AnObject": { "type": "Object" }, "AnArray": { "type": "Array" }, "ARelation": { "type": "Relation", "targetClass": "Test" }, "Text": { "type": "String", "required": false }, "ADate": { "type": "Date", "required": false }, "ABoolean": { "type": "Boolean", "required": false } }, "relations": { "Test": [ { "property": "ARelation" } ] } }, "allowEditOnly": true }, "displayName": "Filter", "group": "Filter", "index": 11 }, { "name": "visualSort", "plug": "input", "type": { "name": "query-sorting", "schema": { "properties": { "createdAt": { "type": "Date" }, "updatedAt": { "type": "Date" }, "AString": { "type": "String" }, "ANumber": { "type": "Number" }, "ABool": { "type": "Boolean" }, "AnObject": { "type": "Object" }, "AnArray": { "type": "Array" }, "ARelation": { "type": "Relation", "targetClass": "Test" }, "Text": { "type": "String", "required": false }, "ADate": { "type": "Date", "required": false }, "ABoolean": { "type": "Boolean", "required": false } }, "relations": { "Test": [ { "property": "ARelation" } ] } }, "allowEditOnly": true }, "displayName": "Sort", "group": "Sorting", "index": 12 } ], "children": [] }, { "id": "da8b919f-c479-079f-9cc0-319c1c169dce", "type": "RunTasks", "label": "Delete Records", "x": 345.1349567099568, "y": 601.5198051948053, "parameters": { "taskTemplate": "/#__cloud__/Core/Run Tasks/Task 5" }, "ports": [], "dynamicports": [], "children": [] }, { "id": "18692e94-2cbd-6099-7b02-b6810de88d22", "type": "JavaScriptFunction", "x": 555.1349567099568, "y": 666.5198051948053, "parameters": { "functionScript": "const res = await Noodl.Records.query(\"Test\",{\n AString:{equalTo: 'm48dh6f'}\n})\n\nOutputs.DeleteRecordsOK = Inputs.CountBefore === 5 && res.length === 0;\n\nOutputs.Done()" }, "ports": [], "dynamicports": [ { "name": "in-CountBefore", "displayName": "CountBefore", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 5 }, { "name": "out-DeleteRecordsOK", "displayName": "DeleteRecordsOK", "plug": "output", "type": "*", "group": "Outputs", "index": 6 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } } ], "visualRoots": [] } }, { "name": "/#__cloud__/Core/Run Tasks/Task", "id": "fdff0b81-ba1a-e8d6-d912-021dd6e8759c", "graph": { "connections": [ { "fromId": "2d728b27-2266-5107-69f1-52cdbc0006c4", "fromProperty": "Do", "toId": "007f7934-0e2d-7610-73cc-b5ad6be66d6b", "toProperty": "run" }, { "fromId": "b5d15d9c-2c4d-5cb1-6e9c-107d3cb4aacb", "fromProperty": "prop-Test", "toId": "007f7934-0e2d-7610-73cc-b5ad6be66d6b", "toProperty": "in-Test" }, { "fromId": "007f7934-0e2d-7610-73cc-b5ad6be66d6b", "fromProperty": "out-Done", "toId": "9d001a43-ad58-098d-fa06-8c50058060c7", "toProperty": "Success" } ], "roots": [ { "id": "2d728b27-2266-5107-69f1-52cdbc0006c4", "type": "Component Inputs", "x": -310, "y": -6, "parameters": {}, "ports": [ { "name": "Do", "plug": "output", "type": "*", "index": 0 } ], "dynamicports": [], "children": [] }, { "id": "9d001a43-ad58-098d-fa06-8c50058060c7", "type": "Component Outputs", "x": 300, "y": 0, "parameters": {}, "ports": [ { "name": "Success", "plug": "input", "type": "*", "index": 0 }, { "name": "Failure", "plug": "input", "type": "*", "index": 1 } ], "dynamicports": [], "children": [] }, { "id": "007f7934-0e2d-7610-73cc-b5ad6be66d6b", "type": "JavaScriptFunction", "x": 21, "y": -15, "parameters": { "functionScript": "const result = Noodl.Objects['Result']\n\nif(result.Res === undefined) {\n result.Res = \"\"\n}\n\nresult.Res += Inputs.Test\n\nOutputs.Done()" }, "ports": [], "dynamicports": [ { "name": "in-Test", "displayName": "Test", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 5 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "b5d15d9c-2c4d-5cb1-6e9c-107d3cb4aacb", "type": "Model2", "x": -240, "y": -122, "parameters": { "idSource": "foreach", "properties": "Test" }, "ports": [], "dynamicports": [ { "type": { "name": "*", "allowConnectionsOnly": true }, "plug": "input/output", "group": "Properties", "name": "prop-Test", "displayName": "Test", "index": 7 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "Test Changed", "name": "changed-Test", "index": 8 } ], "children": [] } ], "visualRoots": [] } }, { "name": "/#__cloud__/Core/Run Tasks/Task 2", "id": "c5566ca3-8c89-8bfe-cd19-d0b6c6eedfd3", "graph": { "connections": [ { "fromId": "01e671ac-766d-8d30-13f2-a434d53dd78d", "fromProperty": "Do", "toId": "04f1b08e-6b1d-4445-85e5-6981d9ab2886", "toProperty": "run" }, { "fromId": "90d960e3-fd69-4d67-d00b-757d85129da2", "fromProperty": "prop-Test", "toId": "04f1b08e-6b1d-4445-85e5-6981d9ab2886", "toProperty": "in-Test" }, { "fromId": "04f1b08e-6b1d-4445-85e5-6981d9ab2886", "fromProperty": "out-Done", "toId": "1a80d5b8-1952-9029-5d82-1f4dc6690532", "toProperty": "Success" } ], "roots": [ { "id": "01e671ac-766d-8d30-13f2-a434d53dd78d", "type": "Component Inputs", "x": -297, "y": -1, "parameters": {}, "ports": [ { "name": "Do", "plug": "output", "type": "*", "index": 0 } ], "dynamicports": [], "children": [] }, { "id": "1a80d5b8-1952-9029-5d82-1f4dc6690532", "type": "Component Outputs", "x": 300, "y": 0, "parameters": {}, "ports": [ { "name": "Success", "plug": "input", "type": "*", "index": 0 }, { "name": "Failure", "plug": "input", "type": "*", "index": 1 } ], "dynamicports": [], "children": [] }, { "id": "04f1b08e-6b1d-4445-85e5-6981d9ab2886", "type": "JavaScriptFunction", "x": -6.5, "y": -6, "parameters": { "functionScript": "const result = Noodl.Objects['Result']\n\n// Do some async task\nsetTimeout(() => {\n if(result.Res2 === undefined) {\n result.Res2 = \"\"\n }\n\n result.Res2 += Inputs.Test\n Outputs.Done()\n},\nMath.round(Math.random()*1000))\n\n\n" }, "ports": [], "dynamicports": [ { "name": "in-Test", "displayName": "Test", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 5 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "90d960e3-fd69-4d67-d00b-757d85129da2", "type": "Model2", "x": -254.16666666666663, "y": -109.33333333333331, "parameters": { "idSource": "foreach", "properties": "Test" }, "ports": [], "dynamicports": [ { "type": { "name": "*", "allowConnectionsOnly": true }, "plug": "input/output", "group": "Properties", "name": "prop-Test", "displayName": "Test", "index": 7 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "Test Changed", "name": "changed-Test", "index": 8 } ], "children": [] } ], "visualRoots": [] } }, { "name": "/#__cloud__/Core/Run Tasks/Task 3", "id": "52815af9-d00e-63e5-8bcb-4ef242bc9aa0", "graph": { "connections": [ { "fromId": "a4c53f53-2dde-db7b-0a41-3dfdbee2097d", "fromProperty": "prop-Test", "toId": "12f6357f-bdf4-1ae4-8a3f-096aa62b05bf", "toProperty": "in-Test" }, { "fromId": "12f6357f-bdf4-1ae4-8a3f-096aa62b05bf", "fromProperty": "out-Failure", "toId": "15a5d8c0-5706-9766-56a9-27e52944ea88", "toProperty": "Failure" }, { "fromId": "12f6357f-bdf4-1ae4-8a3f-096aa62b05bf", "fromProperty": "out-Success", "toId": "15a5d8c0-5706-9766-56a9-27e52944ea88", "toProperty": "Success" }, { "fromId": "f0c6f9e9-57e4-2e16-9bac-9c7efd55d485", "fromProperty": "Do", "toId": "12f6357f-bdf4-1ae4-8a3f-096aa62b05bf", "toProperty": "run" } ], "roots": [ { "id": "f0c6f9e9-57e4-2e16-9bac-9c7efd55d485", "type": "Component Inputs", "x": -304, "y": 20, "parameters": {}, "ports": [ { "name": "Do", "plug": "output", "type": "*", "index": 0 } ], "dynamicports": [], "children": [] }, { "id": "15a5d8c0-5706-9766-56a9-27e52944ea88", "type": "Component Outputs", "x": 300, "y": 0, "parameters": {}, "ports": [ { "name": "Success", "plug": "input", "type": "*", "index": 0 }, { "name": "Failure", "plug": "input", "type": "*", "index": 1 } ], "dynamicports": [], "children": [] }, { "id": "12f6357f-bdf4-1ae4-8a3f-096aa62b05bf", "type": "JavaScriptFunction", "x": 4.666666666666629, "y": -1.6666666666666856, "parameters": { "functionScript": "const result = Noodl.Objects['Result']\n\n// Do some async task\nsetTimeout(() => {\n if(result.Res3 === undefined) {\n result.Res3 = \"\"\n }\n\n result.Res3 += Inputs.Test\n if(Inputs.Test === '2,')\n Outputs.Failure()\n else\n Outputs.Success()\n},\nMath.round(Math.random()*1000))\n\n\n" }, "ports": [], "dynamicports": [ { "name": "in-Test", "displayName": "Test", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "out-Failure", "displayName": "Failure", "plug": "output", "type": "signal", "group": "Outputs", "index": 5 }, { "name": "out-Success", "displayName": "Success", "plug": "output", "type": "signal", "group": "Outputs", "index": 6 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "a4c53f53-2dde-db7b-0a41-3dfdbee2097d", "type": "Model2", "x": -212, "y": -112, "parameters": { "idSource": "foreach", "properties": "Test" }, "ports": [], "dynamicports": [ { "type": { "name": "*", "allowConnectionsOnly": true }, "plug": "input/output", "group": "Properties", "name": "prop-Test", "displayName": "Test", "index": 7 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "Test Changed", "name": "changed-Test", "index": 8 } ], "children": [] } ], "visualRoots": [] } }, { "name": "/#__cloud__/Core/Run Tasks/Task 4", "id": "1cdfc618-1955-4d03-9527-e050a42fbc2b", "graph": { "connections": [ { "fromId": "51e04c53-58f6-10e8-8ad7-bd1595849540", "fromProperty": "Do", "toId": "f8c9167f-5154-fb31-daa3-8aa1ec18876f", "toProperty": "run" }, { "fromId": "f8c9167f-5154-fb31-daa3-8aa1ec18876f", "fromProperty": "out-Done", "toId": "6f8b43b9-db6c-d50a-36e6-a5da9752ad12", "toProperty": "Success" }, { "fromId": "51e04c53-58f6-10e8-8ad7-bd1595849540", "fromProperty": "Test", "toId": "f8c9167f-5154-fb31-daa3-8aa1ec18876f", "toProperty": "in-Test" } ], "roots": [ { "id": "51e04c53-58f6-10e8-8ad7-bd1595849540", "type": "Component Inputs", "x": -264, "y": 80, "parameters": {}, "ports": [ { "name": "Do", "plug": "output", "type": "*", "index": 0 }, { "name": "Test", "plug": "output", "type": { "name": "*" }, "index": 1 } ], "dynamicports": [], "children": [] }, { "id": "6f8b43b9-db6c-d50a-36e6-a5da9752ad12", "type": "Component Outputs", "x": 346, "y": 86, "parameters": {}, "ports": [ { "name": "Success", "plug": "input", "type": "*", "index": 0 }, { "name": "Failure", "plug": "input", "type": "*", "index": 1 } ], "dynamicports": [], "children": [] }, { "id": "f8c9167f-5154-fb31-daa3-8aa1ec18876f", "type": "JavaScriptFunction", "x": 67, "y": 71, "parameters": { "functionScript": "const result = Noodl.Objects['Result']\n\nif(result.Res4 === undefined) {\n result.Res4 = \"\"\n}\n\nresult.Res4 += Inputs.Test\n\nOutputs.Done()" }, "ports": [], "dynamicports": [ { "name": "in-Test", "displayName": "Test", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 5 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } } ], "visualRoots": [] } }, { "name": "/#__cloud__/Core/Run Tasks/Task 5", "id": "a240a4fe-cf34-a41b-48cb-e018d108ddc9", "graph": { "connections": [ { "fromId": "62a65996-6c91-a311-e21a-80537d6ad777", "fromProperty": "Do", "toId": "77928efa-5d5a-2946-6077-4007fa573d26", "toProperty": "store" }, { "fromId": "77928efa-5d5a-2946-6077-4007fa573d26", "fromProperty": "deleted", "toId": "c27b4e7f-ad2b-11f8-c094-78d4c7621f07", "toProperty": "Success" }, { "fromId": "77928efa-5d5a-2946-6077-4007fa573d26", "fromProperty": "failure", "toId": "c27b4e7f-ad2b-11f8-c094-78d4c7621f07", "toProperty": "Failure" } ], "roots": [ { "id": "62a65996-6c91-a311-e21a-80537d6ad777", "type": "Component Inputs", "x": -115, "y": 1, "parameters": {}, "ports": [ { "name": "Do", "plug": "output", "type": "*", "index": 0 } ], "dynamicports": [], "children": [] }, { "id": "c27b4e7f-ad2b-11f8-c094-78d4c7621f07", "type": "Component Outputs", "x": 344, "y": -1, "parameters": {}, "ports": [ { "name": "Success", "plug": "input", "type": "*", "index": 0 }, { "name": "Failure", "plug": "input", "type": "*", "index": 1 } ], "dynamicports": [], "children": [] }, { "id": "77928efa-5d5a-2946-6077-4007fa573d26", "type": "DeleteDbModelProperties", "x": 101, "y": -1, "parameters": { "idSource": "foreach", "collectionName": "Test" }, "ports": [], "dynamicports": [ { "name": "collectionName", "displayName": "Class", "group": "General", "type": { "name": "enum", "enums": [ { "label": "User", "value": "_User" }, { "label": "Role", "value": "_Role" }, { "value": "Test", "label": "Test" }, { "value": "Post", "label": "Post" }, { "value": "Group", "label": "Group" }, { "value": "TestQuery", "label": "TestQuery" } ], "allowEditOnly": true }, "plug": "input", "index": 7 } ], "children": [] } ], "visualRoots": [] } }, { "name": "/#__cloud__/Records and Objects/Aggregate", "id": "2d00744c-9ffe-5f9e-7584-702fa9959166", "graph": { "connections": [ { "fromId": "f3e4cc23-c286-0db3-20c3-8b4debf4c007", "fromProperty": "receive", "toId": "55713e71-4aea-d261-1a3d-a029d69af815", "toProperty": "storageFetch" }, { "fromId": "55713e71-4aea-d261-1a3d-a029d69af815", "fromProperty": "agg-Names", "toId": "e8d8fe3f-5e45-421e-6a8a-2d961d403998", "toProperty": "in-Names" }, { "fromId": "b9809780-df2b-bc7f-660a-50f4692b5962", "fromProperty": "out-Done", "toId": "fb861040-db33-a694-73ca-48922ddf076f", "toProperty": "send" }, { "fromId": "e8d8fe3f-5e45-421e-6a8a-2d961d403998", "fromProperty": "out-AggOK", "toId": "fb861040-db33-a694-73ca-48922ddf076f", "toProperty": "pm-AggOK" }, { "fromId": "55713e71-4aea-d261-1a3d-a029d69af815", "fromProperty": "fetched", "toId": "e8d8fe3f-5e45-421e-6a8a-2d961d403998", "toProperty": "run" }, { "fromId": "e8d8fe3f-5e45-421e-6a8a-2d961d403998", "fromProperty": "out-Done", "toId": "b9809780-df2b-bc7f-660a-50f4692b5962", "toProperty": "run" }, { "fromId": "55713e71-4aea-d261-1a3d-a029d69af815", "fromProperty": "agg-AvgAge", "toId": "e8d8fe3f-5e45-421e-6a8a-2d961d403998", "toProperty": "in-AvgAge" }, { "fromId": "f3e4cc23-c286-0db3-20c3-8b4debf4c007", "fromProperty": "receive", "toId": "dd13263f-a803-1c29-af0a-e0fee3769497", "toProperty": "storageFetch" }, { "fromId": "dd13263f-a803-1c29-af0a-e0fee3769497", "fromProperty": "agg-MaxAge", "toId": "5103500b-f232-e062-5991-c6e2a1b2f292", "toProperty": "in-MaxAge" }, { "fromId": "dd13263f-a803-1c29-af0a-e0fee3769497", "fromProperty": "fetched", "toId": "5103500b-f232-e062-5991-c6e2a1b2f292", "toProperty": "run" }, { "fromId": "5103500b-f232-e062-5991-c6e2a1b2f292", "fromProperty": "out-Done", "toId": "b9809780-df2b-bc7f-660a-50f4692b5962", "toProperty": "run" }, { "fromId": "5103500b-f232-e062-5991-c6e2a1b2f292", "fromProperty": "out-FilterOK", "toId": "fb861040-db33-a694-73ca-48922ddf076f", "toProperty": "pm-FilterOK" }, { "fromId": "f3e4cc23-c286-0db3-20c3-8b4debf4c007", "fromProperty": "receive", "toId": "fbd1edb9-f129-bc27-db5d-6665b3689c31", "toProperty": "storageFetch" }, { "fromId": "fbd1edb9-f129-bc27-db5d-6665b3689c31", "fromProperty": "fetched", "toId": "191a5faa-e28d-0001-eff4-fd7edfcbe3ab", "toProperty": "run" }, { "fromId": "fbd1edb9-f129-bc27-db5d-6665b3689c31", "fromProperty": "agg-SumAge", "toId": "191a5faa-e28d-0001-eff4-fd7edfcbe3ab", "toProperty": "in-SumAge" }, { "fromId": "191a5faa-e28d-0001-eff4-fd7edfcbe3ab", "fromProperty": "out-Done", "toId": "b9809780-df2b-bc7f-660a-50f4692b5962", "toProperty": "run" }, { "fromId": "191a5faa-e28d-0001-eff4-fd7edfcbe3ab", "fromProperty": "out-JsFilterOK", "toId": "fb861040-db33-a694-73ca-48922ddf076f", "toProperty": "pm-JsFilterOK" }, { "fromId": "fbd1edb9-f129-bc27-db5d-6665b3689c31", "fromProperty": "agg-MinAge", "toId": "191a5faa-e28d-0001-eff4-fd7edfcbe3ab", "toProperty": "in-MinAge" } ], "roots": [ { "id": "f3e4cc23-c286-0db3-20c3-8b4debf4c007", "type": "noodl.cloud.request", "x": -584, "y": 113, "parameters": {}, "ports": [], "dynamicports": [], "children": [] }, { "id": "fb861040-db33-a694-73ca-48922ddf076f", "type": "noodl.cloud.response", "x": 794, "y": 103, "parameters": { "params": "AggOK,FilterOK,JsFilterOK" }, "ports": [], "dynamicports": [ { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-AggOK", "displayName": "AggOK", "index": 4 }, { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-FilterOK", "displayName": "FilterOK", "index": 5 }, { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-JsFilterOK", "displayName": "JsFilterOK", "index": 6 } ], "children": [] }, { "id": "55713e71-4aea-d261-1a3d-a029d69af815", "type": "noodl.cloud.aggregate", "x": -155.5, "y": -124.5, "parameters": { "collectionName": "TestQuery", "aggregates": "AvgAge,Names", "aggprop-AvgAge": "Age", "aggprop-Names": "Name", "aggtype-Names": "distinct" }, "ports": [], "dynamicports": [ { "name": "collectionName", "type": { "name": "enum", "enums": [ { "label": "User", "value": "_User" }, { "label": "Role", "value": "_Role" }, { "value": "Test", "label": "Test" }, { "value": "Post", "label": "Post" }, { "value": "Group", "label": "Group" }, { "value": "TestQuery", "label": "TestQuery" } ], "allowEditOnly": true }, "displayName": "Class", "plug": "input", "group": "General", "index": 4 }, { "name": "storageFilterType", "type": { "name": "enum", "allowEditOnly": true, "enums": [ { "value": "simple", "label": "Visual" }, { "value": "json", "label": "Javascript" } ] }, "displayName": "Filter", "default": "simple", "plug": "input", "group": "General", "index": 5 }, { "type": "signal", "plug": "input", "group": "Actions", "name": "storageFetch", "displayName": "Do", "index": 6 }, { "index": 101, "name": "aggprop-AvgAge", "plug": "input", "type": { "name": "enum", "enums": [ { "value": "Name", "label": "Name" }, { "value": "Age", "label": "Age" }, { "value": "Sex", "label": "Sex" } ], "allowEditOnly": true }, "displayName": "Property", "group": "AvgAge" }, { "index": 102, "name": "aggop-AvgAge", "plug": "input", "type": { "name": "enum", "enums": [ { "value": "min", "label": "Min" }, { "value": "max", "label": "Max" }, { "value": "sum", "label": "Sum" }, { "value": "avg", "label": "Avg" } ], "allowEditOnly": true }, "default": "avg", "displayName": "Operation", "group": "AvgAge" }, { "name": "agg-AvgAge", "plug": "output", "type": "number", "displayName": "AvgAge", "group": "Aggregates", "index": 9 }, { "index": 101, "name": "aggprop-Names", "plug": "input", "type": { "name": "enum", "enums": [ { "value": "Name", "label": "Name" }, { "value": "Age", "label": "Age" }, { "value": "Sex", "label": "Sex" } ], "allowEditOnly": true }, "displayName": "Property", "group": "Names" }, { "index": 102, "name": "aggop-Names", "plug": "input", "type": { "name": "enum", "enums": [ { "value": "distinct", "label": "Distinct" } ], "allowEditOnly": true }, "default": "distinct", "displayName": "Operation", "group": "Names" }, { "name": "agg-Names", "plug": "output", "type": "string", "displayName": "Names", "group": "Aggregates", "index": 12 }, { "name": "visualFilter", "plug": "input", "type": { "name": "query-filter", "schema": { "properties": { "createdAt": { "type": "Date" }, "updatedAt": { "type": "Date" }, "Name": { "type": "String", "required": false }, "Age": { "type": "Number", "required": false }, "Parent": { "type": "Pointer", "targetClass": "TestQuery", "required": false }, "Children": { "type": "Relation", "targetClass": "TestQuery" }, "Sex": { "type": "String", "required": false } }, "relations": { "TestQuery": [ { "property": "Children" } ] } }, "allowEditOnly": true }, "displayName": "Filter", "group": "Filter", "index": 13 } ], "children": [] }, { "id": "e8d8fe3f-5e45-421e-6a8a-2d961d403998", "type": "JavaScriptFunction", "x": 159.5, "y": -96.5, "parameters": { "functionScript": "Outputs.AggOK = Inputs.Names.length === 5 && \n Inputs.Names.indexOf('Lisa') !== -1 &&\n Inputs.Names.indexOf('Homer') !== -1 &&\n Inputs.Names.indexOf('Marge') !== -1 &&\n Inputs.Names.indexOf('Maggie') !== -1 &&\n Inputs.Names.indexOf('Bart') !== -1 &&\n Inputs.AvgAge == 21.6;\n\nOutputs.Done()" }, "ports": [], "dynamicports": [ { "name": "in-Names", "displayName": "Names", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "in-AvgAge", "displayName": "AvgAge", "plug": "input", "type": "*", "group": "Inputs", "index": 5 }, { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 6 }, { "name": "out-AggOK", "displayName": "AggOK", "plug": "output", "type": "*", "group": "Outputs", "index": 7 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "b9809780-df2b-bc7f-660a-50f4692b5962", "type": "JavaScriptFunction", "label": "Wait For All", "x": 521, "y": 43, "parameters": { "functionScript": "const num_tests = Inputs.NumTests;\n\nconst request = Noodl.Objects.Request;\n\nif(request.TestsRun === undefined) request.TestsRun = num_tests\n\nrequest.TestsRun--;\nif(request.TestsRun === 0) {\n Outputs.Done()\n}", "scriptInputs": [ { "id": "25f0", "label": "NumTests" } ], "intype-NumTests": "number", "in-NumTests": 3 }, "ports": [], "dynamicports": [ { "name": "intype-NumTests", "displayName": "Type", "editorName": "NumTests | Type", "plug": "input", "type": { "name": "enum", "enums": [ { "value": "string", "label": "String" }, { "value": "boolean", "label": "Boolean" }, { "value": "number", "label": "Number" }, { "value": "object", "label": "Object" }, { "value": "date", "label": "Date" }, { "value": "array", "label": "Array" }, { "value": "color", "label": "Color" } ], "allowEditOnly": true }, "default": "string", "parent": "scriptInputs", "parentItemId": "25f0", "index": 4 }, { "name": "in-NumTests", "displayName": "NumTests", "plug": "input", "type": "number", "group": "Inputs", "index": 5 }, { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 6 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "dd13263f-a803-1c29-af0a-e0fee3769497", "type": "noodl.cloud.aggregate", "x": -106.5, "y": 263.9, "parameters": { "collectionName": "TestQuery", "visualFilter": { "combinator": "or", "rules": [ { "combinator": "and", "rules": [ { "property": "Sex", "value": "Male", "operator": "equal to" } ] } ] }, "aggregates": "MaxAge", "aggprop-MaxAge": "Age", "aggtype-MaxAge": "max", "aggop-MaxAge": "max" }, "ports": [], "dynamicports": [ { "name": "collectionName", "type": { "name": "enum", "enums": [ { "label": "User", "value": "_User" }, { "label": "Role", "value": "_Role" }, { "value": "Test", "label": "Test" }, { "value": "Post", "label": "Post" }, { "value": "Group", "label": "Group" }, { "value": "TestQuery", "label": "TestQuery" } ], "allowEditOnly": true }, "displayName": "Class", "plug": "input", "group": "General", "index": 4 }, { "name": "storageFilterType", "type": { "name": "enum", "allowEditOnly": true, "enums": [ { "value": "simple", "label": "Visual" }, { "value": "json", "label": "Javascript" } ] }, "displayName": "Filter", "default": "simple", "plug": "input", "group": "General", "index": 5 }, { "type": "signal", "plug": "input", "group": "Actions", "name": "storageFetch", "displayName": "Do", "index": 6 }, { "index": 101, "name": "aggprop-MaxAge", "plug": "input", "type": { "name": "enum", "enums": [ { "value": "Name", "label": "Name" }, { "value": "Age", "label": "Age" }, { "value": "Sex", "label": "Sex" } ], "allowEditOnly": true }, "displayName": "Property", "group": "MaxAge" }, { "index": 102, "name": "aggop-MaxAge", "plug": "input", "type": { "name": "enum", "enums": [ { "value": "min", "label": "Min" }, { "value": "max", "label": "Max" }, { "value": "sum", "label": "Sum" }, { "value": "avg", "label": "Avg" } ], "allowEditOnly": true }, "default": "avg", "displayName": "Operation", "group": "MaxAge" }, { "name": "agg-MaxAge", "plug": "output", "type": "number", "displayName": "MaxAge", "group": "Aggregates", "index": 9 }, { "name": "visualFilter", "plug": "input", "type": { "name": "query-filter", "schema": { "properties": { "createdAt": { "type": "Date" }, "updatedAt": { "type": "Date" }, "Name": { "type": "String", "required": false }, "Age": { "type": "Number", "required": false }, "Parent": { "type": "Pointer", "targetClass": "TestQuery", "required": false }, "Children": { "type": "Relation", "targetClass": "TestQuery" }, "Sex": { "type": "String", "required": false } }, "relations": { "TestQuery": [ { "property": "Children" } ] } }, "allowEditOnly": true }, "displayName": "Filter", "group": "Filter", "index": 10 } ], "children": [] }, { "id": "5103500b-f232-e062-5991-c6e2a1b2f292", "type": "JavaScriptFunction", "x": 140, "y": 294, "parameters": { "functionScript": "Outputs.FilterOK = Inputs.MaxAge === 42;\n\nOutputs.Done()" }, "ports": [], "dynamicports": [ { "name": "in-MaxAge", "displayName": "MaxAge", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 5 }, { "name": "out-FilterOK", "displayName": "FilterOK", "plug": "output", "type": "*", "group": "Outputs", "index": 6 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "fbd1edb9-f129-bc27-db5d-6665b3689c31", "type": "noodl.cloud.aggregate", "x": -66.5, "y": 591.9, "parameters": { "collectionName": "TestQuery", "storageFilterType": "json", "aggregates": "SumAge,MinAge", "aggprop-SumAge": "Age", "aggop-SumAge": "sum", "storageJSONFilter": "// Write your query script here, check out the reference documentation for examples\nwhere({\n Name:{containedIn:['Lisa','Marge']}\n })\n", "aggprop-MinAge": "Age", "aggop-MinAge": "min" }, "ports": [], "dynamicports": [ { "name": "collectionName", "type": { "name": "enum", "enums": [ { "label": "User", "value": "_User" }, { "label": "Role", "value": "_Role" }, { "value": "Test", "label": "Test" }, { "value": "Post", "label": "Post" }, { "value": "Group", "label": "Group" }, { "value": "TestQuery", "label": "TestQuery" } ], "allowEditOnly": true }, "displayName": "Class", "plug": "input", "group": "General", "index": 4 }, { "name": "storageFilterType", "type": { "name": "enum", "allowEditOnly": true, "enums": [ { "value": "simple", "label": "Visual" }, { "value": "json", "label": "Javascript" } ] }, "displayName": "Filter", "default": "simple", "plug": "input", "group": "General", "index": 5 }, { "type": "signal", "plug": "input", "group": "Actions", "name": "storageFetch", "displayName": "Do", "index": 6 }, { "index": 101, "name": "aggprop-SumAge", "plug": "input", "type": { "name": "enum", "enums": [ { "value": "Name", "label": "Name" }, { "value": "Age", "label": "Age" }, { "value": "Sex", "label": "Sex" } ], "allowEditOnly": true }, "displayName": "Property", "group": "SumAge" }, { "index": 102, "name": "aggop-SumAge", "plug": "input", "type": { "name": "enum", "enums": [ { "value": "min", "label": "Min" }, { "value": "max", "label": "Max" }, { "value": "sum", "label": "Sum" }, { "value": "avg", "label": "Avg" } ], "allowEditOnly": true }, "default": "avg", "displayName": "Operation", "group": "SumAge" }, { "name": "agg-SumAge", "plug": "output", "type": "number", "displayName": "SumAge", "group": "Aggregates", "index": 9 }, { "index": 101, "name": "aggprop-MinAge", "plug": "input", "type": { "name": "enum", "enums": [ { "value": "Name", "label": "Name" }, { "value": "Age", "label": "Age" }, { "value": "Sex", "label": "Sex" } ], "allowEditOnly": true }, "displayName": "Property", "group": "MinAge" }, { "index": 102, "name": "aggop-MinAge", "plug": "input", "type": { "name": "enum", "enums": [ { "value": "min", "label": "Min" }, { "value": "max", "label": "Max" }, { "value": "sum", "label": "Sum" }, { "value": "avg", "label": "Avg" } ], "allowEditOnly": true }, "default": "avg", "displayName": "Operation", "group": "MinAge" }, { "name": "agg-MinAge", "plug": "output", "type": "number", "displayName": "MinAge", "group": "Aggregates", "index": 12 }, { "type": { "name": "string", "allowEditOnly": true, "codeeditor": "javascript" }, "plug": "input", "group": "Filter", "name": "storageJSONFilter", "default": "// Write your query script here, check out the reference documentation for examples\nwhere({ })\n", "displayName": "Filter", "index": 13 } ], "children": [] }, { "id": "191a5faa-e28d-0001-eff4-fd7edfcbe3ab", "type": "JavaScriptFunction", "x": 141, "y": 617, "parameters": { "functionScript": "Outputs.JsFilterOK = Inputs.SumAge === 51 && Inputs.MinAge === 11;\n\nOutputs.Done()" }, "ports": [], "dynamicports": [ { "name": "in-SumAge", "displayName": "SumAge", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "in-MinAge", "displayName": "MinAge", "plug": "input", "type": "*", "group": "Inputs", "index": 5 }, { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 6 }, { "name": "out-JsFilterOK", "displayName": "JsFilterOK", "plug": "output", "type": "*", "group": "Outputs", "index": 7 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } } ], "visualRoots": [], "comments": [ { "text": "Simple agg", "width": 688, "height": 290, "fill": true, "x": -265, "y": -176, "id": "f14c81e3-5c50-6590-d777-265b4a831235" }, { "text": "Agg with filter", "width": 688, "height": 290, "fill": true, "x": -260, "y": 154, "id": "7db33405-9f12-7c02-8d75-691d1b663643" }, { "text": "Agg with js filter", "width": 688, "height": 290, "fill": true, "x": -246, "y": 472, "id": "56ae2d29-857f-dc9c-f8d9-2e21f46899ee" } ] } }, { "name": "/#__cloud__/Records and Objects/Delete Record", "id": "d74e6b33-b2d4-fef6-5b25-5cd065bb7bbc", "graph": { "connections": [ { "fromId": "bbb4f297-cb59-e290-f526-72b11357adb8", "fromProperty": "created", "toId": "c8c8ee98-b73c-23f7-33b6-acf6484f5b30", "toProperty": "storageFetch" }, { "fromId": "c8c8ee98-b73c-23f7-33b6-acf6484f5b30", "fromProperty": "fetched", "toId": "03fc666e-d2ce-841f-00bc-3745b5dfbcdc", "toProperty": "store" }, { "fromId": "bbb4f297-cb59-e290-f526-72b11357adb8", "fromProperty": "id", "toId": "03fc666e-d2ce-841f-00bc-3745b5dfbcdc", "toProperty": "modelId" }, { "fromId": "03fc666e-d2ce-841f-00bc-3745b5dfbcdc", "fromProperty": "deleted", "toId": "c686b218-2497-97c6-6ead-d600da34d03e", "toProperty": "storageFetch" }, { "fromId": "14e02452-2e70-6731-07a1-05a827ffc5fb", "fromProperty": "receive", "toId": "bbb4f297-cb59-e290-f526-72b11357adb8", "toProperty": "store" }, { "fromId": "c8c8ee98-b73c-23f7-33b6-acf6484f5b30", "fromProperty": "count", "toId": "8c1a7857-8a4c-8887-e0b8-76285e5b405b", "toProperty": "in-BeforeCount" }, { "fromId": "c686b218-2497-97c6-6ead-d600da34d03e", "fromProperty": "count", "toId": "8c1a7857-8a4c-8887-e0b8-76285e5b405b", "toProperty": "in-AfterCount" }, { "fromId": "8c1a7857-8a4c-8887-e0b8-76285e5b405b", "fromProperty": "out-DeleteOK", "toId": "f69b15d8-ca31-42df-c4e1-2cd2a539d2c6", "toProperty": "pm-DeleteOK" }, { "fromId": "c686b218-2497-97c6-6ead-d600da34d03e", "fromProperty": "fetched", "toId": "f69b15d8-ca31-42df-c4e1-2cd2a539d2c6", "toProperty": "send" } ], "roots": [ { "id": "bbb4f297-cb59-e290-f526-72b11357adb8", "type": "NewDbModelProperties", "x": 313, "y": 103.56241843578536, "parameters": { "collectionName": "Test", "prop-AString": "WoofWoof" }, "ports": [], "dynamicports": [ { "name": "collectionName", "displayName": "Class", "group": "General", "type": { "name": "enum", "enums": [ { "label": "User", "value": "_User" }, { "label": "Role", "value": "_Role" }, { "value": "Test", "label": "Test" }, { "value": "Post", "label": "Post" }, { "value": "Group", "label": "Group" }, { "value": "TestQuery", "label": "TestQuery" } ], "allowEditOnly": true }, "plug": "input", "index": 7 }, { "type": { "name": "date" }, "plug": "input", "group": "Properties", "name": "prop-createdAt", "displayName": "createdAt", "index": 8 }, { "type": { "name": "date" }, "plug": "input", "group": "Properties", "name": "prop-updatedAt", "displayName": "updatedAt", "index": 9 }, { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-AString", "displayName": "AString", "index": 10 }, { "type": { "name": "number" }, "plug": "input", "group": "Properties", "name": "prop-ANumber", "displayName": "ANumber", "index": 11 }, { "type": { "name": "boolean" }, "plug": "input", "group": "Properties", "name": "prop-ABool", "displayName": "ABool", "index": 12 }, { "type": { "name": "*" }, "plug": "input", "group": "Properties", "name": "prop-AnObject", "displayName": "AnObject", "index": 13 }, { "type": { "name": "*" }, "plug": "input", "group": "Properties", "name": "prop-AnArray", "displayName": "AnArray", "index": 14 }, { "type": { "name": "*" }, "plug": "input", "group": "Properties", "name": "prop-ARelation", "displayName": "ARelation", "index": 15 }, { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-Text", "displayName": "Text", "index": 16 }, { "type": { "name": "date" }, "plug": "input", "group": "Properties", "name": "prop-ADate", "displayName": "ADate", "index": 17 }, { "type": { "name": "boolean" }, "plug": "input", "group": "Properties", "name": "prop-ABoolean", "displayName": "ABoolean", "index": 18 } ], "children": [] }, { "id": "c8c8ee98-b73c-23f7-33b6-acf6484f5b30", "type": "DbCollection2", "x": 595, "y": 68.56241843578536, "parameters": { "collectionName": "Test", "visualFilter": { "combinator": "or", "rules": [ { "combinator": "and", "rules": [ { "property": "AString", "value": "WoofWoof", "operator": "equal to" } ] } ] } }, "ports": [], "dynamicports": [ { "name": "collectionName", "type": { "name": "enum", "enums": [ { "label": "User", "value": "_User" }, { "label": "Role", "value": "_Role" }, { "value": "Test", "label": "Test" }, { "value": "Post", "label": "Post" }, { "value": "Group", "label": "Group" }, { "value": "TestQuery", "label": "TestQuery" } ], "allowEditOnly": true }, "displayName": "Class", "plug": "input", "group": "General", "index": 6 }, { "name": "storageFilterType", "type": { "name": "enum", "allowEditOnly": true, "enums": [ { "value": "simple", "label": "Visual" }, { "value": "json", "label": "Javascript" } ] }, "displayName": "Filter", "default": "simple", "plug": "input", "group": "General", "index": 7 }, { "type": "boolean", "plug": "input", "group": "Limit", "name": "storageEnableLimit", "displayName": "Use limit", "index": 8 }, { "type": "signal", "plug": "input", "group": "Actions", "name": "storageFetch", "displayName": "Do", "index": 9 }, { "type": "boolean", "plug": "input", "group": "Total Count", "name": "storageEnableCount", "displayName": "Fetch total count", "index": 10 }, { "name": "visualFilter", "plug": "input", "type": { "name": "query-filter", "schema": { "properties": { "createdAt": { "type": "Date" }, "updatedAt": { "type": "Date" }, "AString": { "type": "String" }, "ANumber": { "type": "Number" }, "ABool": { "type": "Boolean" }, "AnObject": { "type": "Object" }, "AnArray": { "type": "Array" }, "ARelation": { "type": "Relation", "targetClass": "Test" }, "Text": { "type": "String", "required": false }, "ADate": { "type": "Date", "required": false }, "ABoolean": { "type": "Boolean", "required": false } }, "relations": { "Test": [ { "property": "ARelation" } ] } }, "allowEditOnly": true }, "displayName": "Filter", "group": "Filter", "index": 11 }, { "name": "visualSort", "plug": "input", "type": { "name": "query-sorting", "schema": { "properties": { "createdAt": { "type": "Date" }, "updatedAt": { "type": "Date" }, "AString": { "type": "String" }, "ANumber": { "type": "Number" }, "ABool": { "type": "Boolean" }, "AnObject": { "type": "Object" }, "AnArray": { "type": "Array" }, "ARelation": { "type": "Relation", "targetClass": "Test" }, "Text": { "type": "String", "required": false }, "ADate": { "type": "Date", "required": false }, "ABoolean": { "type": "Boolean", "required": false } }, "relations": { "Test": [ { "property": "ARelation" } ] } }, "allowEditOnly": true }, "displayName": "Sort", "group": "Sorting", "index": 12 } ], "children": [] }, { "id": "03fc666e-d2ce-841f-00bc-3745b5dfbcdc", "type": "DeleteDbModelProperties", "x": 881.2692215865252, "y": 210.26358239403646, "parameters": { "collectionName": "Test" }, "ports": [], "dynamicports": [ { "name": "collectionName", "displayName": "Class", "group": "General", "type": { "name": "enum", "enums": [ { "label": "User", "value": "_User" }, { "label": "Role", "value": "_Role" }, { "value": "Test", "label": "Test" }, { "value": "Post", "label": "Post" }, { "value": "Group", "label": "Group" }, { "value": "TestQuery", "label": "TestQuery" } ], "allowEditOnly": true }, "plug": "input", "index": 7 } ], "children": [] }, { "id": "c686b218-2497-97c6-6ead-d600da34d03e", "type": "DbCollection2", "x": 1192.9540738538785, "y": 198.5461067448879, "parameters": { "collectionName": "Test", "visualFilter": { "combinator": "or", "rules": [ { "combinator": "and", "rules": [ { "property": "AString", "value": "WoofWoof", "operator": "equal to" } ] } ] } }, "ports": [], "dynamicports": [ { "name": "collectionName", "type": { "name": "enum", "enums": [ { "label": "User", "value": "_User" }, { "label": "Role", "value": "_Role" }, { "value": "Test", "label": "Test" }, { "value": "Post", "label": "Post" }, { "value": "Group", "label": "Group" }, { "value": "TestQuery", "label": "TestQuery" } ], "allowEditOnly": true }, "displayName": "Class", "plug": "input", "group": "General", "index": 6 }, { "name": "storageFilterType", "type": { "name": "enum", "allowEditOnly": true, "enums": [ { "value": "simple", "label": "Visual" }, { "value": "json", "label": "Javascript" } ] }, "displayName": "Filter", "default": "simple", "plug": "input", "group": "General", "index": 7 }, { "type": "boolean", "plug": "input", "group": "Limit", "name": "storageEnableLimit", "displayName": "Use limit", "index": 8 }, { "type": "signal", "plug": "input", "group": "Actions", "name": "storageFetch", "displayName": "Do", "index": 9 }, { "type": "boolean", "plug": "input", "group": "Total Count", "name": "storageEnableCount", "displayName": "Fetch total count", "index": 10 }, { "name": "visualFilter", "plug": "input", "type": { "name": "query-filter", "schema": { "properties": { "createdAt": { "type": "Date" }, "updatedAt": { "type": "Date" }, "AString": { "type": "String" }, "ANumber": { "type": "Number" }, "ABool": { "type": "Boolean" }, "AnObject": { "type": "Object" }, "AnArray": { "type": "Array" }, "ARelation": { "type": "Relation", "targetClass": "Test" }, "Text": { "type": "String", "required": false }, "ADate": { "type": "Date", "required": false }, "ABoolean": { "type": "Boolean", "required": false } }, "relations": { "Test": [ { "property": "ARelation" } ] } }, "allowEditOnly": true }, "displayName": "Filter", "group": "Filter", "index": 11 }, { "name": "visualSort", "plug": "input", "type": { "name": "query-sorting", "schema": { "properties": { "createdAt": { "type": "Date" }, "updatedAt": { "type": "Date" }, "AString": { "type": "String" }, "ANumber": { "type": "Number" }, "ABool": { "type": "Boolean" }, "AnObject": { "type": "Object" }, "AnArray": { "type": "Array" }, "ARelation": { "type": "Relation", "targetClass": "Test" }, "Text": { "type": "String", "required": false }, "ADate": { "type": "Date", "required": false }, "ABoolean": { "type": "Boolean", "required": false } }, "relations": { "Test": [ { "property": "ARelation" } ] } }, "allowEditOnly": true }, "displayName": "Sort", "group": "Sorting", "index": 12 } ], "children": [] }, { "id": "14e02452-2e70-6731-07a1-05a827ffc5fb", "type": "noodl.cloud.request", "x": 8.5, "y": 124, "parameters": {}, "ports": [], "dynamicports": [], "children": [] }, { "id": "8c1a7857-8a4c-8887-e0b8-76285e5b405b", "type": "JavaScriptFunction", "x": 1461.5, "y": 18, "parameters": { "functionScript": "Outputs.DeleteOK =\nInputs.AfterCount === Inputs.BeforeCount-1" }, "ports": [], "dynamicports": [ { "name": "in-AfterCount", "displayName": "AfterCount", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "in-BeforeCount", "displayName": "BeforeCount", "plug": "input", "type": "*", "group": "Inputs", "index": 5 }, { "name": "out-DeleteOK", "displayName": "DeleteOK", "plug": "output", "type": "*", "group": "Outputs", "index": 6 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "f69b15d8-ca31-42df-c4e1-2cd2a539d2c6", "type": "noodl.cloud.response", "x": 1794.5, "y": 164, "parameters": { "params": "DeleteOK" }, "ports": [], "dynamicports": [ { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-DeleteOK", "displayName": "DeleteOK", "index": 4 } ], "children": [] } ], "visualRoots": [] } }, { "name": "/#__cloud__/Records and Objects/New Record", "id": "b291040a-8c28-f1da-b4e3-c7a574318862", "graph": { "connections": [ { "fromId": "8905bdef-738e-c55f-9cc9-be931d56d87e", "fromProperty": "created", "toId": "6dc555e6-9153-542e-06ca-60c6e81a4e34", "toProperty": "fetch" }, { "fromId": "8905bdef-738e-c55f-9cc9-be931d56d87e", "fromProperty": "id", "toId": "6dc555e6-9153-542e-06ca-60c6e81a4e34", "toProperty": "modelId" }, { "fromId": "6dc555e6-9153-542e-06ca-60c6e81a4e34", "fromProperty": "id", "toId": "91d5667a-b143-1f87-2f3a-ba6fb423a1bd", "toProperty": "modelId" }, { "fromId": "879d9b49-ae65-921a-949b-e620a1bee40d", "fromProperty": "out-SourceObjectId", "toId": "218a8015-b08b-2ceb-abc4-b6322ffbb884", "toProperty": "sourceObjectId" }, { "fromId": "218a8015-b08b-2ceb-abc4-b6322ffbb884", "fromProperty": "id", "toId": "e0d0f8ec-aa57-eef3-2e59-1b19be6402f2", "toProperty": "modelId" }, { "fromId": "218a8015-b08b-2ceb-abc4-b6322ffbb884", "fromProperty": "created", "toId": "e0d0f8ec-aa57-eef3-2e59-1b19be6402f2", "toProperty": "fetch" }, { "fromId": "e0d0f8ec-aa57-eef3-2e59-1b19be6402f2", "fromProperty": "fetched", "toId": "43ac2d88-b576-ffb4-f0e2-4f5c8ab8bada", "toProperty": "run" }, { "fromId": "e0d0f8ec-aa57-eef3-2e59-1b19be6402f2", "fromProperty": "prop-ANumber", "toId": "43ac2d88-b576-ffb4-f0e2-4f5c8ab8bada", "toProperty": "in-aNumber" }, { "fromId": "e0d0f8ec-aa57-eef3-2e59-1b19be6402f2", "fromProperty": "prop-AString", "toId": "43ac2d88-b576-ffb4-f0e2-4f5c8ab8bada", "toProperty": "in-aString" }, { "fromId": "ce4b2bfe-9e5e-22a3-e029-9b812eefe086", "fromProperty": "receive", "toId": "8905bdef-738e-c55f-9cc9-be931d56d87e", "toProperty": "store" }, { "fromId": "ce4b2bfe-9e5e-22a3-e029-9b812eefe086", "fromProperty": "receive", "toId": "218a8015-b08b-2ceb-abc4-b6322ffbb884", "toProperty": "store" }, { "fromId": "91d5667a-b143-1f87-2f3a-ba6fb423a1bd", "fromProperty": "id", "toId": "7b364030-8b3d-067e-ecfd-432108074879", "toProperty": "modelId" }, { "fromId": "7b364030-8b3d-067e-ecfd-432108074879", "fromProperty": "id", "toId": "515688ef-c764-e793-f26f-c84c68b5ccd9", "toProperty": "modelId" }, { "fromId": "e53d68b6-6603-7d6c-72c9-c1386ac3540c", "fromProperty": "out-Done", "toId": "515688ef-c764-e793-f26f-c84c68b5ccd9", "toProperty": "fetch" }, { "fromId": "91d5667a-b143-1f87-2f3a-ba6fb423a1bd", "fromProperty": "stored", "toId": "e53d68b6-6603-7d6c-72c9-c1386ac3540c", "toProperty": "run" }, { "fromId": "7b364030-8b3d-067e-ecfd-432108074879", "fromProperty": "prop-ANumber", "toId": "e53d68b6-6603-7d6c-72c9-c1386ac3540c", "toProperty": "in-aNumber" }, { "fromId": "6dc555e6-9153-542e-06ca-60c6e81a4e34", "fromProperty": "fetched", "toId": "276a8675-4c6c-9b96-d509-73748bbcc896", "toProperty": "run" }, { "fromId": "6dc555e6-9153-542e-06ca-60c6e81a4e34", "fromProperty": "prop-ANumber", "toId": "276a8675-4c6c-9b96-d509-73748bbcc896", "toProperty": "in-aNumber" }, { "fromId": "6dc555e6-9153-542e-06ca-60c6e81a4e34", "fromProperty": "prop-ABool", "toId": "276a8675-4c6c-9b96-d509-73748bbcc896", "toProperty": "in-aBool" }, { "fromId": "6dc555e6-9153-542e-06ca-60c6e81a4e34", "fromProperty": "prop-AString", "toId": "276a8675-4c6c-9b96-d509-73748bbcc896", "toProperty": "in-aString" }, { "fromId": "515688ef-c764-e793-f26f-c84c68b5ccd9", "fromProperty": "fetched", "toId": "719595e6-afeb-6f91-0030-2bb89d42cdce", "toProperty": "run" }, { "fromId": "515688ef-c764-e793-f26f-c84c68b5ccd9", "fromProperty": "prop-ANumber", "toId": "719595e6-afeb-6f91-0030-2bb89d42cdce", "toProperty": "in-aNumber" }, { "fromId": "719595e6-afeb-6f91-0030-2bb89d42cdce", "fromProperty": "out-ReFetchOK", "toId": "eeaf2687-7ae0-4ecd-612e-2c72238e2801", "toProperty": "pm-ReFetchOK" }, { "fromId": "e53d68b6-6603-7d6c-72c9-c1386ac3540c", "fromProperty": "out-SetPropertiesOK", "toId": "eeaf2687-7ae0-4ecd-612e-2c72238e2801", "toProperty": "pm-SetPropertiesOK" }, { "fromId": "276a8675-4c6c-9b96-d509-73748bbcc896", "fromProperty": "out-CreateOK", "toId": "eeaf2687-7ae0-4ecd-612e-2c72238e2801", "toProperty": "pm-CreateOK" }, { "fromId": "43ac2d88-b576-ffb4-f0e2-4f5c8ab8bada", "fromProperty": "out-CreateWithSourceOK", "toId": "eeaf2687-7ae0-4ecd-612e-2c72238e2801", "toProperty": "pm-CreateWithSourceOK" }, { "fromId": "515688ef-c764-e793-f26f-c84c68b5ccd9", "fromProperty": "fetched", "toId": "6b7c6473-b924-c0b4-b123-4174f10a90d9", "toProperty": "run" }, { "fromId": "e0d0f8ec-aa57-eef3-2e59-1b19be6402f2", "fromProperty": "fetched", "toId": "6b7c6473-b924-c0b4-b123-4174f10a90d9", "toProperty": "run" }, { "fromId": "6b7c6473-b924-c0b4-b123-4174f10a90d9", "fromProperty": "out-Done", "toId": "eeaf2687-7ae0-4ecd-612e-2c72238e2801", "toProperty": "send" }, { "fromId": "6dc555e6-9153-542e-06ca-60c6e81a4e34", "fromProperty": "id", "toId": "276a8675-4c6c-9b96-d509-73748bbcc896", "toProperty": "in-Id" }, { "fromId": "276a8675-4c6c-9b96-d509-73748bbcc896", "fromProperty": "out-Done", "toId": "91d5667a-b143-1f87-2f3a-ba6fb423a1bd", "toProperty": "store" } ], "roots": [ { "id": "6dc555e6-9153-542e-06ca-60c6e81a4e34", "type": "DbModel2", "x": 702.8824246177702, "y": -31.0195804136672, "parameters": { "collectionName": "Test" }, "ports": [], "dynamicports": [ { "name": "collectionName", "displayName": "Class", "group": "General", "type": { "name": "enum", "enums": [ { "label": "User", "value": "_User" }, { "label": "Role", "value": "_Role" }, { "value": "Test", "label": "Test" }, { "value": "Post", "label": "Post" }, { "value": "Group", "label": "Group" }, { "value": "TestQuery", "label": "TestQuery" } ], "allowEditOnly": true }, "plug": "input", "index": 8 }, { "type": { "name": "date" }, "plug": "output", "group": "Properties", "name": "prop-createdAt", "displayName": "createdAt", "index": 9 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "createdAt Changed", "name": "changed-createdAt", "index": 10 }, { "type": { "name": "date" }, "plug": "output", "group": "Properties", "name": "prop-updatedAt", "displayName": "updatedAt", "index": 11 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "updatedAt Changed", "name": "changed-updatedAt", "index": 12 }, { "type": { "name": "string" }, "plug": "output", "group": "Properties", "name": "prop-AString", "displayName": "AString", "index": 13 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "AString Changed", "name": "changed-AString", "index": 14 }, { "type": { "name": "number" }, "plug": "output", "group": "Properties", "name": "prop-ANumber", "displayName": "ANumber", "index": 15 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "ANumber Changed", "name": "changed-ANumber", "index": 16 }, { "type": { "name": "boolean" }, "plug": "output", "group": "Properties", "name": "prop-ABool", "displayName": "ABool", "index": 17 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "ABool Changed", "name": "changed-ABool", "index": 18 }, { "type": { "name": "*" }, "plug": "output", "group": "Properties", "name": "prop-AnObject", "displayName": "AnObject", "index": 19 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "AnObject Changed", "name": "changed-AnObject", "index": 20 }, { "type": { "name": "*" }, "plug": "output", "group": "Properties", "name": "prop-AnArray", "displayName": "AnArray", "index": 21 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "AnArray Changed", "name": "changed-AnArray", "index": 22 }, { "type": { "name": "string" }, "plug": "output", "group": "Properties", "name": "prop-Text", "displayName": "Text", "index": 23 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "Text Changed", "name": "changed-Text", "index": 24 }, { "type": { "name": "date" }, "plug": "output", "group": "Properties", "name": "prop-ADate", "displayName": "ADate", "index": 25 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "ADate Changed", "name": "changed-ADate", "index": 26 }, { "type": { "name": "boolean" }, "plug": "output", "group": "Properties", "name": "prop-ABoolean", "displayName": "ABoolean", "index": 27 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "ABoolean Changed", "name": "changed-ABoolean", "index": 28 } ], "children": [] }, { "id": "8905bdef-738e-c55f-9cc9-be931d56d87e", "type": "NewDbModelProperties", "x": 399.79080708728077, "y": 41.80624316066047, "parameters": { "collectionName": "Test", "prop-AString": "Hej", "prop-ABool": true, "prop-ANumber": 17 }, "ports": [], "dynamicports": [ { "name": "collectionName", "displayName": "Class", "group": "General", "type": { "name": "enum", "enums": [ { "label": "User", "value": "_User" }, { "label": "Role", "value": "_Role" }, { "value": "Test", "label": "Test" }, { "value": "Post", "label": "Post" }, { "value": "Group", "label": "Group" }, { "value": "TestQuery", "label": "TestQuery" } ], "allowEditOnly": true }, "plug": "input", "index": 7 }, { "type": { "name": "date" }, "plug": "input", "group": "Properties", "name": "prop-createdAt", "displayName": "createdAt", "index": 8 }, { "type": { "name": "date" }, "plug": "input", "group": "Properties", "name": "prop-updatedAt", "displayName": "updatedAt", "index": 9 }, { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-AString", "displayName": "AString", "index": 10 }, { "type": { "name": "number" }, "plug": "input", "group": "Properties", "name": "prop-ANumber", "displayName": "ANumber", "index": 11 }, { "type": { "name": "boolean" }, "plug": "input", "group": "Properties", "name": "prop-ABool", "displayName": "ABool", "index": 12 }, { "type": { "name": "*" }, "plug": "input", "group": "Properties", "name": "prop-AnObject", "displayName": "AnObject", "index": 13 }, { "type": { "name": "*" }, "plug": "input", "group": "Properties", "name": "prop-AnArray", "displayName": "AnArray", "index": 14 }, { "type": { "name": "*" }, "plug": "input", "group": "Properties", "name": "prop-ARelation", "displayName": "ARelation", "index": 15 }, { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-Text", "displayName": "Text", "index": 16 }, { "type": { "name": "date" }, "plug": "input", "group": "Properties", "name": "prop-ADate", "displayName": "ADate", "index": 17 }, { "type": { "name": "boolean" }, "plug": "input", "group": "Properties", "name": "prop-ABoolean", "displayName": "ABoolean", "index": 18 } ], "children": [] }, { "id": "91d5667a-b143-1f87-2f3a-ba6fb423a1bd", "type": "SetDbModelProperties", "label": "Set local only", "x": 1081.4526518434918, "y": 220.89604188683307, "parameters": { "collectionName": "Test", "storeType": "local", "prop-ANumber": 55 }, "ports": [], "dynamicports": [ { "name": "collectionName", "displayName": "Class", "group": "General", "type": { "name": "enum", "enums": [ { "label": "User", "value": "_User" }, { "label": "Role", "value": "_Role" }, { "value": "Test", "label": "Test" }, { "value": "Post", "label": "Post" }, { "value": "Group", "label": "Group" }, { "value": "TestQuery", "label": "TestQuery" } ], "allowEditOnly": true }, "plug": "input", "index": 10 }, { "type": { "name": "date" }, "plug": "input", "group": "Properties", "name": "prop-createdAt", "displayName": "createdAt", "index": 11 }, { "type": { "name": "date" }, "plug": "input", "group": "Properties", "name": "prop-updatedAt", "displayName": "updatedAt", "index": 12 }, { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-AString", "displayName": "AString", "index": 13 }, { "type": { "name": "number" }, "plug": "input", "group": "Properties", "name": "prop-ANumber", "displayName": "ANumber", "index": 14 }, { "type": { "name": "boolean" }, "plug": "input", "group": "Properties", "name": "prop-ABool", "displayName": "ABool", "index": 15 }, { "type": { "name": "*" }, "plug": "input", "group": "Properties", "name": "prop-AnObject", "displayName": "AnObject", "index": 16 }, { "type": { "name": "*" }, "plug": "input", "group": "Properties", "name": "prop-AnArray", "displayName": "AnArray", "index": 17 }, { "type": { "name": "*" }, "plug": "input", "group": "Properties", "name": "prop-ARelation", "displayName": "ARelation", "index": 18 }, { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-Text", "displayName": "Text", "index": 19 }, { "type": { "name": "date" }, "plug": "input", "group": "Properties", "name": "prop-ADate", "displayName": "ADate", "index": 20 }, { "type": { "name": "boolean" }, "plug": "input", "group": "Properties", "name": "prop-ABoolean", "displayName": "ABoolean", "index": 21 } ], "children": [] }, { "id": "515688ef-c764-e793-f26f-c84c68b5ccd9", "type": "DbModel2", "x": 1832.554692858363, "y": 196.03264779010152, "parameters": { "collectionName": "Test" }, "ports": [], "dynamicports": [ { "name": "collectionName", "displayName": "Class", "group": "General", "type": { "name": "enum", "enums": [ { "label": "User", "value": "_User" }, { "label": "Role", "value": "_Role" }, { "value": "Test", "label": "Test" }, { "value": "Post", "label": "Post" }, { "value": "Group", "label": "Group" }, { "value": "TestQuery", "label": "TestQuery" } ], "allowEditOnly": true }, "plug": "input", "index": 8 }, { "type": { "name": "date" }, "plug": "output", "group": "Properties", "name": "prop-createdAt", "displayName": "createdAt", "index": 9 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "createdAt Changed", "name": "changed-createdAt", "index": 10 }, { "type": { "name": "date" }, "plug": "output", "group": "Properties", "name": "prop-updatedAt", "displayName": "updatedAt", "index": 11 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "updatedAt Changed", "name": "changed-updatedAt", "index": 12 }, { "type": { "name": "string" }, "plug": "output", "group": "Properties", "name": "prop-AString", "displayName": "AString", "index": 13 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "AString Changed", "name": "changed-AString", "index": 14 }, { "type": { "name": "number" }, "plug": "output", "group": "Properties", "name": "prop-ANumber", "displayName": "ANumber", "index": 15 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "ANumber Changed", "name": "changed-ANumber", "index": 16 }, { "type": { "name": "boolean" }, "plug": "output", "group": "Properties", "name": "prop-ABool", "displayName": "ABool", "index": 17 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "ABool Changed", "name": "changed-ABool", "index": 18 }, { "type": { "name": "*" }, "plug": "output", "group": "Properties", "name": "prop-AnObject", "displayName": "AnObject", "index": 19 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "AnObject Changed", "name": "changed-AnObject", "index": 20 }, { "type": { "name": "*" }, "plug": "output", "group": "Properties", "name": "prop-AnArray", "displayName": "AnArray", "index": 21 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "AnArray Changed", "name": "changed-AnArray", "index": 22 }, { "type": { "name": "string" }, "plug": "output", "group": "Properties", "name": "prop-Text", "displayName": "Text", "index": 23 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "Text Changed", "name": "changed-Text", "index": 24 }, { "type": { "name": "date" }, "plug": "output", "group": "Properties", "name": "prop-ADate", "displayName": "ADate", "index": 25 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "ADate Changed", "name": "changed-ADate", "index": 26 }, { "type": { "name": "boolean" }, "plug": "output", "group": "Properties", "name": "prop-ABoolean", "displayName": "ABoolean", "index": 27 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "ABoolean Changed", "name": "changed-ABoolean", "index": 28 } ], "children": [] }, { "id": "218a8015-b08b-2ceb-abc4-b6322ffbb884", "type": "NewDbModelProperties", "x": 412.86515007344985, "y": 250.51836971877833, "parameters": { "collectionName": "Test" }, "ports": [], "dynamicports": [ { "name": "collectionName", "displayName": "Class", "group": "General", "type": { "name": "enum", "enums": [ { "label": "User", "value": "_User" }, { "label": "Role", "value": "_Role" }, { "value": "Test", "label": "Test" }, { "value": "Post", "label": "Post" }, { "value": "Group", "label": "Group" }, { "value": "TestQuery", "label": "TestQuery" } ], "allowEditOnly": true }, "plug": "input", "index": 7 }, { "type": { "name": "date" }, "plug": "input", "group": "Properties", "name": "prop-createdAt", "displayName": "createdAt", "index": 8 }, { "type": { "name": "date" }, "plug": "input", "group": "Properties", "name": "prop-updatedAt", "displayName": "updatedAt", "index": 9 }, { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-AString", "displayName": "AString", "index": 10 }, { "type": { "name": "number" }, "plug": "input", "group": "Properties", "name": "prop-ANumber", "displayName": "ANumber", "index": 11 }, { "type": { "name": "boolean" }, "plug": "input", "group": "Properties", "name": "prop-ABool", "displayName": "ABool", "index": 12 }, { "type": { "name": "*" }, "plug": "input", "group": "Properties", "name": "prop-AnObject", "displayName": "AnObject", "index": 13 }, { "type": { "name": "*" }, "plug": "input", "group": "Properties", "name": "prop-AnArray", "displayName": "AnArray", "index": 14 }, { "type": { "name": "*" }, "plug": "input", "group": "Properties", "name": "prop-ARelation", "displayName": "ARelation", "index": 15 }, { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-Text", "displayName": "Text", "index": 16 }, { "type": { "name": "date" }, "plug": "input", "group": "Properties", "name": "prop-ADate", "displayName": "ADate", "index": 17 }, { "type": { "name": "boolean" }, "plug": "input", "group": "Properties", "name": "prop-ABoolean", "displayName": "ABoolean", "index": 18 } ], "children": [] }, { "id": "879d9b49-ae65-921a-949b-e620a1bee40d", "type": "JavaScriptFunction", "x": 146.86515007344985, "y": 288.51836971877833, "parameters": { "functionScript": "const obj = Noodl.Object.create({\n AString:'jajamen',\n ANumber:38\n})\nOutputs.SourceObjectId = obj.getId()" }, "ports": [], "dynamicports": [ { "name": "out-SourceObjectId", "displayName": "SourceObjectId", "plug": "output", "type": "*", "group": "Outputs", "index": 4 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "e0d0f8ec-aa57-eef3-2e59-1b19be6402f2", "type": "DbModel2", "x": 675.8651500734499, "y": 303.51836971877833, "parameters": { "collectionName": "Test" }, "ports": [], "dynamicports": [ { "name": "collectionName", "displayName": "Class", "group": "General", "type": { "name": "enum", "enums": [ { "label": "User", "value": "_User" }, { "label": "Role", "value": "_Role" }, { "value": "Test", "label": "Test" }, { "value": "Post", "label": "Post" }, { "value": "Group", "label": "Group" }, { "value": "TestQuery", "label": "TestQuery" } ], "allowEditOnly": true }, "plug": "input", "index": 8 }, { "type": { "name": "date" }, "plug": "output", "group": "Properties", "name": "prop-createdAt", "displayName": "createdAt", "index": 9 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "createdAt Changed", "name": "changed-createdAt", "index": 10 }, { "type": { "name": "date" }, "plug": "output", "group": "Properties", "name": "prop-updatedAt", "displayName": "updatedAt", "index": 11 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "updatedAt Changed", "name": "changed-updatedAt", "index": 12 }, { "type": { "name": "string" }, "plug": "output", "group": "Properties", "name": "prop-AString", "displayName": "AString", "index": 13 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "AString Changed", "name": "changed-AString", "index": 14 }, { "type": { "name": "number" }, "plug": "output", "group": "Properties", "name": "prop-ANumber", "displayName": "ANumber", "index": 15 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "ANumber Changed", "name": "changed-ANumber", "index": 16 }, { "type": { "name": "boolean" }, "plug": "output", "group": "Properties", "name": "prop-ABool", "displayName": "ABool", "index": 17 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "ABool Changed", "name": "changed-ABool", "index": 18 }, { "type": { "name": "*" }, "plug": "output", "group": "Properties", "name": "prop-AnObject", "displayName": "AnObject", "index": 19 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "AnObject Changed", "name": "changed-AnObject", "index": 20 }, { "type": { "name": "*" }, "plug": "output", "group": "Properties", "name": "prop-AnArray", "displayName": "AnArray", "index": 21 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "AnArray Changed", "name": "changed-AnArray", "index": 22 }, { "type": { "name": "string" }, "plug": "output", "group": "Properties", "name": "prop-Text", "displayName": "Text", "index": 23 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "Text Changed", "name": "changed-Text", "index": 24 }, { "type": { "name": "date" }, "plug": "output", "group": "Properties", "name": "prop-ADate", "displayName": "ADate", "index": 25 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "ADate Changed", "name": "changed-ADate", "index": 26 }, { "type": { "name": "boolean" }, "plug": "output", "group": "Properties", "name": "prop-ABoolean", "displayName": "ABoolean", "index": 27 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "ABoolean Changed", "name": "changed-ABoolean", "index": 28 } ], "children": [] }, { "id": "43ac2d88-b576-ffb4-f0e2-4f5c8ab8bada", "type": "JavaScriptFunction", "label": "Verify", "x": 1096.0376600254808, "y": 409.3554734757711, "parameters": { "functionScript": "Outputs.CreateWithSourceOK =\nInputs.aNumber === 38 &&\nInputs.aString === 'jajamen';" }, "ports": [], "dynamicports": [ { "name": "in-aNumber", "displayName": "aNumber", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "in-aString", "displayName": "aString", "plug": "input", "type": "*", "group": "Inputs", "index": 5 }, { "name": "out-CreateWithSourceOK", "displayName": "CreateWithSourceOK", "plug": "output", "type": "*", "group": "Outputs", "index": 6 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "ce4b2bfe-9e5e-22a3-e029-9b812eefe086", "type": "noodl.cloud.request", "x": 96.87278091165558, "y": 82.13161669744602, "parameters": {}, "ports": [], "dynamicports": [], "children": [] }, { "id": "7b364030-8b3d-067e-ecfd-432108074879", "type": "DbModel2", "x": 1321.124019059212, "y": 142.68814949946852, "parameters": { "collectionName": "Test" }, "ports": [], "dynamicports": [ { "name": "collectionName", "displayName": "Class", "group": "General", "type": { "name": "enum", "enums": [ { "label": "User", "value": "_User" }, { "label": "Role", "value": "_Role" }, { "value": "Test", "label": "Test" }, { "value": "Post", "label": "Post" }, { "value": "Group", "label": "Group" }, { "value": "TestQuery", "label": "TestQuery" } ], "allowEditOnly": true }, "plug": "input", "index": 8 }, { "type": { "name": "date" }, "plug": "output", "group": "Properties", "name": "prop-createdAt", "displayName": "createdAt", "index": 9 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "createdAt Changed", "name": "changed-createdAt", "index": 10 }, { "type": { "name": "date" }, "plug": "output", "group": "Properties", "name": "prop-updatedAt", "displayName": "updatedAt", "index": 11 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "updatedAt Changed", "name": "changed-updatedAt", "index": 12 }, { "type": { "name": "string" }, "plug": "output", "group": "Properties", "name": "prop-AString", "displayName": "AString", "index": 13 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "AString Changed", "name": "changed-AString", "index": 14 }, { "type": { "name": "number" }, "plug": "output", "group": "Properties", "name": "prop-ANumber", "displayName": "ANumber", "index": 15 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "ANumber Changed", "name": "changed-ANumber", "index": 16 }, { "type": { "name": "boolean" }, "plug": "output", "group": "Properties", "name": "prop-ABool", "displayName": "ABool", "index": 17 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "ABool Changed", "name": "changed-ABool", "index": 18 }, { "type": { "name": "*" }, "plug": "output", "group": "Properties", "name": "prop-AnObject", "displayName": "AnObject", "index": 19 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "AnObject Changed", "name": "changed-AnObject", "index": 20 }, { "type": { "name": "*" }, "plug": "output", "group": "Properties", "name": "prop-AnArray", "displayName": "AnArray", "index": 21 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "AnArray Changed", "name": "changed-AnArray", "index": 22 }, { "type": { "name": "string" }, "plug": "output", "group": "Properties", "name": "prop-Text", "displayName": "Text", "index": 23 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "Text Changed", "name": "changed-Text", "index": 24 }, { "type": { "name": "date" }, "plug": "output", "group": "Properties", "name": "prop-ADate", "displayName": "ADate", "index": 25 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "ADate Changed", "name": "changed-ADate", "index": 26 }, { "type": { "name": "boolean" }, "plug": "output", "group": "Properties", "name": "prop-ABoolean", "displayName": "ABoolean", "index": 27 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "ABoolean Changed", "name": "changed-ABoolean", "index": 28 } ], "children": [] }, { "id": "e53d68b6-6603-7d6c-72c9-c1386ac3540c", "type": "JavaScriptFunction", "x": 1533.0718838662901, "y": 318.3020946253339, "parameters": { "functionScript": "Outputs.SetPropertiesOK = \nInputs.aNumber === 55;\n\nOutputs.Done()" }, "ports": [], "dynamicports": [ { "name": "in-aNumber", "displayName": "aNumber", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 5 }, { "name": "out-SetPropertiesOK", "displayName": "SetPropertiesOK", "plug": "output", "type": "*", "group": "Outputs", "index": 6 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "276a8675-4c6c-9b96-d509-73748bbcc896", "type": "JavaScriptFunction", "x": 1012.2857017688966, "y": -23.8423157060937, "parameters": { "functionScript": "Outputs.CreateOK = \nInputs.aBool === true &&\nInputs.aNumber === 17 &&\nInputs.aString === 'Hej' &&\nNoodl.Objects[Inputs.Id].AString === Inputs.aString;\n\nOutputs.Done()\n" }, "ports": [], "dynamicports": [ { "name": "in-aBool", "displayName": "aBool", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "in-aNumber", "displayName": "aNumber", "plug": "input", "type": "*", "group": "Inputs", "index": 5 }, { "name": "in-aString", "displayName": "aString", "plug": "input", "type": "*", "group": "Inputs", "index": 6 }, { "name": "in-Id", "displayName": "Id", "plug": "input", "type": "*", "group": "Inputs", "index": 7 }, { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 8 }, { "name": "out-CreateOK", "displayName": "CreateOK", "plug": "output", "type": "*", "group": "Outputs", "index": 9 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "719595e6-afeb-6f91-0030-2bb89d42cdce", "type": "JavaScriptFunction", "x": 2096.2476389250996, "y": 161.86438488677555, "parameters": { "functionScript": "Outputs.ReFetchOK =\nInputs.aNumber === 17;" }, "ports": [], "dynamicports": [ { "name": "in-aNumber", "displayName": "aNumber", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "out-ReFetchOK", "displayName": "ReFetchOK", "plug": "output", "type": "*", "group": "Outputs", "index": 5 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "eeaf2687-7ae0-4ecd-612e-2c72238e2801", "type": "noodl.cloud.response", "x": 2380.863343094606, "y": 278.9403483040191, "parameters": { "params": "ReFetchOK,SetPropertiesOK,CreateOK,CreateWithSourceOK" }, "ports": [], "dynamicports": [ { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-ReFetchOK", "displayName": "ReFetchOK", "index": 4 }, { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-SetPropertiesOK", "displayName": "SetPropertiesOK", "index": 5 }, { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-CreateOK", "displayName": "CreateOK", "index": 6 }, { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-CreateWithSourceOK", "displayName": "CreateWithSourceOK", "index": 7 } ], "children": [] }, { "id": "6b7c6473-b924-c0b4-b123-4174f10a90d9", "type": "JavaScriptFunction", "label": "Wait For All", "x": 2173.4005763497826, "y": 464.63989715922276, "parameters": { "functionScript": "const num_tests = Inputs.NumTests;\n\nconst request = Noodl.Objects.Request;\n\nif(request.TestsRun === undefined) request.TestsRun = num_tests\n\nrequest.TestsRun--;\nif(request.TestsRun === 0) {\n Outputs.Done()\n}", "scriptInputs": [ { "id": "25f0", "label": "NumTests" } ], "intype-NumTests": "number", "in-NumTests": 2 }, "ports": [], "dynamicports": [ { "name": "intype-NumTests", "displayName": "Type", "editorName": "NumTests | Type", "plug": "input", "type": { "name": "enum", "enums": [ { "value": "string", "label": "String" }, { "value": "boolean", "label": "Boolean" }, { "value": "number", "label": "Number" }, { "value": "object", "label": "Object" }, { "value": "date", "label": "Date" }, { "value": "array", "label": "Array" }, { "value": "color", "label": "Color" } ], "allowEditOnly": true }, "default": "string", "parent": "scriptInputs", "parentItemId": "25f0", "index": 4 }, { "name": "in-NumTests", "displayName": "NumTests", "plug": "input", "type": "number", "group": "Inputs", "index": 5 }, { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 6 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } } ], "visualRoots": [] } }, { "name": "/#__cloud__/Records and Objects/Object Set Properties", "id": "7de0c68d-cdd5-fc43-ef44-fbf57ad2f093", "graph": { "connections": [ { "fromId": "a6c51181-61c9-8881-2727-6ed1c73a9ad6", "fromProperty": "receive", "toId": "0d8f550a-3c23-812f-6d19-e7d217355701", "toProperty": "new" }, { "fromId": "0d8f550a-3c23-812f-6d19-e7d217355701", "fromProperty": "id", "toId": "5ffb93b7-568a-fcd3-f35a-65ebab8d62e3", "toProperty": "modelId" }, { "fromId": "0d8f550a-3c23-812f-6d19-e7d217355701", "fromProperty": "created", "toId": "5ffb93b7-568a-fcd3-f35a-65ebab8d62e3", "toProperty": "store" }, { "fromId": "5ffb93b7-568a-fcd3-f35a-65ebab8d62e3", "fromProperty": "id", "toId": "930cd0a5-5724-c044-7ece-05a403340417", "toProperty": "in-Id" }, { "fromId": "5ffb93b7-568a-fcd3-f35a-65ebab8d62e3", "fromProperty": "stored", "toId": "930cd0a5-5724-c044-7ece-05a403340417", "toProperty": "run" }, { "fromId": "930cd0a5-5724-c044-7ece-05a403340417", "fromProperty": "out-Done", "toId": "ccb22303-af86-2615-3bfa-ab3783028301", "toProperty": "send" }, { "fromId": "930cd0a5-5724-c044-7ece-05a403340417", "fromProperty": "out-CreateAndSetOK", "toId": "ccb22303-af86-2615-3bfa-ab3783028301", "toProperty": "pm-CreateAndSetOK" }, { "fromId": "5ffb93b7-568a-fcd3-f35a-65ebab8d62e3", "fromProperty": "id", "toId": "46d10fca-1a43-0b87-5805-490deafc6223", "toProperty": "modelId" }, { "fromId": "46d10fca-1a43-0b87-5805-490deafc6223", "fromProperty": "prop-AString", "toId": "930cd0a5-5724-c044-7ece-05a403340417", "toProperty": "in-AString" }, { "fromId": "46d10fca-1a43-0b87-5805-490deafc6223", "fromProperty": "prop-ANumber", "toId": "930cd0a5-5724-c044-7ece-05a403340417", "toProperty": "in-ANumber" }, { "fromId": "46d10fca-1a43-0b87-5805-490deafc6223", "fromProperty": "prop-ABool", "toId": "930cd0a5-5724-c044-7ece-05a403340417", "toProperty": "in-ABool" } ], "roots": [ { "id": "a6c51181-61c9-8881-2727-6ed1c73a9ad6", "type": "noodl.cloud.request", "x": -346.5, "y": -17, "parameters": {}, "ports": [], "dynamicports": [], "children": [] }, { "id": "0d8f550a-3c23-812f-6d19-e7d217355701", "type": "NewModel", "x": -41.5, "y": -24, "parameters": { "properties": "ABool", "type-ABool": "boolean", "prop-ABool": true }, "ports": [], "dynamicports": [ { "type": { "name": "boolean" }, "plug": "input", "group": "Property Values", "displayName": "ABool", "name": "prop-ABool", "index": 4 }, { "type": { "name": "enum", "enums": [ { "label": "String", "value": "string" }, { "label": "Boolean", "value": "boolean" }, { "label": "Number", "value": "number" }, { "label": "Date", "value": "date" }, { "label": "Array", "value": "array" }, { "label": "Object", "value": "object" }, { "label": "Any", "value": "*" } ], "allowEditOnly": true }, "default": "*", "plug": "input", "group": "Property Types", "displayName": "ABool", "name": "type-ABool", "index": 5 } ], "children": [] }, { "id": "5ffb93b7-568a-fcd3-f35a-65ebab8d62e3", "type": "SetModelProperties", "x": 295.5, "y": -9, "parameters": { "properties": "ANumber,AString", "type-ANumber": "number", "prop-ANumber": 10, "type-AString": "string", "prop-AString": "Tjohej" }, "ports": [], "dynamicports": [ { "type": { "name": "number" }, "plug": "input", "group": "Property Values", "displayName": "ANumber", "name": "prop-ANumber", "index": 6 }, { "type": { "name": "enum", "enums": [ { "label": "String", "value": "string" }, { "label": "Boolean", "value": "boolean" }, { "label": "Number", "value": "number" }, { "label": "Date", "value": "date" }, { "label": "Array", "value": "array" }, { "label": "Object", "value": "object" }, { "label": "Any", "value": "*" } ], "allowEditOnly": true }, "default": "*", "plug": "input", "group": "Property Types", "displayName": "ANumber", "name": "type-ANumber", "index": 7 }, { "type": { "name": "string" }, "plug": "input", "group": "Property Values", "displayName": "AString", "name": "prop-AString", "index": 8 }, { "type": { "name": "enum", "enums": [ { "label": "String", "value": "string" }, { "label": "Boolean", "value": "boolean" }, { "label": "Number", "value": "number" }, { "label": "Date", "value": "date" }, { "label": "Array", "value": "array" }, { "label": "Object", "value": "object" }, { "label": "Any", "value": "*" } ], "allowEditOnly": true }, "default": "*", "plug": "input", "group": "Property Types", "displayName": "AString", "name": "type-AString", "index": 9 } ], "children": [] }, { "id": "930cd0a5-5724-c044-7ece-05a403340417", "type": "JavaScriptFunction", "x": 794.5, "y": 82, "parameters": { "functionScript": "Outputs.CreateAndSetOK =\nNoodl.Objects[Inputs.Id].ANumber === 10 &&\nNoodl.Objects[Inputs.Id].AString === \"Tjohej\" &&\nNoodl.Objects[Inputs.Id].ABool === true &&\n\nInputs.ANumber === 10 &&\nInputs.AString === \"Tjohej\" &&\nInputs.ABool === true;\n\nOutputs.Done()" }, "ports": [], "dynamicports": [ { "name": "in-Id", "displayName": "Id", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "in-ANumber", "displayName": "ANumber", "plug": "input", "type": "*", "group": "Inputs", "index": 5 }, { "name": "in-AString", "displayName": "AString", "plug": "input", "type": "*", "group": "Inputs", "index": 6 }, { "name": "in-ABool", "displayName": "ABool", "plug": "input", "type": "*", "group": "Inputs", "index": 7 }, { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 8 }, { "name": "out-CreateAndSetOK", "displayName": "CreateAndSetOK", "plug": "output", "type": "*", "group": "Outputs", "index": 9 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "ccb22303-af86-2615-3bfa-ab3783028301", "type": "noodl.cloud.response", "x": 1047.5, "y": 172, "parameters": { "params": "CreateAndSetOK" }, "ports": [], "dynamicports": [ { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-CreateAndSetOK", "displayName": "CreateAndSetOK", "index": 4 } ], "children": [] }, { "id": "46d10fca-1a43-0b87-5805-490deafc6223", "type": "Model2", "x": 543.4, "y": -79.60000000000002, "parameters": { "properties": "AString,ANumber,ABool" }, "ports": [], "dynamicports": [ { "type": { "name": "*", "allowConnectionsOnly": true }, "plug": "input/output", "group": "Properties", "name": "prop-AString", "displayName": "AString", "index": 7 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "AString Changed", "name": "changed-AString", "index": 8 }, { "type": { "name": "*", "allowConnectionsOnly": true }, "plug": "input/output", "group": "Properties", "name": "prop-ANumber", "displayName": "ANumber", "index": 9 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "ANumber Changed", "name": "changed-ANumber", "index": 10 }, { "type": { "name": "*", "allowConnectionsOnly": true }, "plug": "input/output", "group": "Properties", "name": "prop-ABool", "displayName": "ABool", "index": 11 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "ABool Changed", "name": "changed-ABool", "index": 12 } ], "children": [] } ], "visualRoots": [] } }, { "name": "/#__cloud__/Records and Objects/Query Records", "id": "3828ee1e-68a4-b64e-62f3-ff38730934e3", "graph": { "connections": [ { "fromId": "f4d08a2e-4e3a-0f16-3a6d-06e589a93261", "fromProperty": "receive", "toId": "8a4cd8bb-001e-f5f5-ac11-79071ea3f565", "toProperty": "storageFetch" }, { "fromId": "8a4cd8bb-001e-f5f5-ac11-79071ea3f565", "fromProperty": "fetched", "toId": "00805c8c-9baf-51db-d188-ee00e96c015b", "toProperty": "run" }, { "fromId": "8a4cd8bb-001e-f5f5-ac11-79071ea3f565", "fromProperty": "items", "toId": "00805c8c-9baf-51db-d188-ee00e96c015b", "toProperty": "in-Items" }, { "fromId": "00805c8c-9baf-51db-d188-ee00e96c015b", "fromProperty": "out-QueryOK", "toId": "196a458f-1446-f280-a95e-f02a5702b75d", "toProperty": "pm-QueryOK" }, { "fromId": "f4d08a2e-4e3a-0f16-3a6d-06e589a93261", "fromProperty": "receive", "toId": "cf95aa00-bfb3-3808-eaea-acf76a8fe80c", "toProperty": "storageFetch" }, { "fromId": "cf95aa00-bfb3-3808-eaea-acf76a8fe80c", "fromProperty": "items", "toId": "ab91639a-1f7c-7728-1da9-793b40e4d724", "toProperty": "in-Items" }, { "fromId": "cf95aa00-bfb3-3808-eaea-acf76a8fe80c", "fromProperty": "fetched", "toId": "ab91639a-1f7c-7728-1da9-793b40e4d724", "toProperty": "run" }, { "fromId": "cf95aa00-bfb3-3808-eaea-acf76a8fe80c", "fromProperty": "fetched", "toId": "5a0d51fd-af4c-558c-2b5d-67ec304773a8", "toProperty": "run" }, { "fromId": "5a0d51fd-af4c-558c-2b5d-67ec304773a8", "fromProperty": "out-Done", "toId": "196a458f-1446-f280-a95e-f02a5702b75d", "toProperty": "send" }, { "fromId": "8a4cd8bb-001e-f5f5-ac11-79071ea3f565", "fromProperty": "fetched", "toId": "5a0d51fd-af4c-558c-2b5d-67ec304773a8", "toProperty": "run" }, { "fromId": "ab91639a-1f7c-7728-1da9-793b40e4d724", "fromProperty": "out-JSQueryOK", "toId": "196a458f-1446-f280-a95e-f02a5702b75d", "toProperty": "pm-JSQueryOK" }, { "fromId": "fe11deba-2be7-9b69-125c-4d0af402d724", "fromProperty": "items", "toId": "18b72625-e613-b2de-fab1-5f7295bd365c", "toProperty": "in-Items" }, { "fromId": "fe11deba-2be7-9b69-125c-4d0af402d724", "fromProperty": "fetched", "toId": "18b72625-e613-b2de-fab1-5f7295bd365c", "toProperty": "run" }, { "fromId": "134f2cfd-ef66-4925-ac41-0349072574fc", "fromProperty": "items", "toId": "2f51d886-9090-96e3-7b88-8e3e184bb0d8", "toProperty": "in-Items" }, { "fromId": "134f2cfd-ef66-4925-ac41-0349072574fc", "fromProperty": "fetched", "toId": "2f51d886-9090-96e3-7b88-8e3e184bb0d8", "toProperty": "run" }, { "fromId": "fe11deba-2be7-9b69-125c-4d0af402d724", "fromProperty": "fetched", "toId": "5a0d51fd-af4c-558c-2b5d-67ec304773a8", "toProperty": "run" }, { "fromId": "134f2cfd-ef66-4925-ac41-0349072574fc", "fromProperty": "fetched", "toId": "5a0d51fd-af4c-558c-2b5d-67ec304773a8", "toProperty": "run" }, { "fromId": "18b72625-e613-b2de-fab1-5f7295bd365c", "fromProperty": "out-PointerQueryOK", "toId": "196a458f-1446-f280-a95e-f02a5702b75d", "toProperty": "pm-PointerQueryOK" }, { "fromId": "2f51d886-9090-96e3-7b88-8e3e184bb0d8", "fromProperty": "out-RelationQueryOK", "toId": "196a458f-1446-f280-a95e-f02a5702b75d", "toProperty": "pm-RelationQueryOK" }, { "fromId": "c2cbf9a2-ccae-ac69-fa87-4d49dafe5540", "fromProperty": "firstItemId", "toId": "fe11deba-2be7-9b69-125c-4d0af402d724", "toProperty": "qp-ParentId" }, { "fromId": "f4d08a2e-4e3a-0f16-3a6d-06e589a93261", "fromProperty": "receive", "toId": "c2cbf9a2-ccae-ac69-fa87-4d49dafe5540", "toProperty": "storageFetch" }, { "fromId": "f4d08a2e-4e3a-0f16-3a6d-06e589a93261", "fromProperty": "receive", "toId": "b7d17b3f-e580-1350-5bc8-0bf13a70170c", "toProperty": "storageFetch" }, { "fromId": "b7d17b3f-e580-1350-5bc8-0bf13a70170c", "fromProperty": "firstItemId", "toId": "134f2cfd-ef66-4925-ac41-0349072574fc", "toProperty": "qp-RecordId" }, { "fromId": "c2cbf9a2-ccae-ac69-fa87-4d49dafe5540", "fromProperty": "fetched", "toId": "fe11deba-2be7-9b69-125c-4d0af402d724", "toProperty": "storageFetch" }, { "fromId": "b7d17b3f-e580-1350-5bc8-0bf13a70170c", "fromProperty": "fetched", "toId": "134f2cfd-ef66-4925-ac41-0349072574fc", "toProperty": "storageFetch" }, { "fromId": "f4d08a2e-4e3a-0f16-3a6d-06e589a93261", "fromProperty": "receive", "toId": "b6bd9d14-0959-a42e-f308-3714a8486ee0", "toProperty": "storageFetch" }, { "fromId": "b6bd9d14-0959-a42e-f308-3714a8486ee0", "fromProperty": "items", "toId": "50df5574-9bfd-6232-9aca-8ea232ac5316", "toProperty": "in-Items" }, { "fromId": "b6bd9d14-0959-a42e-f308-3714a8486ee0", "fromProperty": "count", "toId": "50df5574-9bfd-6232-9aca-8ea232ac5316", "toProperty": "in-Count" }, { "fromId": "b6bd9d14-0959-a42e-f308-3714a8486ee0", "fromProperty": "storageTotalCount", "toId": "50df5574-9bfd-6232-9aca-8ea232ac5316", "toProperty": "in-TotalCount" }, { "fromId": "50df5574-9bfd-6232-9aca-8ea232ac5316", "fromProperty": "out-TotalCountOK", "toId": "196a458f-1446-f280-a95e-f02a5702b75d", "toProperty": "pm-TotalCountOK" }, { "fromId": "b6bd9d14-0959-a42e-f308-3714a8486ee0", "fromProperty": "fetched", "toId": "5a0d51fd-af4c-558c-2b5d-67ec304773a8", "toProperty": "run" }, { "fromId": "b6bd9d14-0959-a42e-f308-3714a8486ee0", "fromProperty": "fetched", "toId": "50df5574-9bfd-6232-9aca-8ea232ac5316", "toProperty": "run" } ], "roots": [ { "id": "f4d08a2e-4e3a-0f16-3a6d-06e589a93261", "type": "noodl.cloud.request", "x": -347.5, "y": -110, "parameters": {}, "ports": [], "dynamicports": [], "children": [] }, { "id": "8a4cd8bb-001e-f5f5-ac11-79071ea3f565", "type": "DbCollection2", "x": -22.5, "y": -191, "parameters": { "collectionName": "TestQuery", "visualSort": [ { "property": "Name", "order": "descending" } ], "visualFilter": { "combinator": "or", "rules": [ { "combinator": "and", "rules": [ { "property": "Age", "value": 20, "operator": "less than" } ] } ] } }, "ports": [], "dynamicports": [ { "name": "collectionName", "type": { "name": "enum", "enums": [ { "label": "User", "value": "_User" }, { "label": "Role", "value": "_Role" }, { "value": "Test", "label": "Test" }, { "value": "Post", "label": "Post" }, { "value": "Group", "label": "Group" }, { "value": "TestQuery", "label": "TestQuery" } ], "allowEditOnly": true }, "displayName": "Class", "plug": "input", "group": "General", "index": 6 }, { "name": "storageFilterType", "type": { "name": "enum", "allowEditOnly": true, "enums": [ { "value": "simple", "label": "Visual" }, { "value": "json", "label": "Javascript" } ] }, "displayName": "Filter", "default": "simple", "plug": "input", "group": "General", "index": 7 }, { "type": "boolean", "plug": "input", "group": "Limit", "name": "storageEnableLimit", "displayName": "Use limit", "index": 8 }, { "type": "signal", "plug": "input", "group": "Actions", "name": "storageFetch", "displayName": "Do", "index": 9 }, { "type": "boolean", "plug": "input", "group": "Total Count", "name": "storageEnableCount", "displayName": "Fetch total count", "index": 10 }, { "name": "visualFilter", "plug": "input", "type": { "name": "query-filter", "schema": { "properties": { "createdAt": { "type": "Date" }, "updatedAt": { "type": "Date" }, "Name": { "type": "String", "required": false }, "Age": { "type": "Number", "required": false }, "Parent": { "type": "Pointer", "targetClass": "TestQuery", "required": false }, "Children": { "type": "Relation", "targetClass": "TestQuery" }, "Sex": { "type": "String", "required": false } }, "relations": { "TestQuery": [ { "property": "Children" } ] } }, "allowEditOnly": true }, "displayName": "Filter", "group": "Filter", "index": 11 }, { "name": "visualSort", "plug": "input", "type": { "name": "query-sorting", "schema": { "properties": { "createdAt": { "type": "Date" }, "updatedAt": { "type": "Date" }, "Name": { "type": "String", "required": false }, "Age": { "type": "Number", "required": false }, "Parent": { "type": "Pointer", "targetClass": "TestQuery", "required": false }, "Children": { "type": "Relation", "targetClass": "TestQuery" }, "Sex": { "type": "String", "required": false } }, "relations": { "TestQuery": [ { "property": "Children" } ] } }, "allowEditOnly": true }, "displayName": "Sort", "group": "Sorting", "index": 12 } ], "children": [] }, { "id": "196a458f-1446-f280-a95e-f02a5702b75d", "type": "noodl.cloud.response", "x": 1062.5, "y": -74, "parameters": { "params": "QueryOK,JSQueryOK,PointerQueryOK,RelationQueryOK,TotalCountOK" }, "ports": [], "dynamicports": [ { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-QueryOK", "displayName": "QueryOK", "index": 4 }, { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-JSQueryOK", "displayName": "JSQueryOK", "index": 5 }, { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-PointerQueryOK", "displayName": "PointerQueryOK", "index": 6 }, { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-RelationQueryOK", "displayName": "RelationQueryOK", "index": 7 }, { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-TotalCountOK", "displayName": "TotalCountOK", "index": 8 } ], "children": [] }, { "id": "00805c8c-9baf-51db-d188-ee00e96c015b", "type": "JavaScriptFunction", "x": 254.5, "y": -204, "parameters": { "functionScript": "const items = Inputs.Items;\n\nOutputs.QueryOK =\nitems.length === 3 &&\nitems[0].Name === \"Maggie\" &&\nitems[2].Name === \"Bart\";" }, "ports": [], "dynamicports": [ { "name": "in-Items", "displayName": "Items", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "out-QueryOK", "displayName": "QueryOK", "plug": "output", "type": "*", "group": "Outputs", "index": 5 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "ab91639a-1f7c-7728-1da9-793b40e4d724", "type": "JavaScriptFunction", "x": 249.5, "y": -66, "parameters": { "functionScript": "const items = Inputs.Items;\n\nOutputs.JSQueryOK =\nitems.length === 2 &&\nitems[0].Name === \"Homer\";" }, "ports": [], "dynamicports": [ { "name": "in-Items", "displayName": "Items", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "out-JSQueryOK", "displayName": "JSQueryOK", "plug": "output", "type": "*", "group": "Outputs", "index": 5 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "cf95aa00-bfb3-3808-eaea-acf76a8fe80c", "type": "DbCollection2", "x": -16.5, "y": -35, "parameters": { "collectionName": "TestQuery", "storageFilterType": "json", "storageJSONFilter": "// Write your query script here, check out the reference documentation for examples\nwhere({\n Age:{greaterThan:20}\n})\n\nsort(['Name'])\n" }, "ports": [], "dynamicports": [ { "name": "collectionName", "type": { "name": "enum", "enums": [ { "label": "User", "value": "_User" }, { "label": "Role", "value": "_Role" }, { "value": "Test", "label": "Test" }, { "value": "Post", "label": "Post" }, { "value": "Group", "label": "Group" }, { "value": "TestQuery", "label": "TestQuery" } ], "allowEditOnly": true }, "displayName": "Class", "plug": "input", "group": "General", "index": 6 }, { "name": "storageFilterType", "type": { "name": "enum", "allowEditOnly": true, "enums": [ { "value": "simple", "label": "Visual" }, { "value": "json", "label": "Javascript" } ] }, "displayName": "Filter", "default": "simple", "plug": "input", "group": "General", "index": 7 }, { "type": "boolean", "plug": "input", "group": "Limit", "name": "storageEnableLimit", "displayName": "Use limit", "index": 8 }, { "type": "signal", "plug": "input", "group": "Actions", "name": "storageFetch", "displayName": "Do", "index": 9 }, { "type": "boolean", "plug": "input", "group": "Total Count", "name": "storageEnableCount", "displayName": "Fetch total count", "index": 10 }, { "type": { "name": "string", "allowEditOnly": true, "codeeditor": "javascript" }, "plug": "input", "group": "Filter", "name": "storageJSONFilter", "default": "// Write your query script here, check out the reference documentation for examples\nwhere({ })\n", "displayName": "Filter", "index": 11 } ], "children": [] }, { "id": "5a0d51fd-af4c-558c-2b5d-67ec304773a8", "type": "JavaScriptFunction", "label": "Wait For All", "x": 784.7371635643126, "y": 107.59806464044027, "parameters": { "functionScript": "const num_tests = Inputs.NumTests;\n\nconst request = Noodl.Objects.Request;\n\nif(request.TestsRun === undefined) request.TestsRun = num_tests\n\nrequest.TestsRun--;\nif(request.TestsRun === 0) {\n Outputs.Done()\n}", "scriptInputs": [ { "id": "25f0", "label": "NumTests" } ], "intype-NumTests": "number", "in-NumTests": 5 }, "ports": [], "dynamicports": [ { "name": "intype-NumTests", "displayName": "Type", "editorName": "NumTests | Type", "plug": "input", "type": { "name": "enum", "enums": [ { "value": "string", "label": "String" }, { "value": "boolean", "label": "Boolean" }, { "value": "number", "label": "Number" }, { "value": "object", "label": "Object" }, { "value": "date", "label": "Date" }, { "value": "array", "label": "Array" }, { "value": "color", "label": "Color" } ], "allowEditOnly": true }, "default": "string", "parent": "scriptInputs", "parentItemId": "25f0", "index": 4 }, { "name": "in-NumTests", "displayName": "NumTests", "plug": "input", "type": "number", "group": "Inputs", "index": 5 }, { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 6 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "fe11deba-2be7-9b69-125c-4d0af402d724", "type": "DbCollection2", "x": 157.5, "y": 251, "parameters": { "collectionName": "TestQuery", "storageFilterType": "simple", "visualFilter": { "combinator": "or", "rules": [ { "combinator": "and", "rules": [ { "property": "Parent", "operator": "points to", "input": "ParentId" } ] } ] } }, "ports": [], "dynamicports": [ { "name": "collectionName", "type": { "name": "enum", "enums": [ { "label": "User", "value": "_User" }, { "label": "Role", "value": "_Role" }, { "value": "Test", "label": "Test" }, { "value": "Post", "label": "Post" }, { "value": "Group", "label": "Group" }, { "value": "TestQuery", "label": "TestQuery" } ], "allowEditOnly": true }, "displayName": "Class", "plug": "input", "group": "General", "index": 6 }, { "name": "storageFilterType", "type": { "name": "enum", "allowEditOnly": true, "enums": [ { "value": "simple", "label": "Visual" }, { "value": "json", "label": "Javascript" } ] }, "displayName": "Filter", "default": "simple", "plug": "input", "group": "General", "index": 7 }, { "type": "boolean", "plug": "input", "group": "Limit", "name": "storageEnableLimit", "displayName": "Use limit", "index": 8 }, { "type": "signal", "plug": "input", "group": "Actions", "name": "storageFetch", "displayName": "Do", "index": 9 }, { "type": "boolean", "plug": "input", "group": "Total Count", "name": "storageEnableCount", "displayName": "Fetch total count", "index": 10 }, { "name": "visualFilter", "plug": "input", "type": { "name": "query-filter", "schema": { "properties": { "createdAt": { "type": "Date" }, "updatedAt": { "type": "Date" }, "Name": { "type": "String", "required": false }, "Age": { "type": "Number", "required": false }, "Parent": { "type": "Pointer", "targetClass": "TestQuery", "required": false }, "Children": { "type": "Relation", "targetClass": "TestQuery" }, "Sex": { "type": "String", "required": false } }, "relations": { "TestQuery": [ { "property": "Children" } ] } }, "allowEditOnly": true }, "displayName": "Filter", "group": "Filter", "index": 11 }, { "name": "visualSort", "plug": "input", "type": { "name": "query-sorting", "schema": { "properties": { "createdAt": { "type": "Date" }, "updatedAt": { "type": "Date" }, "Name": { "type": "String", "required": false }, "Age": { "type": "Number", "required": false }, "Parent": { "type": "Pointer", "targetClass": "TestQuery", "required": false }, "Children": { "type": "Relation", "targetClass": "TestQuery" }, "Sex": { "type": "String", "required": false } }, "relations": { "TestQuery": [ { "property": "Children" } ] } }, "allowEditOnly": true }, "displayName": "Sort", "group": "Sorting", "index": 12 }, { "name": "qp-ParentId", "plug": "input", "type": "*", "displayName": "ParentId", "group": "Query Parameters", "index": 13 } ], "children": [] }, { "id": "18b72625-e613-b2de-fab1-5f7295bd365c", "type": "JavaScriptFunction", "x": 428.55134574274996, "y": 258.83565131243245, "parameters": { "functionScript": "const items = Inputs.Items;\n\nOutputs.PointerQueryOK =\nitems.length === 1 &&\nitems[0].Name === \"Lisa\";" }, "ports": [], "dynamicports": [ { "name": "in-Items", "displayName": "Items", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "out-PointerQueryOK", "displayName": "PointerQueryOK", "plug": "output", "type": "*", "group": "Outputs", "index": 5 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "134f2cfd-ef66-4925-ac41-0349072574fc", "type": "DbCollection2", "x": 174.2312673962149, "y": 452.76389420488664, "parameters": { "collectionName": "TestQuery", "visualFilter": { "combinator": "or", "rules": [ { "combinator": "and", "rules": [ { "operator": "related to", "input": "RecordId", "relatedTo": "TestQuery", "relationProperty": "Children" } ] } ] }, "visualSort": [ { "property": "Age", "order": "descending" } ] }, "ports": [], "dynamicports": [ { "name": "collectionName", "type": { "name": "enum", "enums": [ { "label": "User", "value": "_User" }, { "label": "Role", "value": "_Role" }, { "value": "Test", "label": "Test" }, { "value": "Post", "label": "Post" }, { "value": "Group", "label": "Group" }, { "value": "TestQuery", "label": "TestQuery" } ], "allowEditOnly": true }, "displayName": "Class", "plug": "input", "group": "General", "index": 6 }, { "name": "storageFilterType", "type": { "name": "enum", "allowEditOnly": true, "enums": [ { "value": "simple", "label": "Visual" }, { "value": "json", "label": "Javascript" } ] }, "displayName": "Filter", "default": "simple", "plug": "input", "group": "General", "index": 7 }, { "type": "boolean", "plug": "input", "group": "Limit", "name": "storageEnableLimit", "displayName": "Use limit", "index": 8 }, { "type": "signal", "plug": "input", "group": "Actions", "name": "storageFetch", "displayName": "Do", "index": 9 }, { "type": "boolean", "plug": "input", "group": "Total Count", "name": "storageEnableCount", "displayName": "Fetch total count", "index": 10 }, { "name": "visualFilter", "plug": "input", "type": { "name": "query-filter", "schema": { "properties": { "createdAt": { "type": "Date" }, "updatedAt": { "type": "Date" }, "Name": { "type": "String", "required": false }, "Age": { "type": "Number", "required": false }, "Parent": { "type": "Pointer", "targetClass": "TestQuery", "required": false }, "Children": { "type": "Relation", "targetClass": "TestQuery" }, "Sex": { "type": "String", "required": false } }, "relations": { "TestQuery": [ { "property": "Children" } ] } }, "allowEditOnly": true }, "displayName": "Filter", "group": "Filter", "index": 11 }, { "name": "visualSort", "plug": "input", "type": { "name": "query-sorting", "schema": { "properties": { "createdAt": { "type": "Date" }, "updatedAt": { "type": "Date" }, "Name": { "type": "String", "required": false }, "Age": { "type": "Number", "required": false }, "Parent": { "type": "Pointer", "targetClass": "TestQuery", "required": false }, "Children": { "type": "Relation", "targetClass": "TestQuery" }, "Sex": { "type": "String", "required": false } }, "relations": { "TestQuery": [ { "property": "Children" } ] } }, "allowEditOnly": true }, "displayName": "Sort", "group": "Sorting", "index": 12 }, { "name": "qp-RecordId", "plug": "input", "type": "*", "displayName": "RecordId", "group": "Query Parameters", "index": 13 } ], "children": [] }, { "id": "2f51d886-9090-96e3-7b88-8e3e184bb0d8", "type": "JavaScriptFunction", "x": 412.78850930706307, "y": 450.83607442011225, "parameters": { "functionScript": "const items = Inputs.Items;\n\nOutputs.RelationQueryOK =\nitems.length === 3 &&\nitems[0].Name === \"Bart\";" }, "ports": [], "dynamicports": [ { "name": "in-Items", "displayName": "Items", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "out-RelationQueryOK", "displayName": "RelationQueryOK", "plug": "output", "type": "*", "group": "Outputs", "index": 5 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "c2cbf9a2-ccae-ac69-fa87-4d49dafe5540", "type": "DbCollection2", "x": -73.23303698772997, "y": 277.9464211500659, "parameters": { "collectionName": "TestQuery", "visualFilter": { "combinator": "or", "rules": [ { "combinator": "and", "rules": [ { "property": "Name", "value": "Marge", "operator": "equal to" } ] } ] } }, "ports": [], "dynamicports": [ { "name": "collectionName", "type": { "name": "enum", "enums": [ { "label": "User", "value": "_User" }, { "label": "Role", "value": "_Role" }, { "value": "Test", "label": "Test" }, { "value": "Post", "label": "Post" }, { "value": "Group", "label": "Group" }, { "value": "TestQuery", "label": "TestQuery" } ], "allowEditOnly": true }, "displayName": "Class", "plug": "input", "group": "General", "index": 6 }, { "name": "storageFilterType", "type": { "name": "enum", "allowEditOnly": true, "enums": [ { "value": "simple", "label": "Visual" }, { "value": "json", "label": "Javascript" } ] }, "displayName": "Filter", "default": "simple", "plug": "input", "group": "General", "index": 7 }, { "type": "boolean", "plug": "input", "group": "Limit", "name": "storageEnableLimit", "displayName": "Use limit", "index": 8 }, { "type": "signal", "plug": "input", "group": "Actions", "name": "storageFetch", "displayName": "Do", "index": 9 }, { "type": "boolean", "plug": "input", "group": "Total Count", "name": "storageEnableCount", "displayName": "Fetch total count", "index": 10 }, { "name": "visualFilter", "plug": "input", "type": { "name": "query-filter", "schema": { "properties": { "createdAt": { "type": "Date" }, "updatedAt": { "type": "Date" }, "Name": { "type": "String", "required": false }, "Age": { "type": "Number", "required": false }, "Parent": { "type": "Pointer", "targetClass": "TestQuery", "required": false }, "Children": { "type": "Relation", "targetClass": "TestQuery" }, "Sex": { "type": "String", "required": false } }, "relations": { "TestQuery": [ { "property": "Children" } ] } }, "allowEditOnly": true }, "displayName": "Filter", "group": "Filter", "index": 11 }, { "name": "visualSort", "plug": "input", "type": { "name": "query-sorting", "schema": { "properties": { "createdAt": { "type": "Date" }, "updatedAt": { "type": "Date" }, "Name": { "type": "String", "required": false }, "Age": { "type": "Number", "required": false }, "Parent": { "type": "Pointer", "targetClass": "TestQuery", "required": false }, "Children": { "type": "Relation", "targetClass": "TestQuery" }, "Sex": { "type": "String", "required": false } }, "relations": { "TestQuery": [ { "property": "Children" } ] } }, "allowEditOnly": true }, "displayName": "Sort", "group": "Sorting", "index": 12 } ], "children": [] }, { "id": "b7d17b3f-e580-1350-5bc8-0bf13a70170c", "type": "DbCollection2", "x": -70.23303698772997, "y": 452.94642115006593, "parameters": { "collectionName": "TestQuery", "visualFilter": { "combinator": "or", "rules": [ { "combinator": "and", "rules": [ { "property": "Name", "value": "Homer", "operator": "equal to" } ] } ] } }, "ports": [], "dynamicports": [ { "name": "collectionName", "type": { "name": "enum", "enums": [ { "label": "User", "value": "_User" }, { "label": "Role", "value": "_Role" }, { "value": "Test", "label": "Test" }, { "value": "Post", "label": "Post" }, { "value": "Group", "label": "Group" }, { "value": "TestQuery", "label": "TestQuery" } ], "allowEditOnly": true }, "displayName": "Class", "plug": "input", "group": "General", "index": 6 }, { "name": "storageFilterType", "type": { "name": "enum", "allowEditOnly": true, "enums": [ { "value": "simple", "label": "Visual" }, { "value": "json", "label": "Javascript" } ] }, "displayName": "Filter", "default": "simple", "plug": "input", "group": "General", "index": 7 }, { "type": "boolean", "plug": "input", "group": "Limit", "name": "storageEnableLimit", "displayName": "Use limit", "index": 8 }, { "type": "signal", "plug": "input", "group": "Actions", "name": "storageFetch", "displayName": "Do", "index": 9 }, { "type": "boolean", "plug": "input", "group": "Total Count", "name": "storageEnableCount", "displayName": "Fetch total count", "index": 10 }, { "name": "visualFilter", "plug": "input", "type": { "name": "query-filter", "schema": { "properties": { "createdAt": { "type": "Date" }, "updatedAt": { "type": "Date" }, "Name": { "type": "String", "required": false }, "Age": { "type": "Number", "required": false }, "Parent": { "type": "Pointer", "targetClass": "TestQuery", "required": false }, "Children": { "type": "Relation", "targetClass": "TestQuery" }, "Sex": { "type": "String", "required": false } }, "relations": { "TestQuery": [ { "property": "Children" } ] } }, "allowEditOnly": true }, "displayName": "Filter", "group": "Filter", "index": 11 }, { "name": "visualSort", "plug": "input", "type": { "name": "query-sorting", "schema": { "properties": { "createdAt": { "type": "Date" }, "updatedAt": { "type": "Date" }, "Name": { "type": "String", "required": false }, "Age": { "type": "Number", "required": false }, "Parent": { "type": "Pointer", "targetClass": "TestQuery", "required": false }, "Children": { "type": "Relation", "targetClass": "TestQuery" }, "Sex": { "type": "String", "required": false } }, "relations": { "TestQuery": [ { "property": "Children" } ] } }, "allowEditOnly": true }, "displayName": "Sort", "group": "Sorting", "index": 12 } ], "children": [] }, { "id": "b6bd9d14-0959-a42e-f308-3714a8486ee0", "type": "DbCollection2", "x": -56, "y": 718, "parameters": { "collectionName": "TestQuery", "visualFilter": { "combinator": "or", "rules": [ { "combinator": "and", "rules": [ { "property": "Age", "value": 20, "operator": "less than" } ] } ] }, "storageEnableCount": true, "storageEnableLimit": true, "storageLimit": 1 }, "ports": [], "dynamicports": [ { "name": "collectionName", "type": { "name": "enum", "enums": [ { "label": "User", "value": "_User" }, { "label": "Role", "value": "_Role" }, { "value": "Test", "label": "Test" }, { "value": "Post", "label": "Post" }, { "value": "Group", "label": "Group" }, { "value": "TestQuery", "label": "TestQuery" } ], "allowEditOnly": true }, "displayName": "Class", "plug": "input", "group": "General", "index": 6 }, { "name": "storageFilterType", "type": { "name": "enum", "allowEditOnly": true, "enums": [ { "value": "simple", "label": "Visual" }, { "value": "json", "label": "Javascript" } ] }, "displayName": "Filter", "default": "simple", "plug": "input", "group": "General", "index": 7 }, { "type": "boolean", "plug": "input", "group": "Limit", "name": "storageEnableLimit", "displayName": "Use limit", "index": 8 }, { "type": "number", "default": 10, "plug": "input", "group": "Limit", "name": "storageLimit", "displayName": "Limit", "index": 9 }, { "type": "number", "default": 0, "plug": "input", "group": "Limit", "name": "storageSkip", "displayName": "Skip", "index": 10 }, { "type": "signal", "plug": "input", "group": "Actions", "name": "storageFetch", "displayName": "Do", "index": 11 }, { "type": "boolean", "plug": "input", "group": "Total Count", "name": "storageEnableCount", "displayName": "Fetch total count", "index": 12 }, { "type": "number", "plug": "output", "group": "General", "name": "storageTotalCount", "displayName": "Total Count", "index": 13 }, { "name": "visualFilter", "plug": "input", "type": { "name": "query-filter", "schema": { "properties": { "createdAt": { "type": "Date" }, "updatedAt": { "type": "Date" }, "Name": { "type": "String", "required": false }, "Age": { "type": "Number", "required": false }, "Parent": { "type": "Pointer", "targetClass": "TestQuery", "required": false }, "Children": { "type": "Relation", "targetClass": "TestQuery" }, "Sex": { "type": "String", "required": false } }, "relations": { "TestQuery": [ { "property": "Children" } ] } }, "allowEditOnly": true }, "displayName": "Filter", "group": "Filter", "index": 14 }, { "name": "visualSort", "plug": "input", "type": { "name": "query-sorting", "schema": { "properties": { "createdAt": { "type": "Date" }, "updatedAt": { "type": "Date" }, "Name": { "type": "String", "required": false }, "Age": { "type": "Number", "required": false }, "Parent": { "type": "Pointer", "targetClass": "TestQuery", "required": false }, "Children": { "type": "Relation", "targetClass": "TestQuery" }, "Sex": { "type": "String", "required": false } }, "relations": { "TestQuery": [ { "property": "Children" } ] } }, "allowEditOnly": true }, "displayName": "Sort", "group": "Sorting", "index": 15 } ], "children": [] }, { "id": "50df5574-9bfd-6232-9aca-8ea232ac5316", "type": "JavaScriptFunction", "x": 233, "y": 733, "parameters": { "functionScript": "Outputs.TotalCountOK = Inputs.Items.length===1 && \nInputs.Count === 1 && Inputs.TotalCount === 3;\n" }, "ports": [], "dynamicports": [ { "name": "in-Items", "displayName": "Items", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "in-Count", "displayName": "Count", "plug": "input", "type": "*", "group": "Inputs", "index": 5 }, { "name": "in-TotalCount", "displayName": "TotalCount", "plug": "input", "type": "*", "group": "Inputs", "index": 6 }, { "name": "out-TotalCountOK", "displayName": "TotalCountOK", "plug": "output", "type": "*", "group": "Outputs", "index": 7 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } } ], "visualRoots": [], "comments": [ { "text": "Simple query", "width": 812, "height": 417, "fill": true, "x": -121, "y": -251, "id": "867c433d-ace0-4608-1830-6ecb47db2f63" }, { "text": "Pointers and relations", "width": 812, "height": 417, "fill": true, "x": -118, "y": 207, "id": "c8dff5b8-a03c-6ee6-2915-192e5dec68d5" }, { "text": "Total Count", "width": 812, "height": 417, "fill": true, "x": -117, "y": 639, "id": "b4d221a0-5501-8d1c-5b4c-3fd89e7002c5" } ] } }, { "name": "/#__cloud__/Records and Objects/Relations", "id": "1c4429f3-0226-57aa-3a7f-78f3d2a4ed7d", "graph": { "connections": [ { "fromId": "0d85ffd9-b15a-2587-e6ae-98b02b54d854", "fromProperty": "receive", "toId": "f9cb8c75-33f3-3f47-4286-111fc0e80fe4", "toProperty": "store" }, { "fromId": "f9cb8c75-33f3-3f47-4286-111fc0e80fe4", "fromProperty": "created", "toId": "124d64e4-649b-22a6-79cf-8fbdec8f10ee", "toProperty": "store" }, { "fromId": "124d64e4-649b-22a6-79cf-8fbdec8f10ee", "fromProperty": "id", "toId": "29492bd8-ae2f-4081-b131-e132fb123ac4", "toProperty": "targetId" }, { "fromId": "f9cb8c75-33f3-3f47-4286-111fc0e80fe4", "fromProperty": "id", "toId": "29492bd8-ae2f-4081-b131-e132fb123ac4", "toProperty": "modelId" }, { "fromId": "f9cb8c75-33f3-3f47-4286-111fc0e80fe4", "fromProperty": "id", "toId": "0ade7d13-ca8a-b9d5-17b9-f3c83b4e8477", "toProperty": "qp-ParentRecordId" }, { "fromId": "29492bd8-ae2f-4081-b131-e132fb123ac4", "fromProperty": "relationAdded", "toId": "0ade7d13-ca8a-b9d5-17b9-f3c83b4e8477", "toProperty": "storageFetch" }, { "fromId": "0ade7d13-ca8a-b9d5-17b9-f3c83b4e8477", "fromProperty": "fetched", "toId": "3f84ee53-4e06-7c1c-48cd-cbe1da3f8560", "toProperty": "run" }, { "fromId": "0ade7d13-ca8a-b9d5-17b9-f3c83b4e8477", "fromProperty": "items", "toId": "3f84ee53-4e06-7c1c-48cd-cbe1da3f8560", "toProperty": "in-Items" }, { "fromId": "3f84ee53-4e06-7c1c-48cd-cbe1da3f8560", "fromProperty": "out-AddRelationOK", "toId": "f2bfbf02-970a-4e49-0622-5caa1089052e", "toProperty": "pm-AddRelationOK" }, { "fromId": "124d64e4-649b-22a6-79cf-8fbdec8f10ee", "fromProperty": "created", "toId": "29492bd8-ae2f-4081-b131-e132fb123ac4", "toProperty": "store" }, { "fromId": "124d64e4-649b-22a6-79cf-8fbdec8f10ee", "fromProperty": "id", "toId": "3f84ee53-4e06-7c1c-48cd-cbe1da3f8560", "toProperty": "in-RelatedId" }, { "fromId": "f9cb8c75-33f3-3f47-4286-111fc0e80fe4", "fromProperty": "id", "toId": "f9837b79-0ea1-4cf3-40a7-4736a87abf0e", "toProperty": "modelId" }, { "fromId": "124d64e4-649b-22a6-79cf-8fbdec8f10ee", "fromProperty": "id", "toId": "f9837b79-0ea1-4cf3-40a7-4736a87abf0e", "toProperty": "targetId" }, { "fromId": "3f84ee53-4e06-7c1c-48cd-cbe1da3f8560", "fromProperty": "out-Done", "toId": "f9837b79-0ea1-4cf3-40a7-4736a87abf0e", "toProperty": "store" }, { "fromId": "f9cb8c75-33f3-3f47-4286-111fc0e80fe4", "fromProperty": "id", "toId": "efe0ef88-2b50-e273-b6ba-df440d634989", "toProperty": "storageFilterValue-ParentRecordId" }, { "fromId": "f9837b79-0ea1-4cf3-40a7-4736a87abf0e", "fromProperty": "relationRemoved", "toId": "efe0ef88-2b50-e273-b6ba-df440d634989", "toProperty": "storageFetch" }, { "fromId": "efe0ef88-2b50-e273-b6ba-df440d634989", "fromProperty": "fetched", "toId": "593bbc80-919f-2cae-bbfd-d5b5163d9534", "toProperty": "run" }, { "fromId": "efe0ef88-2b50-e273-b6ba-df440d634989", "fromProperty": "items", "toId": "593bbc80-919f-2cae-bbfd-d5b5163d9534", "toProperty": "in-Items" }, { "fromId": "593bbc80-919f-2cae-bbfd-d5b5163d9534", "fromProperty": "out-Done", "toId": "f2bfbf02-970a-4e49-0622-5caa1089052e", "toProperty": "send" }, { "fromId": "593bbc80-919f-2cae-bbfd-d5b5163d9534", "fromProperty": "out-RemoveRelationOK", "toId": "f2bfbf02-970a-4e49-0622-5caa1089052e", "toProperty": "pm-RemoveRelationOK" } ], "roots": [ { "id": "0d85ffd9-b15a-2587-e6ae-98b02b54d854", "type": "noodl.cloud.request", "x": -104.60311459317936, "y": -151.84532811023098, "parameters": {}, "ports": [], "dynamicports": [], "children": [] }, { "id": "f2bfbf02-970a-4e49-0622-5caa1089052e", "type": "noodl.cloud.response", "x": 1699.7120950597734, "y": 292.31795778414084, "parameters": { "params": "AddRelationOK,RemoveRelationOK" }, "ports": [], "dynamicports": [ { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-AddRelationOK", "displayName": "AddRelationOK", "index": 4 }, { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-RemoveRelationOK", "displayName": "RemoveRelationOK", "index": 5 } ], "children": [] }, { "id": "f9cb8c75-33f3-3f47-4286-111fc0e80fe4", "type": "NewDbModelProperties", "label": "Create Parent", "x": 163.84903739983068, "y": -215.44360430451064, "parameters": { "collectionName": "Test" }, "ports": [], "dynamicports": [ { "name": "collectionName", "displayName": "Class", "group": "General", "type": { "name": "enum", "enums": [ { "label": "User", "value": "_User" }, { "label": "Role", "value": "_Role" }, { "value": "Test", "label": "Test" }, { "value": "Post", "label": "Post" }, { "value": "Group", "label": "Group" }, { "value": "TestQuery", "label": "TestQuery" } ], "allowEditOnly": true }, "plug": "input", "index": 7 }, { "type": { "name": "date" }, "plug": "input", "group": "Properties", "name": "prop-createdAt", "displayName": "createdAt", "index": 8 }, { "type": { "name": "date" }, "plug": "input", "group": "Properties", "name": "prop-updatedAt", "displayName": "updatedAt", "index": 9 }, { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-AString", "displayName": "AString", "index": 10 }, { "type": { "name": "number" }, "plug": "input", "group": "Properties", "name": "prop-ANumber", "displayName": "ANumber", "index": 11 }, { "type": { "name": "boolean" }, "plug": "input", "group": "Properties", "name": "prop-ABool", "displayName": "ABool", "index": 12 }, { "type": { "name": "*" }, "plug": "input", "group": "Properties", "name": "prop-AnObject", "displayName": "AnObject", "index": 13 }, { "type": { "name": "*" }, "plug": "input", "group": "Properties", "name": "prop-AnArray", "displayName": "AnArray", "index": 14 }, { "type": { "name": "*" }, "plug": "input", "group": "Properties", "name": "prop-ARelation", "displayName": "ARelation", "index": 15 }, { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-Text", "displayName": "Text", "index": 16 }, { "type": { "name": "date" }, "plug": "input", "group": "Properties", "name": "prop-ADate", "displayName": "ADate", "index": 17 }, { "type": { "name": "boolean" }, "plug": "input", "group": "Properties", "name": "prop-ABoolean", "displayName": "ABoolean", "index": 18 } ], "children": [] }, { "id": "124d64e4-649b-22a6-79cf-8fbdec8f10ee", "type": "NewDbModelProperties", "label": "Create Child", "x": 436.63313141567346, "y": -178.06208030974707, "parameters": { "collectionName": "Test" }, "ports": [], "dynamicports": [ { "name": "collectionName", "displayName": "Class", "group": "General", "type": { "name": "enum", "enums": [ { "label": "User", "value": "_User" }, { "label": "Role", "value": "_Role" }, { "value": "Test", "label": "Test" }, { "value": "Post", "label": "Post" }, { "value": "Group", "label": "Group" }, { "value": "TestQuery", "label": "TestQuery" } ], "allowEditOnly": true }, "plug": "input", "index": 7 }, { "type": { "name": "date" }, "plug": "input", "group": "Properties", "name": "prop-createdAt", "displayName": "createdAt", "index": 8 }, { "type": { "name": "date" }, "plug": "input", "group": "Properties", "name": "prop-updatedAt", "displayName": "updatedAt", "index": 9 }, { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-AString", "displayName": "AString", "index": 10 }, { "type": { "name": "number" }, "plug": "input", "group": "Properties", "name": "prop-ANumber", "displayName": "ANumber", "index": 11 }, { "type": { "name": "boolean" }, "plug": "input", "group": "Properties", "name": "prop-ABool", "displayName": "ABool", "index": 12 }, { "type": { "name": "*" }, "plug": "input", "group": "Properties", "name": "prop-AnObject", "displayName": "AnObject", "index": 13 }, { "type": { "name": "*" }, "plug": "input", "group": "Properties", "name": "prop-AnArray", "displayName": "AnArray", "index": 14 }, { "type": { "name": "*" }, "plug": "input", "group": "Properties", "name": "prop-ARelation", "displayName": "ARelation", "index": 15 }, { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-Text", "displayName": "Text", "index": 16 }, { "type": { "name": "date" }, "plug": "input", "group": "Properties", "name": "prop-ADate", "displayName": "ADate", "index": 17 }, { "type": { "name": "boolean" }, "plug": "input", "group": "Properties", "name": "prop-ABoolean", "displayName": "ABoolean", "index": 18 } ], "children": [] }, { "id": "29492bd8-ae2f-4081-b131-e132fb123ac4", "type": "AddDbModelRelation", "x": 648.79853787244, "y": -31.566918708646142, "parameters": { "collectionName": "Test", "relationProperty": "ARelation" }, "ports": [], "dynamicports": [ { "name": "collectionName", "displayName": "Class", "group": "General", "type": { "name": "enum", "enums": [ { "label": "User", "value": "_User" }, { "label": "Role", "value": "_Role" }, { "value": "Test", "label": "Test" }, { "value": "Post", "label": "Post" }, { "value": "Group", "label": "Group" }, { "value": "TestQuery", "label": "TestQuery" } ], "allowEditOnly": true }, "plug": "input", "index": 8 }, { "name": "relationProperty", "displayName": "Relation", "group": "General", "type": { "name": "enum", "enums": [ { "label": "ARelation", "value": "ARelation" } ], "allowEditOnly": true }, "plug": "input", "index": 9 } ], "children": [] }, { "id": "0ade7d13-ca8a-b9d5-17b9-f3c83b4e8477", "type": "DbCollection2", "x": 931.685746481462, "y": 64.41266992655784, "parameters": { "collectionName": "Test", "visualFilter": { "combinator": "or", "rules": [ { "combinator": "and", "rules": [ { "operator": "related to", "input": "ParentRecordId", "relatedTo": "Test", "relationProperty": "ARelation" } ] } ] } }, "ports": [], "dynamicports": [ { "name": "collectionName", "type": { "name": "enum", "enums": [ { "label": "User", "value": "_User" }, { "label": "Role", "value": "_Role" }, { "value": "Test", "label": "Test" }, { "value": "Post", "label": "Post" }, { "value": "Group", "label": "Group" }, { "value": "TestQuery", "label": "TestQuery" } ], "allowEditOnly": true }, "displayName": "Class", "plug": "input", "group": "General", "index": 6 }, { "name": "storageFilterType", "type": { "name": "enum", "allowEditOnly": true, "enums": [ { "value": "simple", "label": "Visual" }, { "value": "json", "label": "Javascript" } ] }, "displayName": "Filter", "default": "simple", "plug": "input", "group": "General", "index": 7 }, { "type": "boolean", "plug": "input", "group": "Limit", "name": "storageEnableLimit", "displayName": "Use limit", "index": 8 }, { "type": "signal", "plug": "input", "group": "Actions", "name": "storageFetch", "displayName": "Do", "index": 9 }, { "type": "boolean", "plug": "input", "group": "Total Count", "name": "storageEnableCount", "displayName": "Fetch total count", "index": 10 }, { "name": "visualFilter", "plug": "input", "type": { "name": "query-filter", "schema": { "properties": { "createdAt": { "type": "Date" }, "updatedAt": { "type": "Date" }, "AString": { "type": "String" }, "ANumber": { "type": "Number" }, "ABool": { "type": "Boolean" }, "AnObject": { "type": "Object" }, "AnArray": { "type": "Array" }, "ARelation": { "type": "Relation", "targetClass": "Test" }, "Text": { "type": "String", "required": false }, "ADate": { "type": "Date", "required": false }, "ABoolean": { "type": "Boolean", "required": false } }, "relations": { "Test": [ { "property": "ARelation" } ] } }, "allowEditOnly": true }, "displayName": "Filter", "group": "Filter", "index": 11 }, { "name": "visualSort", "plug": "input", "type": { "name": "query-sorting", "schema": { "properties": { "createdAt": { "type": "Date" }, "updatedAt": { "type": "Date" }, "AString": { "type": "String" }, "ANumber": { "type": "Number" }, "ABool": { "type": "Boolean" }, "AnObject": { "type": "Object" }, "AnArray": { "type": "Array" }, "ARelation": { "type": "Relation", "targetClass": "Test" }, "Text": { "type": "String", "required": false }, "ADate": { "type": "Date", "required": false }, "ABoolean": { "type": "Boolean", "required": false } }, "relations": { "Test": [ { "property": "ARelation" } ] } }, "allowEditOnly": true }, "displayName": "Sort", "group": "Sorting", "index": 12 }, { "name": "qp-ParentRecordId", "plug": "input", "type": "*", "displayName": "ParentRecordId", "group": "Query Parameters", "index": 13 } ], "children": [] }, { "id": "3f84ee53-4e06-7c1c-48cd-cbe1da3f8560", "type": "JavaScriptFunction", "x": 1203.4595290379866, "y": 168.47475023630523, "parameters": { "functionScript": "Outputs.AddRelationOK =\nInputs.Items.length === 1 &&\nInputs.Items[0].id === Inputs.RelatedId;\n\nOutputs.Done()" }, "ports": [], "dynamicports": [ { "name": "in-Items", "displayName": "Items", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "in-RelatedId", "displayName": "RelatedId", "plug": "input", "type": "*", "group": "Inputs", "index": 5 }, { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 6 }, { "name": "out-AddRelationOK", "displayName": "AddRelationOK", "plug": "output", "type": "*", "group": "Outputs", "index": 7 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "f9837b79-0ea1-4cf3-40a7-4736a87abf0e", "type": "RemoveDbModelRelation", "x": 167.2011199720601, "y": 495.63740363916054, "parameters": { "collectionName": "Test", "relationProperty": "ARelation" }, "ports": [], "dynamicports": [ { "name": "collectionName", "displayName": "Class", "group": "General", "type": { "name": "enum", "enums": [ { "label": "User", "value": "_User" }, { "label": "Role", "value": "_Role" }, { "value": "Test", "label": "Test" }, { "value": "Post", "label": "Post" }, { "value": "Group", "label": "Group" }, { "value": "TestQuery", "label": "TestQuery" } ], "allowEditOnly": true }, "plug": "input", "index": 8 }, { "name": "relationProperty", "displayName": "Relation", "group": "General", "type": { "name": "enum", "enums": [ { "label": "ARelation", "value": "ARelation" } ], "allowEditOnly": true }, "plug": "input", "index": 9 } ], "children": [] }, { "id": "efe0ef88-2b50-e273-b6ba-df440d634989", "type": "DbCollection2", "x": 558.6257241691859, "y": 635.0664293172216, "parameters": { "storageFilterType": "json", "collectionName": "Test", "storageJSONFilter": "// Write your query script here, check out the reference documentation for examples\nwhere({\n relatedTo:{key:\"ARelation\",id:Inputs.ParentRecordId}\n})\n" }, "ports": [], "dynamicports": [ { "name": "collectionName", "type": { "name": "enum", "enums": [ { "label": "User", "value": "_User" }, { "label": "Role", "value": "_Role" }, { "value": "Test", "label": "Test" }, { "value": "Post", "label": "Post" }, { "value": "Group", "label": "Group" }, { "value": "TestQuery", "label": "TestQuery" } ], "allowEditOnly": true }, "displayName": "Class", "plug": "input", "group": "General", "index": 6 }, { "name": "storageFilterType", "type": { "name": "enum", "allowEditOnly": true, "enums": [ { "value": "simple", "label": "Visual" }, { "value": "json", "label": "Javascript" } ] }, "displayName": "Filter", "default": "simple", "plug": "input", "group": "General", "index": 7 }, { "type": "boolean", "plug": "input", "group": "Limit", "name": "storageEnableLimit", "displayName": "Use limit", "index": 8 }, { "type": "signal", "plug": "input", "group": "Actions", "name": "storageFetch", "displayName": "Do", "index": 9 }, { "type": "boolean", "plug": "input", "group": "Total Count", "name": "storageEnableCount", "displayName": "Fetch total count", "index": 10 }, { "type": { "name": "string", "allowEditOnly": true, "codeeditor": "javascript" }, "plug": "input", "group": "Filter", "name": "storageJSONFilter", "default": "// Write your query script here, check out the reference documentation for examples\nwhere({ })\n", "displayName": "Filter", "index": 11 }, { "name": "storageFilterValue-ParentRecordId", "displayName": "ParentRecordId", "plug": "input", "type": { "name": "*", "allowConnectionsOnly": true }, "group": "Filter Values", "index": 12 } ], "children": [] }, { "id": "593bbc80-919f-2cae-bbfd-d5b5163d9534", "type": "JavaScriptFunction", "x": 834.9254447789217, "y": 672.1622251398251, "parameters": { "functionScript": "Outputs.RemoveRelationOK =\nInputs.Items.length === 0;\n\nOutputs.Done()" }, "ports": [], "dynamicports": [ { "name": "in-Items", "displayName": "Items", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 5 }, { "name": "out-RemoveRelationOK", "displayName": "RemoveRelationOK", "plug": "output", "type": "*", "group": "Outputs", "index": 6 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } } ], "visualRoots": [], "comments": [ { "text": "Add relation", "width": 1324, "height": 777, "fill": true, "x": 88, "y": -366, "id": "8ed25350-ee84-d378-901a-484061f17b0b" }, { "text": "Remove relation", "width": 1324, "height": 551, "fill": true, "x": 95, "y": 489, "id": "4d82fd02-ccf6-3ff5-5dd1-2a6e650606ab" } ] } }, { "name": "/#__cloud__/Runtime/InfEventLoop", "id": "b156b7fc-e694-19fd-fa9b-981b0ae71bc9", "graph": { "connections": [ { "fromId": "4a42858b-0f6f-6028-64da-bfb13feb2454", "fromProperty": "receive", "toId": "3a283759-c4cc-e3b3-fffa-183d214967dd", "toProperty": "run" } ], "roots": [ { "id": "4a42858b-0f6f-6028-64da-bfb13feb2454", "type": "noodl.cloud.request", "x": -224, "y": -8, "parameters": {}, "ports": [], "dynamicports": [], "children": [] }, { "id": "2f706ee7-9caf-f8c0-972d-6d81f7759a37", "type": "noodl.cloud.response", "x": 300, "y": 0, "parameters": {}, "ports": [], "dynamicports": [], "children": [] }, { "id": "3a283759-c4cc-e3b3-fffa-183d214967dd", "type": "JavaScriptFunction", "x": 55.5, "y": 11.5, "parameters": { "functionScript": "function _inf_eventloop() {\n setImmediate(_inf_eventloop)\n}\n\n_inf_eventloop()" }, "ports": [], "dynamicports": [], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } } ], "visualRoots": [] } }, { "name": "/#__cloud__/Runtime/OutOfMemory", "id": "3245d4b3-3a72-4128-ebb7-5dcac4cd1798", "graph": { "connections": [ { "fromId": "f9f525f1-033b-f0e4-7ec3-9166e2c6e5a8", "fromProperty": "receive", "toId": "32fe1683-7387-c0fa-1262-293c8348ee85", "toProperty": "run" } ], "roots": [ { "id": "f9f525f1-033b-f0e4-7ec3-9166e2c6e5a8", "type": "noodl.cloud.request", "x": -249, "y": 14, "parameters": { "allowNoAuth": true }, "ports": [], "dynamicports": [], "children": [] }, { "id": "04780a58-52b9-8550-7131-5527f7ae9486", "type": "noodl.cloud.response", "x": 287, "y": 23, "parameters": {}, "ports": [], "dynamicports": [], "children": [] }, { "id": "32fe1683-7387-c0fa-1262-293c8348ee85", "type": "JavaScriptFunction", "label": "Run out of memory", "x": 23.49383532334207, "y": 26.580140796553508, "parameters": { "functionScript": "global.storage = [];\nconst twoMegabytes = 1024 * 1024 * 2;\nwhile (true) {\n const array = new Uint8Array(twoMegabytes);\n for (let ii = 0; ii < twoMegabytes; ii += 4096) {\n array[ii] = 1; // we have to put something in the array to flush to real memory\n }\n global.storage.push(array);\n}" }, "ports": [], "dynamicports": [], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } } ], "visualRoots": [] } }, { "name": "/#__cloud__/Runtime/ShouldRestart", "id": "ff4500e1-767b-a1de-c0e1-0cdf32286c17", "graph": { "connections": [ { "fromId": "1614ef04-c76b-4d88-f23d-fb59d001cdd1", "fromProperty": "savedValue", "toId": "ff620c64-5e0e-3b68-f948-4e5b04465ccd", "toProperty": "pm-OK" }, { "fromId": "263cdfb5-75ba-3983-8918-ad5242f412cf", "fromProperty": "receive", "toId": "ff620c64-5e0e-3b68-f948-4e5b04465ccd", "toProperty": "send" } ], "roots": [ { "id": "263cdfb5-75ba-3983-8918-ad5242f412cf", "type": "noodl.cloud.request", "x": -151, "y": 36, "parameters": {}, "ports": [], "dynamicports": [], "children": [] }, { "id": "ff620c64-5e0e-3b68-f948-4e5b04465ccd", "type": "noodl.cloud.response", "x": 300, "y": 0, "parameters": { "params": "OK" }, "ports": [], "dynamicports": [ { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-OK", "displayName": "OK", "index": 4 } ], "children": [] }, { "id": "1614ef04-c76b-4d88-f23d-fb59d001cdd1", "type": "Boolean", "x": 118.5, "y": -74.5, "parameters": { "value": true }, "ports": [], "dynamicports": [], "children": [] } ], "visualRoots": [] } }, { "name": "/#__cloud__/Runtime/WhileTrue", "id": "81071999-a679-d5e4-ed9b-01438be8d73a", "graph": { "connections": [ { "fromId": "bcb8cd2c-5ea1-e404-4bf5-5826b8fa2783", "fromProperty": "receive", "toId": "9c7e9c84-0830-a0a8-c0fe-11e1278fc598", "toProperty": "run" } ], "roots": [ { "id": "bcb8cd2c-5ea1-e404-4bf5-5826b8fa2783", "type": "noodl.cloud.request", "x": -164, "y": -1, "parameters": {}, "ports": [], "dynamicports": [], "children": [] }, { "id": "28fd5aeb-b7c7-28fa-b9b1-368249e0d781", "type": "noodl.cloud.response", "x": 300, "y": 0, "parameters": {}, "ports": [], "dynamicports": [], "children": [] }, { "id": "9c7e9c84-0830-a0a8-c0fe-11e1278fc598", "type": "JavaScriptFunction", "x": 65.5, "y": 15.5, "parameters": { "functionScript": "let i = 0;\nwhile(true) {\n i++;\n}" }, "ports": [], "dynamicports": [], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } } ], "visualRoots": [] } }, { "name": "/#__cloud__/Simple/FailAuth", "id": "c24ac80e-bca9-75ac-bbcd-02f075f7e9d3", "graph": { "connections": [], "roots": [ { "id": "dd3756b1-2a36-aab5-21ee-3de43dd75616", "type": "noodl.cloud.request", "x": -3.5, "y": -67, "parameters": {}, "ports": [], "dynamicports": [], "children": [] } ], "visualRoots": [] } }, { "name": "/#__cloud__/Simple/Failure Result", "id": "49469323-35b0-3946-7364-ccb8e26f59ec", "graph": { "connections": [ { "fromId": "3717eb0d-dff9-ad52-1c29-ebd54af533c5", "fromProperty": "receive", "toId": "c757a5a5-2c90-4435-048f-94b1de1beef1", "toProperty": "send" } ], "roots": [ { "id": "3717eb0d-dff9-ad52-1c29-ebd54af533c5", "type": "noodl.cloud.request", "x": -73.5, "y": 7, "parameters": { "allowNoAuth": true }, "ports": [], "dynamicports": [], "children": [] }, { "id": "c757a5a5-2c90-4435-048f-94b1de1beef1", "type": "noodl.cloud.response", "x": 326.5, "y": -19, "parameters": { "status": "failure", "errorMessage": "Some error" }, "ports": [], "dynamicports": [], "children": [] } ], "visualRoots": [] } }, { "name": "/#__cloud__/Simple/FuncJSTest", "id": "7e47b2bb-4ba1-e6de-49a8-23cf4d255191", "graph": { "connections": [ { "fromId": "969b00f6-4bfd-6ccf-46c6-ac858258a258", "fromProperty": "pm-Param1", "toId": "070c55f4-d7e9-df0c-1f7c-bcfabc5a4761", "toProperty": "in-Test" }, { "fromId": "070c55f4-d7e9-df0c-1f7c-bcfabc5a4761", "fromProperty": "out-Test", "toId": "3cd7c38b-dae3-3216-5b93-dc37decd02f5", "toProperty": "pm-Out" }, { "fromId": "969b00f6-4bfd-6ccf-46c6-ac858258a258", "fromProperty": "receive", "toId": "ae450bfb-fe70-196b-f1bd-00bacfb6f5ca", "toProperty": "run" }, { "fromId": "ae450bfb-fe70-196b-f1bd-00bacfb6f5ca", "fromProperty": "out-Done", "toId": "3cd7c38b-dae3-3216-5b93-dc37decd02f5", "toProperty": "send" }, { "fromId": "ae450bfb-fe70-196b-f1bd-00bacfb6f5ca", "fromProperty": "out-Test", "toId": "3cd7c38b-dae3-3216-5b93-dc37decd02f5", "toProperty": "pm-Test" }, { "fromId": "ae450bfb-fe70-196b-f1bd-00bacfb6f5ca", "fromProperty": "out-UserOk", "toId": "3cd7c38b-dae3-3216-5b93-dc37decd02f5", "toProperty": "pm-UserOk" } ], "roots": [ { "id": "969b00f6-4bfd-6ccf-46c6-ac858258a258", "type": "noodl.cloud.request", "x": -394.5, "y": -95, "parameters": { "params": "Param1" }, "ports": [], "dynamicports": [ { "type": "*", "plug": "output", "group": "Parameters", "name": "pm-Param1", "displayName": "Param1", "index": 3 } ], "children": [] }, { "id": "3cd7c38b-dae3-3216-5b93-dc37decd02f5", "type": "noodl.cloud.response", "x": 243.5, "y": -77, "parameters": { "params": "Out,Array,Test,UserOk" }, "ports": [], "dynamicports": [ { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-Out", "displayName": "Out", "index": 3 }, { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-Array", "displayName": "Array", "index": 4 }, { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-Test", "displayName": "Test", "index": 5 }, { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-UserOk", "displayName": "UserOk", "index": 6 } ], "children": [] }, { "id": "070c55f4-d7e9-df0c-1f7c-bcfabc5a4761", "type": "JavaScriptFunction", "x": -73.5, "y": -148, "parameters": { "functionScript": "Outputs.Test = Inputs.Test + \" yes\"\n\nconsole.log(\"Log test\")\nconsole.info(\"Info test\")\nconsole.error(\"Error test\")" }, "ports": [], "dynamicports": [ { "name": "in-Test", "displayName": "Test", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "out-Test", "displayName": "Test", "plug": "output", "type": "*", "group": "Outputs", "index": 5 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "ae450bfb-fe70-196b-f1bd-00bacfb6f5ca", "type": "JavaScriptFunction", "x": -58.75, "y": 30.5, "parameters": { "functionScript": "const request = Noodl.Objects.Request;\nconst user = Noodl.Objects[request.UserId];\nOutputs.UserOk = user.username === \"test\";\n\nOutputs.Test = await Noodl.Records.query(\"Test\",{\n Text:{equalTo:\"wagga\"}\n});\n\n\n\nOutputs.Done();\n" }, "ports": [], "dynamicports": [ { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 4 }, { "name": "out-Test", "displayName": "Test", "plug": "output", "type": "*", "group": "Outputs", "index": 5 }, { "name": "out-UserOk", "displayName": "UserOk", "plug": "output", "type": "*", "group": "Outputs", "index": 6 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } } ], "visualRoots": [] } }, { "name": "/#__cloud__/Simple/Get Config", "id": "4f468d8d-40ac-ea9b-d4a9-89cb2a9da6ac", "graph": { "connections": [ { "fromId": "5dc4a20e-9d98-e34f-b0cd-c434063695aa", "fromProperty": "value", "toId": "d1c0458c-af58-e46c-8a6d-b13b4d58ab36", "toProperty": "pm-TestParameter" }, { "fromId": "61c09df7-5b00-8710-bd62-63913756d82c", "fromProperty": "value", "toId": "d1c0458c-af58-e46c-8a6d-b13b4d58ab36", "toProperty": "pm-TestProtected" }, { "fromId": "672aaf9a-a5c8-2361-efcb-d34e90e41278", "fromProperty": "receive", "toId": "d1c0458c-af58-e46c-8a6d-b13b4d58ab36", "toProperty": "send" } ], "roots": [ { "id": "672aaf9a-a5c8-2361-efcb-d34e90e41278", "type": "noodl.cloud.request", "x": -199.93016950740923, "y": -69.13966098518154, "parameters": { "allowNoAuth": true }, "ports": [], "dynamicports": [], "children": [] }, { "id": "d1c0458c-af58-e46c-8a6d-b13b4d58ab36", "type": "noodl.cloud.response", "x": 360, "y": -5, "parameters": { "params": "TestParameter,TestProtected" }, "ports": [], "dynamicports": [ { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-TestParameter", "displayName": "TestParameter", "index": 4 }, { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-TestProtected", "displayName": "TestProtected", "index": 5 } ], "children": [] }, { "id": "5dc4a20e-9d98-e34f-b0cd-c434063695aa", "type": "DbConfig", "x": 47.11296109095571, "y": -144.78989694770917, "parameters": { "configKey": "TestParameter" }, "ports": [], "dynamicports": [ { "name": "configKey", "displayName": "Parameter", "group": "General", "type": { "name": "enum", "enums": [ { "value": "TestParameter", "label": "TestParameter" }, { "value": "TestProtected", "label": "TestProtected" } ], "allowEditOnly": true }, "plug": "input", "index": 0 }, { "name": "useDevValue", "displayName": "Enable", "group": "Local Override", "type": "boolean", "default": false, "plug": "input", "index": 1 }, { "name": "value", "displayName": "Value", "group": "General", "type": "string", "plug": "output", "index": 2 } ], "children": [] }, { "id": "61c09df7-5b00-8710-bd62-63913756d82c", "type": "DbConfig", "x": 75.29553356003998, "y": 77.3785177697157, "parameters": { "configKey": "TestProtected" }, "ports": [], "dynamicports": [ { "name": "configKey", "displayName": "Parameter", "group": "General", "type": { "name": "enum", "enums": [ { "value": "TestParameter", "label": "TestParameter" }, { "value": "TestProtected", "label": "TestProtected" } ], "allowEditOnly": true }, "plug": "input", "index": 0 }, { "name": "useDevValue", "displayName": "Enable", "group": "Local Override", "type": "boolean", "default": false, "plug": "input", "index": 1 }, { "name": "value", "displayName": "Value", "group": "General", "type": "string", "plug": "output", "index": 2 } ], "children": [] } ], "visualRoots": [] } }, { "name": "/#__cloud__/Simple/No Auth OK", "id": "a5040d9a-c769-544f-debd-31dcd67148e6", "graph": { "connections": [ { "fromId": "fb989059-c6fe-40c1-978f-04fadd7f2a69", "fromProperty": "result", "toId": "3f7955e5-5a6d-e2a0-c927-3cc004a3b18d", "toProperty": "pm-Message" }, { "fromId": "77b2ce80-d330-690e-9c0c-e02bf22c6360", "fromProperty": "receive", "toId": "3f7955e5-5a6d-e2a0-c927-3cc004a3b18d", "toProperty": "send" }, { "fromId": "21f852e3-737a-9c0f-9e20-43696a01ad07", "fromProperty": "out-NoUserCheck", "toId": "3f7955e5-5a6d-e2a0-c927-3cc004a3b18d", "toProperty": "pm-NoUserCheck" }, { "fromId": "77b2ce80-d330-690e-9c0c-e02bf22c6360", "fromProperty": "auth", "toId": "21f852e3-737a-9c0f-9e20-43696a01ad07", "toProperty": "in-Auth" }, { "fromId": "77b2ce80-d330-690e-9c0c-e02bf22c6360", "fromProperty": "userId", "toId": "21f852e3-737a-9c0f-9e20-43696a01ad07", "toProperty": "in-UserId" } ], "roots": [ { "id": "77b2ce80-d330-690e-9c0c-e02bf22c6360", "type": "noodl.cloud.request", "x": -365.5, "y": -9, "parameters": { "allowNoAuth": true }, "ports": [], "dynamicports": [], "children": [] }, { "id": "3f7955e5-5a6d-e2a0-c927-3cc004a3b18d", "type": "noodl.cloud.response", "x": 104.5, "y": -20, "parameters": { "params": "Message,NoUserCheck" }, "ports": [], "dynamicports": [ { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-Message", "displayName": "Message", "index": 4 }, { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-NoUserCheck", "displayName": "NoUserCheck", "index": 5 } ], "children": [] }, { "id": "fb989059-c6fe-40c1-978f-04fadd7f2a69", "type": "Expression", "x": -125.5, "y": -100, "parameters": { "expression": "\"No auth ok here!\"" }, "ports": [], "dynamicports": [], "children": [], "metadata": { "merge": { "soureCodePorts": [ "expression" ] } } }, { "id": "21f852e3-737a-9c0f-9e20-43696a01ad07", "type": "JavaScriptFunction", "x": -127.33333333333337, "y": 95.66666666666663, "parameters": { "functionScript": "Outputs.NoUserCheck = Noodl.Users.Current === undefined && Inputs.UserId === undefined && Inputs.Auth === false" }, "ports": [], "dynamicports": [ { "name": "in-UserId", "displayName": "UserId", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "in-Auth", "displayName": "Auth", "plug": "input", "type": "*", "group": "Inputs", "index": 5 }, { "name": "out-NoUserCheck", "displayName": "NoUserCheck", "plug": "output", "type": "*", "group": "Outputs", "index": 6 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } } ], "visualRoots": [] } }, { "name": "/#__cloud__/Simple/SimpleReq", "id": "fb79a3b0-731f-c38e-2fd4-0253350d8a7e", "graph": { "connections": [ { "fromId": "e7a956fb-ba3f-1740-46d0-13c1344864e0", "fromProperty": "pm-param1", "toId": "627a1a69-835e-2d2e-3272-e6b17516c564", "toProperty": "Name" }, { "fromId": "627a1a69-835e-2d2e-3272-e6b17516c564", "fromProperty": "result", "toId": "3451466c-174b-0106-6521-f3dbbf00229f", "toProperty": "pm-test" }, { "fromId": "e7a956fb-ba3f-1740-46d0-13c1344864e0", "fromProperty": "receive", "toId": "f43ade28-eebd-0795-3485-5e001e6ca950", "toProperty": "run" }, { "fromId": "e7a956fb-ba3f-1740-46d0-13c1344864e0", "fromProperty": "pm-param1", "toId": "f43ade28-eebd-0795-3485-5e001e6ca950", "toProperty": "Name" }, { "fromId": "c4cd5947-6d5b-7b8b-b8c1-9791cc3f445f", "fromProperty": "prop-Parameters", "toId": "73d99c3c-0b9e-29b0-38cc-c7605d0ad539", "toProperty": "params" }, { "fromId": "73d99c3c-0b9e-29b0-38cc-c7605d0ad539", "fromProperty": "result", "toId": "3451466c-174b-0106-6521-f3dbbf00229f", "toProperty": "pm-ReqParamsOK" }, { "fromId": "c4cd5947-6d5b-7b8b-b8c1-9791cc3f445f", "fromProperty": "prop-Headers", "toId": "82c53666-7f08-1441-79a4-234417b30624", "toProperty": "in-Headers" }, { "fromId": "82c53666-7f08-1441-79a4-234417b30624", "fromProperty": "out-HeadersOK", "toId": "3451466c-174b-0106-6521-f3dbbf00229f", "toProperty": "pm-HeadersOK" }, { "fromId": "f43ade28-eebd-0795-3485-5e001e6ca950", "fromProperty": "isTrueEv", "toId": "82c53666-7f08-1441-79a4-234417b30624", "toProperty": "run" }, { "fromId": "82c53666-7f08-1441-79a4-234417b30624", "fromProperty": "out-Done", "toId": "3451466c-174b-0106-6521-f3dbbf00229f", "toProperty": "send" } ], "roots": [ { "id": "e7a956fb-ba3f-1740-46d0-13c1344864e0", "type": "noodl.cloud.request", "x": -309.5, "y": -140, "parameters": { "params": "param1" }, "ports": [], "dynamicports": [ { "type": "*", "plug": "output", "group": "Parameters", "name": "pm-param1", "displayName": "param1", "index": 3 } ], "children": [] }, { "id": "3451466c-174b-0106-6521-f3dbbf00229f", "type": "noodl.cloud.response", "x": 459.5, "y": -180, "parameters": { "params": "test,ReqParamsOK,HeadersOK" }, "ports": [], "dynamicports": [ { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-test", "displayName": "test", "index": 4 }, { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-ReqParamsOK", "displayName": "ReqParamsOK", "index": 5 }, { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-HeadersOK", "displayName": "HeadersOK", "index": 6 } ], "children": [] }, { "id": "627a1a69-835e-2d2e-3272-e6b17516c564", "type": "Expression", "x": 46.5, "y": 65, "parameters": { "expression": "\"Hello \" + Name" }, "ports": [], "dynamicports": [ { "group": "Parameters", "name": "Name", "type": { "name": "*", "editAsType": "string" }, "plug": "input", "index": 7 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "expression" ] } } }, { "id": "f43ade28-eebd-0795-3485-5e001e6ca950", "type": "Expression", "x": 27.33333333333337, "y": -302.83333333333337, "parameters": { "expression": "Name === \"test\"" }, "ports": [], "dynamicports": [ { "group": "Parameters", "name": "Name", "type": { "name": "*", "editAsType": "string" }, "plug": "input", "index": 7 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "expression" ] } } }, { "id": "c4cd5947-6d5b-7b8b-b8c1-9791cc3f445f", "type": "Model2", "x": -18.466666666666697, "y": -147.23333333333335, "parameters": { "modelId": "Request", "properties": "Parameters,Headers" }, "ports": [], "dynamicports": [ { "type": { "name": "*", "allowConnectionsOnly": true }, "plug": "input/output", "group": "Properties", "name": "prop-Parameters", "displayName": "Parameters", "index": 7 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "Parameters Changed", "name": "changed-Parameters", "index": 8 }, { "type": { "name": "*", "allowConnectionsOnly": true }, "plug": "input/output", "group": "Properties", "name": "prop-Headers", "displayName": "Headers", "index": 9 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "Headers Changed", "name": "changed-Headers", "index": 10 } ], "children": [] }, { "id": "73d99c3c-0b9e-29b0-38cc-c7605d0ad539", "type": "Expression", "x": 249.5333333333333, "y": -51.23333333333335, "parameters": { "expression": "params.param1 === \"test\"" }, "ports": [], "dynamicports": [ { "group": "Parameters", "name": "params", "type": { "name": "*", "editAsType": "string" }, "plug": "input", "index": 7 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "expression" ] } } }, { "id": "82c53666-7f08-1441-79a4-234417b30624", "type": "JavaScriptFunction", "x": 238.64999999999998, "y": -234.54999999999995, "parameters": { "functionScript": "Outputs.HeadersOK = Inputs.Headers['x-parse-session-token'] !== undefined \n&& Inputs.Headers['content-type'] === 'application/json'\n\nOutputs.Done()" }, "ports": [], "dynamicports": [ { "name": "in-Headers", "displayName": "Headers", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 5 }, { "name": "out-HeadersOK", "displayName": "HeadersOK", "plug": "output", "type": "*", "group": "Outputs", "index": 6 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } } ], "visualRoots": [] } }, { "name": "/#__cloud__/Users/Create No Log In User", "id": "1a76d927-1ba5-ac47-0f54-3b78c2689c21", "graph": { "connections": [ { "fromId": "46fe8af4-1088-6db5-a967-8d1413dafc3f", "fromProperty": "pm-Username", "toId": "a4988901-e39f-a2a4-4485-24fda13eb74a", "toProperty": "prop-username" }, { "fromId": "46fe8af4-1088-6db5-a967-8d1413dafc3f", "fromProperty": "pm-Password", "toId": "a4988901-e39f-a2a4-4485-24fda13eb74a", "toProperty": "prop-password" }, { "fromId": "46fe8af4-1088-6db5-a967-8d1413dafc3f", "fromProperty": "receive", "toId": "a4988901-e39f-a2a4-4485-24fda13eb74a", "toProperty": "store" }, { "fromId": "a4988901-e39f-a2a4-4485-24fda13eb74a", "fromProperty": "failure", "toId": "2a3d938f-b79a-ac0a-1bc5-9c8d43b5cfb2", "toProperty": "send" }, { "fromId": "a4988901-e39f-a2a4-4485-24fda13eb74a", "fromProperty": "error", "toId": "2a3d938f-b79a-ac0a-1bc5-9c8d43b5cfb2", "toProperty": "errorMessage" }, { "fromId": "362a9c59-644c-e106-5969-735b6bc4ea2d", "fromProperty": "out-Done", "toId": "f3653b50-ad22-a3d4-ef78-5bf5b13dfae5", "toProperty": "send" }, { "fromId": "362a9c59-644c-e106-5969-735b6bc4ea2d", "fromProperty": "out-BackendLogInOK", "toId": "f3653b50-ad22-a3d4-ef78-5bf5b13dfae5", "toProperty": "pm-BackendLogInOK" }, { "fromId": "46fe8af4-1088-6db5-a967-8d1413dafc3f", "fromProperty": "pm-Username", "toId": "362a9c59-644c-e106-5969-735b6bc4ea2d", "toProperty": "in-Username" }, { "fromId": "46fe8af4-1088-6db5-a967-8d1413dafc3f", "fromProperty": "pm-Password", "toId": "362a9c59-644c-e106-5969-735b6bc4ea2d", "toProperty": "in-Password" }, { "fromId": "a4988901-e39f-a2a4-4485-24fda13eb74a", "fromProperty": "created", "toId": "fee88ae9-b199-65a2-de28-5b2b213747c7", "toProperty": "run" }, { "fromId": "fee88ae9-b199-65a2-de28-5b2b213747c7", "fromProperty": "out-Success", "toId": "362a9c59-644c-e106-5969-735b6bc4ea2d", "toProperty": "run" }, { "fromId": "a4988901-e39f-a2a4-4485-24fda13eb74a", "fromProperty": "id", "toId": "fee88ae9-b199-65a2-de28-5b2b213747c7", "toProperty": "in-UserId" } ], "roots": [ { "id": "46fe8af4-1088-6db5-a967-8d1413dafc3f", "type": "noodl.cloud.request", "x": -410, "y": 7, "parameters": { "params": "Username,Password", "allowNoAuth": true }, "ports": [], "dynamicports": [ { "type": "*", "plug": "output", "group": "Parameters", "name": "pm-Username", "displayName": "Username", "index": 5 }, { "type": "*", "plug": "output", "group": "Parameters", "name": "pm-Password", "displayName": "Password", "index": 6 } ], "children": [] }, { "id": "f3653b50-ad22-a3d4-ef78-5bf5b13dfae5", "type": "noodl.cloud.response", "x": 682, "y": 138, "parameters": { "params": "BackendLogInOK" }, "ports": [], "dynamicports": [ { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-BackendLogInOK", "displayName": "BackendLogInOK", "index": 4 } ], "children": [] }, { "id": "a4988901-e39f-a2a4-4485-24fda13eb74a", "type": "NewDbModelProperties", "x": -131, "y": -9, "parameters": { "collectionName": "_User", "accessControl": [], "acl-tpbq-target": "everyone", "acl-tpbq-read": false, "acl-tpbq-write": false }, "ports": [], "dynamicports": [ { "name": "collectionName", "displayName": "Class", "group": "General", "type": { "name": "enum", "enums": [ { "label": "User", "value": "_User" }, { "label": "Role", "value": "_Role" }, { "value": "Test", "label": "Test" }, { "value": "Post", "label": "Post" }, { "value": "Group", "label": "Group" }, { "value": "TestQuery", "label": "TestQuery" } ], "allowEditOnly": true }, "plug": "input", "index": 7 }, { "type": { "name": "date" }, "plug": "input", "group": "Properties", "name": "prop-createdAt", "displayName": "createdAt", "index": 8 }, { "type": { "name": "date" }, "plug": "input", "group": "Properties", "name": "prop-updatedAt", "displayName": "updatedAt", "index": 9 }, { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-username", "displayName": "username", "index": 10 }, { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-password", "displayName": "password", "index": 11 }, { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-email", "displayName": "email", "index": 12 }, { "type": { "name": "boolean" }, "plug": "input", "group": "Properties", "name": "prop-emailVerified", "displayName": "emailVerified", "index": 13 }, { "type": { "name": "*" }, "plug": "input", "group": "Properties", "name": "prop-authData", "displayName": "authData", "index": 14 }, { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-sessionToken", "displayName": "sessionToken", "index": 15 }, { "type": { "name": "boolean" }, "plug": "input", "group": "Properties", "name": "prop-logInDisabled", "displayName": "logInDisabled", "index": 16 }, { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-error", "displayName": "error", "index": 17 }, { "type": { "name": "number" }, "plug": "input", "group": "Properties", "name": "prop-code", "displayName": "code", "index": 18 } ], "children": [] }, { "id": "2a3d938f-b79a-ac0a-1bc5-9c8d43b5cfb2", "type": "noodl.cloud.response", "x": 208, "y": -122, "parameters": { "status": "failure" }, "ports": [], "dynamicports": [], "children": [] }, { "id": "362a9c59-644c-e106-5969-735b6bc4ea2d", "type": "JavaScriptFunction", "x": 399.45000000000005, "y": -3.5, "parameters": { "functionScript": "const user = await Noodl.Users.logIn({username:Inputs.Username,password:Inputs.Password})\n\nOutputs.BackendLogInOK = user.sessionToken !== undefined &&\nuser.username === Inputs.Username;\n\nOutputs.Done()" }, "ports": [], "dynamicports": [ { "name": "in-Username", "displayName": "Username", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "in-Password", "displayName": "Password", "plug": "input", "type": "*", "group": "Inputs", "index": 5 }, { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 6 }, { "name": "out-BackendLogInOK", "displayName": "BackendLogInOK", "plug": "output", "type": "*", "group": "Outputs", "index": 7 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "fee88ae9-b199-65a2-de28-5b2b213747c7", "type": "JavaScriptFunction", "x": 157.45000000000005, "y": 123.66666666666669, "parameters": { "functionScript": "const user = Noodl.Objects[Inputs.UserId];\n\nawait Noodl.Records.save(user,{\n logInDisabled:true\n})\n\nOutputs.Success()" }, "ports": [], "dynamicports": [ { "name": "in-UserId", "displayName": "UserId", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "out-Success", "displayName": "Success", "plug": "output", "type": "signal", "group": "Outputs", "index": 5 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } } ], "visualRoots": [] } }, { "name": "/#__cloud__/Users/Impersonate", "id": "b93b915a-869f-f454-dc69-e2f7ba9c3530", "graph": { "connections": [ { "fromId": "6b7f774e-fa6d-c4b1-5a5f-82a3062be120", "fromProperty": "receive", "toId": "0b271006-f39d-8699-eb8d-45e0e169fd4d", "toProperty": "run" }, { "fromId": "0b271006-f39d-8699-eb8d-45e0e169fd4d", "fromProperty": "out-ImpersonateFailOK", "toId": "060e2b0e-618f-7b9b-053a-5975394f178b", "toProperty": "pm-ImpersonateFailOK" }, { "fromId": "0b271006-f39d-8699-eb8d-45e0e169fd4d", "fromProperty": "out-SessionToken", "toId": "060e2b0e-618f-7b9b-053a-5975394f178b", "toProperty": "pm-Session Token" }, { "fromId": "0b271006-f39d-8699-eb8d-45e0e169fd4d", "fromProperty": "out-Done", "toId": "060e2b0e-618f-7b9b-053a-5975394f178b", "toProperty": "send" } ], "roots": [ { "id": "6b7f774e-fa6d-c4b1-5a5f-82a3062be120", "type": "noodl.cloud.request", "x": -339, "y": 1, "parameters": { "allowNoAuth": true }, "ports": [], "dynamicports": [], "children": [] }, { "id": "060e2b0e-618f-7b9b-053a-5975394f178b", "type": "noodl.cloud.response", "x": 300, "y": 0, "parameters": { "params": "Session Token,ImpersonateFailOK" }, "ports": [], "dynamicports": [ { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-Session Token", "displayName": "Session Token", "index": 4 }, { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-ImpersonateFailOK", "displayName": "ImpersonateFailOK", "index": 5 } ], "children": [] }, { "id": "0b271006-f39d-8699-eb8d-45e0e169fd4d", "type": "JavaScriptFunction", "x": -88, "y": -3, "parameters": { "functionScript": "let fail = false\ntry {\n await Noodl.Users.impersonate(\"wrong-user\")\n}\ncatch(e) {\n fail = true\n}\n\nOutputs.ImpersonateFailOK = fail;\n\nconst user = await Noodl.Users.impersonate(\"test\")\n\nOutputs.SessionToken = user.sessionToken;\n\nOutputs.Done()\n\n" }, "ports": [], "dynamicports": [ { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 4 }, { "name": "out-ImpersonateFailOK", "displayName": "ImpersonateFailOK", "plug": "output", "type": "*", "group": "Outputs", "index": 5 }, { "name": "out-SessionToken", "displayName": "SessionToken", "plug": "output", "type": "*", "group": "Outputs", "index": 6 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } } ], "visualRoots": [] } }, { "name": "/#__cloud__/Users/Log In", "id": "da212d18-cbc0-d564-146d-a0cb221639e9", "graph": { "connections": [ { "fromId": "b1319532-851c-7e87-1f0e-1369a0b618f7", "fromProperty": "receive", "toId": "f18bafc4-2ea9-7de4-1b3b-6f611be4a513", "toProperty": "run" }, { "fromId": "f18bafc4-2ea9-7de4-1b3b-6f611be4a513", "fromProperty": "out-LogInFailedOK", "toId": "8d8fe981-d0ff-60e5-9966-82ae16422a16", "toProperty": "pm-LogInFailedOK" }, { "fromId": "f18bafc4-2ea9-7de4-1b3b-6f611be4a513", "fromProperty": "out-LogInOK", "toId": "8d8fe981-d0ff-60e5-9966-82ae16422a16", "toProperty": "pm-LogInOK" }, { "fromId": "f18bafc4-2ea9-7de4-1b3b-6f611be4a513", "fromProperty": "out-Done", "toId": "8d8fe981-d0ff-60e5-9966-82ae16422a16", "toProperty": "send" }, { "fromId": "f18bafc4-2ea9-7de4-1b3b-6f611be4a513", "fromProperty": "out-SessionToken", "toId": "8d8fe981-d0ff-60e5-9966-82ae16422a16", "toProperty": "pm-Session Token" } ], "roots": [ { "id": "b1319532-851c-7e87-1f0e-1369a0b618f7", "type": "noodl.cloud.request", "x": -328, "y": -5, "parameters": { "allowNoAuth": true }, "ports": [], "dynamicports": [], "children": [] }, { "id": "8d8fe981-d0ff-60e5-9966-82ae16422a16", "type": "noodl.cloud.response", "x": 300, "y": 0, "parameters": { "params": "LogInFailedOK,LogInOK,Session Token" }, "ports": [], "dynamicports": [ { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-LogInFailedOK", "displayName": "LogInFailedOK", "index": 4 }, { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-LogInOK", "displayName": "LogInOK", "index": 5 }, { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-Session Token", "displayName": "Session Token", "index": 6 } ], "children": [] }, { "id": "f18bafc4-2ea9-7de4-1b3b-6f611be4a513", "type": "JavaScriptFunction", "x": -51, "y": -51, "parameters": { "functionScript": "// Should fail with wrong password\nlet failed = false\ntry {\nawait Noodl.Users.logIn({username:\"test\",password:\"wrong password\"})\n}\ncatch(e) {\n failed = true\n}\n\n// Should fail with no password\nlet nopwfail = false\ntry {\nawait Noodl.Users.logIn(\"test\")\n}\ncatch(e) {\n nopwfail = true\n}\n\nOutputs.LogInFailedOK = failed && nopwfail\n\nconst user = await Noodl.Users.logIn(\"test\",\"test\")\n\nOutputs.LogInOK = user.getId() !== undefined && \nuser.username !== undefined && \nuser.sessionToken !== undefined;\n\nOutputs.SessionToken = user.sessionToken;\n\nOutputs.Done()" }, "ports": [], "dynamicports": [ { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 4 }, { "name": "out-LogInFailedOK", "displayName": "LogInFailedOK", "plug": "output", "type": "*", "group": "Outputs", "index": 5 }, { "name": "out-LogInOK", "displayName": "LogInOK", "plug": "output", "type": "*", "group": "Outputs", "index": 6 }, { "name": "out-SessionToken", "displayName": "SessionToken", "plug": "output", "type": "*", "group": "Outputs", "index": 7 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } } ], "visualRoots": [] } }, { "name": "/#__cloud__/Users/Set Properties", "id": "e53f78d0-197a-64c6-904a-77b76b8e5c7e", "graph": { "connections": [ { "fromId": "d940c3ac-8f09-ebed-c7b4-a5469868d3f9", "fromProperty": "receive", "toId": "12ba553c-6034-fcb0-8fc5-5abb11a75008", "toProperty": "store" }, { "fromId": "b02fefeb-f81b-b6f2-5ba1-b6b6b90e31f6", "fromProperty": "out-Code", "toId": "12ba553c-6034-fcb0-8fc5-5abb11a75008", "toProperty": "prop-code" }, { "fromId": "b02fefeb-f81b-b6f2-5ba1-b6b6b90e31f6", "fromProperty": "out-Text", "toId": "12ba553c-6034-fcb0-8fc5-5abb11a75008", "toProperty": "prop-error" }, { "fromId": "12ba553c-6034-fcb0-8fc5-5abb11a75008", "fromProperty": "success", "toId": "9b28e280-dbd2-0f94-c9c1-fcde1118249d", "toProperty": "fetch" }, { "fromId": "9b28e280-dbd2-0f94-c9c1-fcde1118249d", "fromProperty": "prop-error", "toId": "1e34d730-f72e-f039-489e-47e60d475f3c", "toProperty": "in-Text" }, { "fromId": "9b28e280-dbd2-0f94-c9c1-fcde1118249d", "fromProperty": "prop-code", "toId": "1e34d730-f72e-f039-489e-47e60d475f3c", "toProperty": "in-Code" }, { "fromId": "b02fefeb-f81b-b6f2-5ba1-b6b6b90e31f6", "fromProperty": "out-Code", "toId": "1e34d730-f72e-f039-489e-47e60d475f3c", "toProperty": "in-VerifyCode" }, { "fromId": "b02fefeb-f81b-b6f2-5ba1-b6b6b90e31f6", "fromProperty": "out-Text", "toId": "1e34d730-f72e-f039-489e-47e60d475f3c", "toProperty": "in-VerifyText" }, { "fromId": "9b28e280-dbd2-0f94-c9c1-fcde1118249d", "fromProperty": "fetched", "toId": "f540520a-1087-a731-4607-60f21947e261", "toProperty": "send" }, { "fromId": "1e34d730-f72e-f039-489e-47e60d475f3c", "fromProperty": "out-SetPropsOK", "toId": "f540520a-1087-a731-4607-60f21947e261", "toProperty": "pm-SetPropsOK" } ], "roots": [ { "id": "d940c3ac-8f09-ebed-c7b4-a5469868d3f9", "type": "noodl.cloud.request", "x": -375.8753840854307, "y": -5.996917661671034, "parameters": {}, "ports": [], "dynamicports": [], "children": [] }, { "id": "f540520a-1087-a731-4607-60f21947e261", "type": "noodl.cloud.response", "x": 845, "y": -80, "parameters": { "params": "SetPropsOK" }, "ports": [], "dynamicports": [ { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-SetPropsOK", "displayName": "SetPropsOK", "index": 4 } ], "children": [] }, { "id": "12ba553c-6034-fcb0-8fc5-5abb11a75008", "type": "net.noodl.user.SetUserProperties", "x": -6.68765743650448, "y": -111.52707985425559, "parameters": { "prop-error": "test", "prop-code": 15 }, "ports": [], "dynamicports": [ { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-password", "displayName": "password", "index": 6 }, { "type": { "name": "boolean" }, "plug": "input", "group": "Properties", "name": "prop-emailVerified", "displayName": "emailVerified", "index": 7 }, { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-sessionToken", "displayName": "sessionToken", "index": 8 }, { "type": { "name": "boolean" }, "plug": "input", "group": "Properties", "name": "prop-logInDisabled", "displayName": "logInDisabled", "index": 9 }, { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-error", "displayName": "error", "index": 10 }, { "type": { "name": "number" }, "plug": "input", "group": "Properties", "name": "prop-code", "displayName": "code", "index": 11 } ], "children": [] }, { "id": "b02fefeb-f81b-b6f2-5ba1-b6b6b90e31f6", "type": "JavaScriptFunction", "label": "Gen test data", "x": -281.85434717397834, "y": -259.1746658386422, "parameters": { "functionScript": "Outputs.Code = Math.ceil(Math.random()*15)\nOutputs.Text = \"Test-\" + Outputs.Code" }, "ports": [], "dynamicports": [ { "name": "out-Code", "displayName": "Code", "plug": "output", "type": "*", "group": "Outputs", "index": 4 }, { "name": "out-Text", "displayName": "Text", "plug": "output", "type": "*", "group": "Outputs", "index": 5 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "9b28e280-dbd2-0f94-c9c1-fcde1118249d", "type": "net.noodl.user.User", "x": 221.14565282602166, "y": -74.17466583864223, "parameters": {}, "ports": [], "dynamicports": [ { "type": { "name": "date" }, "plug": "output", "group": "Properties", "name": "prop-createdAt", "displayName": "createdAt", "index": 9 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "createdAt Changed", "name": "changed-createdAt", "index": 10 }, { "type": { "name": "date" }, "plug": "output", "group": "Properties", "name": "prop-updatedAt", "displayName": "updatedAt", "index": 11 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "updatedAt Changed", "name": "changed-updatedAt", "index": 12 }, { "type": { "name": "boolean" }, "plug": "output", "group": "Properties", "name": "prop-emailVerified", "displayName": "emailVerified", "index": 13 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "emailVerified Changed", "name": "changed-emailVerified", "index": 14 }, { "type": { "name": "string" }, "plug": "output", "group": "Properties", "name": "prop-sessionToken", "displayName": "sessionToken", "index": 15 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "sessionToken Changed", "name": "changed-sessionToken", "index": 16 }, { "type": { "name": "boolean" }, "plug": "output", "group": "Properties", "name": "prop-logInDisabled", "displayName": "logInDisabled", "index": 17 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "logInDisabled Changed", "name": "changed-logInDisabled", "index": 18 }, { "type": { "name": "string" }, "plug": "output", "group": "Properties", "name": "prop-error", "displayName": "error", "index": 19 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "error Changed", "name": "changed-error", "index": 20 }, { "type": { "name": "number" }, "plug": "output", "group": "Properties", "name": "prop-code", "displayName": "code", "index": 21 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "code Changed", "name": "changed-code", "index": 22 } ], "children": [] }, { "id": "1e34d730-f72e-f039-489e-47e60d475f3c", "type": "JavaScriptFunction", "x": 510.14565282602166, "y": -230.17466583864223, "parameters": { "functionScript": "Outputs.SetPropsOK =\nInputs.Text === Inputs.VerifyText &&\nInputs.Code === Inputs.VerifyCode;" }, "ports": [], "dynamicports": [ { "name": "in-Text", "displayName": "Text", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "in-VerifyText", "displayName": "VerifyText", "plug": "input", "type": "*", "group": "Inputs", "index": 5 }, { "name": "in-Code", "displayName": "Code", "plug": "input", "type": "*", "group": "Inputs", "index": 6 }, { "name": "in-VerifyCode", "displayName": "VerifyCode", "plug": "input", "type": "*", "group": "Inputs", "index": 7 }, { "name": "out-SetPropsOK", "displayName": "SetPropsOK", "plug": "output", "type": "*", "group": "Outputs", "index": 8 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } } ], "visualRoots": [] } }, { "name": "/#__cloud__/Users/Test Email Verified Reset", "id": "057080f8-fd82-9f60-e0fb-52ece955c5b0", "graph": { "connections": [ { "fromId": "8b2b03ba-fde2-07af-8ab6-bc1586189412", "fromProperty": "receive", "toId": "cfb98c75-8886-592e-5900-25c380a0e3d7", "toProperty": "store" }, { "fromId": "81cae22f-89e3-645c-d5d1-16cf457d31db", "fromProperty": "out-Username", "toId": "cfb98c75-8886-592e-5900-25c380a0e3d7", "toProperty": "prop-username" }, { "fromId": "81cae22f-89e3-645c-d5d1-16cf457d31db", "fromProperty": "out-Pw", "toId": "cfb98c75-8886-592e-5900-25c380a0e3d7", "toProperty": "prop-password" }, { "fromId": "81cae22f-89e3-645c-d5d1-16cf457d31db", "fromProperty": "out-Email", "toId": "cfb98c75-8886-592e-5900-25c380a0e3d7", "toProperty": "prop-email" }, { "fromId": "cfb98c75-8886-592e-5900-25c380a0e3d7", "fromProperty": "created", "toId": "cbac858b-e805-fe71-44e0-b37920cc7e54", "toProperty": "run" }, { "fromId": "cfb98c75-8886-592e-5900-25c380a0e3d7", "fromProperty": "id", "toId": "cbac858b-e805-fe71-44e0-b37920cc7e54", "toProperty": "in-Id" }, { "fromId": "cbac858b-e805-fe71-44e0-b37920cc7e54", "fromProperty": "out-Done", "toId": "9f4fece9-f51d-c123-8632-9d984e89d7d2", "toProperty": "store" }, { "fromId": "9f4fece9-f51d-c123-8632-9d984e89d7d2", "fromProperty": "stored", "toId": "b3d939ef-ecf8-814a-de68-b23db32fc627", "toProperty": "run" }, { "fromId": "cbac858b-e805-fe71-44e0-b37920cc7e54", "fromProperty": "out-NotVerifiedOk", "toId": "1d0fec3e-f3e6-2d05-28b2-ebcb1cc29b3e", "toProperty": "pm-NotVerifiedOK" }, { "fromId": "b3d939ef-ecf8-814a-de68-b23db32fc627", "fromProperty": "out-VerifiedOk", "toId": "1d0fec3e-f3e6-2d05-28b2-ebcb1cc29b3e", "toProperty": "pm-VerifiedOK" }, { "fromId": "7cf2bc9d-5d55-6514-c3e5-3d7b1b5817ca", "fromProperty": "out-Email", "toId": "6a35bc81-2c58-6865-efca-ba9b6eb5ecde", "toProperty": "prop-email" }, { "fromId": "b3d939ef-ecf8-814a-de68-b23db32fc627", "fromProperty": "out-Done", "toId": "6a35bc81-2c58-6865-efca-ba9b6eb5ecde", "toProperty": "store" }, { "fromId": "6a35bc81-2c58-6865-efca-ba9b6eb5ecde", "fromProperty": "stored", "toId": "b3f886fa-9d91-791d-f92f-a76b7c32af87", "toProperty": "run" }, { "fromId": "b3f886fa-9d91-791d-f92f-a76b7c32af87", "fromProperty": "out-Done", "toId": "1d0fec3e-f3e6-2d05-28b2-ebcb1cc29b3e", "toProperty": "send" }, { "fromId": "b3f886fa-9d91-791d-f92f-a76b7c32af87", "fromProperty": "out-ResetVerifiedOk", "toId": "1d0fec3e-f3e6-2d05-28b2-ebcb1cc29b3e", "toProperty": "pm-ResetVerifiedOK" }, { "fromId": "cfb98c75-8886-592e-5900-25c380a0e3d7", "fromProperty": "id", "toId": "9f4fece9-f51d-c123-8632-9d984e89d7d2", "toProperty": "modelId" }, { "fromId": "9f4fece9-f51d-c123-8632-9d984e89d7d2", "fromProperty": "id", "toId": "6a35bc81-2c58-6865-efca-ba9b6eb5ecde", "toProperty": "modelId" }, { "fromId": "9f4fece9-f51d-c123-8632-9d984e89d7d2", "fromProperty": "id", "toId": "b3d939ef-ecf8-814a-de68-b23db32fc627", "toProperty": "in-Id" }, { "fromId": "6a35bc81-2c58-6865-efca-ba9b6eb5ecde", "fromProperty": "id", "toId": "b3f886fa-9d91-791d-f92f-a76b7c32af87", "toProperty": "in-Id" } ], "roots": [ { "id": "8b2b03ba-fde2-07af-8ab6-bc1586189412", "type": "noodl.cloud.request", "x": -295, "y": 23, "parameters": { "allowNoAuth": true }, "ports": [], "dynamicports": [], "children": [] }, { "id": "1d0fec3e-f3e6-2d05-28b2-ebcb1cc29b3e", "type": "noodl.cloud.response", "x": 1764, "y": -28, "parameters": { "params": "NotVerifiedOK,VerifiedOK,ResetVerifiedOK" }, "ports": [], "dynamicports": [ { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-NotVerifiedOK", "displayName": "NotVerifiedOK", "index": 4 }, { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-VerifiedOK", "displayName": "VerifiedOK", "index": 5 }, { "type": "*", "plug": "input", "group": "Parameters", "name": "pm-ResetVerifiedOK", "displayName": "ResetVerifiedOK", "index": 6 } ], "children": [] }, { "id": "cfb98c75-8886-592e-5900-25c380a0e3d7", "type": "NewDbModelProperties", "x": 89, "y": -42, "parameters": { "collectionName": "_User", "accessControl": [], "acl-tpbq-target": "everyone", "acl-tpbq-read": false, "acl-tpbq-write": false }, "ports": [], "dynamicports": [ { "name": "collectionName", "displayName": "Class", "group": "General", "type": { "name": "enum", "enums": [ { "label": "User", "value": "_User" }, { "label": "Role", "value": "_Role" }, { "value": "Test", "label": "Test" }, { "value": "Post", "label": "Post" }, { "value": "Group", "label": "Group" }, { "value": "TestQuery", "label": "TestQuery" } ], "allowEditOnly": true }, "plug": "input", "index": 7 }, { "type": { "name": "date" }, "plug": "input", "group": "Properties", "name": "prop-createdAt", "displayName": "createdAt", "index": 8 }, { "type": { "name": "date" }, "plug": "input", "group": "Properties", "name": "prop-updatedAt", "displayName": "updatedAt", "index": 9 }, { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-username", "displayName": "username", "index": 10 }, { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-password", "displayName": "password", "index": 11 }, { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-email", "displayName": "email", "index": 12 }, { "type": { "name": "boolean" }, "plug": "input", "group": "Properties", "name": "prop-emailVerified", "displayName": "emailVerified", "index": 13 }, { "type": { "name": "*" }, "plug": "input", "group": "Properties", "name": "prop-authData", "displayName": "authData", "index": 14 }, { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-sessionToken", "displayName": "sessionToken", "index": 15 }, { "type": { "name": "boolean" }, "plug": "input", "group": "Properties", "name": "prop-logInDisabled", "displayName": "logInDisabled", "index": 16 }, { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-error", "displayName": "error", "index": 17 }, { "type": { "name": "number" }, "plug": "input", "group": "Properties", "name": "prop-code", "displayName": "code", "index": 18 } ], "children": [] }, { "id": "81cae22f-89e3-645c-d5d1-16cf457d31db", "type": "JavaScriptFunction", "x": -224.66666666666669, "y": -141.66666666666663, "parameters": { "functionScript": "Outputs.Username = \"emailtest-\" + Math.ceil(Math.random()*1000000)\nOutputs.Pw = \"emailtest\"\nOutputs.Email = Outputs.Username + \"@test.com\"\n\nOutputs.Done()" }, "ports": [], "dynamicports": [ { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 4 }, { "name": "out-Username", "displayName": "Username", "plug": "output", "type": "*", "group": "Outputs", "index": 5 }, { "name": "out-Pw", "displayName": "Pw", "plug": "output", "type": "*", "group": "Outputs", "index": 6 }, { "name": "out-Email", "displayName": "Email", "plug": "output", "type": "*", "group": "Outputs", "index": 7 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "cbac858b-e805-fe71-44e0-b37920cc7e54", "type": "JavaScriptFunction", "label": "Check not verified", "x": 357.3333333333333, "y": -23.66666666666663, "parameters": { "functionScript": "const user = await Noodl.Records.fetch(Inputs.Id,'_User');\n\nOutputs.NotVerifiedOk = !user.emailVerified;\n\nOutputs.Done()" }, "ports": [], "dynamicports": [ { "name": "in-Id", "displayName": "Id", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 5 }, { "name": "out-NotVerifiedOk", "displayName": "NotVerifiedOk", "plug": "output", "type": "*", "group": "Outputs", "index": 6 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "9f4fece9-f51d-c123-8632-9d984e89d7d2", "type": "SetDbModelProperties", "x": 667.3333333333333, "y": -69.66666666666663, "parameters": { "collectionName": "_User", "prop-emailVerified": true }, "ports": [], "dynamicports": [ { "name": "collectionName", "displayName": "Class", "group": "General", "type": { "name": "enum", "enums": [ { "label": "User", "value": "_User" }, { "label": "Role", "value": "_Role" }, { "value": "Test", "label": "Test" }, { "value": "Post", "label": "Post" }, { "value": "Group", "label": "Group" }, { "value": "TestQuery", "label": "TestQuery" } ], "allowEditOnly": true }, "plug": "input", "index": 10 }, { "type": { "name": "date" }, "plug": "input", "group": "Properties", "name": "prop-createdAt", "displayName": "createdAt", "index": 11 }, { "type": { "name": "date" }, "plug": "input", "group": "Properties", "name": "prop-updatedAt", "displayName": "updatedAt", "index": 12 }, { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-username", "displayName": "username", "index": 13 }, { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-password", "displayName": "password", "index": 14 }, { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-email", "displayName": "email", "index": 15 }, { "type": { "name": "boolean" }, "plug": "input", "group": "Properties", "name": "prop-emailVerified", "displayName": "emailVerified", "index": 16 }, { "type": { "name": "*" }, "plug": "input", "group": "Properties", "name": "prop-authData", "displayName": "authData", "index": 17 }, { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-sessionToken", "displayName": "sessionToken", "index": 18 }, { "type": { "name": "boolean" }, "plug": "input", "group": "Properties", "name": "prop-logInDisabled", "displayName": "logInDisabled", "index": 19 }, { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-error", "displayName": "error", "index": 20 }, { "type": { "name": "number" }, "plug": "input", "group": "Properties", "name": "prop-code", "displayName": "code", "index": 21 } ], "children": [] }, { "id": "7cf2bc9d-5d55-6514-c3e5-3d7b1b5817ca", "type": "JavaScriptFunction", "x": 913.3333333333333, "y": 268.33333333333337, "parameters": { "functionScript": "Outputs.Email = (\"emailtest2-\" + Math.ceil(Math.random()*1000000)) + \"@test.com\"\n\nOutputs.Done()" }, "ports": [], "dynamicports": [ { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 4 }, { "name": "out-Email", "displayName": "Email", "plug": "output", "type": "*", "group": "Outputs", "index": 5 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "b3d939ef-ecf8-814a-de68-b23db32fc627", "type": "JavaScriptFunction", "label": "Check verified", "x": 914.3333333333333, "y": 46.33333333333337, "parameters": { "functionScript": "const user = await Noodl.Records.fetch(Inputs.Id,'_User');\n\nOutputs.VerifiedOk = user.emailVerified;\n\nOutputs.Done()" }, "ports": [], "dynamicports": [ { "name": "in-Id", "displayName": "Id", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 5 }, { "name": "out-VerifiedOk", "displayName": "VerifiedOk", "plug": "output", "type": "*", "group": "Outputs", "index": 6 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "6a35bc81-2c58-6865-efca-ba9b6eb5ecde", "type": "SetDbModelProperties", "x": 1226.3333333333333, "y": 152.33333333333337, "parameters": { "collectionName": "_User" }, "ports": [], "dynamicports": [ { "name": "collectionName", "displayName": "Class", "group": "General", "type": { "name": "enum", "enums": [ { "label": "User", "value": "_User" }, { "label": "Role", "value": "_Role" }, { "value": "Test", "label": "Test" }, { "value": "Post", "label": "Post" }, { "value": "Group", "label": "Group" }, { "value": "TestQuery", "label": "TestQuery" } ], "allowEditOnly": true }, "plug": "input", "index": 10 }, { "type": { "name": "date" }, "plug": "input", "group": "Properties", "name": "prop-createdAt", "displayName": "createdAt", "index": 11 }, { "type": { "name": "date" }, "plug": "input", "group": "Properties", "name": "prop-updatedAt", "displayName": "updatedAt", "index": 12 }, { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-username", "displayName": "username", "index": 13 }, { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-password", "displayName": "password", "index": 14 }, { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-email", "displayName": "email", "index": 15 }, { "type": { "name": "boolean" }, "plug": "input", "group": "Properties", "name": "prop-emailVerified", "displayName": "emailVerified", "index": 16 }, { "type": { "name": "*" }, "plug": "input", "group": "Properties", "name": "prop-authData", "displayName": "authData", "index": 17 }, { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-sessionToken", "displayName": "sessionToken", "index": 18 }, { "type": { "name": "boolean" }, "plug": "input", "group": "Properties", "name": "prop-logInDisabled", "displayName": "logInDisabled", "index": 19 }, { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-error", "displayName": "error", "index": 20 }, { "type": { "name": "number" }, "plug": "input", "group": "Properties", "name": "prop-code", "displayName": "code", "index": 21 } ], "children": [] }, { "id": "b3f886fa-9d91-791d-f92f-a76b7c32af87", "type": "JavaScriptFunction", "label": "Check not verified", "x": 1499.3333333333333, "y": 159.33333333333337, "parameters": { "functionScript": "const user = await Noodl.Records.fetch(Inputs.Id,'_User');\n\nOutputs.ResetVerifiedOk = !user.emailVerified;\n\nOutputs.Done()" }, "ports": [], "dynamicports": [ { "name": "in-Id", "displayName": "Id", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 5 }, { "name": "out-ResetVerifiedOk", "displayName": "ResetVerifiedOk", "plug": "output", "type": "*", "group": "Outputs", "index": 6 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } } ], "visualRoots": [] } }, { "name": "/All Tests", "id": "471662d2-5386-e762-4670-065abdcead7f", "graph": { "connections": [], "roots": [ { "id": "2920e5ec-072a-07f3-ff56-1629510f219b", "type": "Group", "x": 0, "y": 0, "parameters": { "scrollEnabled": true }, "ports": [], "dynamicports": [], "children": [ { "id": "e87a1341-4233-bca3-c572-a09a63af582e", "type": "Text", "label": "Version", "parameters": { "color": "#858585", "alignX": "right", "sizeMode": "contentSize", "marginRight": { "value": 15, "unit": "px" }, "text": "V0.5.6", "fontSize": { "value": 12, "unit": "px" }, "marginTop": { "value": 5, "unit": "px" } }, "ports": [], "dynamicports": [], "children": [] }, { "id": "22051ea1-0258-6c33-74c8-d31d8433cf14", "type": "/Tests - Simple", "parameters": {}, "ports": [], "dynamicports": [], "children": [] }, { "id": "b124412a-f308-bc4e-fe82-a53ff9fce91f", "type": "/Tests - Runtime", "parameters": {}, "ports": [], "dynamicports": [], "children": [] }, { "id": "e5536b4b-14de-23e7-b87b-2f079b0b699f", "type": "/Tests - API", "parameters": {}, "ports": [], "dynamicports": [], "children": [] }, { "id": "9d14ff9d-a399-60b2-ac8e-a2b6942ffd77", "type": "/Tests - Core", "parameters": {}, "ports": [], "dynamicports": [], "children": [] }, { "id": "647419ee-afff-aae7-faea-69834cb213ae", "type": "/Tests - Records", "parameters": {}, "ports": [], "dynamicports": [], "children": [] }, { "id": "81565290-4099-37ad-cef2-97e400921a53", "type": "/Tests - Users", "parameters": {}, "ports": [], "dynamicports": [], "children": [] } ] } ], "visualRoots": [ "2920e5ec-072a-07f3-ff56-1629510f219b" ] }, "metadata": { "isFolderComponent": false } }, { "name": "/Docs/Run Tasks", "id": "1d80a96c-22d9-500b-88b3-bb143ffd328f", "graph": { "connections": [ { "fromId": "2f2e5429-9c01-c05a-83e5-0ca82dc9533e", "fromProperty": "Do", "toId": "80d4912f-d0d3-6624-258a-8199e7808878", "toProperty": "storageFetch" }, { "fromId": "80d4912f-d0d3-6624-258a-8199e7808878", "fromProperty": "items", "toId": "0e88cfbf-5990-fe18-212a-f1b93d7188bb", "toProperty": "items" }, { "fromId": "80d4912f-d0d3-6624-258a-8199e7808878", "fromProperty": "fetched", "toId": "0e88cfbf-5990-fe18-212a-f1b93d7188bb", "toProperty": "run" }, { "fromId": "0e88cfbf-5990-fe18-212a-f1b93d7188bb", "fromProperty": "success", "toId": "ba2de367-e83c-d33f-4669-2cdcf56d2fa7", "toProperty": "run" } ], "roots": [ { "id": "80d4912f-d0d3-6624-258a-8199e7808878", "type": "DbCollection2", "x": 381, "y": 292, "parameters": { "collectionName": "Post" }, "ports": [], "dynamicports": [ { "name": "collectionName", "type": { "name": "enum", "enums": [ { "label": "User", "value": "_User" }, { "label": "Role", "value": "_Role" }, { "value": "Test", "label": "Test" }, { "value": "Post", "label": "Post" }, { "value": "Group", "label": "Group" }, { "value": "TestQuery", "label": "TestQuery" } ], "allowEditOnly": true }, "displayName": "Class", "plug": "input", "group": "General", "index": 6 }, { "name": "storageFilterType", "type": { "name": "enum", "allowEditOnly": true, "enums": [ { "value": "simple", "label": "Visual" }, { "value": "json", "label": "Javascript" } ] }, "displayName": "Filter", "default": "simple", "plug": "input", "group": "General", "index": 7 }, { "type": "boolean", "plug": "input", "group": "Limit", "name": "storageEnableLimit", "displayName": "Use limit", "index": 8 }, { "type": "signal", "plug": "input", "group": "Actions", "name": "storageFetch", "displayName": "Do", "index": 9 }, { "type": "boolean", "plug": "input", "group": "Total Count", "name": "storageEnableCount", "displayName": "Fetch total count", "index": 10 }, { "name": "visualFilter", "plug": "input", "type": { "name": "query-filter", "schema": { "properties": { "createdAt": { "type": "Date" }, "updatedAt": { "type": "Date" }, "Title": { "type": "String" } }, "relations": { "Group": [ { "property": "posts" } ] } }, "allowEditOnly": true }, "displayName": "Filter", "group": "Filter", "index": 11 }, { "name": "visualSort", "plug": "input", "type": { "name": "query-sorting", "schema": { "properties": { "createdAt": { "type": "Date" }, "updatedAt": { "type": "Date" }, "Title": { "type": "String" } }, "relations": { "Group": [ { "property": "posts" } ] } }, "allowEditOnly": true }, "displayName": "Sort", "group": "Sorting", "index": 12 } ], "children": [] }, { "id": "2f2e5429-9c01-c05a-83e5-0ca82dc9533e", "type": "Component Inputs", "x": 122, "y": 283, "parameters": {}, "ports": [ { "name": "Do", "plug": "output", "type": { "name": "*" }, "index": 1 } ], "dynamicports": [], "children": [] }, { "id": "0e88cfbf-5990-fe18-212a-f1b93d7188bb", "type": "RunTasks", "x": 644, "y": 289, "parameters": { "taskTemplate": "/Docs/Run Tasks/Task 1" }, "ports": [], "dynamicports": [], "children": [] }, { "id": "ba2de367-e83c-d33f-4669-2cdcf56d2fa7", "type": "JavaScriptFunction", "label": "All tasks succeeded", "x": 908, "y": 289, "parameters": {}, "ports": [], "dynamicports": [], "children": [] } ], "visualRoots": [] }, "metadata": { "isFolderComponent": true } }, { "name": "/Docs/Run Tasks/Task 1", "id": "edee79b0-b9b0-93a6-ca47-ac4f2672a2f6", "graph": { "connections": [ { "fromId": "3a074eee-8ce0-d952-1192-0a27044bdca3", "fromProperty": "Do", "toId": "c1e5580c-66f7-ac76-cf1d-8488cd187153", "toProperty": "store" }, { "fromId": "c1e5580c-66f7-ac76-cf1d-8488cd187153", "fromProperty": "deleted", "toId": "22cc6e6a-1f8b-b12b-4726-4f9c469e269e", "toProperty": "Success" }, { "fromId": "c1e5580c-66f7-ac76-cf1d-8488cd187153", "fromProperty": "failure", "toId": "22cc6e6a-1f8b-b12b-4726-4f9c469e269e", "toProperty": "Failure" } ], "roots": [ { "id": "3a074eee-8ce0-d952-1192-0a27044bdca3", "type": "Component Inputs", "x": -254, "y": -2, "parameters": {}, "ports": [ { "name": "Do", "plug": "output", "type": "*", "index": 0 } ], "dynamicports": [], "children": [] }, { "id": "22cc6e6a-1f8b-b12b-4726-4f9c469e269e", "type": "Component Outputs", "x": 312, "y": -12, "parameters": {}, "ports": [ { "name": "Success", "plug": "input", "type": "*", "index": 0 }, { "name": "Failure", "plug": "input", "type": "*", "index": 1 } ], "dynamicports": [], "children": [] }, { "id": "c1e5580c-66f7-ac76-cf1d-8488cd187153", "type": "DeleteDbModelProperties", "x": 24, "y": -15, "parameters": { "collectionName": "Post", "idSource": "foreach" }, "ports": [], "dynamicports": [ { "name": "collectionName", "displayName": "Class", "group": "General", "type": { "name": "enum", "enums": [ { "label": "User", "value": "_User" }, { "label": "Role", "value": "_Role" }, { "value": "Test", "label": "Test" }, { "value": "Post", "label": "Post" }, { "value": "Group", "label": "Group" }, { "value": "TestQuery", "label": "TestQuery" } ], "allowEditOnly": true }, "plug": "input", "index": 7 } ], "children": [] } ], "visualRoots": [] }, "metadata": { "isFolderComponent": false } }, { "name": "/Docs/Run Tasks/Task 2", "id": "8c4cc41a-c7d6-a526-af5a-da47724a9b80", "graph": { "connections": [ { "fromId": "d6e580db-4e3b-ec19-ea43-737f9119d3f1", "fromProperty": "Do", "toId": "d9cdb90f-6147-7722-d443-8a4b8317f291", "toProperty": "run" }, { "fromId": "d9cdb90f-6147-7722-d443-8a4b8317f291", "fromProperty": "out-Done", "toId": "1dbf4da4-fd3d-599f-bb36-4564837e10f7", "toProperty": "Success" }, { "fromId": "e5e29b72-65bf-20ac-29cc-810644a656cd", "fromProperty": "prop-Text", "toId": "d9cdb90f-6147-7722-d443-8a4b8317f291", "toProperty": "in-Text" } ], "roots": [ { "id": "d6e580db-4e3b-ec19-ea43-737f9119d3f1", "type": "Component Inputs", "x": -292, "y": -27, "parameters": {}, "ports": [ { "name": "Do", "plug": "output", "type": "*", "index": 0 } ], "dynamicports": [], "children": [] }, { "id": "1dbf4da4-fd3d-599f-bb36-4564837e10f7", "type": "Component Outputs", "x": 300, "y": 0, "parameters": {}, "ports": [ { "name": "Success", "plug": "input", "type": "*", "index": 0 }, { "name": "Failure", "plug": "input", "type": "*", "index": 1 } ], "dynamicports": [], "children": [] }, { "id": "d9cdb90f-6147-7722-d443-8a4b8317f291", "type": "JavaScriptFunction", "x": -46, "y": 14, "parameters": { "functionScript": "Inputs.Text\n\nOutputs.Done()" }, "ports": [], "dynamicports": [ { "name": "in-Text", "displayName": "Text", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 5 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "e5e29b72-65bf-20ac-29cc-810644a656cd", "type": "Model2", "x": -269, "y": 96, "parameters": { "idSource": "foreach", "properties": "Text" }, "ports": [], "dynamicports": [ { "type": { "name": "*", "allowConnectionsOnly": true }, "plug": "input/output", "group": "Properties", "name": "prop-Text", "displayName": "Text", "index": 7 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "Text Changed", "name": "changed-Text", "index": 8 } ], "children": [] } ], "visualRoots": [] }, "metadata": { "isFolderComponent": false } }, { "name": "/Docs/Run Tasks/Task 3", "id": "8f923042-518a-5b4c-1768-c742fc02401b", "graph": { "connections": [ { "fromId": "fa795750-a02a-cabd-80c6-a1fdb1cb2b65", "fromProperty": "Do", "toId": "25354bf1-0737-c0eb-8611-f00ea2123ec3", "toProperty": "run" }, { "fromId": "fa795750-a02a-cabd-80c6-a1fdb1cb2b65", "fromProperty": "Text", "toId": "25354bf1-0737-c0eb-8611-f00ea2123ec3", "toProperty": "in-Text" }, { "fromId": "25354bf1-0737-c0eb-8611-f00ea2123ec3", "fromProperty": "out-Done", "toId": "ff5061b3-b5a9-d84b-c1ed-202181402d23", "toProperty": "Success" } ], "roots": [ { "id": "fa795750-a02a-cabd-80c6-a1fdb1cb2b65", "type": "Component Inputs", "x": -167, "y": 1, "parameters": {}, "ports": [ { "name": "Do", "plug": "output", "type": "*", "index": 0 }, { "name": "Text", "plug": "output", "type": { "name": "*" }, "index": 1 } ], "dynamicports": [], "children": [] }, { "id": "ff5061b3-b5a9-d84b-c1ed-202181402d23", "type": "Component Outputs", "x": 300, "y": 0, "parameters": {}, "ports": [ { "name": "Success", "plug": "input", "type": "*", "index": 0 }, { "name": "Failure", "plug": "input", "type": "*", "index": 1 } ], "dynamicports": [], "children": [] }, { "id": "25354bf1-0737-c0eb-8611-f00ea2123ec3", "type": "JavaScriptFunction", "x": 68.5, "y": -11.5, "parameters": { "functionScript": "Inputs.Text\n\nOutputs.Done()" }, "ports": [], "dynamicports": [ { "name": "in-Text", "displayName": "Text", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 5 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } } ], "visualRoots": [] }, "metadata": { "isFolderComponent": false } }, { "name": "/Shared/Setup Test Framework", "id": "234bed2e-9854-c6ff-a076-e97209d5e393", "graph": { "connections": [], "roots": [ { "id": "1a7cb95c-8814-11f9-7a24-ec6c76380e59", "type": "Javascript2", "x": -12, "y": 177, "parameters": { "code": "if(!window.expect) {\n window.expect = function(cond) {\n if(cond === false) { throw new Error(\"Expect failure\") }\n else console.log('OK')\n }\n \n window.expectEqual = function(a, b) {\n if(a !== b) throw new Error(\"Expect failure. Values not equal \" + a + \" !== \" + b);\n else console.log('OK')\n }\n \n window.describe = function(testId,cb) {\n console.log('Verifying ' + Noodl.Objects[testId].desc);\n try {\n cb();\n }\n catch(e) {\n Noodl.Objects[testId].status = 'fail'\n console.log('FAILURE',e) \n return;\n }\n Noodl.Objects[testId].status = 'pass'\n }\n}\n\nscript({});" }, "ports": [], "dynamicports": [], "children": [], "metadata": { "merge": { "soureCodePorts": [ "code" ] } } } ], "visualRoots": [] }, "metadata": { "canvasPos": { "x": -1125.1658170791795, "y": -56.828837030950055 }, "isFolderComponent": false } }, { "name": "/Shared/Test Runner", "graph": { "connections": [ { "fromId": "9b828beb-b8c7-ead1-1cb5-b322ce85e3b6", "fromProperty": "Tests", "toId": "700cbc6c-19ac-bbac-ece1-c8f28f17495b", "toProperty": "items" }, { "fromId": "3650df17-44bd-d494-350f-73673e95c407", "fromProperty": "onClick", "toId": "cab2ec71-fbf5-a18a-5272-530400b891b7", "toProperty": "Run" }, { "fromId": "9b828beb-b8c7-ead1-1cb5-b322ce85e3b6", "fromProperty": "Title", "toId": "ac85eacc-26b2-60f3-64b7-8e804c462490", "toProperty": "text" }, { "fromId": "9b828beb-b8c7-ead1-1cb5-b322ce85e3b6", "fromProperty": "Tests", "toId": "75b6a745-89ce-040c-7b07-a8dbfbfbd586", "toProperty": "in-Tests" }, { "fromId": "3650df17-44bd-d494-350f-73673e95c407", "fromProperty": "onClick", "toId": "75b6a745-89ce-040c-7b07-a8dbfbfbd586", "toProperty": "run" } ], "roots": [ { "id": "246f9453-a119-ac78-171e-3806cf596ecc", "type": "Group", "x": -86.62009758581445, "y": 323.46432396408954, "parameters": { "backgroundColor": "#FFFFFF" }, "ports": [], "dynamicports": [], "children": [ { "id": "e8162c37-bc98-ca6d-c65d-8994f8aa8c29", "type": "Group", "parameters": { "sizeMode": "contentHeight", "flexDirection": "row", "paddingLeft": { "value": 10, "unit": "px" }, "paddingRight": { "value": 10, "unit": "px" } }, "ports": [], "dynamicports": [], "children": [ { "id": "ac85eacc-26b2-60f3-64b7-8e804c462490", "type": "Text", "parameters": { "textStyle": "Title Large", "sizeMode": "contentHeight", "alignY": "center" }, "ports": [], "dynamicports": [], "children": [] }, { "id": "3650df17-44bd-d494-350f-73673e95c407", "type": "net.noodl.controls.button", "parameters": { "marginLeft": { "value": 10, "unit": "px" }, "marginTop": { "value": 10, "unit": "px" }, "marginBottom": { "value": 10, "unit": "px" }, "label": "RUN", "height": { "value": 30, "unit": "px" } }, "ports": [], "dynamicports": [], "children": [] } ] }, { "id": "700cbc6c-19ac-bbac-ece1-c8f28f17495b", "type": "For Each", "parameters": { "template": "/Shared/Test Runner/Test Item" }, "ports": [], "dynamicports": [ { "name": "inputMappingScript", "type": { "name": "string", "codeeditor": "javascript" }, "displayName": "Script", "group": "Input Mapping", "default": "// Here you add mappings between the properties of the item objects and the inputs of the components.\n// 'myComponentInput': 'myObjectProperty',\n// 'anotherComponentInput': function () { return object.get('someProperty') + ' ' + object.get('otherProp') }\n// These are the default mappings based on the selected template component.\nmap({\n})\n", "plug": "input", "index": 6 } ], "children": [] } ] }, { "id": "9b828beb-b8c7-ead1-1cb5-b322ce85e3b6", "type": "Component Inputs", "x": 204.67921807381913, "y": 464.72949995197104, "parameters": {}, "ports": [ { "name": "Tests", "plug": "output", "type": { "name": "*" }, "index": 1 }, { "name": "Title", "plug": "output", "type": { "name": "*" }, "index": 2 } ], "dynamicports": [], "children": [] }, { "id": "cab2ec71-fbf5-a18a-5272-530400b891b7", "type": "Component Outputs", "x": -398.32078192618087, "y": 441.72949995197104, "parameters": {}, "ports": [ { "name": "Run", "plug": "input", "type": { "name": "*" }, "index": 1 } ], "dynamicports": [], "children": [] }, { "id": "a11144b6-ad58-24c1-c17d-0c4a1559c76e", "type": "/Shared/Setup Test Framework", "x": -387.2538871460588, "y": 263.97444128934393, "parameters": {}, "ports": [], "dynamicports": [], "children": [] }, { "id": "75b6a745-89ce-040c-7b07-a8dbfbfbd586", "type": "JavaScriptFunction", "x": 200.7461128539412, "y": 309.97444128934393, "parameters": { "functionScript": "Inputs.Tests.forEach(t => {\n t.status = 'pending'\n})" }, "ports": [], "dynamicports": [ { "name": "in-Tests", "displayName": "Tests", "plug": "input", "type": "*", "group": "Inputs", "index": 4 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } } ], "visualRoots": [ "246f9453-a119-ac78-171e-3806cf596ecc" ] }, "metadata": { "canvasSize": { "width": "1039px", "height": "751px" }, "canvasPos": { "x": 0, "y": 0 }, "isFolderComponent": true } }, { "name": "/Shared/Test Runner/Test Item", "id": "1c287fb1-f0b5-c0ef-3df0-91858d064f6f", "graph": { "connections": [ { "fromId": "260e5402-7fb9-f860-a3c0-981c19b012c8", "fromProperty": "prop-desc", "toId": "3811c7b3-cdd0-b772-abc0-63d0396aba14", "toProperty": "text" }, { "fromId": "9b717fc8-9c9f-a1fa-e9a2-54dda2d203be", "fromProperty": "out-Passed", "toId": "ce42823a-fd53-4788-6435-19264f5ec38f", "toProperty": "mounted" }, { "fromId": "9b717fc8-9c9f-a1fa-e9a2-54dda2d203be", "fromProperty": "out-Pending", "toId": "25e2523f-6d99-00f6-e741-e88c8dceff0a", "toProperty": "mounted" }, { "fromId": "260e5402-7fb9-f860-a3c0-981c19b012c8", "fromProperty": "prop-status", "toId": "9b717fc8-9c9f-a1fa-e9a2-54dda2d203be", "toProperty": "in-Status" }, { "fromId": "9b717fc8-9c9f-a1fa-e9a2-54dda2d203be", "fromProperty": "out-Failed", "toId": "4ddcb927-15d1-219a-e6e0-b106be38ad75", "toProperty": "mounted" } ], "roots": [ { "id": "43ad28c2-11cf-9fbf-0093-328aab1f3e65", "type": "Group", "x": 0, "y": 0, "parameters": { "height": { "value": 50, "unit": "px" }, "paddingLeft": { "value": 10, "unit": "px" }, "paddingBottom": { "value": 2, "unit": "px" }, "paddingRight": { "value": 10, "unit": "px" }, "flexDirection": "row", "paddingTop": { "value": 2, "unit": "px" }, "sizeMode": "contentHeight" }, "ports": [], "dynamicports": [], "children": [ { "id": "938d1ccb-a919-2039-178b-a0ede1769963", "type": "Group", "parameters": { "sizeMode": "contentSize", "flexDirection": "row" }, "ports": [], "dynamicports": [], "children": [ { "id": "4ddcb927-15d1-219a-e6e0-b106be38ad75", "type": "Group", "parameters": { "backgroundColor": "#88103B", "sizeMode": "contentSize", "paddingLeft": { "value": 10, "unit": "px" }, "paddingRight": { "value": 10, "unit": "px" }, "paddingTop": { "value": 2, "unit": "px" }, "paddingBottom": { "value": 2, "unit": "px" }, "marginRight": { "value": 10, "unit": "px" } }, "ports": [], "dynamicports": [], "children": [ { "id": "f3a1d4ff-0f45-6504-d2db-83199218376d", "type": "Text", "parameters": { "text": "FAIL", "color": "#FFFFFF" }, "ports": [], "dynamicports": [], "children": [] } ] }, { "id": "ce42823a-fd53-4788-6435-19264f5ec38f", "type": "Group", "parameters": { "backgroundColor": "#698810", "sizeMode": "contentSize", "paddingLeft": { "value": 10, "unit": "px" }, "paddingRight": { "value": 10, "unit": "px" }, "paddingTop": { "value": 2, "unit": "px" }, "paddingBottom": { "value": 2, "unit": "px" }, "marginRight": { "value": 10, "unit": "px" } }, "ports": [], "dynamicports": [], "children": [ { "id": "0a6fba41-719e-f7bf-f7d5-657ae0ae6b45", "type": "Text", "parameters": { "text": "PASS", "color": "#FFFFFF" }, "ports": [], "dynamicports": [], "children": [] } ] }, { "id": "25e2523f-6d99-00f6-e741-e88c8dceff0a", "type": "Group", "parameters": { "backgroundColor": "#898989", "sizeMode": "contentSize", "paddingLeft": { "value": 10, "unit": "px" }, "paddingRight": { "value": 10, "unit": "px" }, "paddingTop": { "value": 2, "unit": "px" }, "paddingBottom": { "value": 2, "unit": "px" }, "marginRight": { "value": 10, "unit": "px" } }, "ports": [], "dynamicports": [], "children": [ { "id": "eda1002a-f5ba-02d5-4d1d-07d91569ac1b", "type": "Text", "parameters": { "text": "PEND", "color": "#FFFFFF" }, "ports": [], "dynamicports": [], "children": [] } ] }, { "id": "3811c7b3-cdd0-b772-abc0-63d0396aba14", "type": "Text", "parameters": { "alignY": "center", "sizeMode": "contentSize" }, "ports": [], "dynamicports": [], "children": [] } ] } ] }, { "id": "260e5402-7fb9-f860-a3c0-981c19b012c8", "type": "Model2", "x": -481.5, "y": 204, "parameters": { "idSource": "foreach", "properties": "desc,status" }, "ports": [], "dynamicports": [ { "type": { "name": "*", "allowConnectionsOnly": true }, "plug": "input/output", "group": "Properties", "name": "prop-desc", "displayName": "desc", "index": 7 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "desc Changed", "name": "changed-desc", "index": 8 }, { "type": { "name": "*", "allowConnectionsOnly": true }, "plug": "input/output", "group": "Properties", "name": "prop-status", "displayName": "status", "index": 9 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "status Changed", "name": "changed-status", "index": 10 } ], "children": [] }, { "id": "9b717fc8-9c9f-a1fa-e9a2-54dda2d203be", "type": "JavaScriptFunction", "x": -222.5, "y": 102, "parameters": { "functionScript": "Outputs.Passed = Inputs.Status === 'pass'\nOutputs.Failed = Inputs.Status === 'fail'\nOutputs.Pending = Inputs.Status === undefined || Inputs.Status === 'pending'" }, "ports": [], "dynamicports": [ { "name": "in-Status", "displayName": "Status", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "out-Passed", "displayName": "Passed", "plug": "output", "type": "*", "group": "Outputs", "index": 5 }, { "name": "out-Failed", "displayName": "Failed", "plug": "output", "type": "*", "group": "Outputs", "index": 6 }, { "name": "out-Pending", "displayName": "Pending", "plug": "output", "type": "*", "group": "Outputs", "index": 7 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } } ], "visualRoots": [ "43ad28c2-11cf-9fbf-0093-328aab1f3e65" ] }, "metadata": { "isFolderComponent": false } }, { "name": "/Simple/Fail Auth", "id": "76c7d197-7abd-7649-8a14-47580d95f857", "graph": { "connections": [ { "fromId": "119949f1-aa20-daeb-586b-6fe408a651e0", "fromProperty": "failure", "toId": "37494f77-525d-26aa-9706-68c30028bda8", "toProperty": "run" }, { "fromId": "119949f1-aa20-daeb-586b-6fe408a651e0", "fromProperty": "success", "toId": "29c252ad-7257-09d9-a10a-18a8640e426d", "toProperty": "run" }, { "fromId": "119949f1-aa20-daeb-586b-6fe408a651e0", "fromProperty": "error", "toId": "37494f77-525d-26aa-9706-68c30028bda8", "toProperty": "in-Error" }, { "fromId": "119949f1-aa20-daeb-586b-6fe408a651e0", "fromProperty": "failure", "toId": "828b6257-d3ea-66a5-a886-77f82a944e83", "toProperty": "Done" }, { "fromId": "7c2883e1-9b1b-d26e-8364-4df8f1c5543d", "fromProperty": "Do", "toId": "119949f1-aa20-daeb-586b-6fe408a651e0", "toProperty": "call" } ], "roots": [ { "id": "7c2883e1-9b1b-d26e-8364-4df8f1c5543d", "type": "Component Inputs", "x": -60.51952926668554, "y": 24.447217364964956, "parameters": {}, "ports": [ { "name": "Do", "plug": "output", "type": "*", "index": 0 } ], "dynamicports": [], "children": [] }, { "id": "828b6257-d3ea-66a5-a886-77f82a944e83", "type": "Component Outputs", "x": 673.2764853819228, "y": 13.194164492131847, "parameters": {}, "ports": [ { "name": "Done", "plug": "input", "type": "*", "index": 0 } ], "dynamicports": [], "children": [] }, { "id": "37494f77-525d-26aa-9706-68c30028bda8", "type": "JavaScriptFunction", "x": 500.98047073331446, "y": 123.44721736496496, "parameters": { "functionScript": "describe(\"simple-2\",() => {\n expect(Inputs.Error === 'Unauthenticated requests not accepted.')\n})" }, "ports": [], "dynamicports": [ { "name": "in-Error", "displayName": "Error", "plug": "input", "type": "*", "group": "Inputs", "index": 4 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "29c252ad-7257-09d9-a10a-18a8640e426d", "type": "JavaScriptFunction", "x": 455.98047073331446, "y": -23.552782635035044, "parameters": { "functionScript": "Noodl.Objects['simple-2'].status = 'fail'" }, "ports": [], "dynamicports": [], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "119949f1-aa20-daeb-586b-6fe408a651e0", "type": "CloudFunction2", "x": 204.63967366303604, "y": 0.9966067903983458, "parameters": { "function": "Simple/FailAuth" }, "ports": [], "dynamicports": [ { "plug": "input", "type": { "name": "component", "components": [ "/#__cloud__/API Tests/Files", "/#__cloud__/API Tests/JSCall", "/#__cloud__/API Tests/Records", "/#__cloud__/API Tests/Users", "/#__cloud__/API/paramtest/:test/PUT", "/#__cloud__/API/test/GET", "/#__cloud__/API/test/POST", "/#__cloud__/Core/REST", "/#__cloud__/Core/Run Tasks", "/#__cloud__/Records and Objects/Aggregate", "/#__cloud__/Records and Objects/Delete Record", "/#__cloud__/Records and Objects/New Record", "/#__cloud__/Records and Objects/Object Set Properties", "/#__cloud__/Records and Objects/Query Records", "/#__cloud__/Records and Objects/Relations", "/#__cloud__/Runtime/InfEventLoop", "/#__cloud__/Runtime/OutOfMemory", "/#__cloud__/Runtime/ShouldRestart", "/#__cloud__/Runtime/WhileTrue", "/#__cloud__/Simple/FailAuth", "/#__cloud__/Simple/Failure Result", "/#__cloud__/Simple/FuncJSTest", "/#__cloud__/Simple/Get Config", "/#__cloud__/Simple/No Auth OK", "/#__cloud__/Simple/SimpleReq", "/#__cloud__/Users/Create No Log In User", "/#__cloud__/Users/Impersonate", "/#__cloud__/Users/Log In", "/#__cloud__/Users/Set Properties", "/#__cloud__/Users/Test Email Verified Reset" ], "ignoreSheetName": true, "allowEditOnly": true }, "group": "General", "displayName": "Function", "name": "function", "index": 4 } ], "children": [] } ], "visualRoots": [] }, "metadata": { "isFolderComponent": false } }, { "name": "/Simple/Failure Result", "id": "77c09f52-eb3f-27b3-d84d-bf0e7260653f", "graph": { "connections": [ { "fromId": "08ee5130-d56f-0c12-3bbc-f0d2074c884d", "fromProperty": "Do", "toId": "30f731ef-9457-cf13-5b7d-a44efd375529", "toProperty": "call" }, { "fromId": "30f731ef-9457-cf13-5b7d-a44efd375529", "fromProperty": "failure", "toId": "f238c983-3ea8-5432-1906-d9f504f0fd83", "toProperty": "run" }, { "fromId": "30f731ef-9457-cf13-5b7d-a44efd375529", "fromProperty": "error", "toId": "f238c983-3ea8-5432-1906-d9f504f0fd83", "toProperty": "in-Error" }, { "fromId": "30f731ef-9457-cf13-5b7d-a44efd375529", "fromProperty": "success", "toId": "e5a8a05c-6ac0-deb8-34e1-f85b0c02e628", "toProperty": "run" } ], "roots": [ { "id": "08ee5130-d56f-0c12-3bbc-f0d2074c884d", "type": "Component Inputs", "x": -293.69291232421034, "y": 259.69734662653195, "parameters": {}, "ports": [ { "name": "Do", "plug": "output", "type": "*", "index": 0 } ], "dynamicports": [], "children": [] }, { "id": "e5a8a05c-6ac0-deb8-34e1-f85b0c02e628", "type": "JavaScriptFunction", "x": 373.80708767578966, "y": 66.6932347322466, "parameters": { "functionScript": "Noodl.Objects['simple-5'].status = 'fail'" }, "ports": [], "dynamicports": [], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "f238c983-3ea8-5432-1906-d9f504f0fd83", "type": "JavaScriptFunction", "x": 388.80708767578966, "y": 187.69734662653198, "parameters": { "functionScript": "describe('simple-5',() => {\n expect(Inputs.Error === \"Some error\")\n})" }, "ports": [], "dynamicports": [ { "name": "in-Error", "displayName": "Error", "plug": "input", "type": "*", "group": "Inputs", "index": 4 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "30f731ef-9457-cf13-5b7d-a44efd375529", "type": "CloudFunction2", "x": 20.18208767578966, "y": 186.9463186529606, "parameters": { "function": "Simple/Failure Result" }, "ports": [], "dynamicports": [ { "plug": "input", "type": { "name": "component", "components": [ "/#__cloud__/API Tests/Files", "/#__cloud__/API Tests/JSCall", "/#__cloud__/API Tests/Records", "/#__cloud__/API Tests/Users", "/#__cloud__/API/paramtest/:test/PUT", "/#__cloud__/API/test/GET", "/#__cloud__/API/test/POST", "/#__cloud__/Core/REST", "/#__cloud__/Core/Run Tasks", "/#__cloud__/Records and Objects/Aggregate", "/#__cloud__/Records and Objects/Delete Record", "/#__cloud__/Records and Objects/New Record", "/#__cloud__/Records and Objects/Object Set Properties", "/#__cloud__/Records and Objects/Query Records", "/#__cloud__/Records and Objects/Relations", "/#__cloud__/Runtime/InfEventLoop", "/#__cloud__/Runtime/OutOfMemory", "/#__cloud__/Runtime/ShouldRestart", "/#__cloud__/Runtime/WhileTrue", "/#__cloud__/Simple/FailAuth", "/#__cloud__/Simple/Failure Result", "/#__cloud__/Simple/FuncJSTest", "/#__cloud__/Simple/Get Config", "/#__cloud__/Simple/No Auth OK", "/#__cloud__/Simple/SimpleReq", "/#__cloud__/Users/Create No Log In User", "/#__cloud__/Users/Impersonate", "/#__cloud__/Users/Log In", "/#__cloud__/Users/Set Properties", "/#__cloud__/Users/Test Email Verified Reset" ], "ignoreSheetName": true, "allowEditOnly": true }, "group": "General", "displayName": "Function", "name": "function", "index": 4 } ], "children": [] } ], "visualRoots": [] }, "metadata": { "isFolderComponent": false } }, { "name": "/Simple/No Auth OK", "id": "820ae3a8-b294-5244-ff54-c074b18212c7", "graph": { "connections": [ { "fromId": "a1ba84e3-085c-e6e5-5014-b1d32155d13c", "fromProperty": "success", "toId": "ff268ca4-4e42-65cd-f96f-c06ee8aa14c5", "toProperty": "run" }, { "fromId": "a1ba84e3-085c-e6e5-5014-b1d32155d13c", "fromProperty": "out-Message", "toId": "ff268ca4-4e42-65cd-f96f-c06ee8aa14c5", "toProperty": "in-Message" }, { "fromId": "a1ba84e3-085c-e6e5-5014-b1d32155d13c", "fromProperty": "out-NoUserCheck", "toId": "ff268ca4-4e42-65cd-f96f-c06ee8aa14c5", "toProperty": "in-NoUserCheck" }, { "fromId": "a1ba84e3-085c-e6e5-5014-b1d32155d13c", "fromProperty": "failure", "toId": "d265c5f3-3e17-6dfc-8c08-a0b1e0466ca6", "toProperty": "run" }, { "fromId": "fa9c1c02-9527-1f41-b56a-4c1f6dd1ba96", "fromProperty": "Do", "toId": "a1ba84e3-085c-e6e5-5014-b1d32155d13c", "toProperty": "call" } ], "roots": [ { "id": "fa9c1c02-9527-1f41-b56a-4c1f6dd1ba96", "type": "Component Inputs", "x": -124.69291232421034, "y": 266.69734662653195, "parameters": {}, "ports": [ { "name": "Do", "plug": "output", "type": "*", "index": 0 } ], "dynamicports": [], "children": [] }, { "id": "d265c5f3-3e17-6dfc-8c08-a0b1e0466ca6", "type": "JavaScriptFunction", "x": 420.80708767578966, "y": 374.69734662653195, "parameters": { "functionScript": "Noodl.Objects['simple-4'].status = 'fail'" }, "ports": [], "dynamicports": [], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "ff268ca4-4e42-65cd-f96f-c06ee8aa14c5", "type": "JavaScriptFunction", "x": 473.8070876757897, "y": 195.69734662653198, "parameters": { "functionScript": "describe('simple-4',() => {\n expect(Inputs.Message === \"No auth ok here!\")\n expect(Inputs.NoUserCheck === true)\n})" }, "ports": [], "dynamicports": [ { "name": "in-Message", "displayName": "Message", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "in-NoUserCheck", "displayName": "NoUserCheck", "plug": "input", "type": "*", "group": "Inputs", "index": 5 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "a1ba84e3-085c-e6e5-5014-b1d32155d13c", "type": "CloudFunction2", "x": 144.18208767578966, "y": 214.44734662653195, "parameters": { "function": "Simple/No Auth OK" }, "ports": [], "dynamicports": [ { "plug": "input", "type": { "name": "component", "components": [ "/#__cloud__/API Tests/Files", "/#__cloud__/API Tests/JSCall", "/#__cloud__/API Tests/Records", "/#__cloud__/API Tests/Users", "/#__cloud__/API/paramtest/:test/PUT", "/#__cloud__/API/test/GET", "/#__cloud__/API/test/POST", "/#__cloud__/Core/REST", "/#__cloud__/Core/Run Tasks", "/#__cloud__/Records and Objects/Aggregate", "/#__cloud__/Records and Objects/Delete Record", "/#__cloud__/Records and Objects/New Record", "/#__cloud__/Records and Objects/Object Set Properties", "/#__cloud__/Records and Objects/Query Records", "/#__cloud__/Records and Objects/Relations", "/#__cloud__/Runtime/InfEventLoop", "/#__cloud__/Runtime/OutOfMemory", "/#__cloud__/Runtime/ShouldRestart", "/#__cloud__/Runtime/WhileTrue", "/#__cloud__/Simple/FailAuth", "/#__cloud__/Simple/Failure Result", "/#__cloud__/Simple/FuncJSTest", "/#__cloud__/Simple/Get Config", "/#__cloud__/Simple/No Auth OK", "/#__cloud__/Simple/SimpleReq", "/#__cloud__/Users/Create No Log In User", "/#__cloud__/Users/Impersonate", "/#__cloud__/Users/Log In", "/#__cloud__/Users/Set Properties", "/#__cloud__/Users/Test Email Verified Reset" ], "ignoreSheetName": true, "allowEditOnly": true }, "group": "General", "displayName": "Function", "name": "function", "index": 4 }, { "name": "out-Message", "displayName": "Message", "type": "*", "plug": "output", "group": "Results", "index": 5 }, { "name": "out-NoUserCheck", "displayName": "NoUserCheck", "type": "*", "plug": "output", "group": "Results", "index": 6 } ], "children": [] } ], "visualRoots": [] }, "metadata": { "isFolderComponent": false } }, { "name": "/Simple/Request Response", "id": "cfcf7ce0-7c6a-8406-4e0a-522fee1b7f1d", "graph": { "connections": [ { "fromId": "4dcf6b70-aeac-609b-477c-1cfe58ab4cbf", "fromProperty": "Do", "toId": "edbad038-09ae-f3fa-ca7f-fda57796255c", "toProperty": "call" }, { "fromId": "6927b84d-87cf-05b4-6085-8b6ded79dbb7", "fromProperty": "savedValue", "toId": "edbad038-09ae-f3fa-ca7f-fda57796255c", "toProperty": "in-param1" }, { "fromId": "edbad038-09ae-f3fa-ca7f-fda57796255c", "fromProperty": "out-test", "toId": "08d8177a-6070-50d1-a5ff-981acca81966", "toProperty": "in-test" }, { "fromId": "edbad038-09ae-f3fa-ca7f-fda57796255c", "fromProperty": "success", "toId": "08d8177a-6070-50d1-a5ff-981acca81966", "toProperty": "run" }, { "fromId": "edbad038-09ae-f3fa-ca7f-fda57796255c", "fromProperty": "out-ReqParamsOK", "toId": "08d8177a-6070-50d1-a5ff-981acca81966", "toProperty": "in-ReqParamsOK" }, { "fromId": "edbad038-09ae-f3fa-ca7f-fda57796255c", "fromProperty": "out-HeadersOK", "toId": "08d8177a-6070-50d1-a5ff-981acca81966", "toProperty": "in-HeadersOK" } ], "roots": [ { "id": "4dcf6b70-aeac-609b-477c-1cfe58ab4cbf", "type": "Component Inputs", "x": -515, "y": -74, "parameters": {}, "ports": [ { "name": "Do", "plug": "output", "type": "*", "index": 0 } ], "dynamicports": [], "children": [] }, { "id": "1a8c6b5f-10fb-02a1-85b5-6c655d86fd81", "type": "Component Outputs", "x": 373, "y": 11, "parameters": {}, "ports": [ { "name": "Success", "plug": "input", "type": "*", "index": 0 }, { "name": "Failure", "plug": "input", "type": "*", "index": 1 } ], "dynamicports": [], "children": [] }, { "id": "08d8177a-6070-50d1-a5ff-981acca81966", "type": "JavaScriptFunction", "x": 138.5, "y": -121, "parameters": { "functionScript": "describe('simple-1',() => {\n expect(Inputs.test === \"Hello test\")\n expect(Inputs.ReqParamsOK === true)\n expect(Inputs.HeadersOK === true)\n})" }, "ports": [], "dynamicports": [ { "name": "in-test", "displayName": "test", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "in-ReqParamsOK", "displayName": "ReqParamsOK", "plug": "input", "type": "*", "group": "Inputs", "index": 5 }, { "name": "in-HeadersOK", "displayName": "HeadersOK", "plug": "input", "type": "*", "group": "Inputs", "index": 6 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "edbad038-09ae-f3fa-ca7f-fda57796255c", "type": "CloudFunction2", "x": -162.81170087185683, "y": -141.9232258583428, "parameters": { "function": "Simple/SimpleReq" }, "ports": [], "dynamicports": [ { "plug": "input", "type": { "name": "component", "components": [ "/#__cloud__/API Tests/Files", "/#__cloud__/API Tests/JSCall", "/#__cloud__/API Tests/Records", "/#__cloud__/API Tests/Users", "/#__cloud__/API/paramtest/:test/PUT", "/#__cloud__/API/test/GET", "/#__cloud__/API/test/POST", "/#__cloud__/Core/REST", "/#__cloud__/Core/Run Tasks", "/#__cloud__/Records and Objects/Aggregate", "/#__cloud__/Records and Objects/Delete Record", "/#__cloud__/Records and Objects/New Record", "/#__cloud__/Records and Objects/Object Set Properties", "/#__cloud__/Records and Objects/Query Records", "/#__cloud__/Records and Objects/Relations", "/#__cloud__/Runtime/InfEventLoop", "/#__cloud__/Runtime/OutOfMemory", "/#__cloud__/Runtime/ShouldRestart", "/#__cloud__/Runtime/WhileTrue", "/#__cloud__/Simple/FailAuth", "/#__cloud__/Simple/Failure Result", "/#__cloud__/Simple/FuncJSTest", "/#__cloud__/Simple/Get Config", "/#__cloud__/Simple/No Auth OK", "/#__cloud__/Simple/SimpleReq", "/#__cloud__/Users/Create No Log In User", "/#__cloud__/Users/Impersonate", "/#__cloud__/Users/Log In", "/#__cloud__/Users/Set Properties", "/#__cloud__/Users/Test Email Verified Reset" ], "ignoreSheetName": true, "allowEditOnly": true }, "group": "General", "displayName": "Function", "name": "function", "index": 4 }, { "name": "in-param1", "displayName": "param1", "type": "*", "plug": "input", "group": "Parameters", "index": 5 }, { "name": "out-test", "displayName": "test", "type": "*", "plug": "output", "group": "Results", "index": 6 }, { "name": "out-ReqParamsOK", "displayName": "ReqParamsOK", "type": "*", "plug": "output", "group": "Results", "index": 7 }, { "name": "out-HeadersOK", "displayName": "HeadersOK", "type": "*", "plug": "output", "group": "Results", "index": 8 } ], "children": [] }, { "id": "6927b84d-87cf-05b4-6085-8b6ded79dbb7", "type": "String", "x": -475.81170087185683, "y": -237.9232258583428, "parameters": { "value": "test" }, "ports": [], "dynamicports": [], "children": [] } ], "visualRoots": [] }, "metadata": { "isFolderComponent": false } }, { "name": "/Simple/Simple Function Node", "id": "991aee9a-afaa-16e2-276a-263810645989", "graph": { "connections": [ { "fromId": "17998ef4-f1db-dc55-fd55-1152c47918df", "fromProperty": "success", "toId": "fb9f8515-df4a-01ed-f81f-63f7ea768026", "toProperty": "run" }, { "fromId": "17998ef4-f1db-dc55-fd55-1152c47918df", "fromProperty": "out-Out", "toId": "fb9f8515-df4a-01ed-f81f-63f7ea768026", "toProperty": "in-Out" }, { "fromId": "17998ef4-f1db-dc55-fd55-1152c47918df", "fromProperty": "out-Test", "toId": "fb9f8515-df4a-01ed-f81f-63f7ea768026", "toProperty": "in-Test" }, { "fromId": "17998ef4-f1db-dc55-fd55-1152c47918df", "fromProperty": "out-UserOk", "toId": "fb9f8515-df4a-01ed-f81f-63f7ea768026", "toProperty": "in-UserOk" }, { "fromId": "b171776f-f9cd-cca0-fea3-1ebcfe40b7bb", "fromProperty": "savedValue", "toId": "17998ef4-f1db-dc55-fd55-1152c47918df", "toProperty": "in-Param1" }, { "fromId": "98dae802-961c-809a-44f6-15c1905b0570", "fromProperty": "Do", "toId": "17998ef4-f1db-dc55-fd55-1152c47918df", "toProperty": "call" } ], "roots": [ { "id": "98dae802-961c-809a-44f6-15c1905b0570", "type": "Component Inputs", "x": -383, "y": -16, "parameters": {}, "ports": [ { "name": "Do", "plug": "output", "type": "*", "index": 0 } ], "dynamicports": [], "children": [] }, { "id": "59431cad-e7f3-ad88-fa48-5aa604b3f1d4", "type": "Component Outputs", "x": 373, "y": 11, "parameters": {}, "ports": [ { "name": "Success", "plug": "input", "type": "*", "index": 0 }, { "name": "Failure", "plug": "input", "type": "*", "index": 1 } ], "dynamicports": [], "children": [] }, { "id": "b171776f-f9cd-cca0-fea3-1ebcfe40b7bb", "type": "String", "x": -422.55850435928426, "y": -224.8480939443146, "parameters": { "value": "test" }, "ports": [], "dynamicports": [], "children": [] }, { "id": "fb9f8515-df4a-01ed-f81f-63f7ea768026", "type": "JavaScriptFunction", "x": 138.5, "y": -121, "parameters": { "functionScript": "describe('simple-3',() => {\n expect(Inputs.Out === \"test yes\")\n expect(Inputs.Test.length === 1)\n expect(Inputs.Test[0].Text === \"wagga\")\n\n expect(Inputs.UserOk === true)\n})" }, "ports": [], "dynamicports": [ { "name": "in-Out", "displayName": "Out", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "in-Test", "displayName": "Test", "plug": "input", "type": "*", "group": "Inputs", "index": 5 }, { "name": "in-UserOk", "displayName": "UserOk", "plug": "input", "type": "*", "group": "Inputs", "index": 6 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "17998ef4-f1db-dc55-fd55-1152c47918df", "type": "CloudFunction2", "x": -148.41170087185685, "y": -178.32322585834277, "parameters": { "function": "Simple/FuncJSTest" }, "ports": [], "dynamicports": [ { "plug": "input", "type": { "name": "component", "components": [ "/#__cloud__/API Tests/Files", "/#__cloud__/API Tests/JSCall", "/#__cloud__/API Tests/Records", "/#__cloud__/API Tests/Users", "/#__cloud__/API/paramtest/:test/PUT", "/#__cloud__/API/test/GET", "/#__cloud__/API/test/POST", "/#__cloud__/Core/REST", "/#__cloud__/Core/Run Tasks", "/#__cloud__/Records and Objects/Aggregate", "/#__cloud__/Records and Objects/Delete Record", "/#__cloud__/Records and Objects/New Record", "/#__cloud__/Records and Objects/Object Set Properties", "/#__cloud__/Records and Objects/Query Records", "/#__cloud__/Records and Objects/Relations", "/#__cloud__/Runtime/InfEventLoop", "/#__cloud__/Runtime/OutOfMemory", "/#__cloud__/Runtime/ShouldRestart", "/#__cloud__/Runtime/WhileTrue", "/#__cloud__/Simple/FailAuth", "/#__cloud__/Simple/Failure Result", "/#__cloud__/Simple/FuncJSTest", "/#__cloud__/Simple/Get Config", "/#__cloud__/Simple/No Auth OK", "/#__cloud__/Simple/SimpleReq", "/#__cloud__/Users/Create No Log In User", "/#__cloud__/Users/Impersonate", "/#__cloud__/Users/Log In", "/#__cloud__/Users/Set Properties", "/#__cloud__/Users/Test Email Verified Reset" ], "ignoreSheetName": true, "allowEditOnly": true }, "group": "General", "displayName": "Function", "name": "function", "index": 4 }, { "name": "in-Param1", "displayName": "Param1", "type": "*", "plug": "input", "group": "Parameters", "index": 5 }, { "name": "out-Out", "displayName": "Out", "type": "*", "plug": "output", "group": "Results", "index": 6 }, { "name": "out-Array", "displayName": "Array", "type": "*", "plug": "output", "group": "Results", "index": 7 }, { "name": "out-Test", "displayName": "Test", "type": "*", "plug": "output", "group": "Results", "index": 8 }, { "name": "out-UserOk", "displayName": "UserOk", "type": "*", "plug": "output", "group": "Results", "index": 9 } ], "children": [] } ], "visualRoots": [] }, "metadata": { "isFolderComponent": false } }, { "name": "/Tests - API", "id": "3b085cf5-f361-38bd-f146-cde34bdc79e2", "graph": { "connections": [ { "fromId": "9ee41bbd-af0d-4b0e-aff3-39264d9142d3", "fromProperty": "items", "toId": "2b9846d3-9c06-c1ef-b157-b1dbd9bf49ce", "toProperty": "Tests" }, { "fromId": "2b9846d3-9c06-c1ef-b157-b1dbd9bf49ce", "fromProperty": "Run", "toId": "d0cf6381-fca1-f0f4-5fc1-384acc6f59ea", "toProperty": "login" }, { "fromId": "861c77c5-de76-19c9-4dd2-5a475ac43289", "fromProperty": "out-QueryOK", "toId": "3afdaaef-0d2d-7baa-377f-4c498340f5c2", "toProperty": "in-QueryOK" }, { "fromId": "861c77c5-de76-19c9-4dd2-5a475ac43289", "fromProperty": "out-FetchOK", "toId": "3afdaaef-0d2d-7baa-377f-4c498340f5c2", "toProperty": "in-FetchOK" }, { "fromId": "861c77c5-de76-19c9-4dd2-5a475ac43289", "fromProperty": "out-CreateAndSaveOK", "toId": "3afdaaef-0d2d-7baa-377f-4c498340f5c2", "toProperty": "in-CreateAndSaveOK" }, { "fromId": "861c77c5-de76-19c9-4dd2-5a475ac43289", "fromProperty": "out-DeleteOK", "toId": "3afdaaef-0d2d-7baa-377f-4c498340f5c2", "toProperty": "in-DeleteOK" }, { "fromId": "861c77c5-de76-19c9-4dd2-5a475ac43289", "fromProperty": "out-RelationsOK", "toId": "3afdaaef-0d2d-7baa-377f-4c498340f5c2", "toProperty": "in-RelationsOK" }, { "fromId": "861c77c5-de76-19c9-4dd2-5a475ac43289", "fromProperty": "success", "toId": "3afdaaef-0d2d-7baa-377f-4c498340f5c2", "toProperty": "run" }, { "fromId": "d0cf6381-fca1-f0f4-5fc1-384acc6f59ea", "fromProperty": "success", "toId": "861c77c5-de76-19c9-4dd2-5a475ac43289", "toProperty": "call" }, { "fromId": "bd517bd0-f6d1-87ac-73d4-1c69c740d8bb", "fromProperty": "success", "toId": "ccee70e0-977c-e468-80f1-f6ba572db724", "toProperty": "run" }, { "fromId": "bd517bd0-f6d1-87ac-73d4-1c69c740d8bb", "fromProperty": "out-Valid", "toId": "ccee70e0-977c-e468-80f1-f6ba572db724", "toProperty": "in-Valid" }, { "fromId": "bd517bd0-f6d1-87ac-73d4-1c69c740d8bb", "fromProperty": "out-Valid2", "toId": "ccee70e0-977c-e468-80f1-f6ba572db724", "toProperty": "in-Valid2" }, { "fromId": "d0cf6381-fca1-f0f4-5fc1-384acc6f59ea", "fromProperty": "success", "toId": "bd517bd0-f6d1-87ac-73d4-1c69c740d8bb", "toProperty": "call" }, { "fromId": "d0cf6381-fca1-f0f4-5fc1-384acc6f59ea", "fromProperty": "success", "toId": "a1ddb53b-0965-9e35-7270-77d9d160adc2", "toProperty": "run" }, { "fromId": "861c77c5-de76-19c9-4dd2-5a475ac43289", "fromProperty": "out-CountOK", "toId": "3afdaaef-0d2d-7baa-377f-4c498340f5c2", "toProperty": "in-CountOK" }, { "fromId": "861c77c5-de76-19c9-4dd2-5a475ac43289", "fromProperty": "out-DistinctOK", "toId": "3afdaaef-0d2d-7baa-377f-4c498340f5c2", "toProperty": "in-DistinctOK" }, { "fromId": "d0cf6381-fca1-f0f4-5fc1-384acc6f59ea", "fromProperty": "success", "toId": "15eb6c18-5428-1a3b-98e6-814ff56e0a1d", "toProperty": "run" }, { "fromId": "15eb6c18-5428-1a3b-98e6-814ff56e0a1d", "fromProperty": "out-FileName", "toId": "a21f088f-b22d-7cfc-f4fc-045041f46f09", "toProperty": "in-FileName" }, { "fromId": "15eb6c18-5428-1a3b-98e6-814ff56e0a1d", "fromProperty": "out-Done", "toId": "a21f088f-b22d-7cfc-f4fc-045041f46f09", "toProperty": "call" }, { "fromId": "a21f088f-b22d-7cfc-f4fc-045041f46f09", "fromProperty": "success", "toId": "788ab2a4-a7df-6bcc-af76-50fd7f9016c0", "toProperty": "run" }, { "fromId": "15eb6c18-5428-1a3b-98e6-814ff56e0a1d", "fromProperty": "out-FileUrl", "toId": "788ab2a4-a7df-6bcc-af76-50fd7f9016c0", "toProperty": "in-DeletedFileUrl" }, { "fromId": "15eb6c18-5428-1a3b-98e6-814ff56e0a1d", "fromProperty": "out-UploadOK", "toId": "788ab2a4-a7df-6bcc-af76-50fd7f9016c0", "toProperty": "in-UploadOK" }, { "fromId": "861c77c5-de76-19c9-4dd2-5a475ac43289", "fromProperty": "out-AggregateOK", "toId": "3afdaaef-0d2d-7baa-377f-4c498340f5c2", "toProperty": "in-AggregateOK" } ], "roots": [ { "id": "d0cf6381-fca1-f0f4-5fc1-384acc6f59ea", "type": "net.noodl.user.LogIn", "x": 522.5, "y": -62, "parameters": { "username": "test", "password": "test" }, "ports": [], "dynamicports": [], "children": [] }, { "id": "4e656925-95f3-587e-bdad-30223661df0c", "type": "Group", "x": 210.34821428571422, "y": -306.66071428571433, "parameters": { "sizeMode": "contentHeight", "marginBottom": { "value": 10, "unit": "px" } }, "ports": [], "dynamicports": [], "children": [ { "id": "2b9846d3-9c06-c1ef-b157-b1dbd9bf49ce", "type": "/Shared/Test Runner", "parameters": { "Title": "API" }, "ports": [], "dynamicports": [], "children": [] } ] }, { "id": "9ee41bbd-af0d-4b0e-aff3-39264d9142d3", "type": "Static Data", "label": "All Tests", "x": 531.3482142857142, "y": -183.66071428571433, "parameters": { "type": "json", "json": "[\n {\n \"id\":\"api-1\",\n \"desc\":\"Test Users API\"\n },\n {\n \"id\":\"api-2\",\n \"desc\":\"Test Records API\"\n },\n {\n \"id\":\"api-3\",\n \"desc\":\"Clound function call from API\"\n },\n {\n \"id\":\"api-4\",\n \"desc\":\"Files API\"\n }\n]" }, "ports": [], "dynamicports": [], "children": [], "metadata": { "merge": { "soureCodePorts": [ "json" ] } } }, { "id": "3afdaaef-0d2d-7baa-377f-4c498340f5c2", "type": "JavaScriptFunction", "x": 1102.6163265306122, "y": -196.19489795918366, "parameters": { "functionScript": "describe('api-2',() => {\n expect(Inputs.QueryOK === true)\n expect(Inputs.FetchOK === true)\n expect(Inputs.CreateAndSaveOK === true)\n expect(Inputs.DeleteOK === true)\n expect(Inputs.RelationsOK === true)\n expect(Inputs.CountOK === true)\n expect(Inputs.DistinctOK === true)\n expect(Inputs.AggregateOK === true)\n})" }, "ports": [], "dynamicports": [ { "name": "in-QueryOK", "displayName": "QueryOK", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "in-FetchOK", "displayName": "FetchOK", "plug": "input", "type": "*", "group": "Inputs", "index": 5 }, { "name": "in-CreateAndSaveOK", "displayName": "CreateAndSaveOK", "plug": "input", "type": "*", "group": "Inputs", "index": 6 }, { "name": "in-DeleteOK", "displayName": "DeleteOK", "plug": "input", "type": "*", "group": "Inputs", "index": 7 }, { "name": "in-RelationsOK", "displayName": "RelationsOK", "plug": "input", "type": "*", "group": "Inputs", "index": 8 }, { "name": "in-CountOK", "displayName": "CountOK", "plug": "input", "type": "*", "group": "Inputs", "index": 9 }, { "name": "in-DistinctOK", "displayName": "DistinctOK", "plug": "input", "type": "*", "group": "Inputs", "index": 10 }, { "name": "in-AggregateOK", "displayName": "AggregateOK", "plug": "input", "type": "*", "group": "Inputs", "index": 11 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "861c77c5-de76-19c9-4dd2-5a475ac43289", "type": "CloudFunction2", "x": 775.6163265306121, "y": -218.19489795918366, "parameters": { "function": "API Tests/Records" }, "ports": [], "dynamicports": [ { "plug": "input", "type": { "name": "component", "components": [ "/#__cloud__/API Tests/Files", "/#__cloud__/API Tests/JSCall", "/#__cloud__/API Tests/Records", "/#__cloud__/API Tests/Users", "/#__cloud__/API/paramtest/:test/PUT", "/#__cloud__/API/test/GET", "/#__cloud__/API/test/POST", "/#__cloud__/Core/REST", "/#__cloud__/Core/Run Tasks", "/#__cloud__/Records and Objects/Aggregate", "/#__cloud__/Records and Objects/Delete Record", "/#__cloud__/Records and Objects/New Record", "/#__cloud__/Records and Objects/Object Set Properties", "/#__cloud__/Records and Objects/Query Records", "/#__cloud__/Records and Objects/Relations", "/#__cloud__/Runtime/InfEventLoop", "/#__cloud__/Runtime/OutOfMemory", "/#__cloud__/Runtime/ShouldRestart", "/#__cloud__/Runtime/WhileTrue", "/#__cloud__/Simple/FailAuth", "/#__cloud__/Simple/Failure Result", "/#__cloud__/Simple/FuncJSTest", "/#__cloud__/Simple/Get Config", "/#__cloud__/Simple/No Auth OK", "/#__cloud__/Simple/SimpleReq", "/#__cloud__/Users/Create No Log In User", "/#__cloud__/Users/Impersonate", "/#__cloud__/Users/Log In", "/#__cloud__/Users/Set Properties", "/#__cloud__/Users/Test Email Verified Reset" ], "ignoreSheetName": true, "allowEditOnly": true }, "group": "General", "displayName": "Function", "name": "function", "index": 4 }, { "name": "out-QueryOK", "displayName": "QueryOK", "type": "*", "plug": "output", "group": "Results", "index": 5 }, { "name": "out-FetchOK", "displayName": "FetchOK", "type": "*", "plug": "output", "group": "Results", "index": 6 }, { "name": "out-CreateAndSaveOK", "displayName": "CreateAndSaveOK", "type": "*", "plug": "output", "group": "Results", "index": 7 }, { "name": "out-DeleteOK", "displayName": "DeleteOK", "type": "*", "plug": "output", "group": "Results", "index": 8 }, { "name": "out-RelationsOK", "displayName": "RelationsOK", "type": "*", "plug": "output", "group": "Results", "index": 9 }, { "name": "out-CountOK", "displayName": "CountOK", "type": "*", "plug": "output", "group": "Results", "index": 10 }, { "name": "out-DistinctOK", "displayName": "DistinctOK", "type": "*", "plug": "output", "group": "Results", "index": 11 }, { "name": "out-AggregateOK", "displayName": "AggregateOK", "type": "*", "plug": "output", "group": "Results", "index": 12 } ], "children": [] }, { "id": "ccee70e0-977c-e468-80f1-f6ba572db724", "type": "JavaScriptFunction", "x": 1068.6163265306122, "y": 63.80510204081634, "parameters": { "functionScript": "describe('api-1',() => {\n expect(Inputs.Valid === true)\n expect(Inputs.Valid2 === true)\n})" }, "ports": [], "dynamicports": [ { "name": "in-Valid", "displayName": "Valid", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "in-Valid2", "displayName": "Valid2", "plug": "input", "type": "*", "group": "Inputs", "index": 5 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "bd517bd0-f6d1-87ac-73d4-1c69c740d8bb", "type": "CloudFunction2", "x": 778.6163265306121, "y": 53.80510204081634, "parameters": { "function": "API Tests/Users" }, "ports": [], "dynamicports": [ { "plug": "input", "type": { "name": "component", "components": [ "/#__cloud__/API Tests/Files", "/#__cloud__/API Tests/JSCall", "/#__cloud__/API Tests/Records", "/#__cloud__/API Tests/Users", "/#__cloud__/API/paramtest/:test/PUT", "/#__cloud__/API/test/GET", "/#__cloud__/API/test/POST", "/#__cloud__/Core/REST", "/#__cloud__/Core/Run Tasks", "/#__cloud__/Records and Objects/Aggregate", "/#__cloud__/Records and Objects/Delete Record", "/#__cloud__/Records and Objects/New Record", "/#__cloud__/Records and Objects/Object Set Properties", "/#__cloud__/Records and Objects/Query Records", "/#__cloud__/Records and Objects/Relations", "/#__cloud__/Runtime/InfEventLoop", "/#__cloud__/Runtime/OutOfMemory", "/#__cloud__/Runtime/ShouldRestart", "/#__cloud__/Runtime/WhileTrue", "/#__cloud__/Simple/FailAuth", "/#__cloud__/Simple/Failure Result", "/#__cloud__/Simple/FuncJSTest", "/#__cloud__/Simple/Get Config", "/#__cloud__/Simple/No Auth OK", "/#__cloud__/Simple/SimpleReq", "/#__cloud__/Users/Create No Log In User", "/#__cloud__/Users/Impersonate", "/#__cloud__/Users/Log In", "/#__cloud__/Users/Set Properties", "/#__cloud__/Users/Test Email Verified Reset" ], "ignoreSheetName": true, "allowEditOnly": true }, "group": "General", "displayName": "Function", "name": "function", "index": 4 }, { "name": "out-Valid", "displayName": "Valid", "type": "*", "plug": "output", "group": "Results", "index": 5 }, { "name": "out-Valid2", "displayName": "Valid2", "type": "*", "plug": "output", "group": "Results", "index": 6 } ], "children": [] }, { "id": "a1ddb53b-0965-9e35-7270-77d9d160adc2", "type": "JavaScriptFunction", "x": 762.0945335276967, "y": 449.1284256559767, "parameters": { "functionScript": "const res = await Noodl.CloudFunctions.run('API Tests/JSCall')\n\ndescribe('api-3',() => {\n expect(res.Test === \"wagga\")\n})\n\n" }, "ports": [], "dynamicports": [], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "15eb6c18-5428-1a3b-98e6-814ff56e0a1d", "type": "JavaScriptFunction", "label": "Upload file to try to delete", "x": 783.3445335276967, "y": 254.87842565597668, "parameters": { "functionScript": "// Try uploading text file\nconst textfile = new File([\"foo\"], \"foo.txt\", {\n type: \"text/plain\",\n});\n\n\nconst cloudFile = await Noodl.Files.upload(textfile,{\n})\n\nconst testDownload = await fetch(cloudFile.url);\n\nOutputs.UploadOK = testDownload.status === 200;\n\nOutputs.FileUrl = cloudFile.url;\nOutputs.FileName = cloudFile.name;\n\nOutputs.Done()\n\n\n" }, "ports": [], "dynamicports": [ { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 4 }, { "name": "out-UploadOK", "displayName": "UploadOK", "plug": "output", "type": "*", "group": "Outputs", "index": 5 }, { "name": "out-FileUrl", "displayName": "FileUrl", "plug": "output", "type": "*", "group": "Outputs", "index": 6 }, { "name": "out-FileName", "displayName": "FileName", "plug": "output", "type": "*", "group": "Outputs", "index": 7 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "a21f088f-b22d-7cfc-f4fc-045041f46f09", "type": "CloudFunction2", "x": 1056.3445335276967, "y": 233.87842565597668, "parameters": { "function": "API Tests/Files" }, "ports": [], "dynamicports": [ { "plug": "input", "type": { "name": "component", "components": [ "/#__cloud__/API Tests/Files", "/#__cloud__/API Tests/JSCall", "/#__cloud__/API Tests/Records", "/#__cloud__/API Tests/Users", "/#__cloud__/API/paramtest/:test/PUT", "/#__cloud__/API/test/GET", "/#__cloud__/API/test/POST", "/#__cloud__/Core/REST", "/#__cloud__/Core/Run Tasks", "/#__cloud__/Records and Objects/Aggregate", "/#__cloud__/Records and Objects/Delete Record", "/#__cloud__/Records and Objects/New Record", "/#__cloud__/Records and Objects/Object Set Properties", "/#__cloud__/Records and Objects/Query Records", "/#__cloud__/Records and Objects/Relations", "/#__cloud__/Runtime/InfEventLoop", "/#__cloud__/Runtime/OutOfMemory", "/#__cloud__/Runtime/ShouldRestart", "/#__cloud__/Runtime/WhileTrue", "/#__cloud__/Simple/FailAuth", "/#__cloud__/Simple/Failure Result", "/#__cloud__/Simple/FuncJSTest", "/#__cloud__/Simple/Get Config", "/#__cloud__/Simple/No Auth OK", "/#__cloud__/Simple/SimpleReq", "/#__cloud__/Users/Create No Log In User", "/#__cloud__/Users/Impersonate", "/#__cloud__/Users/Log In", "/#__cloud__/Users/Set Properties", "/#__cloud__/Users/Test Email Verified Reset" ], "ignoreSheetName": true, "allowEditOnly": true }, "group": "General", "displayName": "Function", "name": "function", "index": 4 }, { "name": "in-FileName", "displayName": "FileName", "type": "*", "plug": "input", "group": "Parameters", "index": 5 } ], "children": [] }, { "id": "788ab2a4-a7df-6bcc-af76-50fd7f9016c0", "type": "JavaScriptFunction", "label": "Verify", "x": 1336.5445335276968, "y": 334.5784256559766, "parameters": { "functionScript": "// Should fail downloading, file should be deleted\nconst testDownload = await fetch(Inputs.DeletedFileUrl);\n\ndescribe('api-4',() => {\n expect(testDownload.status === 404)\n expect(Inputs.UploadOK === true)\n})\n" }, "ports": [], "dynamicports": [ { "name": "in-DeletedFileUrl", "displayName": "DeletedFileUrl", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "in-UploadOK", "displayName": "UploadOK", "plug": "input", "type": "*", "group": "Inputs", "index": 5 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } } ], "visualRoots": [ "4e656925-95f3-587e-bdad-30223661df0c" ] }, "metadata": { "isFolderComponent": false } }, { "name": "/Tests - API Endpoints", "id": "8e47760d-5bd7-2319-f420-30b77bc96812", "graph": { "connections": [ { "fromId": "2801e576-e940-8f9c-0475-92058d8cf613", "fromProperty": "items", "toId": "77cff5fc-1136-5f75-0142-39a719fac5e9", "toProperty": "Tests" }, { "fromId": "77cff5fc-1136-5f75-0142-39a719fac5e9", "fromProperty": "Run", "toId": "3b2e9eca-ed17-da81-237d-4aefe9859b61", "toProperty": "run" }, { "fromId": "77cff5fc-1136-5f75-0142-39a719fac5e9", "fromProperty": "Run", "toId": "f113465f-90df-4966-0808-3d7d53e116ff", "toProperty": "run" }, { "fromId": "77cff5fc-1136-5f75-0142-39a719fac5e9", "fromProperty": "Run", "toId": "e9ec2d06-de6f-aa79-2786-4ede7e8e5b2b", "toProperty": "run" }, { "fromId": "77cff5fc-1136-5f75-0142-39a719fac5e9", "fromProperty": "Run", "toId": "30efd24c-ed9b-9cb0-6425-4695519696f2", "toProperty": "run" } ], "roots": [ { "id": "87324fad-513d-0923-68a5-32e7e1b2aa4e", "type": "Group", "x": -86, "y": 124, "parameters": { "sizeMode": "contentHeight", "marginBottom": { "value": 10, "unit": "px" } }, "ports": [], "dynamicports": [], "children": [ { "id": "77cff5fc-1136-5f75-0142-39a719fac5e9", "type": "/Shared/Test Runner", "parameters": { "Title": "API Endpoints" }, "ports": [], "dynamicports": [], "children": [] } ] }, { "id": "2801e576-e940-8f9c-0475-92058d8cf613", "type": "Static Data", "label": "All Tests", "x": 235, "y": 247, "parameters": { "type": "csv", "csv": "id,desc\nendpoints-1,unsupported ok\nendpoints-2,GET\nendpoints-3,POST\nendpoints-4,PUT with url param" }, "ports": [], "dynamicports": [], "children": [], "metadata": { "merge": { "soureCodePorts": [ "json" ] } } }, { "id": "3b2e9eca-ed17-da81-237d-4aefe9859b61", "type": "JavaScriptFunction", "label": "Not supported", "x": -361.5, "y": 73.5, "parameters": { "functionScript": "const res = await fetch(Noodl.getMetaData().cloudservices.endpoint + '/api/not-supported');\nconst json = await res.json();\n console.log(json)\ndescribe('endpoints-1',() => {\n expect(res.status === 400)\n\n expect(json.error === 'Not supported')\n})\n" }, "ports": [], "dynamicports": [], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "f113465f-90df-4966-0808-3d7d53e116ff", "type": "JavaScriptFunction", "label": "Get call", "x": -383, "y": 234, "parameters": { "functionScript": "const res = await fetch(Noodl.getMetaData().cloudservices.endpoint + '/api/test');\nconst json = await res.json();\n\ndescribe('endpoints-2',() => {\n expect(res.status === 200)\n\n expect(json.test === 'hej')\n})\n" }, "ports": [], "dynamicports": [], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "e9ec2d06-de6f-aa79-2786-4ede7e8e5b2b", "type": "JavaScriptFunction", "label": "Post call", "x": -380, "y": 382, "parameters": { "functionScript": "const res = await fetch(Noodl.getMetaData().cloudservices.endpoint + '/api/test',{\n method:'POST',\n headers:{\n 'Content-Type':'application/json'\n },\n body: JSON.stringify({\n param1:'test'\n }),\n});\nconst json = await res.json();\n\ndescribe('endpoints-3',() => {\n expect(res.status === 200)\n\n expect(json.test === 'test post ok')\n})\n" }, "ports": [], "dynamicports": [], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "30efd24c-ed9b-9cb0-6425-4695519696f2", "type": "JavaScriptFunction", "label": "Put with url param call", "x": -370, "y": 544, "parameters": { "functionScript": "const res = await fetch(Noodl.getMetaData().cloudservices.endpoint + '/api/paramtest/whoff',{\n method:'PUT',\n headers:{\n 'Content-Type':'application/json'\n }\n});\nconst json = await res.json();\n\ndescribe('endpoints-4',() => {\n expect(res.status === 200)\n\n expect(json.test === 'whoff put ok')\n})\n" }, "ports": [], "dynamicports": [], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } } ], "visualRoots": [ "87324fad-513d-0923-68a5-32e7e1b2aa4e" ] } }, { "name": "/Tests - Core", "id": "06d2dc25-4d57-82ac-7ee6-17e96b100cd5", "graph": { "connections": [ { "fromId": "9d6ec39d-2771-33e6-9e46-aea3a118e4d9", "fromProperty": "items", "toId": "701c0496-c38d-533c-febe-808958c0171c", "toProperty": "Tests" }, { "fromId": "701c0496-c38d-533c-febe-808958c0171c", "fromProperty": "Run", "toId": "33e2f89e-c829-2b53-686d-238ae9dd8afd", "toProperty": "call" }, { "fromId": "33e2f89e-c829-2b53-686d-238ae9dd8afd", "fromProperty": "success", "toId": "fc59ac08-902b-0dec-3b3c-eadb5dc049f9", "toProperty": "run" }, { "fromId": "33e2f89e-c829-2b53-686d-238ae9dd8afd", "fromProperty": "out-RunTasksOK", "toId": "fc59ac08-902b-0dec-3b3c-eadb5dc049f9", "toProperty": "in-RunTasksOK" }, { "fromId": "33e2f89e-c829-2b53-686d-238ae9dd8afd", "fromProperty": "out-RunTasksWaterfallOK", "toId": "fc59ac08-902b-0dec-3b3c-eadb5dc049f9", "toProperty": "in-RunTasksWaterfallOK" }, { "fromId": "33e2f89e-c829-2b53-686d-238ae9dd8afd", "fromProperty": "out-StopOnFailureOK", "toId": "fc59ac08-902b-0dec-3b3c-eadb5dc049f9", "toProperty": "in-StopOnFailureOK" }, { "fromId": "33e2f89e-c829-2b53-686d-238ae9dd8afd", "fromProperty": "out-ComponentInputsOK", "toId": "fc59ac08-902b-0dec-3b3c-eadb5dc049f9", "toProperty": "in-ComponentInputsOK" }, { "fromId": "701c0496-c38d-533c-febe-808958c0171c", "fromProperty": "Run", "toId": "208d6863-db3c-c7f4-fc95-d5a313cb44ec", "toProperty": "call" }, { "fromId": "208d6863-db3c-c7f4-fc95-d5a313cb44ec", "fromProperty": "success", "toId": "766058ef-298c-16f3-a00b-57840ad71a64", "toProperty": "run" }, { "fromId": "208d6863-db3c-c7f4-fc95-d5a313cb44ec", "fromProperty": "out-FetchOK", "toId": "766058ef-298c-16f3-a00b-57840ad71a64", "toProperty": "in-FetchOK" }, { "fromId": "208d6863-db3c-c7f4-fc95-d5a313cb44ec", "fromProperty": "out-PostWithInputsOK", "toId": "766058ef-298c-16f3-a00b-57840ad71a64", "toProperty": "in-PostWithInputsOK" }, { "fromId": "208d6863-db3c-c7f4-fc95-d5a313cb44ec", "fromProperty": "out-InputsInResponseOK", "toId": "766058ef-298c-16f3-a00b-57840ad71a64", "toProperty": "in-InputsInResponseOK" }, { "fromId": "33e2f89e-c829-2b53-686d-238ae9dd8afd", "fromProperty": "out-DeleteRecordsOK", "toId": "fc59ac08-902b-0dec-3b3c-eadb5dc049f9", "toProperty": "in-DeleteRecordsOK" } ], "roots": [ { "id": "d488bfdc-643e-0ff6-4a4e-d7717a73d074", "type": "Group", "x": 210.34821428571422, "y": -306.66071428571433, "parameters": { "sizeMode": "contentHeight", "marginBottom": { "value": 10, "unit": "px" } }, "ports": [], "dynamicports": [], "children": [ { "id": "701c0496-c38d-533c-febe-808958c0171c", "type": "/Shared/Test Runner", "parameters": { "Title": "Core" }, "ports": [], "dynamicports": [], "children": [] } ] }, { "id": "9d6ec39d-2771-33e6-9e46-aea3a118e4d9", "type": "Static Data", "label": "All Tests", "x": 514.3482142857142, "y": -274.66071428571433, "parameters": { "type": "json", "json": "[\n {\n \"id\":\"core-1\",\n \"desc\":\"Run Tasks\"\n },\n {\n \"id\":\"core-2\",\n \"desc\":\"REST\"\n }\n]" }, "ports": [], "dynamicports": [], "children": [], "metadata": { "merge": { "soureCodePorts": [ "json" ] } } }, { "id": "33e2f89e-c829-2b53-686d-238ae9dd8afd", "type": "CloudFunction2", "x": 519.3482142857142, "y": -113.16071428571433, "parameters": { "function": "Core/Run Tasks" }, "ports": [], "dynamicports": [ { "plug": "input", "type": { "name": "component", "components": [ "/#__cloud__/API Tests/Files", "/#__cloud__/API Tests/JSCall", "/#__cloud__/API Tests/Records", "/#__cloud__/API Tests/Users", "/#__cloud__/API/paramtest/:test/PUT", "/#__cloud__/API/test/GET", "/#__cloud__/API/test/POST", "/#__cloud__/Core/REST", "/#__cloud__/Core/Run Tasks", "/#__cloud__/Records and Objects/Aggregate", "/#__cloud__/Records and Objects/Delete Record", "/#__cloud__/Records and Objects/New Record", "/#__cloud__/Records and Objects/Object Set Properties", "/#__cloud__/Records and Objects/Query Records", "/#__cloud__/Records and Objects/Relations", "/#__cloud__/Runtime/InfEventLoop", "/#__cloud__/Runtime/OutOfMemory", "/#__cloud__/Runtime/ShouldRestart", "/#__cloud__/Runtime/WhileTrue", "/#__cloud__/Simple/FailAuth", "/#__cloud__/Simple/Failure Result", "/#__cloud__/Simple/FuncJSTest", "/#__cloud__/Simple/Get Config", "/#__cloud__/Simple/No Auth OK", "/#__cloud__/Simple/SimpleReq", "/#__cloud__/Users/Create No Log In User", "/#__cloud__/Users/Impersonate", "/#__cloud__/Users/Log In", "/#__cloud__/Users/Set Properties", "/#__cloud__/Users/Test Email Verified Reset" ], "ignoreSheetName": true, "allowEditOnly": true }, "group": "General", "displayName": "Function", "name": "function", "index": 4 }, { "name": "out-RunTasksOK", "displayName": "RunTasksOK", "type": "*", "plug": "output", "group": "Results", "index": 5 }, { "name": "out-RunTasksWaterfallOK", "displayName": "RunTasksWaterfallOK", "type": "*", "plug": "output", "group": "Results", "index": 6 }, { "name": "out-StopOnFailureOK", "displayName": "StopOnFailureOK", "type": "*", "plug": "output", "group": "Results", "index": 7 }, { "name": "out-ComponentInputsOK", "displayName": "ComponentInputsOK", "type": "*", "plug": "output", "group": "Results", "index": 8 }, { "name": "out-DeleteRecordsOK", "displayName": "DeleteRecordsOK", "type": "*", "plug": "output", "group": "Results", "index": 9 } ], "children": [] }, { "id": "fc59ac08-902b-0dec-3b3c-eadb5dc049f9", "type": "JavaScriptFunction", "label": "Verify", "x": 735.6815476190475, "y": -90.82738095238096, "parameters": { "functionScript": "describe('core-1',() => {\n expect(Inputs.RunTasksOK === true)\n expect(Inputs.RunTasksWaterfallOK === true)\n expect(Inputs.StopOnFailureOK === true)\n expect(Inputs.ComponentInputsOK === true)\n expect(Inputs.DeleteRecordsOK === true)\n})" }, "ports": [], "dynamicports": [ { "name": "in-RunTasksOK", "displayName": "RunTasksOK", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "in-RunTasksWaterfallOK", "displayName": "RunTasksWaterfallOK", "plug": "input", "type": "*", "group": "Inputs", "index": 5 }, { "name": "in-StopOnFailureOK", "displayName": "StopOnFailureOK", "plug": "input", "type": "*", "group": "Inputs", "index": 6 }, { "name": "in-ComponentInputsOK", "displayName": "ComponentInputsOK", "plug": "input", "type": "*", "group": "Inputs", "index": 7 }, { "name": "in-DeleteRecordsOK", "displayName": "DeleteRecordsOK", "plug": "input", "type": "*", "group": "Inputs", "index": 8 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "208d6863-db3c-c7f4-fc95-d5a313cb44ec", "type": "CloudFunction2", "x": 517.9315476190475, "y": 113.42261904761904, "parameters": { "function": "Core/REST" }, "ports": [], "dynamicports": [ { "plug": "input", "type": { "name": "component", "components": [ "/#__cloud__/API Tests/Files", "/#__cloud__/API Tests/JSCall", "/#__cloud__/API Tests/Records", "/#__cloud__/API Tests/Users", "/#__cloud__/API/paramtest/:test/PUT", "/#__cloud__/API/test/GET", "/#__cloud__/API/test/POST", "/#__cloud__/Core/REST", "/#__cloud__/Core/Run Tasks", "/#__cloud__/Records and Objects/Aggregate", "/#__cloud__/Records and Objects/Delete Record", "/#__cloud__/Records and Objects/New Record", "/#__cloud__/Records and Objects/Object Set Properties", "/#__cloud__/Records and Objects/Query Records", "/#__cloud__/Records and Objects/Relations", "/#__cloud__/Runtime/InfEventLoop", "/#__cloud__/Runtime/OutOfMemory", "/#__cloud__/Runtime/ShouldRestart", "/#__cloud__/Runtime/WhileTrue", "/#__cloud__/Simple/FailAuth", "/#__cloud__/Simple/Failure Result", "/#__cloud__/Simple/FuncJSTest", "/#__cloud__/Simple/Get Config", "/#__cloud__/Simple/No Auth OK", "/#__cloud__/Simple/SimpleReq", "/#__cloud__/Users/Create No Log In User", "/#__cloud__/Users/Impersonate", "/#__cloud__/Users/Log In", "/#__cloud__/Users/Set Properties", "/#__cloud__/Users/Test Email Verified Reset" ], "ignoreSheetName": true, "allowEditOnly": true }, "group": "General", "displayName": "Function", "name": "function", "index": 4 }, { "name": "out-FetchOK", "displayName": "FetchOK", "type": "*", "plug": "output", "group": "Results", "index": 5 }, { "name": "out-PostWithInputsOK", "displayName": "PostWithInputsOK", "type": "*", "plug": "output", "group": "Results", "index": 6 }, { "name": "out-InputsInResponseOK", "displayName": "InputsInResponseOK", "type": "*", "plug": "output", "group": "Results", "index": 7 } ], "children": [] }, { "id": "766058ef-298c-16f3-a00b-57840ad71a64", "type": "JavaScriptFunction", "label": "Verify", "x": 740.5315476190475, "y": 121.62261904761897, "parameters": { "functionScript": "describe('core-2',() => {\n expect(Inputs.FetchOK === true)\n expect(Inputs.PostWithInputsOK === true)\n expect(Inputs.InputsInResponseOK === true)\n})" }, "ports": [], "dynamicports": [ { "name": "in-FetchOK", "displayName": "FetchOK", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "in-PostWithInputsOK", "displayName": "PostWithInputsOK", "plug": "input", "type": "*", "group": "Inputs", "index": 5 }, { "name": "in-InputsInResponseOK", "displayName": "InputsInResponseOK", "plug": "input", "type": "*", "group": "Inputs", "index": 6 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } } ], "visualRoots": [ "d488bfdc-643e-0ff6-4a4e-d7717a73d074" ] }, "metadata": { "isFolderComponent": false } }, { "name": "/Tests - Records", "id": "9e4bdc3d-9cee-8c17-d156-5061a8ec8135", "graph": { "connections": [ { "fromId": "1cff3b70-a6f4-48b7-d682-b44746dac5c5", "fromProperty": "items", "toId": "512d377b-8632-21d6-4734-42d3c758df03", "toProperty": "Tests" }, { "fromId": "512d377b-8632-21d6-4734-42d3c758df03", "fromProperty": "Run", "toId": "51632e29-7267-2640-ec14-a894b8cd1e28", "toProperty": "login" }, { "fromId": "51632e29-7267-2640-ec14-a894b8cd1e28", "fromProperty": "success", "toId": "19eaaead-d8d3-2a15-808a-f3acd3cfe77e", "toProperty": "call" }, { "fromId": "19eaaead-d8d3-2a15-808a-f3acd3cfe77e", "fromProperty": "out-QueryOK", "toId": "d549e5cb-5954-63e7-072b-c3445aab463f", "toProperty": "in-QueryOK" }, { "fromId": "19eaaead-d8d3-2a15-808a-f3acd3cfe77e", "fromProperty": "out-JSQueryOK", "toId": "d549e5cb-5954-63e7-072b-c3445aab463f", "toProperty": "in-JSQueryOK" }, { "fromId": "19eaaead-d8d3-2a15-808a-f3acd3cfe77e", "fromProperty": "out-PointerQueryOK", "toId": "d549e5cb-5954-63e7-072b-c3445aab463f", "toProperty": "in-PointerQueryOK" }, { "fromId": "19eaaead-d8d3-2a15-808a-f3acd3cfe77e", "fromProperty": "out-RelationQueryOK", "toId": "d549e5cb-5954-63e7-072b-c3445aab463f", "toProperty": "in-RelationQueryOK" }, { "fromId": "19eaaead-d8d3-2a15-808a-f3acd3cfe77e", "fromProperty": "success", "toId": "d549e5cb-5954-63e7-072b-c3445aab463f", "toProperty": "run" }, { "fromId": "51632e29-7267-2640-ec14-a894b8cd1e28", "fromProperty": "success", "toId": "cd9501dc-1752-eaf3-fac3-84d65ed285d1", "toProperty": "call" }, { "fromId": "cd9501dc-1752-eaf3-fac3-84d65ed285d1", "fromProperty": "success", "toId": "f264ec07-f58a-a845-ac3a-243fe0ae475b", "toProperty": "run" }, { "fromId": "cd9501dc-1752-eaf3-fac3-84d65ed285d1", "fromProperty": "out-AddRelationOK", "toId": "f264ec07-f58a-a845-ac3a-243fe0ae475b", "toProperty": "in-AddRelationOK" }, { "fromId": "cd9501dc-1752-eaf3-fac3-84d65ed285d1", "fromProperty": "out-RemoveRelationOK", "toId": "f264ec07-f58a-a845-ac3a-243fe0ae475b", "toProperty": "in-RemoveRelationOK" }, { "fromId": "51632e29-7267-2640-ec14-a894b8cd1e28", "fromProperty": "success", "toId": "c4db8abf-46af-3571-e4c6-8cec7beaa2c2", "toProperty": "call" }, { "fromId": "c4db8abf-46af-3571-e4c6-8cec7beaa2c2", "fromProperty": "success", "toId": "adf740a4-2390-b4be-45ba-aa0ea36614d1", "toProperty": "run" }, { "fromId": "c4db8abf-46af-3571-e4c6-8cec7beaa2c2", "fromProperty": "out-DeleteOK", "toId": "adf740a4-2390-b4be-45ba-aa0ea36614d1", "toProperty": "in-DeleteOK" }, { "fromId": "51632e29-7267-2640-ec14-a894b8cd1e28", "fromProperty": "success", "toId": "74b554c6-a22f-f38a-6731-de59d0dc1db7", "toProperty": "call" }, { "fromId": "74b554c6-a22f-f38a-6731-de59d0dc1db7", "fromProperty": "out-ReFetchOK", "toId": "c0897f35-9a8d-7500-b912-567bf9474a0d", "toProperty": "in-ReFetchOK" }, { "fromId": "74b554c6-a22f-f38a-6731-de59d0dc1db7", "fromProperty": "out-SetPropertiesOK", "toId": "c0897f35-9a8d-7500-b912-567bf9474a0d", "toProperty": "in-SetPropertiesOK" }, { "fromId": "74b554c6-a22f-f38a-6731-de59d0dc1db7", "fromProperty": "out-CreateOK", "toId": "c0897f35-9a8d-7500-b912-567bf9474a0d", "toProperty": "in-CreateOK" }, { "fromId": "74b554c6-a22f-f38a-6731-de59d0dc1db7", "fromProperty": "out-CreateWithSourceOK", "toId": "c0897f35-9a8d-7500-b912-567bf9474a0d", "toProperty": "in-CreateWithSourceOK" }, { "fromId": "74b554c6-a22f-f38a-6731-de59d0dc1db7", "fromProperty": "success", "toId": "c0897f35-9a8d-7500-b912-567bf9474a0d", "toProperty": "run" }, { "fromId": "51632e29-7267-2640-ec14-a894b8cd1e28", "fromProperty": "success", "toId": "b4e1c991-5fdb-e0a0-e129-ea485550022b", "toProperty": "call" }, { "fromId": "b4e1c991-5fdb-e0a0-e129-ea485550022b", "fromProperty": "success", "toId": "a825c655-2dd8-1371-a8ad-79db0d1b0dcf", "toProperty": "run" }, { "fromId": "b4e1c991-5fdb-e0a0-e129-ea485550022b", "fromProperty": "out-CreateAndSetOK", "toId": "a825c655-2dd8-1371-a8ad-79db0d1b0dcf", "toProperty": "in-CreateAndSetOK" }, { "fromId": "19eaaead-d8d3-2a15-808a-f3acd3cfe77e", "fromProperty": "out-TotalCountOK", "toId": "d549e5cb-5954-63e7-072b-c3445aab463f", "toProperty": "in-TotalCountOK" }, { "fromId": "51632e29-7267-2640-ec14-a894b8cd1e28", "fromProperty": "success", "toId": "ebc5f611-e6d5-0541-6ce4-b2930d9b1e4b", "toProperty": "call" }, { "fromId": "ebc5f611-e6d5-0541-6ce4-b2930d9b1e4b", "fromProperty": "success", "toId": "d0ef5ced-76bf-9114-4654-5b96fabf12d6", "toProperty": "run" }, { "fromId": "ebc5f611-e6d5-0541-6ce4-b2930d9b1e4b", "fromProperty": "out-AggOK", "toId": "d0ef5ced-76bf-9114-4654-5b96fabf12d6", "toProperty": "in-AggOK" }, { "fromId": "ebc5f611-e6d5-0541-6ce4-b2930d9b1e4b", "fromProperty": "out-FilterOK", "toId": "d0ef5ced-76bf-9114-4654-5b96fabf12d6", "toProperty": "in-FilterOK" }, { "fromId": "ebc5f611-e6d5-0541-6ce4-b2930d9b1e4b", "fromProperty": "out-JsFilterOK", "toId": "d0ef5ced-76bf-9114-4654-5b96fabf12d6", "toProperty": "in-JsFilterOK" } ], "roots": [ { "id": "51632e29-7267-2640-ec14-a894b8cd1e28", "type": "net.noodl.user.LogIn", "x": 514.5, "y": -36, "parameters": { "username": "test", "password": "test" }, "ports": [], "dynamicports": [], "children": [] }, { "id": "6b86ecf0-fcfb-b241-64ff-600db9e1cb0b", "type": "Group", "x": 210.34821428571422, "y": -306.66071428571433, "parameters": { "sizeMode": "contentHeight", "marginBottom": { "value": 10, "unit": "px" } }, "ports": [], "dynamicports": [], "children": [ { "id": "512d377b-8632-21d6-4734-42d3c758df03", "type": "/Shared/Test Runner", "parameters": { "Title": "Records and Objects" }, "ports": [], "dynamicports": [], "children": [] } ] }, { "id": "1cff3b70-a6f4-48b7-d682-b44746dac5c5", "type": "Static Data", "label": "All Tests", "x": 514.3482142857142, "y": -274.66071428571433, "parameters": { "type": "json", "json": "[\n {\n \"id\":\"records-1\",\n \"desc\":\"Query Records\"\n },\n {\n \"id\":\"records-2\",\n \"desc\":\"New Record\"\n },\n {\n \"id\":\"records-3\",\n \"desc\":\"Delete Record\"\n },\n {\n \"id\":\"records-4\",\n \"desc\":\"Record Relations\"\n },\n {\n \"id\":\"records-5\",\n \"desc\":\"Object Set Properties\"\n },\n {\n \"id\":\"records-6\",\n \"desc\":\"Aggregate\"\n } \n]" }, "ports": [], "dynamicports": [], "children": [], "metadata": { "merge": { "soureCodePorts": [ "json" ] } } }, { "id": "c0897f35-9a8d-7500-b912-567bf9474a0d", "type": "JavaScriptFunction", "label": "Verify", "x": 1072.6163265306122, "y": 70.80510204081634, "parameters": { "functionScript": "describe('records-2',() => {\n expect(Inputs.CreateWithSourceOK === true)\n expect(Inputs.SetPropertiesOK === true)\n expect(Inputs.CreateOK === true)\n expect(Inputs.ReFetchOK === true)\n})" }, "ports": [], "dynamicports": [ { "name": "in-CreateWithSourceOK", "displayName": "CreateWithSourceOK", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "in-SetPropertiesOK", "displayName": "SetPropertiesOK", "plug": "input", "type": "*", "group": "Inputs", "index": 5 }, { "name": "in-CreateOK", "displayName": "CreateOK", "plug": "input", "type": "*", "group": "Inputs", "index": 6 }, { "name": "in-ReFetchOK", "displayName": "ReFetchOK", "plug": "input", "type": "*", "group": "Inputs", "index": 7 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "adf740a4-2390-b4be-45ba-aa0ea36614d1", "type": "JavaScriptFunction", "label": "Verify", "x": 1075.6163265306122, "y": 241.80510204081634, "parameters": { "functionScript": "describe('records-3',() => {\n expect(Inputs.DeleteOK === true)\n})" }, "ports": [], "dynamicports": [ { "name": "in-DeleteOK", "displayName": "DeleteOK", "plug": "input", "type": "*", "group": "Inputs", "index": 4 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "d549e5cb-5954-63e7-072b-c3445aab463f", "type": "JavaScriptFunction", "x": 1071.1163265306122, "y": -110.19489795918366, "parameters": { "functionScript": "describe('records-1',() => {\n expect(Inputs.QueryOK === true)\n expect(Inputs.JSQueryOK === true)\n expect(Inputs.PointerQueryOK === true)\n expect(Inputs.RelationQueryOK === true)\n expect(Inputs.TotalCountOK === true)\n})" }, "ports": [], "dynamicports": [ { "name": "in-QueryOK", "displayName": "QueryOK", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "in-JSQueryOK", "displayName": "JSQueryOK", "plug": "input", "type": "*", "group": "Inputs", "index": 5 }, { "name": "in-PointerQueryOK", "displayName": "PointerQueryOK", "plug": "input", "type": "*", "group": "Inputs", "index": 6 }, { "name": "in-RelationQueryOK", "displayName": "RelationQueryOK", "plug": "input", "type": "*", "group": "Inputs", "index": 7 }, { "name": "in-TotalCountOK", "displayName": "TotalCountOK", "plug": "input", "type": "*", "group": "Inputs", "index": 8 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "19eaaead-d8d3-2a15-808a-f3acd3cfe77e", "type": "CloudFunction2", "x": 794.043820861678, "y": -171.38786848072561, "parameters": { "function": "Records and Objects/Query Records" }, "ports": [], "dynamicports": [ { "plug": "input", "type": { "name": "component", "components": [ "/#__cloud__/API Tests/Files", "/#__cloud__/API Tests/JSCall", "/#__cloud__/API Tests/Records", "/#__cloud__/API Tests/Users", "/#__cloud__/API/paramtest/:test/PUT", "/#__cloud__/API/test/GET", "/#__cloud__/API/test/POST", "/#__cloud__/Core/REST", "/#__cloud__/Core/Run Tasks", "/#__cloud__/Records and Objects/Aggregate", "/#__cloud__/Records and Objects/Delete Record", "/#__cloud__/Records and Objects/New Record", "/#__cloud__/Records and Objects/Object Set Properties", "/#__cloud__/Records and Objects/Query Records", "/#__cloud__/Records and Objects/Relations", "/#__cloud__/Runtime/InfEventLoop", "/#__cloud__/Runtime/OutOfMemory", "/#__cloud__/Runtime/ShouldRestart", "/#__cloud__/Runtime/WhileTrue", "/#__cloud__/Simple/FailAuth", "/#__cloud__/Simple/Failure Result", "/#__cloud__/Simple/FuncJSTest", "/#__cloud__/Simple/Get Config", "/#__cloud__/Simple/No Auth OK", "/#__cloud__/Simple/SimpleReq", "/#__cloud__/Users/Create No Log In User", "/#__cloud__/Users/Impersonate", "/#__cloud__/Users/Log In", "/#__cloud__/Users/Set Properties", "/#__cloud__/Users/Test Email Verified Reset" ], "ignoreSheetName": true, "allowEditOnly": true }, "group": "General", "displayName": "Function", "name": "function", "index": 4 }, { "name": "out-QueryOK", "displayName": "QueryOK", "type": "*", "plug": "output", "group": "Results", "index": 5 }, { "name": "out-JSQueryOK", "displayName": "JSQueryOK", "type": "*", "plug": "output", "group": "Results", "index": 6 }, { "name": "out-PointerQueryOK", "displayName": "PointerQueryOK", "type": "*", "plug": "output", "group": "Results", "index": 7 }, { "name": "out-RelationQueryOK", "displayName": "RelationQueryOK", "type": "*", "plug": "output", "group": "Results", "index": 8 }, { "name": "out-TotalCountOK", "displayName": "TotalCountOK", "type": "*", "plug": "output", "group": "Results", "index": 9 } ], "children": [] }, { "id": "cd9501dc-1752-eaf3-fac3-84d65ed285d1", "type": "CloudFunction2", "x": 807.043820861678, "y": 373.6121315192744, "parameters": { "function": "Records and Objects/Relations" }, "ports": [], "dynamicports": [ { "plug": "input", "type": { "name": "component", "components": [ "/#__cloud__/API Tests/Files", "/#__cloud__/API Tests/JSCall", "/#__cloud__/API Tests/Records", "/#__cloud__/API Tests/Users", "/#__cloud__/API/paramtest/:test/PUT", "/#__cloud__/API/test/GET", "/#__cloud__/API/test/POST", "/#__cloud__/Core/REST", "/#__cloud__/Core/Run Tasks", "/#__cloud__/Records and Objects/Aggregate", "/#__cloud__/Records and Objects/Delete Record", "/#__cloud__/Records and Objects/New Record", "/#__cloud__/Records and Objects/Object Set Properties", "/#__cloud__/Records and Objects/Query Records", "/#__cloud__/Records and Objects/Relations", "/#__cloud__/Runtime/InfEventLoop", "/#__cloud__/Runtime/OutOfMemory", "/#__cloud__/Runtime/ShouldRestart", "/#__cloud__/Runtime/WhileTrue", "/#__cloud__/Simple/FailAuth", "/#__cloud__/Simple/Failure Result", "/#__cloud__/Simple/FuncJSTest", "/#__cloud__/Simple/Get Config", "/#__cloud__/Simple/No Auth OK", "/#__cloud__/Simple/SimpleReq", "/#__cloud__/Users/Create No Log In User", "/#__cloud__/Users/Impersonate", "/#__cloud__/Users/Log In", "/#__cloud__/Users/Set Properties", "/#__cloud__/Users/Test Email Verified Reset" ], "ignoreSheetName": true, "allowEditOnly": true }, "group": "General", "displayName": "Function", "name": "function", "index": 4 }, { "name": "out-AddRelationOK", "displayName": "AddRelationOK", "type": "*", "plug": "output", "group": "Results", "index": 5 }, { "name": "out-RemoveRelationOK", "displayName": "RemoveRelationOK", "type": "*", "plug": "output", "group": "Results", "index": 6 } ], "children": [] }, { "id": "f264ec07-f58a-a845-ac3a-243fe0ae475b", "type": "JavaScriptFunction", "label": "Verify", "x": 1071.043820861678, "y": 362.6121315192744, "parameters": { "functionScript": "describe('records-4',() => {\n expect(Inputs.AddRelationOK === true)\n expect(Inputs.RemoveRelationOK === true)\n})" }, "ports": [], "dynamicports": [ { "name": "in-AddRelationOK", "displayName": "AddRelationOK", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "in-RemoveRelationOK", "displayName": "RemoveRelationOK", "plug": "input", "type": "*", "group": "Inputs", "index": 5 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "c4db8abf-46af-3571-e4c6-8cec7beaa2c2", "type": "CloudFunction2", "x": 803.043820861678, "y": 237.61213151927439, "parameters": { "function": "Records and Objects/Delete Record" }, "ports": [], "dynamicports": [ { "plug": "input", "type": { "name": "component", "components": [ "/#__cloud__/API Tests/Files", "/#__cloud__/API Tests/JSCall", "/#__cloud__/API Tests/Records", "/#__cloud__/API Tests/Users", "/#__cloud__/API/paramtest/:test/PUT", "/#__cloud__/API/test/GET", "/#__cloud__/API/test/POST", "/#__cloud__/Core/REST", "/#__cloud__/Core/Run Tasks", "/#__cloud__/Records and Objects/Aggregate", "/#__cloud__/Records and Objects/Delete Record", "/#__cloud__/Records and Objects/New Record", "/#__cloud__/Records and Objects/Object Set Properties", "/#__cloud__/Records and Objects/Query Records", "/#__cloud__/Records and Objects/Relations", "/#__cloud__/Runtime/InfEventLoop", "/#__cloud__/Runtime/OutOfMemory", "/#__cloud__/Runtime/ShouldRestart", "/#__cloud__/Runtime/WhileTrue", "/#__cloud__/Simple/FailAuth", "/#__cloud__/Simple/Failure Result", "/#__cloud__/Simple/FuncJSTest", "/#__cloud__/Simple/Get Config", "/#__cloud__/Simple/No Auth OK", "/#__cloud__/Simple/SimpleReq", "/#__cloud__/Users/Create No Log In User", "/#__cloud__/Users/Impersonate", "/#__cloud__/Users/Log In", "/#__cloud__/Users/Set Properties", "/#__cloud__/Users/Test Email Verified Reset" ], "ignoreSheetName": true, "allowEditOnly": true }, "group": "General", "displayName": "Function", "name": "function", "index": 4 }, { "name": "out-DeleteOK", "displayName": "DeleteOK", "type": "*", "plug": "output", "group": "Results", "index": 5 } ], "children": [] }, { "id": "74b554c6-a22f-f38a-6731-de59d0dc1db7", "type": "CloudFunction2", "x": 799.043820861678, "y": 47.612131519274385, "parameters": { "function": "Records and Objects/New Record" }, "ports": [], "dynamicports": [ { "plug": "input", "type": { "name": "component", "components": [ "/#__cloud__/API Tests/Files", "/#__cloud__/API Tests/JSCall", "/#__cloud__/API Tests/Records", "/#__cloud__/API Tests/Users", "/#__cloud__/API/paramtest/:test/PUT", "/#__cloud__/API/test/GET", "/#__cloud__/API/test/POST", "/#__cloud__/Core/REST", "/#__cloud__/Core/Run Tasks", "/#__cloud__/Records and Objects/Aggregate", "/#__cloud__/Records and Objects/Delete Record", "/#__cloud__/Records and Objects/New Record", "/#__cloud__/Records and Objects/Object Set Properties", "/#__cloud__/Records and Objects/Query Records", "/#__cloud__/Records and Objects/Relations", "/#__cloud__/Runtime/InfEventLoop", "/#__cloud__/Runtime/OutOfMemory", "/#__cloud__/Runtime/ShouldRestart", "/#__cloud__/Runtime/WhileTrue", "/#__cloud__/Simple/FailAuth", "/#__cloud__/Simple/Failure Result", "/#__cloud__/Simple/FuncJSTest", "/#__cloud__/Simple/Get Config", "/#__cloud__/Simple/No Auth OK", "/#__cloud__/Simple/SimpleReq", "/#__cloud__/Users/Create No Log In User", "/#__cloud__/Users/Impersonate", "/#__cloud__/Users/Log In", "/#__cloud__/Users/Set Properties", "/#__cloud__/Users/Test Email Verified Reset" ], "ignoreSheetName": true, "allowEditOnly": true }, "group": "General", "displayName": "Function", "name": "function", "index": 4 }, { "name": "out-ReFetchOK", "displayName": "ReFetchOK", "type": "*", "plug": "output", "group": "Results", "index": 5 }, { "name": "out-SetPropertiesOK", "displayName": "SetPropertiesOK", "type": "*", "plug": "output", "group": "Results", "index": 6 }, { "name": "out-CreateOK", "displayName": "CreateOK", "type": "*", "plug": "output", "group": "Results", "index": 7 }, { "name": "out-CreateWithSourceOK", "displayName": "CreateWithSourceOK", "type": "*", "plug": "output", "group": "Results", "index": 8 } ], "children": [] }, { "id": "b4e1c991-5fdb-e0a0-e129-ea485550022b", "type": "CloudFunction2", "x": 803.9950071047075, "y": 553.5635324070032, "parameters": { "function": "Records and Objects/Object Set Properties" }, "ports": [], "dynamicports": [ { "plug": "input", "type": { "name": "component", "components": [ "/#__cloud__/API Tests/Files", "/#__cloud__/API Tests/JSCall", "/#__cloud__/API Tests/Records", "/#__cloud__/API Tests/Users", "/#__cloud__/API/paramtest/:test/PUT", "/#__cloud__/API/test/GET", "/#__cloud__/API/test/POST", "/#__cloud__/Core/REST", "/#__cloud__/Core/Run Tasks", "/#__cloud__/Records and Objects/Aggregate", "/#__cloud__/Records and Objects/Delete Record", "/#__cloud__/Records and Objects/New Record", "/#__cloud__/Records and Objects/Object Set Properties", "/#__cloud__/Records and Objects/Query Records", "/#__cloud__/Records and Objects/Relations", "/#__cloud__/Runtime/InfEventLoop", "/#__cloud__/Runtime/OutOfMemory", "/#__cloud__/Runtime/ShouldRestart", "/#__cloud__/Runtime/WhileTrue", "/#__cloud__/Simple/FailAuth", "/#__cloud__/Simple/Failure Result", "/#__cloud__/Simple/FuncJSTest", "/#__cloud__/Simple/Get Config", "/#__cloud__/Simple/No Auth OK", "/#__cloud__/Simple/SimpleReq", "/#__cloud__/Users/Create No Log In User", "/#__cloud__/Users/Impersonate", "/#__cloud__/Users/Log In", "/#__cloud__/Users/Set Properties", "/#__cloud__/Users/Test Email Verified Reset" ], "ignoreSheetName": true, "allowEditOnly": true }, "group": "General", "displayName": "Function", "name": "function", "index": 4 }, { "name": "out-CreateAndSetOK", "displayName": "CreateAndSetOK", "type": "*", "plug": "output", "group": "Results", "index": 5 } ], "children": [] }, { "id": "a825c655-2dd8-1371-a8ad-79db0d1b0dcf", "type": "JavaScriptFunction", "label": "Verify", "x": 1074.9950071047074, "y": 571.5635324070032, "parameters": { "functionScript": "describe('records-5',() => {\n expect(Inputs.CreateAndSetOK === true)\n})" }, "ports": [], "dynamicports": [ { "name": "in-CreateAndSetOK", "displayName": "CreateAndSetOK", "plug": "input", "type": "*", "group": "Inputs", "index": 4 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "ebc5f611-e6d5-0541-6ce4-b2930d9b1e4b", "type": "CloudFunction2", "x": 803.7888097446977, "y": 739.8293538431844, "parameters": { "function": "Records and Objects/Aggregate" }, "ports": [], "dynamicports": [ { "plug": "input", "type": { "name": "component", "components": [ "/#__cloud__/API Tests/Files", "/#__cloud__/API Tests/JSCall", "/#__cloud__/API Tests/Records", "/#__cloud__/API Tests/Users", "/#__cloud__/API/paramtest/:test/PUT", "/#__cloud__/API/test/GET", "/#__cloud__/API/test/POST", "/#__cloud__/Core/REST", "/#__cloud__/Core/Run Tasks", "/#__cloud__/Records and Objects/Aggregate", "/#__cloud__/Records and Objects/Delete Record", "/#__cloud__/Records and Objects/New Record", "/#__cloud__/Records and Objects/Object Set Properties", "/#__cloud__/Records and Objects/Query Records", "/#__cloud__/Records and Objects/Relations", "/#__cloud__/Runtime/InfEventLoop", "/#__cloud__/Runtime/OutOfMemory", "/#__cloud__/Runtime/ShouldRestart", "/#__cloud__/Runtime/WhileTrue", "/#__cloud__/Simple/FailAuth", "/#__cloud__/Simple/Failure Result", "/#__cloud__/Simple/FuncJSTest", "/#__cloud__/Simple/Get Config", "/#__cloud__/Simple/No Auth OK", "/#__cloud__/Simple/SimpleReq", "/#__cloud__/Users/Create No Log In User", "/#__cloud__/Users/Impersonate", "/#__cloud__/Users/Log In", "/#__cloud__/Users/Set Properties", "/#__cloud__/Users/Test Email Verified Reset" ], "ignoreSheetName": true, "allowEditOnly": true }, "group": "General", "displayName": "Function", "name": "function", "index": 4 }, { "name": "out-AggOK", "displayName": "AggOK", "type": "*", "plug": "output", "group": "Results", "index": 5 }, { "name": "out-FilterOK", "displayName": "FilterOK", "type": "*", "plug": "output", "group": "Results", "index": 6 }, { "name": "out-JsFilterOK", "displayName": "JsFilterOK", "type": "*", "plug": "output", "group": "Results", "index": 7 } ], "children": [] }, { "id": "d0ef5ced-76bf-9114-4654-5b96fabf12d6", "type": "JavaScriptFunction", "label": "Verify", "x": 1059, "y": 743, "parameters": { "functionScript": "describe('records-6',() => {\n expect(Inputs.AggOK === true)\n expect(Inputs.FilterOK === true)\n expect(Inputs.JsFilterOK === true)\n})" }, "ports": [], "dynamicports": [ { "name": "in-AggOK", "displayName": "AggOK", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "in-FilterOK", "displayName": "FilterOK", "plug": "input", "type": "*", "group": "Inputs", "index": 5 }, { "name": "in-JsFilterOK", "displayName": "JsFilterOK", "plug": "input", "type": "*", "group": "Inputs", "index": 6 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } } ], "visualRoots": [ "6b86ecf0-fcfb-b241-64ff-600db9e1cb0b" ] }, "metadata": { "isFolderComponent": false } }, { "name": "/Tests - Runtime", "id": "f49f192b-c503-d62d-9b77-de6840075314", "graph": { "connections": [ { "fromId": "dcd949e8-f3c2-222e-8ffc-b01d3bbe0d94", "fromProperty": "items", "toId": "373a9ead-86af-ace1-472b-2f8f369e403b", "toProperty": "Tests" }, { "fromId": "cee6ab70-0db6-48c6-191d-6de0bb94f27c", "fromProperty": "success", "toId": "e017fc03-9376-a65c-cf74-760ef3140dc6", "toProperty": "run" }, { "fromId": "cee6ab70-0db6-48c6-191d-6de0bb94f27c", "fromProperty": "failure", "toId": "57c48e64-2d1e-4fac-a7d1-04e0c8839218", "toProperty": "call" }, { "fromId": "57c48e64-2d1e-4fac-a7d1-04e0c8839218", "fromProperty": "success", "toId": "056282f0-6a67-d5ae-f145-82c96833dc02", "toProperty": "run" }, { "fromId": "57c48e64-2d1e-4fac-a7d1-04e0c8839218", "fromProperty": "out-OK", "toId": "056282f0-6a67-d5ae-f145-82c96833dc02", "toProperty": "in-OK" }, { "fromId": "57c48e64-2d1e-4fac-a7d1-04e0c8839218", "fromProperty": "success", "toId": "704c8e25-7d1e-dfd6-4774-2d8480f35610", "toProperty": "call" }, { "fromId": "704c8e25-7d1e-dfd6-4774-2d8480f35610", "fromProperty": "success", "toId": "c355351b-1a2b-03d8-1f4b-7fea8d4c1d8d", "toProperty": "run" }, { "fromId": "e90ea71d-a099-5cde-e400-e9dc13579e8b", "fromProperty": "success", "toId": "c58a1195-8b4f-fdf5-94ff-cbabf9020001", "toProperty": "run" }, { "fromId": "e90ea71d-a099-5cde-e400-e9dc13579e8b", "fromProperty": "out-OK", "toId": "c58a1195-8b4f-fdf5-94ff-cbabf9020001", "toProperty": "in-OK" }, { "fromId": "704c8e25-7d1e-dfd6-4774-2d8480f35610", "fromProperty": "failure", "toId": "e90ea71d-a099-5cde-e400-e9dc13579e8b", "toProperty": "call" }, { "fromId": "373a9ead-86af-ace1-472b-2f8f369e403b", "fromProperty": "Run", "toId": "cee6ab70-0db6-48c6-191d-6de0bb94f27c", "toProperty": "call" } ], "roots": [ { "id": "482097cd-8811-9317-6772-1763335a20b3", "type": "Group", "x": 210.34821428571422, "y": -306.66071428571433, "parameters": { "sizeMode": "contentHeight", "marginBottom": { "value": 10, "unit": "px" } }, "ports": [], "dynamicports": [], "children": [ { "id": "373a9ead-86af-ace1-472b-2f8f369e403b", "type": "/Shared/Test Runner", "parameters": { "Title": "Runtime" }, "ports": [], "dynamicports": [], "children": [] } ] }, { "id": "dcd949e8-f3c2-222e-8ffc-b01d3bbe0d94", "type": "Static Data", "label": "All Tests", "x": 504.3482142857142, "y": -368.66071428571433, "parameters": { "csv": "id,desc\nruntime-1,\"Run out of memory\"\nruntime-2,\"While(true) timeout\"" }, "ports": [], "dynamicports": [], "children": [] }, { "id": "cee6ab70-0db6-48c6-191d-6de0bb94f27c", "type": "CloudFunction2", "x": 519.3482142857142, "y": -113.16071428571433, "parameters": { "function": "Runtime/OutOfMemory" }, "ports": [], "dynamicports": [ { "plug": "input", "type": { "name": "component", "components": [ "/#__cloud__/API Tests/Files", "/#__cloud__/API Tests/JSCall", "/#__cloud__/API Tests/Records", "/#__cloud__/API Tests/Users", "/#__cloud__/API/paramtest/:test/PUT", "/#__cloud__/API/test/GET", "/#__cloud__/API/test/POST", "/#__cloud__/Core/REST", "/#__cloud__/Core/Run Tasks", "/#__cloud__/Records and Objects/Aggregate", "/#__cloud__/Records and Objects/Delete Record", "/#__cloud__/Records and Objects/New Record", "/#__cloud__/Records and Objects/Object Set Properties", "/#__cloud__/Records and Objects/Query Records", "/#__cloud__/Records and Objects/Relations", "/#__cloud__/Runtime/InfEventLoop", "/#__cloud__/Runtime/OutOfMemory", "/#__cloud__/Runtime/ShouldRestart", "/#__cloud__/Runtime/WhileTrue", "/#__cloud__/Simple/FailAuth", "/#__cloud__/Simple/Failure Result", "/#__cloud__/Simple/FuncJSTest", "/#__cloud__/Simple/Get Config", "/#__cloud__/Simple/No Auth OK", "/#__cloud__/Simple/SimpleReq", "/#__cloud__/Users/Create No Log In User", "/#__cloud__/Users/Impersonate", "/#__cloud__/Users/Log In", "/#__cloud__/Users/Set Properties", "/#__cloud__/Users/Test Email Verified Reset" ], "ignoreSheetName": true, "allowEditOnly": true }, "group": "General", "displayName": "Function", "name": "function", "index": 4 } ], "children": [] }, { "id": "e017fc03-9376-a65c-cf74-760ef3140dc6", "type": "JavaScriptFunction", "label": "Should fail", "x": 739.6815476190475, "y": 22.172619047619037, "parameters": { "functionScript": "Noodl.Objects['runtime-1'].status = \"fail\"" }, "ports": [], "dynamicports": [], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "57c48e64-2d1e-4fac-a7d1-04e0c8839218", "type": "CloudFunction2", "x": 742.4315476190475, "y": -148.32738095238096, "parameters": { "function": "Runtime/ShouldRestart" }, "ports": [], "dynamicports": [ { "plug": "input", "type": { "name": "component", "components": [ "/#__cloud__/API Tests/Files", "/#__cloud__/API Tests/JSCall", "/#__cloud__/API Tests/Records", "/#__cloud__/API Tests/Users", "/#__cloud__/API/paramtest/:test/PUT", "/#__cloud__/API/test/GET", "/#__cloud__/API/test/POST", "/#__cloud__/Core/REST", "/#__cloud__/Core/Run Tasks", "/#__cloud__/Records and Objects/Aggregate", "/#__cloud__/Records and Objects/Delete Record", "/#__cloud__/Records and Objects/New Record", "/#__cloud__/Records and Objects/Object Set Properties", "/#__cloud__/Records and Objects/Query Records", "/#__cloud__/Records and Objects/Relations", "/#__cloud__/Runtime/InfEventLoop", "/#__cloud__/Runtime/OutOfMemory", "/#__cloud__/Runtime/ShouldRestart", "/#__cloud__/Runtime/WhileTrue", "/#__cloud__/Simple/FailAuth", "/#__cloud__/Simple/Failure Result", "/#__cloud__/Simple/FuncJSTest", "/#__cloud__/Simple/Get Config", "/#__cloud__/Simple/No Auth OK", "/#__cloud__/Simple/SimpleReq", "/#__cloud__/Users/Create No Log In User", "/#__cloud__/Users/Impersonate", "/#__cloud__/Users/Log In", "/#__cloud__/Users/Set Properties", "/#__cloud__/Users/Test Email Verified Reset" ], "ignoreSheetName": true, "allowEditOnly": true }, "group": "General", "displayName": "Function", "name": "function", "index": 4 }, { "name": "out-OK", "displayName": "OK", "type": "*", "plug": "output", "group": "Results", "index": 5 } ], "children": [] }, { "id": "056282f0-6a67-d5ae-f145-82c96833dc02", "type": "JavaScriptFunction", "label": "Verify", "x": 994.4315476190475, "y": -143.32738095238096, "parameters": { "functionScript": "describe('runtime-1',() => {\n expect(Inputs.OK === true)\n})" }, "ports": [], "dynamicports": [ { "name": "in-OK", "displayName": "OK", "plug": "input", "type": "*", "group": "Inputs", "index": 4 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "704c8e25-7d1e-dfd6-4774-2d8480f35610", "type": "CloudFunction2", "x": 501.9315476190476, "y": 279.33928571428567, "parameters": { "function": "Runtime/WhileTrue" }, "ports": [], "dynamicports": [ { "plug": "input", "type": { "name": "component", "components": [ "/#__cloud__/API Tests/Files", "/#__cloud__/API Tests/JSCall", "/#__cloud__/API Tests/Records", "/#__cloud__/API Tests/Users", "/#__cloud__/API/paramtest/:test/PUT", "/#__cloud__/API/test/GET", "/#__cloud__/API/test/POST", "/#__cloud__/Core/REST", "/#__cloud__/Core/Run Tasks", "/#__cloud__/Records and Objects/Aggregate", "/#__cloud__/Records and Objects/Delete Record", "/#__cloud__/Records and Objects/New Record", "/#__cloud__/Records and Objects/Object Set Properties", "/#__cloud__/Records and Objects/Query Records", "/#__cloud__/Records and Objects/Relations", "/#__cloud__/Runtime/InfEventLoop", "/#__cloud__/Runtime/OutOfMemory", "/#__cloud__/Runtime/ShouldRestart", "/#__cloud__/Runtime/WhileTrue", "/#__cloud__/Simple/FailAuth", "/#__cloud__/Simple/Failure Result", "/#__cloud__/Simple/FuncJSTest", "/#__cloud__/Simple/Get Config", "/#__cloud__/Simple/No Auth OK", "/#__cloud__/Simple/SimpleReq", "/#__cloud__/Users/Create No Log In User", "/#__cloud__/Users/Impersonate", "/#__cloud__/Users/Log In", "/#__cloud__/Users/Set Properties", "/#__cloud__/Users/Test Email Verified Reset" ], "ignoreSheetName": true, "allowEditOnly": true }, "group": "General", "displayName": "Function", "name": "function", "index": 4 } ], "children": [] }, { "id": "c355351b-1a2b-03d8-1f4b-7fea8d4c1d8d", "type": "JavaScriptFunction", "label": "Should fail", "x": 744.9315476190476, "y": 407.33928571428567, "parameters": { "functionScript": "Noodl.Objects['runtime-2'].status = \"fail\"" }, "ports": [], "dynamicports": [], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "e90ea71d-a099-5cde-e400-e9dc13579e8b", "type": "CloudFunction2", "x": 738.9315476190476, "y": 266.33928571428567, "parameters": { "function": "Runtime/ShouldRestart" }, "ports": [], "dynamicports": [ { "plug": "input", "type": { "name": "component", "components": [ "/#__cloud__/API Tests/Files", "/#__cloud__/API Tests/JSCall", "/#__cloud__/API Tests/Records", "/#__cloud__/API Tests/Users", "/#__cloud__/API/paramtest/:test/PUT", "/#__cloud__/API/test/GET", "/#__cloud__/API/test/POST", "/#__cloud__/Core/REST", "/#__cloud__/Core/Run Tasks", "/#__cloud__/Records and Objects/Aggregate", "/#__cloud__/Records and Objects/Delete Record", "/#__cloud__/Records and Objects/New Record", "/#__cloud__/Records and Objects/Object Set Properties", "/#__cloud__/Records and Objects/Query Records", "/#__cloud__/Records and Objects/Relations", "/#__cloud__/Runtime/InfEventLoop", "/#__cloud__/Runtime/OutOfMemory", "/#__cloud__/Runtime/ShouldRestart", "/#__cloud__/Runtime/WhileTrue", "/#__cloud__/Simple/FailAuth", "/#__cloud__/Simple/Failure Result", "/#__cloud__/Simple/FuncJSTest", "/#__cloud__/Simple/Get Config", "/#__cloud__/Simple/No Auth OK", "/#__cloud__/Simple/SimpleReq", "/#__cloud__/Users/Create No Log In User", "/#__cloud__/Users/Impersonate", "/#__cloud__/Users/Log In", "/#__cloud__/Users/Set Properties", "/#__cloud__/Users/Test Email Verified Reset" ], "ignoreSheetName": true, "allowEditOnly": true }, "group": "General", "displayName": "Function", "name": "function", "index": 4 }, { "name": "out-OK", "displayName": "OK", "type": "*", "plug": "output", "group": "Results", "index": 5 } ], "children": [] }, { "id": "c58a1195-8b4f-fdf5-94ff-cbabf9020001", "type": "JavaScriptFunction", "label": "Verify", "x": 973.9315476190476, "y": 270.33928571428567, "parameters": { "functionScript": "describe('runtime-2',() => {\n expect(Inputs.OK === true)\n})" }, "ports": [], "dynamicports": [ { "name": "in-OK", "displayName": "OK", "plug": "input", "type": "*", "group": "Inputs", "index": 4 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } } ], "visualRoots": [ "482097cd-8811-9317-6772-1763335a20b3" ], "comments": [ { "text": "Test running out of memory and restarting isolate", "width": 737, "height": 392, "fill": true, "x": 460, "y": -203, "id": "ecaaf342-006a-8ff9-a561-2c02cc38b364" }, { "text": "Test locking isolate, should time out and then be fine", "width": 737, "height": 392, "fill": true, "x": 459, "y": 211, "id": "1f5b5e17-c6a1-1769-9389-52068c10af96" } ] } }, { "name": "/Tests - Simple", "id": "25251c69-d410-2677-10c5-d98fc81b36aa", "graph": { "connections": [ { "fromId": "013b0566-dde0-77d2-f8e0-d9be2e2f297b", "fromProperty": "success", "toId": "d0030dc2-18ce-c260-2a34-3c5ecf99fc4b", "toProperty": "Do" }, { "fromId": "d0030dc2-18ce-c260-2a34-3c5ecf99fc4b", "fromProperty": "Done", "toId": "9c9c8cf9-4b02-14bc-9002-5b4aacc0170b", "toProperty": "login" }, { "fromId": "9c9c8cf9-4b02-14bc-9002-5b4aacc0170b", "fromProperty": "success", "toId": "ca9ba05a-cb17-c451-2758-2f2a9ef1547a", "toProperty": "Do" }, { "fromId": "9c9c8cf9-4b02-14bc-9002-5b4aacc0170b", "fromProperty": "success", "toId": "15b20dd1-c028-8ee7-afb0-79d39476c0b9", "toProperty": "Do" }, { "fromId": "f980ec97-38c4-60b1-a24f-0526c51fcb31", "fromProperty": "items", "toId": "a4c0f1b4-5296-92d9-050f-3860058d1cb2", "toProperty": "Tests" }, { "fromId": "a4c0f1b4-5296-92d9-050f-3860058d1cb2", "fromProperty": "Run", "toId": "013b0566-dde0-77d2-f8e0-d9be2e2f297b", "toProperty": "login" }, { "fromId": "013b0566-dde0-77d2-f8e0-d9be2e2f297b", "fromProperty": "success", "toId": "618da94d-14ab-6788-e8d5-8095824c9571", "toProperty": "Do" }, { "fromId": "013b0566-dde0-77d2-f8e0-d9be2e2f297b", "fromProperty": "success", "toId": "c06acf2c-1023-5a46-3031-d4f23f002375", "toProperty": "Do" }, { "fromId": "2c88bcca-5c36-a6ea-d38c-5ac6b4c6422b", "fromProperty": "out-TestProtected", "toId": "ec4e345e-822b-9c5e-418c-a26d8e4ab227", "toProperty": "in-TestProtected" }, { "fromId": "2c88bcca-5c36-a6ea-d38c-5ac6b4c6422b", "fromProperty": "out-TestParameter", "toId": "ec4e345e-822b-9c5e-418c-a26d8e4ab227", "toProperty": "in-TestParameter" }, { "fromId": "2c88bcca-5c36-a6ea-d38c-5ac6b4c6422b", "fromProperty": "success", "toId": "ec4e345e-822b-9c5e-418c-a26d8e4ab227", "toProperty": "run" }, { "fromId": "9c9c8cf9-4b02-14bc-9002-5b4aacc0170b", "fromProperty": "success", "toId": "2c88bcca-5c36-a6ea-d38c-5ac6b4c6422b", "toProperty": "call" }, { "fromId": "a9dcc0c5-93d9-8f15-91db-629222d7c7f4", "fromProperty": "value", "toId": "ec4e345e-822b-9c5e-418c-a26d8e4ab227", "toProperty": "in-TestParameterVerify" }, { "fromId": "22b0424a-6612-7d6f-b4b6-14d35880b924", "fromProperty": "value", "toId": "ec4e345e-822b-9c5e-418c-a26d8e4ab227", "toProperty": "in-LocalOverride" } ], "roots": [ { "id": "ca9ba05a-cb17-c451-2758-2f2a9ef1547a", "type": "/Simple/Request Response", "x": 1097.5, "y": 216, "parameters": {}, "ports": [], "dynamicports": [], "children": [] }, { "id": "013b0566-dde0-77d2-f8e0-d9be2e2f297b", "type": "net.noodl.user.LogOut", "x": -112.5, "y": 22, "parameters": {}, "ports": [], "dynamicports": [], "children": [] }, { "id": "d0030dc2-18ce-c260-2a34-3c5ecf99fc4b", "type": "/Simple/Fail Auth", "x": 213.5, "y": 118, "parameters": {}, "ports": [], "dynamicports": [], "children": [] }, { "id": "9c9c8cf9-4b02-14bc-9002-5b4aacc0170b", "type": "net.noodl.user.LogIn", "x": 756.5, "y": 84, "parameters": { "username": "test", "password": "test" }, "ports": [], "dynamicports": [], "children": [] }, { "id": "15b20dd1-c028-8ee7-afb0-79d39476c0b9", "type": "/Simple/Simple Function Node", "x": 1062.2857142857142, "y": 92.71428571428567, "parameters": {}, "ports": [], "dynamicports": [], "children": [] }, { "id": "8b3b52a9-e5de-1992-40cf-22f79c098d09", "type": "Group", "x": 210.34821428571422, "y": -306.66071428571433, "parameters": { "sizeMode": "contentHeight", "marginBottom": { "value": 10, "unit": "px" } }, "ports": [], "dynamicports": [], "children": [ { "id": "a4c0f1b4-5296-92d9-050f-3860058d1cb2", "type": "/Shared/Test Runner", "parameters": { "Title": "Simple Tests" }, "ports": [], "dynamicports": [], "children": [] } ] }, { "id": "f980ec97-38c4-60b1-a24f-0526c51fcb31", "type": "Static Data", "label": "All Tests", "x": 514.3482142857142, "y": -274.66071428571433, "parameters": { "type": "json", "json": "[\n {\n \"id\":\"simple-1\",\n \"desc\":\"Make a simple request and get response\"\n },\n {\n \"id\":\"simple-2\",\n \"desc\":\"Cannot call request that needs auth (without it)\" \n },\n {\n \"id\":\"simple-3\",\n \"desc\":\"Simple Function node\"\n },\n {\n \"id\":\"simple-4\",\n \"desc\":\"Can make unauth request where ok\"\n },\n {\n \"id\":\"simple-5\",\n \"desc\":\"Can respond with failure\"\n },\n {\n \"id\":\"simple-6\",\n \"desc\":\"Can get config\"\n }\n]" }, "ports": [], "dynamicports": [], "children": [], "metadata": { "merge": { "soureCodePorts": [ "json" ] } } }, { "id": "618da94d-14ab-6788-e8d5-8095824c9571", "type": "/Simple/No Auth OK", "x": 216.34821428571422, "y": -2.6607142857143344, "parameters": {}, "ports": [], "dynamicports": [], "children": [] }, { "id": "c06acf2c-1023-5a46-3031-d4f23f002375", "type": "/Simple/Failure Result", "x": 213.34821428571422, "y": 230.33928571428567, "parameters": {}, "ports": [], "dynamicports": [], "children": [] }, { "id": "ec4e345e-822b-9c5e-418c-a26d8e4ab227", "type": "JavaScriptFunction", "x": 1317.4642857142856, "y": -129.71428571428572, "parameters": { "functionScript": "describe('simple-6',() => {\n expect(Inputs.TestParameter === Inputs.TestParameterVerify)\n expect(Inputs.TestProtected === 'buff')\n expect(Inputs.LocalOverride === (document.location.href.includes('localhost'))?'woff':'wagga')\n})" }, "ports": [], "dynamicports": [ { "name": "in-TestParameter", "displayName": "TestParameter", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "in-TestParameterVerify", "displayName": "TestParameterVerify", "plug": "input", "type": "*", "group": "Inputs", "index": 5 }, { "name": "in-TestProtected", "displayName": "TestProtected", "plug": "input", "type": "*", "group": "Inputs", "index": 6 }, { "name": "in-LocalOverride", "displayName": "LocalOverride", "plug": "input", "type": "*", "group": "Inputs", "index": 7 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "2c88bcca-5c36-a6ea-d38c-5ac6b4c6422b", "type": "CloudFunction2", "x": 1015.4642857142857, "y": -122.71428571428572, "parameters": { "function": "Simple/Get Config" }, "ports": [], "dynamicports": [ { "plug": "input", "type": { "name": "component", "components": [ "/#__cloud__/API Tests/Files", "/#__cloud__/API Tests/JSCall", "/#__cloud__/API Tests/Records", "/#__cloud__/API Tests/Users", "/#__cloud__/API/paramtest/:test/PUT", "/#__cloud__/API/test/GET", "/#__cloud__/API/test/POST", "/#__cloud__/Core/REST", "/#__cloud__/Core/Run Tasks", "/#__cloud__/Records and Objects/Aggregate", "/#__cloud__/Records and Objects/Delete Record", "/#__cloud__/Records and Objects/New Record", "/#__cloud__/Records and Objects/Object Set Properties", "/#__cloud__/Records and Objects/Query Records", "/#__cloud__/Records and Objects/Relations", "/#__cloud__/Runtime/InfEventLoop", "/#__cloud__/Runtime/OutOfMemory", "/#__cloud__/Runtime/ShouldRestart", "/#__cloud__/Runtime/WhileTrue", "/#__cloud__/Simple/FailAuth", "/#__cloud__/Simple/Failure Result", "/#__cloud__/Simple/FuncJSTest", "/#__cloud__/Simple/Get Config", "/#__cloud__/Simple/No Auth OK", "/#__cloud__/Simple/SimpleReq", "/#__cloud__/Users/Create No Log In User", "/#__cloud__/Users/Impersonate", "/#__cloud__/Users/Log In", "/#__cloud__/Users/Set Properties", "/#__cloud__/Users/Test Email Verified Reset" ], "ignoreSheetName": true, "allowEditOnly": true }, "group": "General", "displayName": "Function", "name": "function", "index": 4 }, { "name": "out-TestParameter", "displayName": "TestParameter", "type": "*", "plug": "output", "group": "Results", "index": 5 }, { "name": "out-TestProtected", "displayName": "TestProtected", "type": "*", "plug": "output", "group": "Results", "index": 6 } ], "children": [] }, { "id": "a9dcc0c5-93d9-8f15-91db-629222d7c7f4", "type": "DbConfig", "x": 1011.6461038961038, "y": -230.8961038961039, "parameters": { "configKey": "TestParameter" }, "ports": [], "dynamicports": [ { "name": "configKey", "displayName": "Parameter", "group": "General", "type": { "name": "enum", "enums": [ { "value": "TestParameter", "label": "TestParameter" } ], "allowEditOnly": true }, "plug": "input", "index": 0 }, { "name": "useDevValue", "displayName": "Enable", "group": "Local Override", "type": "boolean", "default": false, "plug": "input", "index": 1 }, { "name": "value", "displayName": "Value", "group": "General", "type": "string", "plug": "output", "index": 2 } ], "children": [] }, { "id": "22b0424a-6612-7d6f-b4b6-14d35880b924", "type": "DbConfig", "label": "Local override", "x": 1004.6461038961038, "y": -343.8961038961039, "parameters": { "configKey": "TestParameter", "useDevValue": true, "devValue": "woff" }, "ports": [], "dynamicports": [ { "name": "configKey", "displayName": "Parameter", "group": "General", "type": { "name": "enum", "enums": [ { "value": "TestParameter", "label": "TestParameter" } ], "allowEditOnly": true }, "plug": "input", "index": 0 }, { "name": "useDevValue", "displayName": "Enable", "group": "Local Override", "type": "boolean", "default": false, "plug": "input", "index": 1 }, { "name": "devValue", "displayName": "Value", "group": "Local Override", "type": "string", "plug": "input", "index": 2 }, { "name": "value", "displayName": "Value", "group": "General", "type": "string", "plug": "output", "index": 3 } ], "children": [] } ], "visualRoots": [ "8b3b52a9-e5de-1992-40cf-22f79c098d09" ], "comments": [ { "text": "Do un authenticated tests", "width": 752, "height": 370, "fill": true, "x": -130, "y": -42, "id": "5f1b8db0-4f3d-4682-5b40-419fe3ba806e" } ] }, "metadata": { "isFolderComponent": false } }, { "name": "/Tests - Users", "id": "0e0f6d8e-45a0-e335-dbec-89ff15d38303", "graph": { "connections": [ { "fromId": "bb45e0dc-5922-bb7e-454b-92549eac5fdb", "fromProperty": "items", "toId": "bd2b214f-e0d8-3273-9638-53aeec8dcf79", "toProperty": "Tests" }, { "fromId": "a6d00dd2-1090-7891-7892-710ea1eac9eb", "fromProperty": "success", "toId": "a6d77a1d-f07d-85ae-dcb7-c00d1ec514c5", "toProperty": "call" }, { "fromId": "a6d77a1d-f07d-85ae-dcb7-c00d1ec514c5", "fromProperty": "out-SetPropsOK", "toId": "75aebd3e-da13-d004-34e7-af0eb5aea6ce", "toProperty": "in-SetPropsOK" }, { "fromId": "a6d77a1d-f07d-85ae-dcb7-c00d1ec514c5", "fromProperty": "success", "toId": "75aebd3e-da13-d004-34e7-af0eb5aea6ce", "toProperty": "run" }, { "fromId": "8655862d-b051-4536-0e34-211b9f439bae", "fromProperty": "success", "toId": "2f02aabd-0ece-26ea-1129-c0a43efe3ad9", "toProperty": "call" }, { "fromId": "2f02aabd-0ece-26ea-1129-c0a43efe3ad9", "fromProperty": "success", "toId": "f8758192-1e12-ae6a-e65b-5c892b232ea7", "toProperty": "run" }, { "fromId": "2f02aabd-0ece-26ea-1129-c0a43efe3ad9", "fromProperty": "out-Session Token", "toId": "f8758192-1e12-ae6a-e65b-5c892b232ea7", "toProperty": "in-SessionToken" }, { "fromId": "f8758192-1e12-ae6a-e65b-5c892b232ea7", "fromProperty": "out-Sucess", "toId": "d23ccd4a-01b3-5b07-207f-e812b7571da0", "toProperty": "run" }, { "fromId": "2f02aabd-0ece-26ea-1129-c0a43efe3ad9", "fromProperty": "out-LogInFailedOK", "toId": "d23ccd4a-01b3-5b07-207f-e812b7571da0", "toProperty": "in-LogInFailedOK" }, { "fromId": "2f02aabd-0ece-26ea-1129-c0a43efe3ad9", "fromProperty": "out-LogInOK", "toId": "d23ccd4a-01b3-5b07-207f-e812b7571da0", "toProperty": "in-LogInOK" }, { "fromId": "f8758192-1e12-ae6a-e65b-5c892b232ea7", "fromProperty": "out-BecomeOK", "toId": "d23ccd4a-01b3-5b07-207f-e812b7571da0", "toProperty": "in-BecomeOK" }, { "fromId": "f8758192-1e12-ae6a-e65b-5c892b232ea7", "fromProperty": "out-BecomeFailedOK", "toId": "d23ccd4a-01b3-5b07-207f-e812b7571da0", "toProperty": "in-BecomeFailedOK" }, { "fromId": "0ea64c1c-4e3f-e256-7382-1f0792b1a242", "fromProperty": "username", "toId": "d23ccd4a-01b3-5b07-207f-e812b7571da0", "toProperty": "in-Username" }, { "fromId": "17d917fa-44ba-2f59-a09e-ef36397fb5d3", "fromProperty": "success", "toId": "3f06e43c-395a-ff7d-142c-fa27be6dc68c", "toProperty": "run" }, { "fromId": "17d917fa-44ba-2f59-a09e-ef36397fb5d3", "fromProperty": "out-Session Token", "toId": "3f06e43c-395a-ff7d-142c-fa27be6dc68c", "toProperty": "in-SessionToken" }, { "fromId": "3f06e43c-395a-ff7d-142c-fa27be6dc68c", "fromProperty": "out-ImpersonateOK", "toId": "d15d0d9e-a3ab-514b-02fe-6a7e7cb34a33", "toProperty": "in-ImpersonateOK" }, { "fromId": "17d917fa-44ba-2f59-a09e-ef36397fb5d3", "fromProperty": "out-ImpersonateFailOK", "toId": "d15d0d9e-a3ab-514b-02fe-6a7e7cb34a33", "toProperty": "in-ImpersonateFailOK" }, { "fromId": "81ab48ea-d1cb-8e01-72c8-45be0a418e40", "fromProperty": "username", "toId": "d15d0d9e-a3ab-514b-02fe-6a7e7cb34a33", "toProperty": "in-Username" }, { "fromId": "0d7415c9-6057-9c3e-1205-4646e77a94e7", "fromProperty": "success", "toId": "17d917fa-44ba-2f59-a09e-ef36397fb5d3", "toProperty": "call" }, { "fromId": "0d7415c9-6057-9c3e-1205-4646e77a94e7", "fromProperty": "failure", "toId": "17d917fa-44ba-2f59-a09e-ef36397fb5d3", "toProperty": "call" }, { "fromId": "8655862d-b051-4536-0e34-211b9f439bae", "fromProperty": "failure", "toId": "2f02aabd-0ece-26ea-1129-c0a43efe3ad9", "toProperty": "call" }, { "fromId": "d23ccd4a-01b3-5b07-207f-e812b7571da0", "fromProperty": "out-Next", "toId": "0d7415c9-6057-9c3e-1205-4646e77a94e7", "toProperty": "login" }, { "fromId": "3f06e43c-395a-ff7d-142c-fa27be6dc68c", "fromProperty": "out-Done", "toId": "d15d0d9e-a3ab-514b-02fe-6a7e7cb34a33", "toProperty": "run" }, { "fromId": "75aebd3e-da13-d004-34e7-af0eb5aea6ce", "fromProperty": "out-Next", "toId": "8655862d-b051-4536-0e34-211b9f439bae", "toProperty": "login" }, { "fromId": "eb7d49c6-040e-9e17-07e9-8e305e3573fa", "fromProperty": "failure", "toId": "c53982d7-821a-8f51-ab4c-3f1ea3b3cdd8", "toProperty": "run" }, { "fromId": "eb7d49c6-040e-9e17-07e9-8e305e3573fa", "fromProperty": "error", "toId": "c53982d7-821a-8f51-ab4c-3f1ea3b3cdd8", "toProperty": "in-Error" }, { "fromId": "7826573b-7388-c23c-f8dd-412c559661fa", "fromProperty": "out-Username", "toId": "11187dbe-3e7e-416e-fc90-d512d07c0752", "toProperty": "in-Username" }, { "fromId": "7826573b-7388-c23c-f8dd-412c559661fa", "fromProperty": "out-Pw", "toId": "11187dbe-3e7e-416e-fc90-d512d07c0752", "toProperty": "in-Password" }, { "fromId": "7826573b-7388-c23c-f8dd-412c559661fa", "fromProperty": "out-Username", "toId": "7b6aae20-4b7d-ad7b-cd5e-8f9f3f358879", "toProperty": "username" }, { "fromId": "7826573b-7388-c23c-f8dd-412c559661fa", "fromProperty": "out-Pw", "toId": "7b6aae20-4b7d-ad7b-cd5e-8f9f3f358879", "toProperty": "password" }, { "fromId": "11187dbe-3e7e-416e-fc90-d512d07c0752", "fromProperty": "success", "toId": "7b6aae20-4b7d-ad7b-cd5e-8f9f3f358879", "toProperty": "login" }, { "fromId": "7b6aae20-4b7d-ad7b-cd5e-8f9f3f358879", "fromProperty": "failure", "toId": "1fa16eb3-24bb-7ad8-f2ba-31ccf7a7a3d7", "toProperty": "run" }, { "fromId": "7b6aae20-4b7d-ad7b-cd5e-8f9f3f358879", "fromProperty": "error", "toId": "1fa16eb3-24bb-7ad8-f2ba-31ccf7a7a3d7", "toProperty": "in-Error" }, { "fromId": "7826573b-7388-c23c-f8dd-412c559661fa", "fromProperty": "out-Done", "toId": "11187dbe-3e7e-416e-fc90-d512d07c0752", "toProperty": "call" }, { "fromId": "11187dbe-3e7e-416e-fc90-d512d07c0752", "fromProperty": "out-BackendLogInOK", "toId": "1fa16eb3-24bb-7ad8-f2ba-31ccf7a7a3d7", "toProperty": "in-BackendLogInOK" }, { "fromId": "7b6aae20-4b7d-ad7b-cd5e-8f9f3f358879", "fromProperty": "success", "toId": "e5c78acc-fede-3797-4490-a6d06ea91734", "toProperty": "run" }, { "fromId": "1fa16eb3-24bb-7ad8-f2ba-31ccf7a7a3d7", "fromProperty": "out-Next", "toId": "eb7d49c6-040e-9e17-07e9-8e305e3573fa", "toProperty": "signup" }, { "fromId": "c0a9ecad-fcba-5ad6-09a8-b765ea34301e", "fromProperty": "out-NotVerifiedOK", "toId": "20c3ac1d-5f6a-c0b5-f89e-aac8f8e72669", "toProperty": "in-NotVerifiedOk" }, { "fromId": "c0a9ecad-fcba-5ad6-09a8-b765ea34301e", "fromProperty": "out-VerifiedOK", "toId": "20c3ac1d-5f6a-c0b5-f89e-aac8f8e72669", "toProperty": "in-VerifiedOk" }, { "fromId": "c0a9ecad-fcba-5ad6-09a8-b765ea34301e", "fromProperty": "out-ResetVerifiedOK", "toId": "20c3ac1d-5f6a-c0b5-f89e-aac8f8e72669", "toProperty": "in-ResetVerifiedOk" }, { "fromId": "bd2b214f-e0d8-3273-9638-53aeec8dcf79", "fromProperty": "Run", "toId": "c0a9ecad-fcba-5ad6-09a8-b765ea34301e", "toProperty": "call" }, { "fromId": "c0a9ecad-fcba-5ad6-09a8-b765ea34301e", "fromProperty": "success", "toId": "20c3ac1d-5f6a-c0b5-f89e-aac8f8e72669", "toProperty": "run" }, { "fromId": "bd2b214f-e0d8-3273-9638-53aeec8dcf79", "fromProperty": "Run", "toId": "7826573b-7388-c23c-f8dd-412c559661fa", "toProperty": "run" }, { "fromId": "c53982d7-821a-8f51-ab4c-3f1ea3b3cdd8", "fromProperty": "out-Next", "toId": "a6d00dd2-1090-7891-7892-710ea1eac9eb", "toProperty": "login" } ], "roots": [ { "id": "107a2f9e-efa3-a2bd-20cf-46c855061be5", "type": "Group", "x": 210.34821428571422, "y": -306.66071428571433, "parameters": { "sizeMode": "contentHeight", "marginBottom": { "value": 10, "unit": "px" } }, "ports": [], "dynamicports": [], "children": [ { "id": "bd2b214f-e0d8-3273-9638-53aeec8dcf79", "type": "/Shared/Test Runner", "parameters": { "Title": "Users" }, "ports": [], "dynamicports": [], "children": [] } ] }, { "id": "bb45e0dc-5922-bb7e-454b-92549eac5fdb", "type": "Static Data", "label": "All Tests", "x": 248.34821428571422, "y": -115.66071428571433, "parameters": { "type": "json", "json": "[\n {\n \"id\":\"users-1\",\n \"desc\":\"Set User Properties\"\n },\n {\n \"id\":\"users-2\",\n \"desc\":\"Can LogIn with API and become\"\n },\n {\n \"id\":\"users-3\",\n \"desc\":\"Impersonation API\"\n },\n {\n \"id\":\"users-4\",\n \"desc\":\"Disable sign up\"\n },\n {\n \"id\":\"users-5\",\n \"desc\":\"Can create protected user (no log in)\"\n },\n {\n \"id\":\"users-6\",\n \"desc\":\"Test email verified reset\"\n }\n]" }, "ports": [], "dynamicports": [], "children": [], "metadata": { "merge": { "soureCodePorts": [ "json" ] } } }, { "id": "a6d77a1d-f07d-85ae-dcb7-c00d1ec514c5", "type": "CloudFunction2", "x": 720.3482142857142, "y": -113.16071428571433, "parameters": { "function": "Users/Set Properties" }, "ports": [], "dynamicports": [ { "plug": "input", "type": { "name": "component", "components": [ "/#__cloud__/API Tests/Files", "/#__cloud__/API Tests/JSCall", "/#__cloud__/API Tests/Records", "/#__cloud__/API Tests/Users", "/#__cloud__/API/paramtest/:test/PUT", "/#__cloud__/API/test/GET", "/#__cloud__/API/test/POST", "/#__cloud__/Core/REST", "/#__cloud__/Core/Run Tasks", "/#__cloud__/Records and Objects/Aggregate", "/#__cloud__/Records and Objects/Delete Record", "/#__cloud__/Records and Objects/New Record", "/#__cloud__/Records and Objects/Object Set Properties", "/#__cloud__/Records and Objects/Query Records", "/#__cloud__/Records and Objects/Relations", "/#__cloud__/Runtime/InfEventLoop", "/#__cloud__/Runtime/OutOfMemory", "/#__cloud__/Runtime/ShouldRestart", "/#__cloud__/Runtime/WhileTrue", "/#__cloud__/Simple/FailAuth", "/#__cloud__/Simple/Failure Result", "/#__cloud__/Simple/FuncJSTest", "/#__cloud__/Simple/Get Config", "/#__cloud__/Simple/No Auth OK", "/#__cloud__/Simple/SimpleReq", "/#__cloud__/Users/Create No Log In User", "/#__cloud__/Users/Impersonate", "/#__cloud__/Users/Log In", "/#__cloud__/Users/Set Properties", "/#__cloud__/Users/Test Email Verified Reset" ], "ignoreSheetName": true, "allowEditOnly": true }, "group": "General", "displayName": "Function", "name": "function", "index": 4 }, { "name": "out-SetPropsOK", "displayName": "SetPropsOK", "type": "*", "plug": "output", "group": "Results", "index": 5 } ], "children": [] }, { "id": "a6d00dd2-1090-7891-7892-710ea1eac9eb", "type": "net.noodl.user.LogIn", "x": 501.0148809523809, "y": -102.82738095238096, "parameters": { "username": "test", "password": "test" }, "ports": [], "dynamicports": [], "children": [] }, { "id": "75aebd3e-da13-d004-34e7-af0eb5aea6ce", "type": "JavaScriptFunction", "x": 944.514880952381, "y": -106.82738095238096, "parameters": { "functionScript": "describe('users-1',() => {\n expect(Inputs.SetPropsOK === true)\n})\n\nOutputs.Next()" }, "ports": [], "dynamicports": [ { "name": "in-SetPropsOK", "displayName": "SetPropsOK", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "out-Next", "displayName": "Next", "plug": "output", "type": "signal", "group": "Outputs", "index": 5 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "8655862d-b051-4536-0e34-211b9f439bae", "type": "net.noodl.user.LogOut", "x": 478.9586843711843, "y": 96.23202075702079, "parameters": {}, "ports": [], "dynamicports": [], "children": [] }, { "id": "2f02aabd-0ece-26ea-1129-c0a43efe3ad9", "type": "CloudFunction2", "x": 731.530112942613, "y": 139.8748778998779, "parameters": { "function": "Users/Log In" }, "ports": [], "dynamicports": [ { "plug": "input", "type": { "name": "component", "components": [ "/#__cloud__/API Tests/Files", "/#__cloud__/API Tests/JSCall", "/#__cloud__/API Tests/Records", "/#__cloud__/API Tests/Users", "/#__cloud__/API/paramtest/:test/PUT", "/#__cloud__/API/test/GET", "/#__cloud__/API/test/POST", "/#__cloud__/Core/REST", "/#__cloud__/Core/Run Tasks", "/#__cloud__/Records and Objects/Aggregate", "/#__cloud__/Records and Objects/Delete Record", "/#__cloud__/Records and Objects/New Record", "/#__cloud__/Records and Objects/Object Set Properties", "/#__cloud__/Records and Objects/Query Records", "/#__cloud__/Records and Objects/Relations", "/#__cloud__/Runtime/InfEventLoop", "/#__cloud__/Runtime/OutOfMemory", "/#__cloud__/Runtime/ShouldRestart", "/#__cloud__/Runtime/WhileTrue", "/#__cloud__/Simple/FailAuth", "/#__cloud__/Simple/Failure Result", "/#__cloud__/Simple/FuncJSTest", "/#__cloud__/Simple/Get Config", "/#__cloud__/Simple/No Auth OK", "/#__cloud__/Simple/SimpleReq", "/#__cloud__/Users/Create No Log In User", "/#__cloud__/Users/Impersonate", "/#__cloud__/Users/Log In", "/#__cloud__/Users/Set Properties", "/#__cloud__/Users/Test Email Verified Reset" ], "ignoreSheetName": true, "allowEditOnly": true }, "group": "General", "displayName": "Function", "name": "function", "index": 4 }, { "name": "out-LogInFailedOK", "displayName": "LogInFailedOK", "type": "*", "plug": "output", "group": "Results", "index": 5 }, { "name": "out-LogInOK", "displayName": "LogInOK", "type": "*", "plug": "output", "group": "Results", "index": 6 }, { "name": "out-Session Token", "displayName": "Session Token", "type": "*", "plug": "output", "group": "Results", "index": 7 } ], "children": [] }, { "id": "f8758192-1e12-ae6a-e65b-5c892b232ea7", "type": "JavaScriptFunction", "label": "Become", "x": 969.1301129426129, "y": 256.8082112332113, "parameters": { "functionScript": "// Cannot become with invalid session token\nlet failed = false;\ntry {\n await Noodl.Users.become(\"abc\")\n}\ncatch(e) {\n failed = true;\n}\n\n// cannot become without session token\nlet failed2 = false;\ntry {\n await Noodl.Users.become()\n}\ncatch(e) {\n failed2 = true;\n}\n\nOutputs.BecomeFailedOK = failed && failed2 && Noodl.Users.Current === undefined;\n\nawait Noodl.Users.become(Inputs.SessionToken)\n\nOutputs.BecomeOK = Noodl.Users.Current !== undefined && \nNoodl.Users.Current.username === \"test\";\n\nOutputs.Sucess();\n" }, "ports": [], "dynamicports": [ { "name": "in-SessionToken", "displayName": "SessionToken", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "out-Sucess", "displayName": "Sucess", "plug": "output", "type": "signal", "group": "Outputs", "index": 5 }, { "name": "out-BecomeFailedOK", "displayName": "BecomeFailedOK", "plug": "output", "type": "*", "group": "Outputs", "index": 6 }, { "name": "out-BecomeOK", "displayName": "BecomeOK", "plug": "output", "type": "*", "group": "Outputs", "index": 7 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "d23ccd4a-01b3-5b07-207f-e812b7571da0", "type": "JavaScriptFunction", "x": 1459.1301129426129, "y": 143.8082112332113, "parameters": { "functionScript": "describe('users-2',() => {\n expect(Inputs.LogInFailedOK === true)\n expect(Inputs.LogInOK === true)\n expect(Inputs.BecomeFailedOK === true)\n expect(Inputs.BecomeOK === true)\n expect(Inputs.Username === \"test\")\n})\n\nOutputs.Next()" }, "ports": [], "dynamicports": [ { "name": "in-LogInFailedOK", "displayName": "LogInFailedOK", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "in-LogInOK", "displayName": "LogInOK", "plug": "input", "type": "*", "group": "Inputs", "index": 5 }, { "name": "in-BecomeFailedOK", "displayName": "BecomeFailedOK", "plug": "input", "type": "*", "group": "Inputs", "index": 6 }, { "name": "in-BecomeOK", "displayName": "BecomeOK", "plug": "input", "type": "*", "group": "Inputs", "index": 7 }, { "name": "in-Username", "displayName": "Username", "plug": "input", "type": "*", "group": "Inputs", "index": 8 }, { "name": "out-Next", "displayName": "Next", "plug": "output", "type": "signal", "group": "Outputs", "index": 9 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "0ea64c1c-4e3f-e256-7382-1f0792b1a242", "type": "net.noodl.user.User", "x": 1195.1301129426129, "y": 395.8082112332113, "parameters": {}, "ports": [], "dynamicports": [ { "type": { "name": "date" }, "plug": "output", "group": "Properties", "name": "prop-createdAt", "displayName": "createdAt", "index": 9 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "createdAt Changed", "name": "changed-createdAt", "index": 10 }, { "type": { "name": "date" }, "plug": "output", "group": "Properties", "name": "prop-updatedAt", "displayName": "updatedAt", "index": 11 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "updatedAt Changed", "name": "changed-updatedAt", "index": 12 }, { "type": { "name": "boolean" }, "plug": "output", "group": "Properties", "name": "prop-emailVerified", "displayName": "emailVerified", "index": 13 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "emailVerified Changed", "name": "changed-emailVerified", "index": 14 }, { "type": { "name": "string" }, "plug": "output", "group": "Properties", "name": "prop-sessionToken", "displayName": "sessionToken", "index": 15 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "sessionToken Changed", "name": "changed-sessionToken", "index": 16 }, { "type": { "name": "boolean" }, "plug": "output", "group": "Properties", "name": "prop-logInDisabled", "displayName": "logInDisabled", "index": 17 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "logInDisabled Changed", "name": "changed-logInDisabled", "index": 18 }, { "type": { "name": "string" }, "plug": "output", "group": "Properties", "name": "prop-error", "displayName": "error", "index": 19 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "error Changed", "name": "changed-error", "index": 20 }, { "type": { "name": "number" }, "plug": "output", "group": "Properties", "name": "prop-code", "displayName": "code", "index": 21 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "code Changed", "name": "changed-code", "index": 22 }, { "plug": "output", "name": "loggedIn", "type": "signal", "displayName": "Logged In", "group": "Events", "index": 23 }, { "plug": "output", "name": "loggedOut", "type": "signal", "displayName": "Logged Out", "group": "Events", "index": 24 }, { "plug": "output", "name": "sessionLost", "type": "signal", "displayName": "Session Lost", "group": "Events", "index": 25 } ], "children": [] }, { "id": "0d7415c9-6057-9c3e-1205-4646e77a94e7", "type": "net.noodl.user.LogOut", "x": 480.5745573870573, "y": 603.1415445665446, "parameters": {}, "ports": [], "dynamicports": [], "children": [] }, { "id": "17d917fa-44ba-2f59-a09e-ef36397fb5d3", "type": "CloudFunction2", "x": 728.5745573870573, "y": 614.1415445665446, "parameters": { "function": "Users/Impersonate" }, "ports": [], "dynamicports": [ { "plug": "input", "type": { "name": "component", "components": [ "/#__cloud__/API Tests/Files", "/#__cloud__/API Tests/JSCall", "/#__cloud__/API Tests/Records", "/#__cloud__/API Tests/Users", "/#__cloud__/API/paramtest/:test/PUT", "/#__cloud__/API/test/GET", "/#__cloud__/API/test/POST", "/#__cloud__/Core/REST", "/#__cloud__/Core/Run Tasks", "/#__cloud__/Records and Objects/Aggregate", "/#__cloud__/Records and Objects/Delete Record", "/#__cloud__/Records and Objects/New Record", "/#__cloud__/Records and Objects/Object Set Properties", "/#__cloud__/Records and Objects/Query Records", "/#__cloud__/Records and Objects/Relations", "/#__cloud__/Runtime/InfEventLoop", "/#__cloud__/Runtime/OutOfMemory", "/#__cloud__/Runtime/ShouldRestart", "/#__cloud__/Runtime/WhileTrue", "/#__cloud__/Simple/FailAuth", "/#__cloud__/Simple/Failure Result", "/#__cloud__/Simple/FuncJSTest", "/#__cloud__/Simple/Get Config", "/#__cloud__/Simple/No Auth OK", "/#__cloud__/Simple/SimpleReq", "/#__cloud__/Users/Create No Log In User", "/#__cloud__/Users/Impersonate", "/#__cloud__/Users/Log In", "/#__cloud__/Users/Set Properties", "/#__cloud__/Users/Test Email Verified Reset" ], "ignoreSheetName": true, "allowEditOnly": true }, "group": "General", "displayName": "Function", "name": "function", "index": 4 }, { "name": "out-Session Token", "displayName": "Session Token", "type": "*", "plug": "output", "group": "Results", "index": 5 }, { "name": "out-ImpersonateFailOK", "displayName": "ImpersonateFailOK", "type": "*", "plug": "output", "group": "Results", "index": 6 } ], "children": [] }, { "id": "3f06e43c-395a-ff7d-142c-fa27be6dc68c", "type": "JavaScriptFunction", "x": 993.9745573870573, "y": 680.2415445665446, "parameters": { "functionScript": "await Noodl.Users.become(Inputs.SessionToken)\n\nOutputs.ImpersonateOK = Noodl.Users.Current !== undefined &&\nNoodl.Users.Current.username === \"test\";\n\nOutputs.Done()" }, "ports": [], "dynamicports": [ { "name": "in-SessionToken", "displayName": "SessionToken", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 5 }, { "name": "out-ImpersonateOK", "displayName": "ImpersonateOK", "plug": "output", "type": "*", "group": "Outputs", "index": 6 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "d15d0d9e-a3ab-514b-02fe-6a7e7cb34a33", "type": "JavaScriptFunction", "x": 1365.9745573870573, "y": 606.2415445665446, "parameters": { "functionScript": "describe('users-3',() => {\n expect(Inputs.ImpersonateFailOK === true)\n expect(Inputs.ImpersonateOK === true)\n expect(Inputs.Username === \"test\")\n})" }, "ports": [], "dynamicports": [ { "name": "in-ImpersonateFailOK", "displayName": "ImpersonateFailOK", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "in-ImpersonateOK", "displayName": "ImpersonateOK", "plug": "input", "type": "*", "group": "Inputs", "index": 5 }, { "name": "in-Username", "displayName": "Username", "plug": "input", "type": "*", "group": "Inputs", "index": 6 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "81ab48ea-d1cb-8e01-72c8-45be0a418e40", "type": "net.noodl.user.User", "x": 1189.9745573870573, "y": 800.2415445665446, "parameters": {}, "ports": [], "dynamicports": [ { "type": { "name": "date" }, "plug": "output", "group": "Properties", "name": "prop-createdAt", "displayName": "createdAt", "index": 9 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "createdAt Changed", "name": "changed-createdAt", "index": 10 }, { "type": { "name": "date" }, "plug": "output", "group": "Properties", "name": "prop-updatedAt", "displayName": "updatedAt", "index": 11 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "updatedAt Changed", "name": "changed-updatedAt", "index": 12 }, { "type": { "name": "boolean" }, "plug": "output", "group": "Properties", "name": "prop-emailVerified", "displayName": "emailVerified", "index": 13 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "emailVerified Changed", "name": "changed-emailVerified", "index": 14 }, { "type": { "name": "string" }, "plug": "output", "group": "Properties", "name": "prop-sessionToken", "displayName": "sessionToken", "index": 15 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "sessionToken Changed", "name": "changed-sessionToken", "index": 16 }, { "type": { "name": "boolean" }, "plug": "output", "group": "Properties", "name": "prop-logInDisabled", "displayName": "logInDisabled", "index": 17 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "logInDisabled Changed", "name": "changed-logInDisabled", "index": 18 }, { "type": { "name": "string" }, "plug": "output", "group": "Properties", "name": "prop-error", "displayName": "error", "index": 19 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "error Changed", "name": "changed-error", "index": 20 }, { "type": { "name": "number" }, "plug": "output", "group": "Properties", "name": "prop-code", "displayName": "code", "index": 21 }, { "type": "signal", "plug": "output", "group": "Changed Events", "displayName": "code Changed", "name": "changed-code", "index": 22 }, { "plug": "output", "name": "loggedIn", "type": "signal", "displayName": "Logged In", "group": "Events", "index": 23 }, { "plug": "output", "name": "loggedOut", "type": "signal", "displayName": "Logged Out", "group": "Events", "index": 24 }, { "plug": "output", "name": "sessionLost", "type": "signal", "displayName": "Session Lost", "group": "Events", "index": 25 } ], "children": [] }, { "id": "eb7d49c6-040e-9e17-07e9-8e305e3573fa", "type": "net.noodl.user.SignUp", "x": 515.8449281083634, "y": -412.2487550899767, "parameters": { "username": "gfdfg", "password": "testdfgdfg255" }, "ports": [], "dynamicports": [ { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-sessionToken", "displayName": "sessionToken", "index": 7 }, { "type": { "name": "boolean" }, "plug": "input", "group": "Properties", "name": "prop-logInDisabled", "displayName": "logInDisabled", "index": 8 }, { "type": { "name": "string" }, "plug": "input", "group": "Properties", "name": "prop-error", "displayName": "error", "index": 9 }, { "type": { "name": "number" }, "plug": "input", "group": "Properties", "name": "prop-code", "displayName": "code", "index": 10 } ], "children": [] }, { "id": "c53982d7-821a-8f51-ab4c-3f1ea3b3cdd8", "type": "JavaScriptFunction", "x": 821.8449281083634, "y": -390.2487550899767, "parameters": { "functionScript": "describe('users-4',() => {\n expect(Inputs.Error === \"Permission denied for action create on class _User.\")\n})\n\nOutputs.Next()" }, "ports": [], "dynamicports": [ { "name": "in-Error", "displayName": "Error", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "out-Next", "displayName": "Next", "plug": "output", "type": "signal", "group": "Outputs", "index": 5 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "11187dbe-3e7e-416e-fc90-d512d07c0752", "type": "CloudFunction2", "x": -220.74901547000513, "y": -306.12548725903343, "parameters": { "function": "Users/Create No Log In User" }, "ports": [], "dynamicports": [ { "plug": "input", "type": { "name": "component", "components": [ "/#__cloud__/API Tests/Files", "/#__cloud__/API Tests/JSCall", "/#__cloud__/API Tests/Records", "/#__cloud__/API Tests/Users", "/#__cloud__/API/paramtest/:test/PUT", "/#__cloud__/API/test/GET", "/#__cloud__/API/test/POST", "/#__cloud__/Core/REST", "/#__cloud__/Core/Run Tasks", "/#__cloud__/Records and Objects/Aggregate", "/#__cloud__/Records and Objects/Delete Record", "/#__cloud__/Records and Objects/New Record", "/#__cloud__/Records and Objects/Object Set Properties", "/#__cloud__/Records and Objects/Query Records", "/#__cloud__/Records and Objects/Relations", "/#__cloud__/Runtime/InfEventLoop", "/#__cloud__/Runtime/OutOfMemory", "/#__cloud__/Runtime/ShouldRestart", "/#__cloud__/Runtime/WhileTrue", "/#__cloud__/Simple/FailAuth", "/#__cloud__/Simple/Failure Result", "/#__cloud__/Simple/FuncJSTest", "/#__cloud__/Simple/Get Config", "/#__cloud__/Simple/No Auth OK", "/#__cloud__/Simple/SimpleReq", "/#__cloud__/Users/Create No Log In User", "/#__cloud__/Users/Impersonate", "/#__cloud__/Users/Log In", "/#__cloud__/Users/Set Properties", "/#__cloud__/Users/Test Email Verified Reset" ], "ignoreSheetName": true, "allowEditOnly": true }, "group": "General", "displayName": "Function", "name": "function", "index": 4 }, { "name": "in-Username", "displayName": "Username", "type": "*", "plug": "input", "group": "Parameters", "index": 5 }, { "name": "in-Password", "displayName": "Password", "type": "*", "plug": "input", "group": "Parameters", "index": 6 }, { "name": "out-BackendLogInOK", "displayName": "BackendLogInOK", "type": "*", "plug": "output", "group": "Results", "index": 7 } ], "children": [] }, { "id": "7826573b-7388-c23c-f8dd-412c559661fa", "type": "JavaScriptFunction", "x": -95.74901547000513, "y": -439.12548725903343, "parameters": { "functionScript": "Outputs.Username = \"test-\" + Math.ceil(Math.random()*1000000)\nOutputs.Pw = \"test\"\n\nOutputs.Done()" }, "ports": [], "dynamicports": [ { "name": "out-Done", "displayName": "Done", "plug": "output", "type": "signal", "group": "Outputs", "index": 4 }, { "name": "out-Username", "displayName": "Username", "plug": "output", "type": "*", "group": "Outputs", "index": 5 }, { "name": "out-Pw", "displayName": "Pw", "plug": "output", "type": "*", "group": "Outputs", "index": 6 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "7b6aae20-4b7d-ad7b-cd5e-8f9f3f358879", "type": "net.noodl.user.LogIn", "x": -476.74901547000513, "y": -264.12548725903343, "parameters": {}, "ports": [], "dynamicports": [], "children": [] }, { "id": "1fa16eb3-24bb-7ad8-f2ba-31ccf7a7a3d7", "type": "JavaScriptFunction", "x": -712.7490154700051, "y": -365.12548725903343, "parameters": { "functionScript": "describe('users-5',() => {\n expect(Inputs.Error === \"Access denied, log in disabled.\")\n expect(Inputs.BackendLogInOK == true)\n})\n\nOutputs.Next()" }, "ports": [], "dynamicports": [ { "name": "in-Error", "displayName": "Error", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "in-BackendLogInOK", "displayName": "BackendLogInOK", "plug": "input", "type": "*", "group": "Inputs", "index": 5 }, { "name": "out-Next", "displayName": "Next", "plug": "output", "type": "signal", "group": "Outputs", "index": 6 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "e5c78acc-fede-3797-4490-a6d06ea91734", "type": "JavaScriptFunction", "label": "Should not succeed", "x": -719.9180894202126, "y": -205.40938613279695, "parameters": { "functionScript": "Noodl.Objects['users-5'].status = 'fail'" }, "ports": [], "dynamicports": [], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "20c3ac1d-5f6a-c0b5-f89e-aac8f8e72669", "type": "JavaScriptFunction", "x": -627.031725783849, "y": 110.22697750356667, "parameters": { "functionScript": "describe('users-6',() => {\n expect(Inputs.NotVerifiedOk === true)\n expect(Inputs.VerifiedOk === true)\n expect(Inputs.ResetVerifiedOk === true)\n})\n" }, "ports": [], "dynamicports": [ { "name": "in-NotVerifiedOk", "displayName": "NotVerifiedOk", "plug": "input", "type": "*", "group": "Inputs", "index": 4 }, { "name": "in-VerifiedOk", "displayName": "VerifiedOk", "plug": "input", "type": "*", "group": "Inputs", "index": 5 }, { "name": "in-ResetVerifiedOk", "displayName": "ResetVerifiedOk", "plug": "input", "type": "*", "group": "Inputs", "index": 6 } ], "children": [], "metadata": { "merge": { "soureCodePorts": [ "functionScript" ] } } }, { "id": "c0a9ecad-fcba-5ad6-09a8-b765ea34301e", "type": "CloudFunction2", "x": -274.03172578384897, "y": 76.22697750356667, "parameters": { "function": "Users/Test Email Verified Reset" }, "ports": [], "dynamicports": [ { "plug": "input", "type": { "name": "component", "components": [ "/#__cloud__/API Tests/Files", "/#__cloud__/API Tests/JSCall", "/#__cloud__/API Tests/Records", "/#__cloud__/API Tests/Users", "/#__cloud__/API/paramtest/:test/PUT", "/#__cloud__/API/test/GET", "/#__cloud__/API/test/POST", "/#__cloud__/Core/REST", "/#__cloud__/Core/Run Tasks", "/#__cloud__/Records and Objects/Aggregate", "/#__cloud__/Records and Objects/Delete Record", "/#__cloud__/Records and Objects/New Record", "/#__cloud__/Records and Objects/Object Set Properties", "/#__cloud__/Records and Objects/Query Records", "/#__cloud__/Records and Objects/Relations", "/#__cloud__/Runtime/InfEventLoop", "/#__cloud__/Runtime/OutOfMemory", "/#__cloud__/Runtime/ShouldRestart", "/#__cloud__/Runtime/WhileTrue", "/#__cloud__/Simple/FailAuth", "/#__cloud__/Simple/Failure Result", "/#__cloud__/Simple/FuncJSTest", "/#__cloud__/Simple/Get Config", "/#__cloud__/Simple/No Auth OK", "/#__cloud__/Simple/SimpleReq", "/#__cloud__/Users/Create No Log In User", "/#__cloud__/Users/Impersonate", "/#__cloud__/Users/Log In", "/#__cloud__/Users/Set Properties", "/#__cloud__/Users/Test Email Verified Reset" ], "ignoreSheetName": true, "allowEditOnly": true }, "group": "General", "displayName": "Function", "name": "function", "index": 4 }, { "name": "out-NotVerifiedOK", "displayName": "NotVerifiedOK", "type": "*", "plug": "output", "group": "Results", "index": 5 }, { "name": "out-VerifiedOK", "displayName": "VerifiedOK", "type": "*", "plug": "output", "group": "Results", "index": 6 }, { "name": "out-ResetVerifiedOK", "displayName": "ResetVerifiedOK", "type": "*", "plug": "output", "group": "Results", "index": 7 } ], "children": [] } ], "visualRoots": [ "107a2f9e-efa3-a2bd-20cf-46c855061be5" ], "comments": [ { "text": "Test LogIn on backend and become with session token on frontend", "width": 1181, "height": 469, "fill": true, "x": 453, "y": 52, "id": "ec57b251-e7de-b9e3-0e3e-ad5a6a6e8936" }, { "text": "Test impersination of users on the backend", "width": 1172, "height": 383, "fill": true, "x": 459, "y": 552, "id": "64b17d45-7685-1fc5-5f83-516fdb486a54" }, { "text": "Set User Properties in the backend", "width": 725, "height": 190, "fill": true, "x": 473, "y": -173, "id": "7b1eb4c1-a55d-3efc-8ebd-c124d3c2b3da" }, { "text": "User class level protection has disabled create on this backend, so sign up should fail.", "width": 722, "height": 291, "fill": true, "x": 475, "y": -479, "id": "c9029102-f9d0-99ec-fa99-1eb7420071fc" }, { "text": "Can create a user on the backed where login is disabled.", "width": 828, "height": 382, "fill": true, "x": -753, "y": -484, "id": "cdc5def9-0c24-2f22-ccb8-97f2fb589cc8" }, { "text": "Test that email verified property is reset when changing email", "width": 828, "height": 382, "fill": true, "x": -749, "y": -72, "id": "5214ded4-6ad2-91d5-ec94-5f69c11e69b7" } ] }, "metadata": { "isFolderComponent": false } } ], "settings": {}, "rootNodeId": "2920e5ec-072a-07f3-ff56-1629510f219b", "version": "4", "metadata": { "dbCollections": [ { "name": "Test", "schema": { "properties": { "createdAt": { "type": "Date" }, "updatedAt": { "type": "Date" }, "AString": { "type": "String" }, "ANumber": { "type": "Number" }, "ABool": { "type": "Boolean" }, "AnObject": { "type": "Object" }, "AnArray": { "type": "Array" }, "ARelation": { "type": "Relation", "targetClass": "Test" }, "Text": { "type": "String", "required": false }, "ADate": { "type": "Date", "required": false }, "ABoolean": { "type": "Boolean", "required": false } } } }, { "name": "Post", "schema": { "properties": { "createdAt": { "type": "Date" }, "updatedAt": { "type": "Date" }, "Title": { "type": "String" } } } }, { "name": "Group", "schema": { "properties": { "createdAt": { "type": "Date" }, "updatedAt": { "type": "Date" }, "Name": { "type": "String" }, "posts": { "type": "Relation", "targetClass": "Post" } } } }, { "name": "TestQuery", "schema": { "properties": { "createdAt": { "type": "Date" }, "updatedAt": { "type": "Date" }, "Name": { "type": "String", "required": false }, "Age": { "type": "Number", "required": false }, "Parent": { "type": "Pointer", "targetClass": "TestQuery", "required": false }, "Children": { "type": "Relation", "targetClass": "TestQuery" }, "Sex": { "type": "String", "required": false } } } } ], "styles": { "text": { "Display": { "letterSpacing": "Auto", "lineHeight": { "value": "120", "unit": "%" }, "textTransform": "none", "fontSize": { "value": "40", "unit": "px" }, "fontFamily": "fonts/Roboto/Roboto-Regular.ttf", "color": "#000000" }, "Headline": { "fontFamily": "fonts/Roboto/Roboto-Regular.ttf", "fontSize": { "value": "32", "unit": "px" }, "color": "#000000", "letterSpacing": "Auto", "lineHeight": { "value": "120", "unit": "%" }, "textTransform": "none" }, "Title Large": { "fontFamily": "fonts/Roboto/Roboto-Bold.ttf", "fontSize": { "value": "24", "unit": "px" }, "color": "#000000", "letterSpacing": "Auto", "lineHeight": { "value": "120%", "unit": "px" }, "textTransform": "none" }, "Title Medium": { "fontFamily": "fonts/Roboto/Roboto-Medium.ttf", "fontSize": { "value": "20", "unit": "px" }, "color": "#000000", "letterSpacing": "Auto", "lineHeight": { "value": "120", "unit": "%" }, "textTransform": "none" }, "Title Small": { "fontFamily": "fonts/Roboto/Roboto-Bold.ttf", "fontSize": { "value": "16", "unit": "px" }, "color": "#000000", "letterSpacing": "Auto", "lineHeight": { "value": "120", "unit": "%" }, "textTransform": "none" }, "Label Large": { "fontFamily": "fonts/Roboto/Roboto-Medium.ttf", "fontSize": { "value": "16", "unit": "px" }, "color": "#000000", "letterSpacing": "Auto", "lineHeight": { "value": "120", "unit": "%" }, "textTransform": "none" }, "Label Medium": { "fontFamily": "fonts/Roboto/Roboto-Medium.ttf", "fontSize": { "value": "14", "unit": "px" }, "color": "#000000", "letterSpacing": "Auto", "lineHeight": { "value": "120", "unit": "%" }, "textTransform": "none" }, "Label Small": { "fontFamily": "fonts/Roboto/Roboto-Medium.ttf", "fontSize": { "value": "12", "unit": "px" }, "color": "#000000", "letterSpacing": "Auto", "lineHeight": { "value": "120", "unit": "%" }, "textTransform": "none" }, "Body Large": { "fontFamily": "fonts/Roboto/Roboto-Regular.ttf", "fontSize": { "value": "20", "unit": "px" }, "color": "#000000", "letterSpacing": "Auto", "lineHeight": { "value": "150", "unit": "%" }, "textTransform": "none" }, "Body Medium": { "fontFamily": "fonts/Roboto/Roboto-Regular.ttf", "fontSize": { "value": "16", "unit": "px" }, "color": "#000000", "letterSpacing": "Auto", "lineHeight": { "value": "150", "unit": "%" }, "textTransform": "none" }, "Body Small": { "letterSpacing": "Auto", "lineHeight": { "value": "150", "unit": "%" }, "textTransform": "none", "fontFamily": "fonts/Roboto/Roboto-Regular.ttf", "fontSize": { "value": "14", "unit": "px" }, "color": "#000000" } }, "colors": { "Primary": "#5836F5", "Primary Dark": "#3F22B8", "Primary Subtle": "#C9BFFC", "Primary Light": "#F7F5FF", "Grey - 900": "#1F1F1F", "Grey - 800": "#383838", "Grey - 700": "#4C4C4C", "Grey - 600": "#757575", "Grey - 500": "#A5A5A5", "Grey - 400": "#CECECE", "Grey - 300": "#E9E9E9", "Grey - 200": "#F4F4F4", "Grey - 100": "#FBFBFB", "Success": "#49AD7F", "Notice": "#F2C441", "Danger": "#F75A4F", "White": "#FFFFFF", "Black": "#000000" } }, "systemCollections": [ { "name": "_User", "schema": { "properties": { "createdAt": { "type": "Date" }, "updatedAt": { "type": "Date" }, "username": { "type": "String" }, "password": { "type": "String" }, "email": { "type": "String" }, "emailVerified": { "type": "Boolean" }, "authData": { "type": "Object" }, "sessionToken": { "type": "String" }, "logInDisabled": { "type": "Boolean" }, "error": { "type": "String" }, "code": { "type": "Number" } } } }, { "name": "_Role", "schema": { "properties": { "createdAt": { "type": "Date" }, "updatedAt": { "type": "Date" }, "name": { "type": "String" }, "users": { "type": "Relation", "targetClass": "_User" }, "roles": { "type": "Relation", "targetClass": "_Role" } } } }, { "name": "_Session", "schema": { "properties": { "createdAt": { "type": "Date" }, "updatedAt": { "type": "Date" }, "restricted": { "type": "Boolean" }, "user": { "type": "Pointer", "targetClass": "_User" }, "installationId": { "type": "String" }, "sessionToken": { "type": "String" }, "expiresAt": { "type": "Date" }, "createdWith": { "type": "Object" } } } } ], "cloudservices": { "instanceId": "03ab72fa7be9b120", "workspaceId": "06vxgu", "endpoint": "http://localhost:3000", "appId": "myappid" }, "dbConfigSchema": { "TestParameter": { "masterKeyOnly": false, "type": "string" }, "TestProtected": { "masterKeyOnly": true, "type": "string" } }, "cloudfunctions": { "version": "4I19fwXnzY4vJibo" } }, "variants": [ { "typename": "Text", "parameters": { "textStyle": "Body Medium" }, "stateParamaters": {}, "stateTransitions": {} }, { "typename": "net.noodl.controls.button", "parameters": { "height": { "value": 40, "unit": "px" }, "sizeMode": "contentWidth", "backgroundColor": "Primary", "iconIconSource": { "class": "material-icons", "code": "home" }, "iconSpacing": { "value": 8, "unit": "px" }, "borderRadius": { "value": 4, "unit": "px" }, "textStyle": "Label Medium", "paddingTop": { "value": 0, "unit": "px" }, "paddingLeft": { "value": 24, "unit": "px" }, "paddingRight": { "value": 24, "unit": "px" }, "paddingBottom": { "value": 0, "unit": "px" }, "color": "#FFFFFF", "minWidth": { "value": 80, "unit": "px" }, "useIcon": false, "iconSize": { "value": 20, "unit": "px" } }, "stateParamaters": { "hover": { "backgroundColor": "Primary Dark" }, "pressed": { "backgroundColor": "Primary", "color": "White" }, "disabled": { "backgroundColor": "Grey - 300", "color": "Grey - 600" } }, "stateTransitions": {}, "defaultStateTransitions": { "neutral": { "curve": [ 0, 0, 0.58, 1 ], "dur": 0, "delay": 0 }, "hover": { "curve": [ 0, 0, 0.58, 1 ], "dur": 0, "delay": 0 }, "pressed": { "curve": [ 0, 0, 0.58, 1 ], "dur": 0, "delay": 0 } } }, { "typename": "net.noodl.controls.textinput", "parameters": { "useLabel": true, "sizeMode": "explicit", "height": { "value": 40, "unit": "px" }, "textStyle": "Body Medium", "borderStyle": "solid", "borderRadius": { "value": 4, "unit": "px" }, "borderWidth": { "value": 1, "unit": "px" }, "borderColor": "Grey - 700", "labeltextStyle": "Label Small", "paddingLeft": { "value": 12, "unit": "px" }, "paddingRight": { "value": 8, "unit": "px" }, "labelSpacing": { "value": 4, "unit": "px" }, "placeholder": "Type here", "color": "Grey - 900", "placeHolderOpacity": 0.65, "enabled": true, "blockTouch": false, "useIcon": false, "iconIconSource": { "class": "material-icons", "code": "home" }, "iconSize": { "value": 20, "unit": "px" }, "iconSpacing": { "value": 4, "unit": "px" }, "iconColor": "Grey - 700", "labelcolor": "Grey - 700" }, "stateParamaters": { "hover": { "labelcolor": "Grey - 700", "borderColor": "Grey - 700", "borderStyle": "solid", "color": "Grey - 900" }, "focused": { "borderColor": "Primary", "labelcolor": "Primary", "borderWidth": { "value": 1, "unit": "px" }, "boxShadowEnabled": false, "boxShadowColor": "Primary", "borderStyle": "solid" }, "disabled": { "labelcolor": "Grey - 500", "backgroundColor": "Grey - 200", "borderWidth": { "value": 1, "unit": "px" }, "borderColor": "Grey - 500", "color": "Grey - 600" } }, "stateTransitions": {}, "defaultStateTransitions": { "neutral": { "curve": [ 0, 0, 0.58, 1 ], "dur": 0, "delay": 0 }, "focused": { "curve": [ 0, 0, 0.58, 1 ], "dur": 0, "delay": 0 }, "hover": { "curve": [ 0, 0, 0.58, 1 ], "dur": 0, "delay": 0 }, "disabled": { "curve": [ 0, 0, 0.58, 1 ], "dur": 0, "delay": 0 } } }, { "typename": "net.noodl.controls.options", "parameters": { "sizeMode": "explicit", "height": { "value": 40, "unit": "px" }, "borderWidth": { "value": 1, "unit": "px" }, "borderRadius": { "value": 4, "unit": "px" }, "borderColor": "Grey - 700", "boxShadowColor": "Dark Gray", "useIcon": true, "iconIconSource": { "class": "material-icons", "code": "expand_more" }, "iconPlacement": "right", "iconSize": { "value": 20, "unit": "px" }, "paddingRight": { "value": 12, "unit": "px" }, "textStyle": "Body Medium", "paddingLeft": { "value": 12, "unit": "px" }, "marginTop": { "value": 0, "unit": "px" }, "width": { "value": 100, "unit": "%" }, "iconColor": "Grey - 700", "placeholderOpacity": 0.65, "placeholder": "Select option", "useLabel": true, "labelSpacing": { "value": 4, "unit": "px" }, "labeltextStyle": "Label Small", "labelcolor": "Grey - 700", "items": "[\n {\"Label\":\"Option 1\", \"Value\":\"1\"},\n {\"Label\":\"Option 2\", \"Value\":\"2\"},\n {\"Label\":\"Option 3\", \"Value\":\"3\"}\n]" }, "stateParamaters": { "hover": { "borderColor": "Grey - 700", "borderRadius": { "value": 4, "unit": "px" }, "iconColor": "Grey - 900", "iconSize": { "value": 20, "unit": "px" }, "iconPlacement": "right", "color": "Grey - 900", "labelcolor": "Grey - 700" }, "focused": { "borderColor": "Primary", "boxShadowColor": "Primary", "borderRadius": { "value": 4, "unit": "px" }, "useIcon": true, "iconColor": "Primary", "iconIconSource": { "class": "material-icons", "code": "keyboard_arrow_up" }, "iconPlacement": "right", "color": "Grey - 900", "labelcolor": "Primary" }, "pressed": { "borderRadius": { "value": 4, "unit": "px" } }, "disabled": { "labelcolor": "Grey - 500", "iconColor": "Grey - 500", "borderColor": "Grey - 500", "color": "Grey - 600", "backgroundColor": "Grey - 200" } }, "stateTransitions": {}, "defaultStateTransitions": { "neutral": { "curve": [ 0, 0, 0.58, 1 ], "dur": 0, "delay": 0 }, "focused": { "curve": [ 0, 0, 0.58, 1 ], "dur": 0, "delay": 0 }, "hover": { "curve": [ 0, 0, 0.58, 1 ], "dur": 0, "delay": 0 }, "pressed": { "curve": [ 0, 0, 0.58, 1 ], "dur": 0, "delay": 0 } } }, { "typename": "net.noodl.controls.range", "parameters": { "thumbColor": "Primary", "thumbBorderRadius": { "value": 100, "unit": "%" }, "trackHeight": { "value": 4, "unit": "px" }, "trackActiveColor": "Primary", "trackColor": "Primary Subtle", "width": { "value": 100, "unit": "%" }, "trackBorderRadius": { "value": 100, "unit": "px" }, "thumbHeight": { "value": 16, "unit": "px" }, "thumbWidth": { "value": 16, "unit": "px" } }, "stateParamaters": { "hover": { "thumbColor": "Primary Dark", "trackActiveColor": "Primary Dark" }, "disabled": { "trackActiveColor": "Grey - 500", "trackColor": "Grey - 300", "thumbColor": "Grey - 500" } }, "stateTransitions": {} }, { "typename": "net.noodl.controls.checkbox", "parameters": { "width": { "value": 20, "unit": "px" }, "height": { "value": 20, "unit": "px" }, "useIcon": false, "borderWidth": { "value": 1, "unit": "px" }, "useLabel": true, "labeltextStyle": "Body Medium", "borderRadius": { "value": 2, "unit": "px" }, "borderColor": "Grey - 700", "labelfontSize": { "value": 16, "unit": "px" }, "labelcolor": "Grey - 900", "labelSpacing": { "value": 12, "unit": "px" } }, "stateParamaters": { "checked": { "useIcon": true, "iconIconSource": { "class": "material-icons", "code": "check" }, "backgroundColor": "Primary", "borderColor": "Primary", "iconSize": { "value": 16, "unit": "px" } }, "disabled": { "opacity": 0.5 }, "hover": { "borderColor": "Grey - 700" }, "pressed": {} }, "stateTransitions": {}, "defaultStateTransitions": { "neutral": { "curve": [ 0, 0, 0.58, 1 ], "dur": 0, "delay": 0 }, "hover": { "curve": [ 0, 0, 0.58, 1 ], "dur": 300, "delay": 0 }, "checked": { "curve": [ 0, 0, 0.58, 1 ], "dur": 0, "delay": 0 } } }, { "typename": "net.noodl.controls.radiobutton", "parameters": { "width": { "value": 20, "unit": "px" }, "height": { "value": 20, "unit": "px" }, "useLabel": true, "labeltextStyle": "Body Large", "borderWidth": { "value": 1, "unit": "px" }, "value": "0", "useIcon": false, "fillColor": "transparent", "borderColor": "Grey - 700", "labelfontSize": { "value": 16, "unit": "px" }, "marginBottom": { "value": 8, "unit": "px" }, "labelcolor": "Grey - 900", "labelSpacing": { "value": 12, "unit": "px" } }, "stateParamaters": { "checked": { "fillColor": "Primary", "borderColor": "Primary", "borderWidth": { "value": 1, "unit": "px" }, "backgroundColor": "transparent", "width": { "value": 20, "unit": "px" }, "height": { "value": 20, "unit": "px" }, "fillSpacing": { "value": 2, "unit": "px" } }, "hover": { "backgroundColor": "transparent", "borderColor": "Grey - 700", "width": { "value": 20, "unit": "px" }, "height": { "value": 20, "unit": "px" } }, "disabled": { "borderColor": "Grey - 500", "labelcolor": "Grey - 500", "fillColor": "transparent" } }, "stateTransitions": {}, "defaultStateTransitions": { "neutral": { "curve": [ 0, 0, 0.58, 1 ], "dur": 0, "delay": 0 }, "hover": { "curve": [ 0, 0, 0.58, 1 ], "dur": 0, "delay": 0 }, "checked": { "curve": [ 0, 0, 0.58, 1 ], "dur": 0, "delay": 0 } } } ] }