Files
noodl-cloudservice/tests/project/project.json
Eric Tuvesson 663c0a2e39 Initial commit
Co-Authored-By: mikaeltellhed <2311083+mikaeltellhed@users.noreply.github.com>
2023-12-04 10:20:38 +01:00

21978 lines
1009 KiB
JSON

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