{
    "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
                }
            }
        }
    ]
}