diff --git a/docs/diagrams/laf-arch-full.excalidraw b/docs/diagrams/laf-arch-full.excalidraw index eb133ece7b..93cc0396ff 100644 --- a/docs/diagrams/laf-arch-full.excalidraw +++ b/docs/diagrams/laf-arch-full.excalidraw @@ -5,81 +5,8 @@ "elements": [ { "type": "rectangle", - "version": 2016, - "versionNonce": 1115561779, - "isDeleted": false, - "id": "CWJVfUily2HQrkrrhGWVB", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 789.6579973884218, - "y": 31.55495249606804, - "strokeColor": "#000000", - "backgroundColor": "#ced4da", - "width": 238, - "height": 74, - "seed": 956432943, - "groupIds": [], - "strokeSharpness": "sharp", - "boundElements": [ - { - "type": "text", - "id": "G6myBAdfgZgo6d2Oa3rIj" - }, - { - "id": "8fGBOXNk8bCIy6Zk7y-De", - "type": "arrow" - }, - { - "id": "F0l5EdS9JdyYqN5Lmjb8Q", - "type": "arrow" - } - ], - "updated": 1664572206635, - "link": null, - "locked": false - }, - { - "type": "text", - "version": 1844, - "versionNonce": 147320700, - "isDeleted": false, - "id": "G6myBAdfgZgo6d2Oa3rIj", - "fillStyle": "solid", - "strokeWidth": 4, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 794.6579973884218, - "y": 46.55495249606804, - "strokeColor": "#000000", - "backgroundColor": "#40c057", - "width": 213, - "height": 44, - "seed": 887303503, - "groupIds": [], - "strokeSharpness": "sharp", - "boundElements": [], - "updated": 1668084241168, - "link": null, - "locked": false, - "fontSize": 36, - "fontFamily": 3, - "text": "laf server", - "baseline": 35, - "textAlign": "left", - "verticalAlign": "middle", - "containerId": "CWJVfUily2HQrkrrhGWVB", - "originalText": "laf server" - }, - { - "type": "rectangle", - "version": 727, - "versionNonce": 1470850309, + "version": 729, + "versionNonce": 743764033, "isDeleted": false, "id": "yIaxuM7PTc3JyYygAVlow", "fillStyle": "hachure", @@ -89,28 +16,28 @@ "opacity": 100, "angle": 0, "x": 482.70861820892173, - "y": -86.97645210442369, + "y": -87.18785794781246, "strokeColor": "#000000", "backgroundColor": "#dee4ea", "width": 176, "height": 66, "seed": 2125013043, "groupIds": [], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [ { "type": "text", "id": "m7YtI68vy8BrAI9456Lx0" } ], - "updated": 1667988583501, + "updated": 1682390147044, "link": null, "locked": false }, { "type": "rectangle", - "version": 824, - "versionNonce": 878802411, + "version": 825, + "versionNonce": 602009679, "isDeleted": false, "id": "iFdhpoqG-8cvlt635sWly", "fillStyle": "hachure", @@ -127,25 +54,21 @@ "height": 66, "seed": 645415389, "groupIds": [], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [ { "id": "j7AFmXdWx8ncL-sByBxr1", "type": "text" - }, - { - "type": "text", - "id": "j7AFmXdWx8ncL-sByBxr1" } ], - "updated": 1667988582804, + "updated": 1682390147044, "link": null, "locked": false }, { "type": "rectangle", - "version": 879, - "versionNonce": 1362650283, + "version": 880, + "versionNonce": 2007973921, "isDeleted": false, "id": "LEtOq_GNzdK06yv6FCUaL", "fillStyle": "hachure", @@ -162,29 +85,21 @@ "height": 38, "seed": 1649448179, "groupIds": [], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [ { "id": "2i_OC0N5CymL1Gm3XGJ51", "type": "text" - }, - { - "id": "2i_OC0N5CymL1Gm3XGJ51", - "type": "text" - }, - { - "type": "text", - "id": "2i_OC0N5CymL1Gm3XGJ51" } ], - "updated": 1667988581981, + "updated": 1682390147044, "link": null, "locked": false }, { "type": "rectangle", - "version": 1063, - "versionNonce": 1757802853, + "version": 1064, + "versionNonce": 234688111, "isDeleted": false, "id": "tKjzaQgey4YRa-W0mOpBk", "fillStyle": "hachure", @@ -201,33 +116,21 @@ "height": 66, "seed": 1583443869, "groupIds": [], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [ { "id": "c3_dC4IS__cnRYxHXTdrp", "type": "text" - }, - { - "id": "c3_dC4IS__cnRYxHXTdrp", - "type": "text" - }, - { - "id": "c3_dC4IS__cnRYxHXTdrp", - "type": "text" - }, - { - "type": "text", - "id": "c3_dC4IS__cnRYxHXTdrp" } ], - "updated": 1667988581262, + "updated": 1682390147044, "link": null, "locked": false }, { "type": "rectangle", - "version": 1119, - "versionNonce": 1212021643, + "version": 1121, + "versionNonce": 1266359919, "isDeleted": false, "id": "C16_cp7Kvs98I3yC1wEzB", "fillStyle": "hachure", @@ -236,45 +139,29 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 483.74377445892173, - "y": 201.08431178446517, + "x": 483.53230667417824, + "y": 200.8860994496149, "strokeColor": "#000000", "backgroundColor": "#dee4ea", "width": 178, "height": 66, "seed": 706811581, "groupIds": [], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [ { "id": "VCtvQy5TQteGcX2VgctFr", "type": "text" - }, - { - "id": "VCtvQy5TQteGcX2VgctFr", - "type": "text" - }, - { - "id": "VCtvQy5TQteGcX2VgctFr", - "type": "text" - }, - { - "id": "VCtvQy5TQteGcX2VgctFr", - "type": "text" - }, - { - "type": "text", - "id": "VCtvQy5TQteGcX2VgctFr" } ], - "updated": 1667988580485, + "updated": 1682390179627, "link": null, "locked": false }, { "type": "rectangle", - "version": 1220, - "versionNonce": 1304590245, + "version": 1221, + "versionNonce": 1599039631, "isDeleted": false, "id": "m_-FpYnKNljgOKf_7OTgJ", "fillStyle": "hachure", @@ -291,41 +178,21 @@ "height": 66, "seed": 609703069, "groupIds": [], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [ { "id": "WDu98khDATYV08tGQWau5", "type": "text" - }, - { - "id": "WDu98khDATYV08tGQWau5", - "type": "text" - }, - { - "id": "WDu98khDATYV08tGQWau5", - "type": "text" - }, - { - "id": "WDu98khDATYV08tGQWau5", - "type": "text" - }, - { - "id": "WDu98khDATYV08tGQWau5", - "type": "text" - }, - { - "type": "text", - "id": "WDu98khDATYV08tGQWau5" } ], - "updated": 1667988591670, + "updated": 1682390147044, "link": null, "locked": false }, { "type": "rectangle", - "version": 710, - "versionNonce": 520071109, + "version": 711, + "versionNonce": 237267937, "isDeleted": false, "id": "i_oL4vx3IxwwV65ndHvXG", "fillStyle": "hachure", @@ -342,37 +209,21 @@ "height": 66, "seed": 40928669, "groupIds": [], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [ { "id": "6dYVn41EPXSYABfzG93KG", "type": "text" - }, - { - "type": "text", - "id": "6dYVn41EPXSYABfzG93KG" - }, - { - "id": "P--KqBqhusuV65Jfm9e9S", - "type": "arrow" - }, - { - "id": "edEYS7LQQXgHqVU4gRSMi", - "type": "arrow" - }, - { - "id": "omfoNBHlSi-C65seG3joz", - "type": "arrow" } ], - "updated": 1667988584051, + "updated": 1682390147044, "link": null, "locked": false }, { "type": "text", - "version": 718, - "versionNonce": 1458379211, + "version": 724, + "versionNonce": 630292143, "isDeleted": false, "id": "m7YtI68vy8BrAI9456Lx0", "fillStyle": "hachure", @@ -381,32 +232,33 @@ "roughness": 0, "opacity": 100, "angle": 0, - "x": 511.20861820892173, - "y": -81.97645210442369, + "x": 523.8336182089217, + "y": -66.18785794781246, "strokeColor": "#000000", "backgroundColor": "#dee4ea", - "width": 119, - "height": 48, + "width": 93.75, + "height": 24, "seed": 371639347, "groupIds": [], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1667988583506, + "updated": 1682390147044, "link": null, "locked": false, "fontSize": 20, "fontFamily": 3, - "text": "instance \ncontroller", - "baseline": 44, + "text": "instance", "textAlign": "center", "verticalAlign": "middle", "containerId": "yIaxuM7PTc3JyYygAVlow", - "originalText": "instance controller" + "originalText": "instance", + "lineHeight": 1.2, + "baseline": 19 }, { "type": "text", - "version": 850, - "versionNonce": 1882292363, + "version": 855, + "versionNonce": 1431193537, "isDeleted": false, "id": "j7AFmXdWx8ncL-sByBxr1", "fillStyle": "hachure", @@ -415,32 +267,33 @@ "roughness": 0, "opacity": 100, "angle": 0, - "x": 511.50983348669945, - "y": -8.629211412934296, + "x": 524.1348334866994, + "y": 7.370788587065704, "strokeColor": "#000000", "backgroundColor": "#dee4ea", - "width": 119, - "height": 48, + "width": 93.75, + "height": 24, "seed": 1300960883, "groupIds": [], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1667988582810, + "updated": 1682390147044, "link": null, "locked": false, "fontSize": 20, "fontFamily": 3, - "text": "database \ncontroller", - "baseline": 44, + "text": "database", "textAlign": "center", "verticalAlign": "middle", "containerId": "iFdhpoqG-8cvlt635sWly", - "originalText": "database controller" + "originalText": "database", + "lineHeight": 1.2, + "baseline": 19 }, { "type": "text", - "version": 886, - "versionNonce": 1215156101, + "version": 896, + "versionNonce": 594268367, "isDeleted": false, "id": "2i_OC0N5CymL1Gm3XGJ51", "fillStyle": "hachure", @@ -449,32 +302,33 @@ "roughness": 0, "opacity": 100, "angle": 0, - "x": 488.42997237558836, - "y": 69.40071803446517, + "x": 530.4143473755884, + "y": 71.40071803446517, "strokeColor": "#000000", "backgroundColor": "#dee4ea", - "width": 166, + "width": 82.03125, "height": 24, "seed": 409315261, "groupIds": [], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1667988581986, + "updated": 1682390147044, "link": null, "locked": false, "fontSize": 20, "fontFamily": 3, - "text": "oss controller", - "baseline": 20, + "text": "storage", "textAlign": "center", "verticalAlign": "middle", "containerId": "LEtOq_GNzdK06yv6FCUaL", - "originalText": "oss controller" + "originalText": "storage", + "lineHeight": 1.2, + "baseline": 19 }, { "type": "text", - "version": 1063, - "versionNonce": 1747745989, + "version": 1074, + "versionNonce": 802573441, "isDeleted": false, "id": "c3_dC4IS__cnRYxHXTdrp", "fillStyle": "hachure", @@ -483,32 +337,33 @@ "roughness": 0, "opacity": 100, "angle": 0, - "x": 510.32797584781065, - "y": 122.54481525668734, + "x": 528.8123508478106, + "y": 138.54481525668734, "strokeColor": "#000000", "backgroundColor": "#dee4ea", - "width": 119, - "height": 48, + "width": 82.03125, + "height": 24, "seed": 1181000883, "groupIds": [], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1667988581268, + "updated": 1682390169519, "link": null, "locked": false, "fontSize": 20, "fontFamily": 3, - "text": "gateway \ncontroller", - "baseline": 44, + "text": "gateway", "textAlign": "center", "verticalAlign": "middle", "containerId": "tKjzaQgey4YRa-W0mOpBk", - "originalText": "gateway controller" + "originalText": "gateway", + "lineHeight": 1.2, + "baseline": 19 }, { "type": "text", - "version": 1138, - "versionNonce": 229397035, + "version": 1157, + "versionNonce": 1393965551, "isDeleted": false, "id": "VCtvQy5TQteGcX2VgctFr", "fillStyle": "hachure", @@ -517,32 +372,33 @@ "roughness": 0, "opacity": 100, "angle": 0, - "x": 513.2437744589217, - "y": 206.08431178446517, + "x": 537.3760566741782, + "y": 221.8860994496149, "strokeColor": "#000000", "backgroundColor": "#dee4ea", - "width": 119, - "height": 48, + "width": 70.3125, + "height": 24, "seed": 1429110675, "groupIds": [], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1667988580491, + "updated": 1682390240883, "link": null, "locked": false, "fontSize": 20, "fontFamily": 3, - "text": "runtime \ncontroller", - "baseline": 44, + "text": "region", "textAlign": "center", "verticalAlign": "middle", "containerId": "C16_cp7Kvs98I3yC1wEzB", - "originalText": "runtime controller" + "originalText": "region", + "lineHeight": 1.2, + "baseline": 19 }, { "type": "text", - "version": 1247, - "versionNonce": 4078341, + "version": 1258, + "versionNonce": 585672385, "isDeleted": false, "id": "WDu98khDATYV08tGQWau5", "fillStyle": "hachure", @@ -551,32 +407,33 @@ "roughness": 0, "opacity": 100, "angle": 0, - "x": 513.6352675144774, - "y": 286.10080484002066, + "x": 532.1196425144774, + "y": 302.10080484002066, "strokeColor": "#000000", "backgroundColor": "#dee4ea", - "width": 119, - "height": 48, + "width": 82.03125, + "height": 24, "seed": 1860931507, "groupIds": [], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1667988591677, + "updated": 1682390186669, "link": null, "locked": false, "fontSize": 20, "fontFamily": 3, - "text": "trigger \ncontroller", - "baseline": 44, + "text": "trigger", "textAlign": "center", "verticalAlign": "middle", "containerId": "m_-FpYnKNljgOKf_7OTgJ", - "originalText": "trigger controller" + "originalText": "trigger", + "lineHeight": 1.2, + "baseline": 19 }, { "type": "text", - "version": 702, - "versionNonce": 268657419, + "version": 717, + "versionNonce": 1698375951, "isDeleted": false, "id": "6dYVn41EPXSYABfzG93KG", "fillStyle": "hachure", @@ -585,32 +442,33 @@ "roughness": 0, "opacity": 100, "angle": 0, - "x": 498.295857792255, - "y": -158.43304932664591, + "x": 504.842732792255, + "y": -142.43304932664591, "strokeColor": "#000000", "backgroundColor": "#dee4ea", - "width": 142, - "height": 48, + "width": 128.90625, + "height": 24, "seed": 2130308787, "groupIds": [], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1667988584057, + "updated": 1682390147045, "link": null, "locked": false, "fontSize": 20, "fontFamily": 3, - "text": "application \ncontroller", - "baseline": 44, + "text": "application", "textAlign": "center", "verticalAlign": "middle", "containerId": "i_oL4vx3IxwwV65ndHvXG", - "originalText": "application controller" + "originalText": "application", + "lineHeight": 1.2, + "baseline": 19 }, { "type": "rectangle", - "version": 1981, - "versionNonce": 1635857939, + "version": 1984, + "versionNonce": 184984847, "isDeleted": false, "id": "ErO6-0lIVDUhdmtZ9_T_2", "fillStyle": "hachure", @@ -627,33 +485,29 @@ "height": 613.5189887152779, "seed": 882339581, "groupIds": [], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [ { - "id": "8fGBOXNk8bCIy6Zk7y-De", - "type": "arrow" - }, - { - "id": "yGPWxY9FQKpmjOKLu_fmc", + "id": "I1nGdnOz_CgahA-y7cGbM", "type": "arrow" }, { - "id": "I1nGdnOz_CgahA-y7cGbM", + "id": "nrxhhHB-9wXQK_qHT3bSs", "type": "arrow" }, { - "id": "nrxhhHB-9wXQK_qHT3bSs", + "id": "F0l5EdS9JdyYqN5Lmjb8Q", "type": "arrow" } ], - "updated": 1664572076691, + "updated": 1682390213581, "link": null, "locked": false }, { "type": "rectangle", - "version": 862, - "versionNonce": 1777423172, + "version": 863, + "versionNonce": 1764831023, "isDeleted": false, "id": "BPTHaB1d7bTkLwjf3WSq8", "fillStyle": "solid", @@ -670,21 +524,21 @@ "height": 49, "seed": 1136602525, "groupIds": [], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [ { "type": "text", "id": "q7HTshLHNpAnsIF3aIfuN" } ], - "updated": 1668084253789, + "updated": 1682390147045, "link": null, "locked": false }, { "type": "text", - "version": 692, - "versionNonce": 654316924, + "version": 700, + "versionNonce": 1629478721, "isDeleted": false, "id": "q7HTshLHNpAnsIF3aIfuN", "fillStyle": "hachure", @@ -693,32 +547,33 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 507.70373539642185, + "x": 492.17248539642185, "y": -225.71451634053506, "strokeColor": "#000000", "backgroundColor": "transparent", - "width": 133, + "width": 164.0625, "height": 34, "seed": 150916339, "groupIds": [], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1668084257150, + "updated": 1682390147045, "link": null, "locked": false, "fontSize": 28, "fontFamily": 3, - "text": "laf core", - "baseline": 27, + "text": "laf server", "textAlign": "center", "verticalAlign": "middle", "containerId": "BPTHaB1d7bTkLwjf3WSq8", - "originalText": "laf core" + "originalText": "laf server", + "lineHeight": 1.2142857142857142, + "baseline": 27 }, { "type": "ellipse", - "version": 1338, - "versionNonce": 286133501, + "version": 1339, + "versionNonce": 683766095, "isDeleted": false, "id": "heV518HpIRbsnPscnw7cc", "fillStyle": "solid", @@ -737,16 +592,16 @@ "groupIds": [ "AV5QK58pag-XAYecGDqOn" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076691, + "updated": 1682390147045, "link": null, "locked": false }, { "type": "ellipse", - "version": 1380, - "versionNonce": 1482886483, + "version": 1381, + "versionNonce": 1396985633, "isDeleted": false, "id": "JaSR5BP7Hqq2Q2zmoWw9f", "fillStyle": "solid", @@ -765,16 +620,16 @@ "groupIds": [ "AV5QK58pag-XAYecGDqOn" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076691, + "updated": 1682390147045, "link": null, "locked": false }, { "type": "ellipse", - "version": 1421, - "versionNonce": 488465757, + "version": 1422, + "versionNonce": 759459695, "isDeleted": false, "id": "UXp2CK2SQnozdBGdZevDS", "fillStyle": "solid", @@ -793,69 +648,16 @@ "groupIds": [ "AV5QK58pag-XAYecGDqOn" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076691, + "updated": 1682390147045, "link": null, "locked": false }, { "type": "arrow", - "version": 2330, - "versionNonce": 1818793117, - "isDeleted": false, - "id": "8fGBOXNk8bCIy6Zk7y-De", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 775.7628956061426, - "y": 76.44124819218145, - "strokeColor": "#000000", - "backgroundColor": "#228be6", - "width": 61.089460687561996, - "height": 0.26659395427897437, - "seed": 1596869139, - "groupIds": [], - "strokeSharpness": "round", - "boundElements": [], - "updated": 1664572303000, - "link": null, - "locked": false, - "startBinding": { - "elementId": "CWJVfUily2HQrkrrhGWVB", - "gap": 13.895101782279227, - "focus": -0.1729085514225781 - }, - "endBinding": { - "elementId": "ErO6-0lIVDUhdmtZ9_T_2", - "focus": -0.041063454394831514, - "gap": 14.258074515353002 - }, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": "arrow", - "points": [ - [ - 0, - 0 - ], - [ - -10.549047622402213, - 0.10232634380973593 - ], - [ - -61.089460687561996, - 0.26659395427897437 - ] - ] - }, - { - "type": "arrow", - "version": 3528, - "versionNonce": 1536053171, + "version": 3801, + "versionNonce": 574923279, "isDeleted": false, "id": "F0l5EdS9JdyYqN5Lmjb8Q", "fillStyle": "solid", @@ -864,28 +666,28 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 901.5900766874938, - "y": 173.93165658795988, + "x": 817.9268057301465, + "y": 111.79038534717182, "strokeColor": "#000000", "backgroundColor": "#228be6", - "width": 0.4023256050325017, - "height": 52.540233263301246, + "width": 100.787226919001, + "height": 0.5986806575956791, "seed": 1607502237, "groupIds": [], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572303000, + "updated": 1682390216744, "link": null, "locked": false, "startBinding": { "elementId": "xeTZSFRJPria6_fCTJ7si", - "gap": 12.00204575635525, - "focus": -0.029921827695954292 + "focus": -0.3781336467486217, + "gap": 12.002045756355358 }, "endBinding": { - "elementId": "CWJVfUily2HQrkrrhGWVB", - "gap": 15.836470828590585, - "focus": 0.05248848464725526 + "elementId": "ErO6-0lIVDUhdmtZ9_T_2", + "focus": 0.06684415025193227, + "gap": 16.724218407918016 }, "lastCommittedPoint": null, "startArrowhead": null, @@ -896,15 +698,15 @@ 0 ], [ - 0.4023256050325017, - -52.540233263301246 + -100.787226919001, + -0.5986806575956791 ] ] }, { "type": "rectangle", - "version": 4248, - "versionNonce": 46777427, + "version": 4262, + "versionNonce": 1157741281, "isDeleted": false, "id": "tSpu5H8lblwlnn13Wz8Rl", "fillStyle": "solid", @@ -923,21 +725,21 @@ "groupIds": [ "nqaclVxUzCgraM1EQ9VuF" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [ { "id": "I1nGdnOz_CgahA-y7cGbM", "type": "arrow" } ], - "updated": 1664572076692, + "updated": 1682390147045, "link": null, "locked": false }, { "type": "rectangle", - "version": 5456, - "versionNonce": 1954809701, + "version": 5493, + "versionNonce": 1877951841, "isDeleted": false, "id": "RqWzbG9cswTR5MEjnZHb0", "fillStyle": "hachure", @@ -947,16 +749,16 @@ "opacity": 100, "angle": 0, "x": 152.82037364005788, - "y": -183.61071972864167, + "y": -183.9675019313722, "strokeColor": "#000000", "backgroundColor": "#ced4da", "width": 181, - "height": 44, + "height": 39, "seed": 992812285, "groupIds": [ "nqaclVxUzCgraM1EQ9VuF" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [ { "id": "-3QRDzc7uFeAnkql3NZCD", @@ -969,20 +771,16 @@ { "id": "F0l5EdS9JdyYqN5Lmjb8Q", "type": "arrow" - }, - { - "type": "text", - "id": "-3QRDzc7uFeAnkql3NZCD" } ], - "updated": 1667988587988, + "updated": 1682390164541, "link": null, "locked": false }, { "type": "rectangle", - "version": 5479, - "versionNonce": 133341669, + "version": 5493, + "versionNonce": 27899585, "isDeleted": false, "id": "seQu8_J3CL9Lt8R3bL22H", "fillStyle": "hachure", @@ -1001,7 +799,7 @@ "groupIds": [ "nqaclVxUzCgraM1EQ9VuF" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [ { "id": "55FiARpPQE_zho5x-ZUO8", @@ -1014,24 +812,16 @@ { "id": "F0l5EdS9JdyYqN5Lmjb8Q", "type": "arrow" - }, - { - "id": "55FiARpPQE_zho5x-ZUO8", - "type": "text" - }, - { - "type": "text", - "id": "55FiARpPQE_zho5x-ZUO8" } ], - "updated": 1667988586459, + "updated": 1682390147045, "link": null, "locked": false }, { "type": "rectangle", - "version": 5542, - "versionNonce": 192880971, + "version": 5579, + "versionNonce": 2037763233, "isDeleted": false, "id": "svcbltv9b-WzYyB5ktXMS", "fillStyle": "hachure", @@ -1045,12 +835,12 @@ "strokeColor": "#000000", "backgroundColor": "#ced4da", "width": 181, - "height": 44, + "height": 39, "seed": 632272893, "groupIds": [ "nqaclVxUzCgraM1EQ9VuF" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [ { "id": "5yat8wLf-J_xYX46ZzGln", @@ -1063,28 +853,16 @@ { "id": "F0l5EdS9JdyYqN5Lmjb8Q", "type": "arrow" - }, - { - "id": "5yat8wLf-J_xYX46ZzGln", - "type": "text" - }, - { - "id": "5yat8wLf-J_xYX46ZzGln", - "type": "text" - }, - { - "type": "text", - "id": "5yat8wLf-J_xYX46ZzGln" } ], - "updated": 1667988589756, + "updated": 1682390156184, "link": null, "locked": false }, { "type": "rectangle", - "version": 5620, - "versionNonce": 185404307, + "version": 5634, + "versionNonce": 61290145, "isDeleted": false, "id": "xpCiUeVBSQd9r39Y9pMJF", "fillStyle": "cross-hatch", @@ -1103,7 +881,7 @@ "groupIds": [ "nqaclVxUzCgraM1EQ9VuF" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [ { "id": "374mHHnI1qdq-3vCk5mIG", @@ -1117,35 +895,19 @@ "id": "F0l5EdS9JdyYqN5Lmjb8Q", "type": "arrow" }, - { - "id": "374mHHnI1qdq-3vCk5mIG", - "type": "text" - }, - { - "id": "374mHHnI1qdq-3vCk5mIG", - "type": "text" - }, - { - "id": "374mHHnI1qdq-3vCk5mIG", - "type": "text" - }, - { - "type": "text", - "id": "374mHHnI1qdq-3vCk5mIG" - }, { "id": "ZQbEf5yZUkOtPwD_rAbZB", "type": "arrow" } ], - "updated": 1664572076692, + "updated": 1682390147045, "link": null, "locked": false }, { "type": "text", - "version": 5300, - "versionNonce": 187583851, + "version": 5351, + "versionNonce": 1033567535, "isDeleted": false, "id": "-3QRDzc7uFeAnkql3NZCD", "fillStyle": "solid", @@ -1154,34 +916,35 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 165.32037364005788, - "y": -178.61071972864167, + "x": 166.46002207755788, + "y": -178.9675019313722, "strokeColor": "#000000", "backgroundColor": "#40c057", - "width": 156, + "width": 153.720703125, "height": 29, "seed": 796720467, "groupIds": [ "nqaclVxUzCgraM1EQ9VuF" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1667988587993, + "updated": 1682390164541, "link": null, "locked": false, "fontSize": 23.854444858222056, "fontFamily": 3, "text": "app cluster", - "baseline": 23, "textAlign": "center", "verticalAlign": "middle", "containerId": "RqWzbG9cswTR5MEjnZHb0", - "originalText": "app cluster" + "originalText": "app cluster", + "lineHeight": 1.2157063462327606, + "baseline": 23 }, { "type": "text", - "version": 5379, - "versionNonce": 527211243, + "version": 5394, + "versionNonce": 229227137, "isDeleted": false, "id": "55FiARpPQE_zho5x-ZUO8", "fillStyle": "solid", @@ -1190,34 +953,35 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 173.2330242105445, + "x": 174.3599773355445, "y": -125.21245689497809, "strokeColor": "#000000", "backgroundColor": "#40c057", - "width": 142, + "width": 139.74609375, "height": 29, "seed": 1495363987, "groupIds": [ "nqaclVxUzCgraM1EQ9VuF" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1667988586465, + "updated": 1682390147045, "link": null, "locked": false, "fontSize": 23.854444858222056, "fontFamily": 3, "text": "db cluster", - "baseline": 23, "textAlign": "center", "verticalAlign": "middle", "containerId": "seQu8_J3CL9Lt8R3bL22H", - "originalText": "db cluster" + "originalText": "db cluster", + "lineHeight": 1.2157063462327606, + "baseline": 23 }, { "type": "text", - "version": 5444, - "versionNonce": 1215737061, + "version": 5495, + "versionNonce": 1528007151, "isDeleted": false, "id": "5yat8wLf-J_xYX46ZzGln", "fillStyle": "solid", @@ -1226,34 +990,35 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 167.14266098145544, + "x": 168.28230941895544, "y": -71.63766588153507, "strokeColor": "#000000", "backgroundColor": "#40c057", - "width": 156, + "width": 153.720703125, "height": 29, "seed": 407212627, "groupIds": [ "nqaclVxUzCgraM1EQ9VuF" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1667988589761, + "updated": 1682390156184, "link": null, "locked": false, "fontSize": 23.854444858222056, "fontFamily": 3, "text": "oss cluster", - "baseline": 23, "textAlign": "center", "verticalAlign": "middle", "containerId": "svcbltv9b-WzYyB5ktXMS", - "originalText": "oss cluster" + "originalText": "oss cluster", + "lineHeight": 1.2157063462327606, + "baseline": 23 }, { "type": "text", - "version": 5514, - "versionNonce": 773292755, + "version": 5529, + "versionNonce": 1618002529, "isDeleted": false, "id": "374mHHnI1qdq-3vCk5mIG", "fillStyle": "solid", @@ -1262,34 +1027,35 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 196.49031723145544, + "x": 197.57918441895544, "y": -18.68942369403507, "strokeColor": "#000000", "backgroundColor": "#40c057", - "width": 100, + "width": 97.822265625, "height": 29, "seed": 2040542611, "groupIds": [ "nqaclVxUzCgraM1EQ9VuF" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076692, + "updated": 1682390147045, "link": null, "locked": false, "fontSize": 23.854444858222056, "fontFamily": 3, "text": "gateway", - "baseline": 23, "textAlign": "center", "verticalAlign": "middle", "containerId": "xpCiUeVBSQd9r39Y9pMJF", - "originalText": "gateway" + "originalText": "gateway", + "lineHeight": 1.2157063462327606, + "baseline": 23 }, { "type": "rectangle", - "version": 2478, - "versionNonce": 53807069, + "version": 2492, + "versionNonce": 767283247, "isDeleted": false, "id": "huP2FrJ-wkcr6vlJtQjNo", "fillStyle": "solid", @@ -1308,21 +1074,21 @@ "groupIds": [ "nqaclVxUzCgraM1EQ9VuF" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [ { "type": "text", "id": "gDXZG2VZnjGqGW4DcKFlQ" } ], - "updated": 1664572076692, + "updated": 1682390147045, "link": null, "locked": false }, { "type": "text", - "version": 2376, - "versionNonce": 1013297267, + "version": 2391, + "versionNonce": 2026622529, "isDeleted": false, "id": "gDXZG2VZnjGqGW4DcKFlQ", "fillStyle": "solid", @@ -1331,34 +1097,35 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 144.55516696645316, + "x": 145.33641696645316, "y": -238.98515094605668, "strokeColor": "#000000", "backgroundColor": "#ced4da", - "width": 100, + "width": 98.4375, "height": 34, "seed": 166841683, "groupIds": [ "nqaclVxUzCgraM1EQ9VuF" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076692, + "updated": 1682390147045, "link": null, "locked": false, "fontSize": 28, "fontFamily": 3, "text": "region", - "baseline": 27, "textAlign": "center", "verticalAlign": "middle", "containerId": "huP2FrJ-wkcr6vlJtQjNo", - "originalText": "region" + "originalText": "region", + "lineHeight": 1.2142857142857142, + "baseline": 27 }, { "type": "rectangle", - "version": 4673, - "versionNonce": 1784808509, + "version": 4674, + "versionNonce": 625996367, "isDeleted": false, "id": "p0D15L-nr8QhX-zbskk8_", "fillStyle": "solid", @@ -1377,21 +1144,21 @@ "groupIds": [ "UFRQGUFnpiKOVq5Iy6XUA" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [ { "id": "nrxhhHB-9wXQK_qHT3bSs", "type": "arrow" } ], - "updated": 1664572076692, + "updated": 1682390147045, "link": null, "locked": false }, { "type": "rectangle", - "version": 5869, - "versionNonce": 467336485, + "version": 5870, + "versionNonce": 228220449, "isDeleted": false, "id": "k57klHHO_yd_U8HZLzii9", "fillStyle": "hachure", @@ -1410,7 +1177,7 @@ "groupIds": [ "UFRQGUFnpiKOVq5Iy6XUA" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [ { "id": "SrrJ6B-uIpzDjqa31vB49", @@ -1423,24 +1190,16 @@ { "id": "F0l5EdS9JdyYqN5Lmjb8Q", "type": "arrow" - }, - { - "id": "SrrJ6B-uIpzDjqa31vB49", - "type": "text" - }, - { - "type": "text", - "id": "SrrJ6B-uIpzDjqa31vB49" } ], - "updated": 1667988595088, + "updated": 1682390147045, "link": null, "locked": false }, { "type": "rectangle", - "version": 5893, - "versionNonce": 1759110699, + "version": 5894, + "versionNonce": 1985663087, "isDeleted": false, "id": "6vsz4Dw2TmbW1sk47VZs9", "fillStyle": "hachure", @@ -1459,7 +1218,7 @@ "groupIds": [ "UFRQGUFnpiKOVq5Iy6XUA" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [ { "id": "PfE5kBDG7XS-eflDWVWb2", @@ -1472,28 +1231,16 @@ { "id": "F0l5EdS9JdyYqN5Lmjb8Q", "type": "arrow" - }, - { - "id": "PfE5kBDG7XS-eflDWVWb2", - "type": "text" - }, - { - "id": "PfE5kBDG7XS-eflDWVWb2", - "type": "text" - }, - { - "type": "text", - "id": "PfE5kBDG7XS-eflDWVWb2" } ], - "updated": 1667988597192, + "updated": 1682390147045, "link": null, "locked": false }, { "type": "rectangle", - "version": 5956, - "versionNonce": 807432715, + "version": 5957, + "versionNonce": 1305211393, "isDeleted": false, "id": "cW4jdENz1hf0K4l0PTQp-", "fillStyle": "hachure", @@ -1512,7 +1259,7 @@ "groupIds": [ "UFRQGUFnpiKOVq5Iy6XUA" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [ { "id": "EamthWT66S2hXL08TUdTY", @@ -1525,32 +1272,16 @@ { "id": "F0l5EdS9JdyYqN5Lmjb8Q", "type": "arrow" - }, - { - "id": "EamthWT66S2hXL08TUdTY", - "type": "text" - }, - { - "id": "EamthWT66S2hXL08TUdTY", - "type": "text" - }, - { - "id": "EamthWT66S2hXL08TUdTY", - "type": "text" - }, - { - "type": "text", - "id": "EamthWT66S2hXL08TUdTY" } ], - "updated": 1667988598621, + "updated": 1682390147045, "link": null, "locked": false }, { "type": "rectangle", - "version": 6035, - "versionNonce": 1041357053, + "version": 6036, + "versionNonce": 983886479, "isDeleted": false, "id": "atGfK9Ka_jA7EbGAQUhV3", "fillStyle": "cross-hatch", @@ -1569,7 +1300,7 @@ "groupIds": [ "UFRQGUFnpiKOVq5Iy6XUA" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [ { "id": "U1Nj4qJ8lKgvug1V0iBjz", @@ -1582,36 +1313,16 @@ { "id": "F0l5EdS9JdyYqN5Lmjb8Q", "type": "arrow" - }, - { - "id": "U1Nj4qJ8lKgvug1V0iBjz", - "type": "text" - }, - { - "id": "U1Nj4qJ8lKgvug1V0iBjz", - "type": "text" - }, - { - "id": "U1Nj4qJ8lKgvug1V0iBjz", - "type": "text" - }, - { - "id": "U1Nj4qJ8lKgvug1V0iBjz", - "type": "text" - }, - { - "type": "text", - "id": "U1Nj4qJ8lKgvug1V0iBjz" } ], - "updated": 1664572076692, + "updated": 1682390147045, "link": null, "locked": false }, { "type": "text", - "version": 5683, - "versionNonce": 1631228843, + "version": 5685, + "versionNonce": 1583352289, "isDeleted": false, "id": "SrrJ6B-uIpzDjqa31vB49", "fillStyle": "solid", @@ -1620,34 +1331,35 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 167.0947045908557, + "x": 168.2343530283557, "y": 191.4800174721562, "strokeColor": "#000000", "backgroundColor": "#40c057", - "width": 156, + "width": 153.720703125, "height": 29, "seed": 1227194771, "groupIds": [ "UFRQGUFnpiKOVq5Iy6XUA" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1667988595093, + "updated": 1682390147046, "link": null, "locked": false, "fontSize": 23.854444858222056, "fontFamily": 3, "text": "app cluster", - "baseline": 23, "textAlign": "center", "verticalAlign": "middle", "containerId": "k57klHHO_yd_U8HZLzii9", - "originalText": "app cluster" + "originalText": "app cluster", + "lineHeight": 1.2157063462327606, + "baseline": 23 }, { "type": "text", - "version": 5763, - "versionNonce": 381625861, + "version": 5765, + "versionNonce": 1055309999, "isDeleted": false, "id": "PfE5kBDG7XS-eflDWVWb2", "fillStyle": "solid", @@ -1656,34 +1368,35 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 175.00735516134228, + "x": 176.13430828634228, "y": 244.62828030581977, "strokeColor": "#000000", "backgroundColor": "#40c057", - "width": 142, + "width": 139.74609375, "height": 29, "seed": 1729844509, "groupIds": [ "UFRQGUFnpiKOVq5Iy6XUA" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1667988597198, + "updated": 1682390147046, "link": null, "locked": false, "fontSize": 23.854444858222056, "fontFamily": 3, "text": "db cluster", - "baseline": 23, "textAlign": "center", "verticalAlign": "middle", "containerId": "6vsz4Dw2TmbW1sk47VZs9", - "originalText": "db cluster" + "originalText": "db cluster", + "lineHeight": 1.2157063462327606, + "baseline": 23 }, { "type": "text", - "version": 5828, - "versionNonce": 903858213, + "version": 5830, + "versionNonce": 409347521, "isDeleted": false, "id": "EamthWT66S2hXL08TUdTY", "fillStyle": "solid", @@ -1692,34 +1405,35 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 168.91699193225327, + "x": 170.05664036975327, "y": 298.2030713192628, "strokeColor": "#000000", "backgroundColor": "#40c057", - "width": 156, + "width": 153.720703125, "height": 29, "seed": 717608755, "groupIds": [ "UFRQGUFnpiKOVq5Iy6XUA" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1667988598626, + "updated": 1682390147046, "link": null, "locked": false, "fontSize": 23.854444858222056, "fontFamily": 3, "text": "oss cluster", - "baseline": 23, "textAlign": "center", "verticalAlign": "middle", "containerId": "cW4jdENz1hf0K4l0PTQp-", - "originalText": "oss cluster" + "originalText": "oss cluster", + "lineHeight": 1.2157063462327606, + "baseline": 23 }, { "type": "text", - "version": 5898, - "versionNonce": 1910734269, + "version": 5900, + "versionNonce": 617140943, "isDeleted": false, "id": "U1Nj4qJ8lKgvug1V0iBjz", "fillStyle": "solid", @@ -1728,34 +1442,35 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 198.26464818225327, + "x": 199.35351536975327, "y": 351.1513135067628, "strokeColor": "#000000", "backgroundColor": "#40c057", - "width": 100, + "width": 97.822265625, "height": 29, "seed": 780970365, "groupIds": [ "UFRQGUFnpiKOVq5Iy6XUA" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076693, + "updated": 1682390147046, "link": null, "locked": false, "fontSize": 23.854444858222056, "fontFamily": 3, "text": "gateway", - "baseline": 23, "textAlign": "center", "verticalAlign": "middle", "containerId": "atGfK9Ka_jA7EbGAQUhV3", - "originalText": "gateway" + "originalText": "gateway", + "lineHeight": 1.2157063462327606, + "baseline": 23 }, { "type": "rectangle", - "version": 2893, - "versionNonce": 778700947, + "version": 2894, + "versionNonce": 117294497, "isDeleted": false, "id": "W4ChEm505TWn1WpfW8HNW", "fillStyle": "solid", @@ -1774,29 +1489,25 @@ "groupIds": [ "UFRQGUFnpiKOVq5Iy6XUA" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [ { "id": "u2MkqS2S7SXAokNV71lph", "type": "text" }, - { - "type": "text", - "id": "u2MkqS2S7SXAokNV71lph" - }, { "id": "nrxhhHB-9wXQK_qHT3bSs", "type": "arrow" } ], - "updated": 1664572076693, + "updated": 1682390147046, "link": null, "locked": false }, { "type": "text", - "version": 2760, - "versionNonce": 1267121693, + "version": 2762, + "versionNonce": 1155768559, "isDeleted": false, "id": "u2MkqS2S7SXAokNV71lph", "fillStyle": "solid", @@ -1805,34 +1516,35 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 146.32949791725105, + "x": 147.11074791725105, "y": 130.85558625474118, "strokeColor": "#000000", "backgroundColor": "#ced4da", - "width": 100, + "width": 98.4375, "height": 34, "seed": 966029789, "groupIds": [ "UFRQGUFnpiKOVq5Iy6XUA" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076693, + "updated": 1682390147046, "link": null, "locked": false, "fontSize": 28, "fontFamily": 3, "text": "region", - "baseline": 27, "textAlign": "center", "verticalAlign": "middle", "containerId": "W4ChEm505TWn1WpfW8HNW", - "originalText": "region" + "originalText": "region", + "lineHeight": 1.2142857142857142, + "baseline": 27 }, { "type": "arrow", - "version": 3318, - "versionNonce": 1010528861, + "version": 3332, + "versionNonce": 626420097, "isDeleted": false, "id": "I1nGdnOz_CgahA-y7cGbM", "fillStyle": "solid", @@ -1849,9 +1561,11 @@ "height": 67.37285218755672, "seed": 1944148413, "groupIds": [], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664572242260, + "updated": 1682390147046, "link": null, "locked": false, "startBinding": { @@ -1884,8 +1598,8 @@ }, { "type": "arrow", - "version": 4305, - "versionNonce": 1371038749, + "version": 4306, + "versionNonce": 1354738447, "isDeleted": false, "id": "nrxhhHB-9wXQK_qHT3bSs", "fillStyle": "solid", @@ -1902,9 +1616,11 @@ "height": 58.513881284219565, "seed": 2054861757, "groupIds": [], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664572076693, + "updated": 1682390147046, "link": null, "locked": false, "startBinding": { @@ -1937,8 +1653,8 @@ }, { "type": "ellipse", - "version": 1750, - "versionNonce": 260388915, + "version": 1751, + "versionNonce": 1555009889, "isDeleted": false, "id": "NEAT3eMDTiiE7pephvT-l", "fillStyle": "solid", @@ -1958,16 +1674,16 @@ "kJUfOxO1MS73tdxUj7gLO", "Kjd8DzMT9qLTxKD-6VoJD" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076693, + "updated": 1682390147046, "link": null, "locked": false }, { "type": "ellipse", - "version": 1792, - "versionNonce": 11524221, + "version": 1793, + "versionNonce": 886403375, "isDeleted": false, "id": "gJxGIku4cDRAq8pRRovoP", "fillStyle": "solid", @@ -1987,16 +1703,16 @@ "kJUfOxO1MS73tdxUj7gLO", "Kjd8DzMT9qLTxKD-6VoJD" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076693, + "updated": 1682390147046, "link": null, "locked": false }, { "type": "ellipse", - "version": 1833, - "versionNonce": 87407059, + "version": 1834, + "versionNonce": 1113111873, "isDeleted": false, "id": "V-tCUIzZzoaLsFF5WBkzh", "fillStyle": "solid", @@ -2016,16 +1732,16 @@ "kJUfOxO1MS73tdxUj7gLO", "Kjd8DzMT9qLTxKD-6VoJD" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076693, + "updated": 1682390147046, "link": null, "locked": false }, { "type": "arrow", - "version": 764, - "versionNonce": 547686259, + "version": 778, + "versionNonce": 982348623, "isDeleted": false, "id": "ZQbEf5yZUkOtPwD_rAbZB", "fillStyle": "solid", @@ -2042,9 +1758,11 @@ "height": 36.62083381418845, "seed": 1610118803, "groupIds": [], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664572076693, + "updated": 1682390147046, "link": null, "locked": false, "startBinding": { @@ -2077,8 +1795,8 @@ }, { "type": "arrow", - "version": 1022, - "versionNonce": 1839701309, + "version": 1023, + "versionNonce": 363949345, "isDeleted": false, "id": "aAKa09DjRg0mEhlWYHR5u", "fillStyle": "solid", @@ -2095,9 +1813,11 @@ "height": 189.57335937117904, "seed": 1064598845, "groupIds": [], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664572076693, + "updated": 1682390147046, "link": null, "locked": false, "startBinding": { @@ -2126,8 +1846,8 @@ }, { "type": "line", - "version": 1496, - "versionNonce": 1709250579, + "version": 1497, + "versionNonce": 1782591855, "isDeleted": false, "id": "ENjm2KAXIlTkeFJ4JUNAx", "fillStyle": "solid", @@ -2146,9 +1866,9 @@ "groupIds": [ "Xap4MeFI6FrBeVoCuInyh" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076693, + "updated": 1682390147046, "link": null, "locked": false, "startBinding": null, @@ -2193,8 +1913,8 @@ }, { "type": "line", - "version": 3918, - "versionNonce": 912942749, + "version": 3919, + "versionNonce": 2116624641, "isDeleted": false, "id": "9-L3yte_SBFhQl2glk0Nl", "fillStyle": "solid", @@ -2213,9 +1933,11 @@ "groupIds": [ "Xap4MeFI6FrBeVoCuInyh" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664572076693, + "updated": 1682390147046, "link": null, "locked": false, "startBinding": null, @@ -2456,8 +2178,8 @@ }, { "type": "line", - "version": 1431, - "versionNonce": 147496371, + "version": 1432, + "versionNonce": 758524815, "isDeleted": false, "id": "z3m1W0H4jyNAfw-DU3-hY", "fillStyle": "solid", @@ -2476,9 +2198,11 @@ "groupIds": [ "Xap4MeFI6FrBeVoCuInyh" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664572076693, + "updated": 1682390147046, "link": null, "locked": false, "startBinding": null, @@ -2523,8 +2247,8 @@ }, { "type": "line", - "version": 1550, - "versionNonce": 889031421, + "version": 1551, + "versionNonce": 155146465, "isDeleted": false, "id": "kofCliHy9ymke9jTDJOsP", "fillStyle": "solid", @@ -2543,9 +2267,11 @@ "groupIds": [ "Xap4MeFI6FrBeVoCuInyh" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664572076693, + "updated": 1682390147046, "link": null, "locked": false, "startBinding": null, @@ -2590,8 +2316,8 @@ }, { "type": "line", - "version": 1555, - "versionNonce": 1269985107, + "version": 1556, + "versionNonce": 799531439, "isDeleted": false, "id": "GuqNKIEHNKRWg6hzqfNP0", "fillStyle": "solid", @@ -2610,9 +2336,11 @@ "groupIds": [ "Xap4MeFI6FrBeVoCuInyh" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664572076693, + "updated": 1682390147046, "link": null, "locked": false, "startBinding": null, @@ -2657,8 +2385,8 @@ }, { "type": "line", - "version": 1735, - "versionNonce": 1382884189, + "version": 1736, + "versionNonce": 1753453761, "isDeleted": false, "id": "59L2E8oZajCQdHB5pcT3L", "fillStyle": "solid", @@ -2677,9 +2405,11 @@ "groupIds": [ "Xap4MeFI6FrBeVoCuInyh" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664572076693, + "updated": 1682390147046, "link": null, "locked": false, "startBinding": null, @@ -2724,8 +2454,8 @@ }, { "type": "line", - "version": 1866, - "versionNonce": 820972787, + "version": 1867, + "versionNonce": 45994959, "isDeleted": false, "id": "R39r_T3RGjwq80QNW2z5U", "fillStyle": "solid", @@ -2744,9 +2474,11 @@ "groupIds": [ "Xap4MeFI6FrBeVoCuInyh" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664572076693, + "updated": 1682390147046, "link": null, "locked": false, "startBinding": null, @@ -2791,8 +2523,8 @@ }, { "type": "line", - "version": 1929, - "versionNonce": 1661644733, + "version": 1930, + "versionNonce": 1872057505, "isDeleted": false, "id": "mZCXsRHQ3xk7WQA0qwUcU", "fillStyle": "solid", @@ -2811,9 +2543,11 @@ "groupIds": [ "Xap4MeFI6FrBeVoCuInyh" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664572076693, + "updated": 1682390147046, "link": null, "locked": false, "startBinding": null, @@ -2858,8 +2592,8 @@ }, { "type": "line", - "version": 2057, - "versionNonce": 738653843, + "version": 2058, + "versionNonce": 2123399663, "isDeleted": false, "id": "unOPkBZIxaB1Pgvs_OBu9", "fillStyle": "solid", @@ -2878,9 +2612,11 @@ "groupIds": [ "Xap4MeFI6FrBeVoCuInyh" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664572076693, + "updated": 1682390147046, "link": null, "locked": false, "startBinding": null, @@ -2925,8 +2661,8 @@ }, { "type": "ellipse", - "version": 876, - "versionNonce": 888647709, + "version": 877, + "versionNonce": 1378097281, "isDeleted": false, "id": "LsyCJlwYv7_DXvxdEObRF", "fillStyle": "solid", @@ -2945,16 +2681,16 @@ "groupIds": [ "Xap4MeFI6FrBeVoCuInyh" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076693, + "updated": 1682390147046, "link": null, "locked": false }, { "type": "line", - "version": 2252, - "versionNonce": 1822403667, + "version": 2253, + "versionNonce": 1680370703, "isDeleted": false, "id": "bOrXyZj9OMnDGhz1v7h0H", "fillStyle": "solid", @@ -2973,9 +2709,9 @@ "groupIds": [ "1TlngZZWxu19iKmY05Qwg" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147046, "link": null, "locked": false, "startBinding": null, @@ -3020,8 +2756,8 @@ }, { "type": "line", - "version": 4674, - "versionNonce": 1874736733, + "version": 4675, + "versionNonce": 569335905, "isDeleted": false, "id": "tFrXMLLOM0fG7UgojMMXW", "fillStyle": "solid", @@ -3040,9 +2776,11 @@ "groupIds": [ "1TlngZZWxu19iKmY05Qwg" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147046, "link": null, "locked": false, "startBinding": null, @@ -3283,8 +3021,8 @@ }, { "type": "line", - "version": 2187, - "versionNonce": 455911923, + "version": 2188, + "versionNonce": 1065226799, "isDeleted": false, "id": "_03j2sy3L4conj6PCz2sK", "fillStyle": "solid", @@ -3303,9 +3041,11 @@ "groupIds": [ "1TlngZZWxu19iKmY05Qwg" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147046, "link": null, "locked": false, "startBinding": null, @@ -3350,8 +3090,8 @@ }, { "type": "line", - "version": 2306, - "versionNonce": 2059494077, + "version": 2307, + "versionNonce": 214346817, "isDeleted": false, "id": "Ja8Vc0fG4N7MxVmnlXEIA", "fillStyle": "solid", @@ -3370,9 +3110,11 @@ "groupIds": [ "1TlngZZWxu19iKmY05Qwg" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147046, "link": null, "locked": false, "startBinding": null, @@ -3417,8 +3159,8 @@ }, { "type": "line", - "version": 2311, - "versionNonce": 378074003, + "version": 2312, + "versionNonce": 158987343, "isDeleted": false, "id": "PkOjNnIbMYltuiixUP06f", "fillStyle": "solid", @@ -3437,9 +3179,11 @@ "groupIds": [ "1TlngZZWxu19iKmY05Qwg" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147046, "link": null, "locked": false, "startBinding": null, @@ -3484,8 +3228,8 @@ }, { "type": "line", - "version": 2491, - "versionNonce": 694158109, + "version": 2492, + "versionNonce": 1518959649, "isDeleted": false, "id": "pR_1IHE-bDhvaXjCBze1G", "fillStyle": "solid", @@ -3504,9 +3248,11 @@ "groupIds": [ "1TlngZZWxu19iKmY05Qwg" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147046, "link": null, "locked": false, "startBinding": null, @@ -3551,8 +3297,8 @@ }, { "type": "line", - "version": 2622, - "versionNonce": 518719795, + "version": 2623, + "versionNonce": 167023215, "isDeleted": false, "id": "mt9kn51mVehBtw7CgSvBK", "fillStyle": "solid", @@ -3571,9 +3317,11 @@ "groupIds": [ "1TlngZZWxu19iKmY05Qwg" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147047, "link": null, "locked": false, "startBinding": null, @@ -3618,8 +3366,8 @@ }, { "type": "line", - "version": 2685, - "versionNonce": 1611372413, + "version": 2686, + "versionNonce": 723996673, "isDeleted": false, "id": "VgbIhsxaQ8qjFIj6xHwVk", "fillStyle": "solid", @@ -3638,9 +3386,11 @@ "groupIds": [ "1TlngZZWxu19iKmY05Qwg" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147047, "link": null, "locked": false, "startBinding": null, @@ -3685,8 +3435,8 @@ }, { "type": "line", - "version": 2813, - "versionNonce": 700017363, + "version": 2814, + "versionNonce": 2041998479, "isDeleted": false, "id": "oRzP3X-24Zmb0TzqfkKPI", "fillStyle": "solid", @@ -3705,9 +3455,11 @@ "groupIds": [ "1TlngZZWxu19iKmY05Qwg" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147047, "link": null, "locked": false, "startBinding": null, @@ -3752,8 +3504,8 @@ }, { "type": "ellipse", - "version": 1632, - "versionNonce": 2030411741, + "version": 1633, + "versionNonce": 1956620257, "isDeleted": false, "id": "rAkiUi5e2cti74pxvE85G", "fillStyle": "solid", @@ -3772,16 +3524,16 @@ "groupIds": [ "1TlngZZWxu19iKmY05Qwg" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147047, "link": null, "locked": false }, { "type": "line", - "version": 2216, - "versionNonce": 998938739, + "version": 2217, + "versionNonce": 1685586607, "isDeleted": false, "id": "ow7K33erLRsTrZvrVFTbW", "fillStyle": "solid", @@ -3800,9 +3552,9 @@ "groupIds": [ "A1yQIiz7mzmYfVaaTsjNO" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147047, "link": null, "locked": false, "startBinding": null, @@ -3847,8 +3599,8 @@ }, { "type": "line", - "version": 4638, - "versionNonce": 174038077, + "version": 4639, + "versionNonce": 1090651073, "isDeleted": false, "id": "YR5DHIe93wREkj6EC1sWw", "fillStyle": "solid", @@ -3867,9 +3619,11 @@ "groupIds": [ "A1yQIiz7mzmYfVaaTsjNO" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147047, "link": null, "locked": false, "startBinding": null, @@ -4110,8 +3864,8 @@ }, { "type": "line", - "version": 2151, - "versionNonce": 35983891, + "version": 2152, + "versionNonce": 1256314063, "isDeleted": false, "id": "pMBJry41FzhNgnXSlJT88", "fillStyle": "solid", @@ -4130,9 +3884,11 @@ "groupIds": [ "A1yQIiz7mzmYfVaaTsjNO" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147047, "link": null, "locked": false, "startBinding": null, @@ -4177,8 +3933,8 @@ }, { "type": "line", - "version": 2270, - "versionNonce": 1811614877, + "version": 2271, + "versionNonce": 745399201, "isDeleted": false, "id": "6WjyphA7oKlryRoN4dhG0", "fillStyle": "solid", @@ -4197,9 +3953,11 @@ "groupIds": [ "A1yQIiz7mzmYfVaaTsjNO" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147047, "link": null, "locked": false, "startBinding": null, @@ -4244,8 +4002,8 @@ }, { "type": "line", - "version": 2275, - "versionNonce": 780097459, + "version": 2276, + "versionNonce": 76309231, "isDeleted": false, "id": "NqD9783Kmjx73TclhDEVh", "fillStyle": "solid", @@ -4264,9 +4022,11 @@ "groupIds": [ "A1yQIiz7mzmYfVaaTsjNO" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147047, "link": null, "locked": false, "startBinding": null, @@ -4311,8 +4071,8 @@ }, { "type": "line", - "version": 2455, - "versionNonce": 2106159357, + "version": 2456, + "versionNonce": 588433281, "isDeleted": false, "id": "mnGQbo4NSeTRDAXIj-9KS", "fillStyle": "solid", @@ -4331,9 +4091,11 @@ "groupIds": [ "A1yQIiz7mzmYfVaaTsjNO" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147047, "link": null, "locked": false, "startBinding": null, @@ -4378,8 +4140,8 @@ }, { "type": "line", - "version": 2586, - "versionNonce": 247458131, + "version": 2587, + "versionNonce": 1644178703, "isDeleted": false, "id": "j61ENMslzWUVHpZmv8Sgp", "fillStyle": "solid", @@ -4398,9 +4160,11 @@ "groupIds": [ "A1yQIiz7mzmYfVaaTsjNO" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147047, "link": null, "locked": false, "startBinding": null, @@ -4445,8 +4209,8 @@ }, { "type": "line", - "version": 2649, - "versionNonce": 747391325, + "version": 2650, + "versionNonce": 1596993377, "isDeleted": false, "id": "nlF3HST4S1-mqCeV6Wycr", "fillStyle": "solid", @@ -4465,9 +4229,11 @@ "groupIds": [ "A1yQIiz7mzmYfVaaTsjNO" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147047, "link": null, "locked": false, "startBinding": null, @@ -4512,8 +4278,8 @@ }, { "type": "line", - "version": 2777, - "versionNonce": 1748846323, + "version": 2778, + "versionNonce": 246788911, "isDeleted": false, "id": "nEeu04ObgcVoPbMfbWOad", "fillStyle": "solid", @@ -4532,9 +4298,11 @@ "groupIds": [ "A1yQIiz7mzmYfVaaTsjNO" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147047, "link": null, "locked": false, "startBinding": null, @@ -4579,8 +4347,8 @@ }, { "type": "ellipse", - "version": 1596, - "versionNonce": 978654653, + "version": 1597, + "versionNonce": 655727425, "isDeleted": false, "id": "9fu4-Y-EE8r68y42dPcUa", "fillStyle": "solid", @@ -4599,16 +4367,16 @@ "groupIds": [ "A1yQIiz7mzmYfVaaTsjNO" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147047, "link": null, "locked": false }, { "type": "rectangle", - "version": 1988, - "versionNonce": 740151613, + "version": 2150, + "versionNonce": 695957487, "isDeleted": false, "id": "xeTZSFRJPria6_fCTJ7si", "fillStyle": "hachure", @@ -4617,8 +4385,8 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 793.9996448444456, - "y": 185.93370234431512, + "x": 829.9288514865018, + "y": 71.05646079003355, "strokeColor": "#000000", "backgroundColor": "#ced4da", "width": 221, @@ -4627,7 +4395,7 @@ "groupIds": [ "lDeAg5xcR2r5EziP7leHg" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [ { "type": "text", @@ -4638,14 +4406,14 @@ "type": "arrow" } ], - "updated": 1664572195318, + "updated": 1682390216744, "link": null, "locked": false }, { "type": "text", - "version": 1799, - "versionNonce": 75469491, + "version": 1962, + "versionNonce": 190417505, "isDeleted": false, "id": "ISq37rN3pAjk5bat7bMln", "fillStyle": "hachure", @@ -4654,34 +4422,35 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 813.4996448444456, - "y": 190.93370234431512, + "x": 850.1944764865018, + "y": 76.05646079003355, "strokeColor": "#000000", "backgroundColor": "#ced4da", - "width": 182, + "width": 180.46875, "height": 34, "seed": 689640513, "groupIds": [ "lDeAg5xcR2r5EziP7leHg" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572195318, + "updated": 1682390216744, "link": null, "locked": false, "fontSize": 28, "fontFamily": 3, "text": "laf clients", - "baseline": 27, "textAlign": "center", "verticalAlign": "top", "containerId": "xeTZSFRJPria6_fCTJ7si", - "originalText": "laf clients" + "originalText": "laf clients", + "lineHeight": 1.2142857142857142, + "baseline": 27 }, { "type": "rectangle", - "version": 1538, - "versionNonce": 855533053, + "version": 1700, + "versionNonce": 413370415, "isDeleted": false, "id": "JiK4zccqUEJ2ZD3eexlcA", "fillStyle": "solid", @@ -4690,8 +4459,8 @@ "roughness": 0, "opacity": 100, "angle": 0, - "x": 907.0799663486237, - "y": 234.14186560975975, + "x": 943.00917299068, + "y": 119.26462405547818, "strokeColor": "#000000", "backgroundColor": "transparent", "width": 73.05349278983334, @@ -4702,21 +4471,16 @@ "0M-3yz4yS6w2gyIgaJ2mq", "lDeAg5xcR2r5EziP7leHg" ], - "strokeSharpness": "sharp", - "boundElements": [ - { - "type": "arrow", - "id": "9RT6Uw_WUaOTrDl9MY1Gv" - } - ], - "updated": 1664572195318, + "roundness": null, + "boundElements": [], + "updated": 1682390216744, "link": null, "locked": false }, { "type": "rectangle", - "version": 1550, - "versionNonce": 1325450323, + "version": 1712, + "versionNonce": 1532728897, "isDeleted": false, "id": "1V9kLTxu1tHQB7WwtdpT3", "fillStyle": "solid", @@ -4725,8 +4489,8 @@ "roughness": 0, "opacity": 100, "angle": 0, - "x": 909.8833735211464, - "y": 237.76980430361147, + "x": 945.8125801632026, + "y": 122.8925627493299, "strokeColor": "#000000", "backgroundColor": "#000000", "width": 67.44667844478977, @@ -4737,16 +4501,16 @@ "0M-3yz4yS6w2gyIgaJ2mq", "lDeAg5xcR2r5EziP7leHg" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572195318, + "updated": 1682390216744, "link": null, "locked": false }, { "type": "line", - "version": 1556, - "versionNonce": 832216669, + "version": 1718, + "versionNonce": 1249946191, "isDeleted": false, "id": "wmGkfQMuNo4DicGS-lqpl", "fillStyle": "solid", @@ -4755,8 +4519,8 @@ "roughness": 0, "opacity": 100, "angle": 0, - "x": 904.1291960956946, - "y": 279.656005587173, + "x": 940.058402737751, + "y": 164.77876403289144, "strokeColor": "#000000", "backgroundColor": "#000000", "width": 79.13748282381697, @@ -4767,9 +4531,9 @@ "0M-3yz4yS6w2gyIgaJ2mq", "lDeAg5xcR2r5EziP7leHg" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572195318, + "updated": 1682390216744, "link": null, "locked": false, "startBinding": null, @@ -4790,8 +4554,8 @@ }, { "type": "line", - "version": 1596, - "versionNonce": 1101709811, + "version": 1758, + "versionNonce": 452011553, "isDeleted": false, "id": "YXy3EX-Lp2oNFP6I_G9j4", "fillStyle": "solid", @@ -4800,8 +4564,8 @@ "roughness": 0, "opacity": 100, "angle": 0, - "x": 906.2753853816101, - "y": 283.19084688575396, + "x": 942.2045920236664, + "y": 168.3136053314724, "strokeColor": "#000000", "backgroundColor": "#000000", "width": 75.45340581361945, @@ -4812,9 +4576,9 @@ "0M-3yz4yS6w2gyIgaJ2mq", "lDeAg5xcR2r5EziP7leHg" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572195318, + "updated": 1682390216744, "link": null, "locked": false, "startBinding": null, @@ -4835,8 +4599,8 @@ }, { "type": "line", - "version": 1542, - "versionNonce": 349227709, + "version": 1704, + "versionNonce": 615811183, "isDeleted": false, "id": "uuL_-AFdFzanX9Tv4tbnD", "fillStyle": "solid", @@ -4845,8 +4609,8 @@ "roughness": 0, "opacity": 100, "angle": 0, - "x": 981.7626847037236, - "y": 283.3070532005895, + "x": 1017.6918913457798, + "y": 168.42981164630794, "strokeColor": "#000000", "backgroundColor": "#000000", "width": 1.592994899209459, @@ -4857,9 +4621,11 @@ "0M-3yz4yS6w2gyIgaJ2mq", "lDeAg5xcR2r5EziP7leHg" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664572195318, + "updated": 1682390216744, "link": null, "locked": false, "startBinding": null, @@ -4884,8 +4650,8 @@ }, { "type": "line", - "version": 1566, - "versionNonce": 1971587987, + "version": 1728, + "versionNonce": 352958977, "isDeleted": false, "id": "046oiwxDUc8tFBo2CND8c", "fillStyle": "solid", @@ -4894,8 +4660,8 @@ "roughness": 0, "opacity": 100, "angle": 0, - "x": 906.209212341219, - "y": 283.3070532005896, + "x": 942.1384189832753, + "y": 168.42981164630805, "strokeColor": "#000000", "backgroundColor": "#000000", "width": 1.8205655990965262, @@ -4906,9 +4672,11 @@ "0M-3yz4yS6w2gyIgaJ2mq", "lDeAg5xcR2r5EziP7leHg" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664572195318, + "updated": 1682390216744, "link": null, "locked": false, "startBinding": null, @@ -4933,8 +4701,8 @@ }, { "type": "rectangle", - "version": 1555, - "versionNonce": 490892061, + "version": 1717, + "versionNonce": 1694999183, "isDeleted": false, "id": "ZayR-KJtJVAkO2U-XWMzM", "fillStyle": "solid", @@ -4943,8 +4711,8 @@ "roughness": 0, "opacity": 100, "angle": 0, - "x": 938.0382030199171, - "y": 279.69823698331476, + "x": 973.9674096619733, + "y": 164.8209954290332, "strokeColor": "#000000", "backgroundColor": "#000000", "width": 10.836699994622158, @@ -4955,16 +4723,16 @@ "0M-3yz4yS6w2gyIgaJ2mq", "lDeAg5xcR2r5EziP7leHg" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572195318, + "updated": 1682390216744, "link": null, "locked": false }, { "type": "text", - "version": 1055, - "versionNonce": 516104499, + "version": 1218, + "versionNonce": 178573793, "isDeleted": false, "id": "Bo00P1FC02NoEwp1ysrPO", "fillStyle": "solid", @@ -4973,35 +4741,36 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 925.6784100774155, - "y": 244.33724198496208, + "x": 962.3966792194716, + "y": 129.4600004306805, "strokeColor": "#ffffff", "backgroundColor": "#495057", - "width": 38, + "width": 36.421875, "height": 25, "seed": 395530845, "groupIds": [ "0M-3yz4yS6w2gyIgaJ2mq", "lDeAg5xcR2r5EziP7leHg" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572195318, + "updated": 1682390216744, "link": null, "locked": false, "fontSize": 20.724303817271576, "fontFamily": 3, "text": "cli", - "baseline": 20, "textAlign": "center", "verticalAlign": "top", "containerId": null, - "originalText": "cli" + "originalText": "cli", + "lineHeight": 1.2063131394148483, + "baseline": 20 }, { "type": "text", - "version": 1689, - "versionNonce": 2069954429, + "version": 1852, + "versionNonce": 2083682479, "isDeleted": false, "id": "9y9UXBQAck1TKCGDVjvPg", "fillStyle": "solid", @@ -5010,35 +4779,36 @@ "roughness": 0, "opacity": 100, "angle": 0, - "x": 853.2411465531247, - "y": 284.6929714411967, + "x": 889.1703531951808, + "y": 169.8157298869151, "strokeColor": "#000", "backgroundColor": "transparent", - "width": 38, + "width": 35.947265625, "height": 25, "seed": 1505309139, "groupIds": [ "eMduRRAABtjtgcoMCENBV", "lDeAg5xcR2r5EziP7leHg" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572195318, + "updated": 1682390216744, "link": null, "locked": false, "fontSize": 20.45309724991167, "fontFamily": 3, "text": "Web", - "baseline": 20, "textAlign": "left", "verticalAlign": "top", "containerId": null, - "originalText": "Web" + "originalText": "Web", + "lineHeight": 1.222308763046045, + "baseline": 20 }, { "type": "rectangle", - "version": 3352, - "versionNonce": 651068115, + "version": 3514, + "versionNonce": 1892806081, "isDeleted": false, "id": "GBV4ibMyR3xKCvwkOpPMy", "fillStyle": "solid", @@ -5047,8 +4817,8 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 850.9168315294087, - "y": 231.95504790957295, + "x": 886.846038171465, + "y": 117.07780635529139, "strokeColor": "#000000", "backgroundColor": "#ff7353", "width": 37.79600275559777, @@ -5059,16 +4829,16 @@ "eMduRRAABtjtgcoMCENBV", "lDeAg5xcR2r5EziP7leHg" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572195318, + "updated": 1682390216744, "link": null, "locked": false }, { "type": "rectangle", - "version": 2854, - "versionNonce": 1433274333, + "version": 3016, + "versionNonce": 803048143, "isDeleted": false, "id": "azxhpnErbVO2nOeDV_Muo", "fillStyle": "solid", @@ -5077,8 +4847,8 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 862.5371354743497, - "y": 238.185327717856, + "x": 898.466342116406, + "y": 123.30808616357444, "strokeColor": "#000000", "backgroundColor": "#fff", "width": 30.398903493209932, @@ -5089,16 +4859,16 @@ "eMduRRAABtjtgcoMCENBV", "lDeAg5xcR2r5EziP7leHg" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572195318, + "updated": 1682390216744, "link": null, "locked": false }, { "type": "text", - "version": 2054, - "versionNonce": 104640627, + "version": 2217, + "versionNonce": 1857064353, "isDeleted": false, "id": "mj16Zn5jjc_LHrLeLLAzH", "fillStyle": "solid", @@ -5107,11 +4877,11 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 866.3662583438094, - "y": 240.25148310703776, + "x": 902.2954649858656, + "y": 125.37424155275619, "strokeColor": "#000000", "backgroundColor": "#c5bcdd", - "width": 25, + "width": 23.3919677734375, "height": 11, "seed": 267822397, "groupIds": [ @@ -5119,24 +4889,25 @@ "eMduRRAABtjtgcoMCENBV", "lDeAg5xcR2r5EziP7leHg" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572195318, + "updated": 1682390216744, "link": null, "locked": false, "fontSize": 8.603859583296448, "fontFamily": 1, "text": "HTML", - "baseline": 8, "textAlign": "left", "verticalAlign": "top", "containerId": null, - "originalText": "HTML" + "originalText": "HTML", + "lineHeight": 1.2784959928164594, + "baseline": 8 }, { "type": "text", - "version": 1684, - "versionNonce": 226165821, + "version": 1847, + "versionNonce": 2090948847, "isDeleted": false, "id": "LqLlTuna3S27mAzeVh8DI", "fillStyle": "solid", @@ -5145,11 +4916,11 @@ "roughness": 0, "opacity": 100, "angle": 0, - "x": 857.9363080539305, - "y": 262.5428444697911, + "x": 893.8655146959867, + "y": 147.6656029155095, "strokeColor": "#000", "backgroundColor": "transparent", - "width": 27, + "width": 24.613174438476562, "height": 20, "seed": 203364627, "groupIds": [ @@ -5157,24 +4928,25 @@ "eMduRRAABtjtgcoMCENBV", "lDeAg5xcR2r5EziP7leHg" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572195318, + "updated": 1682390216744, "link": null, "locked": false, "fontSize": 15.486947249933605, "fontFamily": 1, "text": "", - "baseline": 14, "textAlign": "left", "verticalAlign": "top", "containerId": null, - "originalText": "" + "originalText": "", + "lineHeight": 1.2914100937539994, + "baseline": 14 }, { "type": "rectangle", - "version": 3574, - "versionNonce": 508731475, + "version": 3575, + "versionNonce": 1615170113, "isDeleted": false, "id": "rw2QNRirrhZsKeemh1AFj", "fillStyle": "hachure", @@ -5193,7 +4965,7 @@ "groupIds": [ "icWb81AmMBtok_h9W-7F7" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [ { "id": "6K6iRG81BfUtlnRql2IXP", @@ -5203,10 +4975,6 @@ "id": "F0l5EdS9JdyYqN5Lmjb8Q", "type": "arrow" }, - { - "type": "text", - "id": "6K6iRG81BfUtlnRql2IXP" - }, { "id": "aAKa09DjRg0mEhlWYHR5u", "type": "arrow" @@ -5216,14 +4984,14 @@ "type": "arrow" } ], - "updated": 1664572076694, + "updated": 1682390147048, "link": null, "locked": false }, { "type": "text", - "version": 3479, - "versionNonce": 893517989, + "version": 3481, + "versionNonce": 1482683983, "isDeleted": false, "id": "6K6iRG81BfUtlnRql2IXP", "fillStyle": "hachure", @@ -5232,34 +5000,35 @@ "roughness": 1, "opacity": 100, "angle": 0.01556190171898919, - "x": -133.47963428080544, + "x": -132.71400928080544, "y": 51.61694110489756, "strokeColor": "#000000", "backgroundColor": "#ced4da", - "width": 182, + "width": 180.46875, "height": 34, "seed": 954803453, "groupIds": [ "icWb81AmMBtok_h9W-7F7" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1667988576992, + "updated": 1682390147048, "link": null, "locked": false, "fontSize": 28, "fontFamily": 3, "text": "app clients", - "baseline": 27, "textAlign": "center", "verticalAlign": "top", "containerId": "rw2QNRirrhZsKeemh1AFj", - "originalText": "app clients" + "originalText": "app clients", + "lineHeight": 1.2142857142857142, + "baseline": 27 }, { "type": "text", - "version": 1104, - "versionNonce": 39919091, + "version": 1106, + "versionNonce": 1451006497, "isDeleted": false, "id": "gedDdnx4slUq1LVe1z9qa", "fillStyle": "solid", @@ -5272,31 +5041,32 @@ "y": 163.4015284278193, "strokeColor": "#000", "backgroundColor": "#fbbd9b", - "width": 20, + "width": 18.180587768554688, "height": 12, "seed": 434595379, "groupIds": [ "dtlnkA_NP2PqR0LQZNLOI", "icWb81AmMBtok_h9W-7F7" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147048, "link": null, "locked": false, "fontSize": 9.427717025298142, "fontFamily": 1, "text": "APK", - "baseline": 9, "textAlign": "left", "verticalAlign": "top", "containerId": null, - "originalText": "APK" + "originalText": "APK", + "lineHeight": 1.2728426158527506, + "baseline": 8 }, { "type": "rectangle", - "version": 3089, - "versionNonce": 641609405, + "version": 3090, + "versionNonce": 1355437167, "isDeleted": false, "id": "8B8CnbJU0O9k4FSnEwLBe", "fillStyle": "solid", @@ -5317,16 +5087,16 @@ "dtlnkA_NP2PqR0LQZNLOI", "icWb81AmMBtok_h9W-7F7" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147048, "link": null, "locked": false }, { "type": "rectangle", - "version": 2566, - "versionNonce": 118417299, + "version": 2567, + "versionNonce": 923184641, "isDeleted": false, "id": "rusP1D-v_-a7jXXXvXeff", "fillStyle": "solid", @@ -5347,16 +5117,16 @@ "dtlnkA_NP2PqR0LQZNLOI", "icWb81AmMBtok_h9W-7F7" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147048, "link": null, "locked": false }, { "type": "text", - "version": 1672, - "versionNonce": 1667452701, + "version": 1674, + "versionNonce": 612626063, "isDeleted": false, "id": "LTWXKzCJwXZhsTjYBICfW", "fillStyle": "solid", @@ -5369,7 +5139,7 @@ "y": 113.05973277270347, "strokeColor": "#000000", "backgroundColor": "#c5bcdd", - "width": 20, + "width": 18.180587768554688, "height": 12, "seed": 2035495645, "groupIds": [ @@ -5377,24 +5147,25 @@ "dtlnkA_NP2PqR0LQZNLOI", "icWb81AmMBtok_h9W-7F7" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147048, "link": null, "locked": false, "fontSize": 9.427717025298142, "fontFamily": 1, "text": "APK", - "baseline": 9, "textAlign": "left", "verticalAlign": "top", "containerId": null, - "originalText": "APK" + "originalText": "APK", + "lineHeight": 1.2728426158527506, + "baseline": 8 }, { "type": "line", - "version": 1231, - "versionNonce": 1922202931, + "version": 1232, + "versionNonce": 1222854113, "isDeleted": false, "id": "BiQl4RF0rMuRSZIOMM684", "fillStyle": "solid", @@ -5416,9 +5187,9 @@ "dtlnkA_NP2PqR0LQZNLOI", "icWb81AmMBtok_h9W-7F7" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147048, "link": null, "locked": false, "startBinding": null, @@ -5439,8 +5210,8 @@ }, { "type": "line", - "version": 1253, - "versionNonce": 331703165, + "version": 1254, + "versionNonce": 507856047, "isDeleted": false, "id": "otvvPPs1_brFIhmeJdiiW", "fillStyle": "solid", @@ -5462,9 +5233,9 @@ "dtlnkA_NP2PqR0LQZNLOI", "icWb81AmMBtok_h9W-7F7" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147048, "link": null, "locked": false, "startBinding": null, @@ -5485,8 +5256,8 @@ }, { "type": "line", - "version": 1652, - "versionNonce": 5398227, + "version": 1653, + "versionNonce": 1193402817, "isDeleted": false, "id": "4PDA0bVNAcoAB7zMgrx3Q", "fillStyle": "solid", @@ -5508,9 +5279,11 @@ "dtlnkA_NP2PqR0LQZNLOI", "icWb81AmMBtok_h9W-7F7" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147048, "link": null, "locked": false, "startBinding": null, @@ -5587,8 +5360,8 @@ }, { "type": "ellipse", - "version": 1375, - "versionNonce": 732294109, + "version": 1376, + "versionNonce": 498521807, "isDeleted": false, "id": "9hDu2pzMH2nE29dyWpHm7", "fillStyle": "solid", @@ -5610,16 +5383,16 @@ "dtlnkA_NP2PqR0LQZNLOI", "icWb81AmMBtok_h9W-7F7" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147048, "link": null, "locked": false }, { "type": "ellipse", - "version": 1497, - "versionNonce": 988089459, + "version": 1498, + "versionNonce": 1591869857, "isDeleted": false, "id": "E32AdE46_GOS8bfgMRyW_", "fillStyle": "solid", @@ -5641,16 +5414,16 @@ "dtlnkA_NP2PqR0LQZNLOI", "icWb81AmMBtok_h9W-7F7" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147048, "link": null, "locked": false }, { "type": "text", - "version": 1514, - "versionNonce": 454453309, + "version": 1516, + "versionNonce": 2037458159, "isDeleted": false, "id": "CIhfWZyOlf5kD63Q5GzGD", "fillStyle": "solid", @@ -5663,31 +5436,32 @@ "y": 162.9273325388957, "strokeColor": "#000", "backgroundColor": "#edf2f9", - "width": 33, + "width": 31.326980590820312, "height": 12, "seed": 593543763, "groupIds": [ "77XHXVZ-aslCUWd_tkdRc", "icWb81AmMBtok_h9W-7F7" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147048, "link": null, "locked": false, "fontSize": 8.927305135629158, "fontFamily": 1, "text": "Flutter", - "baseline": 8, "textAlign": "left", "verticalAlign": "top", "containerId": null, - "originalText": "Flutter" + "originalText": "Flutter", + "lineHeight": 1.3441906395814365, + "baseline": 8 }, { "type": "rectangle", - "version": 3500, - "versionNonce": 370214419, + "version": 3501, + "versionNonce": 1834165633, "isDeleted": false, "id": "59MpQzwCB722w9JG2z7Gl", "fillStyle": "solid", @@ -5709,21 +5483,21 @@ "77XHXVZ-aslCUWd_tkdRc", "icWb81AmMBtok_h9W-7F7" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [ { "id": "aAKa09DjRg0mEhlWYHR5u", "type": "arrow" } ], - "updated": 1664572076694, + "updated": 1682390147048, "link": null, "locked": false }, { "type": "rectangle", - "version": 3050, - "versionNonce": 1408784541, + "version": 3051, + "versionNonce": 553430799, "isDeleted": false, "id": "QI-v2FDxDV2cU0_nruqdD", "fillStyle": "solid", @@ -5745,16 +5519,16 @@ "77XHXVZ-aslCUWd_tkdRc", "icWb81AmMBtok_h9W-7F7" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147048, "link": null, "locked": false }, { "type": "text", - "version": 2208, - "versionNonce": 1221381043, + "version": 2210, + "versionNonce": 2109001057, "isDeleted": false, "id": "JGTSXQle9sAiJ-D0O2Z3W", "fillStyle": "solid", @@ -5767,7 +5541,7 @@ "y": 114.8028934412314, "strokeColor": "#000000", "backgroundColor": "#fff", - "width": 33, + "width": 31.326980590820312, "height": 12, "seed": 298544317, "groupIds": [ @@ -5776,24 +5550,25 @@ "77XHXVZ-aslCUWd_tkdRc", "icWb81AmMBtok_h9W-7F7" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147048, "link": null, "locked": false, "fontSize": 8.927305135629158, "fontFamily": 1, "text": "Flutter", - "baseline": 8, "textAlign": "left", "verticalAlign": "top", "containerId": null, - "originalText": "Flutter" + "originalText": "Flutter", + "lineHeight": 1.3441906395814365, + "baseline": 8 }, { "type": "line", - "version": 2065, - "versionNonce": 268254461, + "version": 2066, + "versionNonce": 2127689007, "isDeleted": false, "id": "7j5yXJ9c87Is3B8FPeseO", "fillStyle": "solid", @@ -5815,9 +5590,9 @@ "77XHXVZ-aslCUWd_tkdRc", "icWb81AmMBtok_h9W-7F7" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147048, "link": null, "locked": false, "startBinding": null, @@ -5850,8 +5625,8 @@ }, { "type": "line", - "version": 1483, - "versionNonce": 1732173139, + "version": 1484, + "versionNonce": 123107649, "isDeleted": false, "id": "7DKYVZ8m5NE32dQsW9WOf", "fillStyle": "solid", @@ -5873,9 +5648,9 @@ "77XHXVZ-aslCUWd_tkdRc", "icWb81AmMBtok_h9W-7F7" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147048, "link": null, "locked": false, "startBinding": null, @@ -5908,8 +5683,8 @@ }, { "type": "line", - "version": 1487, - "versionNonce": 1453757789, + "version": 1488, + "versionNonce": 442070863, "isDeleted": false, "id": "2iZfbrrLpCsr1VyCO2Ndi", "fillStyle": "solid", @@ -5931,9 +5706,9 @@ "77XHXVZ-aslCUWd_tkdRc", "icWb81AmMBtok_h9W-7F7" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147048, "link": null, "locked": false, "startBinding": null, @@ -5966,8 +5741,8 @@ }, { "type": "rectangle", - "version": 2933, - "versionNonce": 1019067123, + "version": 2934, + "versionNonce": 1805101345, "isDeleted": false, "id": "0gvLFIIMb58ofxtgZYLUT", "fillStyle": "solid", @@ -5988,16 +5763,16 @@ "x73pZB4zDV5T9hqT3liFY", "icWb81AmMBtok_h9W-7F7" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147048, "link": null, "locked": false }, { "type": "rectangle", - "version": 2339, - "versionNonce": 1128653245, + "version": 2340, + "versionNonce": 2045490543, "isDeleted": false, "id": "ejdayrz8A8pKNh6ZrPBuP", "fillStyle": "solid", @@ -6018,16 +5793,16 @@ "x73pZB4zDV5T9hqT3liFY", "icWb81AmMBtok_h9W-7F7" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147048, "link": null, "locked": false }, { "type": "text", - "version": 1444, - "versionNonce": 1708123283, + "version": 1446, + "versionNonce": 870833409, "isDeleted": false, "id": "oiqMx0JIwPFvGsGK6GV2J", "fillStyle": "solid", @@ -6040,7 +5815,7 @@ "y": 108.92013075750509, "strokeColor": "#000000", "backgroundColor": "#c5bcdd", - "width": 20, + "width": 17.830780029296875, "height": 12, "seed": 830003891, "groupIds": [ @@ -6048,24 +5823,25 @@ "x73pZB4zDV5T9hqT3liFY", "icWb81AmMBtok_h9W-7F7" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147048, "link": null, "locked": false, "fontSize": 9.360388407600311, "fontFamily": 1, "text": "VUE", - "baseline": 9, "textAlign": "left", "verticalAlign": "top", "containerId": null, - "originalText": "VUE" + "originalText": "VUE", + "lineHeight": 1.281998083568457, + "baseline": 8 }, { "type": "line", - "version": 1389, - "versionNonce": 184328733, + "version": 1390, + "versionNonce": 1154559887, "isDeleted": false, "id": "bFL5iIXaH1r-I7ZcZ45Ty", "fillStyle": "solid", @@ -6087,9 +5863,9 @@ "x73pZB4zDV5T9hqT3liFY", "icWb81AmMBtok_h9W-7F7" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147048, "link": null, "locked": false, "startBinding": null, @@ -6118,8 +5894,8 @@ }, { "type": "line", - "version": 1761, - "versionNonce": 707516979, + "version": 1762, + "versionNonce": 264672481, "isDeleted": false, "id": "_kvP7X8-0wSe0W_hVISPi", "fillStyle": "solid", @@ -6141,9 +5917,9 @@ "x73pZB4zDV5T9hqT3liFY", "icWb81AmMBtok_h9W-7F7" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147048, "link": null, "locked": false, "startBinding": null, @@ -6172,8 +5948,8 @@ }, { "type": "line", - "version": 2901, - "versionNonce": 1119639165, + "version": 2902, + "versionNonce": 625108399, "isDeleted": false, "id": "mWdDbrXSdunx1F5sWoQQy", "fillStyle": "solid", @@ -6195,9 +5971,9 @@ "x73pZB4zDV5T9hqT3liFY", "icWb81AmMBtok_h9W-7F7" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147048, "link": null, "locked": false, "startBinding": null, @@ -6226,8 +6002,8 @@ }, { "type": "line", - "version": 1239, - "versionNonce": 381164499, + "version": 1240, + "versionNonce": 314790081, "isDeleted": false, "id": "zXtE_tHk5kO5vywcHCsbV", "fillStyle": "solid", @@ -6249,9 +6025,9 @@ "x73pZB4zDV5T9hqT3liFY", "icWb81AmMBtok_h9W-7F7" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147048, "link": null, "locked": false, "startBinding": null, @@ -6276,8 +6052,8 @@ }, { "type": "text", - "version": 604, - "versionNonce": 1699118813, + "version": 606, + "versionNonce": 1785190351, "isDeleted": false, "id": "O1mqnsTqZDlQ4UprPYFlf", "fillStyle": "solid", @@ -6290,31 +6066,32 @@ "y": 159.9298979900603, "strokeColor": "#000", "backgroundColor": "#edf2f9", - "width": 17, + "width": 15.275497436523438, "height": 12, "seed": 1082262205, "groupIds": [ "x73pZB4zDV5T9hqT3liFY", "icWb81AmMBtok_h9W-7F7" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147048, "link": null, "locked": false, "fontSize": 9.360388407600311, "fontFamily": 1, "text": "Vue", - "baseline": 9, "textAlign": "left", "verticalAlign": "top", "containerId": null, - "originalText": "Vue" + "originalText": "Vue", + "lineHeight": 1.281998083568457, + "baseline": 8 }, { "type": "text", - "version": 1222, - "versionNonce": 1468737907, + "version": 1224, + "versionNonce": 847089825, "isDeleted": false, "id": "TbEzGrZWhlADy_PuHBQkP", "fillStyle": "solid", @@ -6327,31 +6104,32 @@ "y": 158.43840649433812, "strokeColor": "#000", "backgroundColor": "#edf2f9", - "width": 29, + "width": 27.370712280273438, "height": 12, "seed": 883695731, "groupIds": [ "DJjPjwFB_M5LqZMR6Riwe", "icWb81AmMBtok_h9W-7F7" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147048, "link": null, "locked": false, "fontSize": 9.250786025523743, "fontFamily": 1, "text": "React", - "baseline": 8, "textAlign": "left", "verticalAlign": "top", "containerId": null, - "originalText": "React" + "originalText": "React", + "lineHeight": 1.297187067876279, + "baseline": 8 }, { "type": "rectangle", - "version": 3209, - "versionNonce": 422353725, + "version": 3210, + "versionNonce": 1784284655, "isDeleted": false, "id": "lkLknEN0tEcALN765sz5R", "fillStyle": "solid", @@ -6373,16 +6151,16 @@ "DJjPjwFB_M5LqZMR6Riwe", "icWb81AmMBtok_h9W-7F7" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147048, "link": null, "locked": false }, { "type": "rectangle", - "version": 2725, - "versionNonce": 1374389011, + "version": 2726, + "versionNonce": 77911169, "isDeleted": false, "id": "x1rGbGXUwAsokooJnVvc3", "fillStyle": "solid", @@ -6404,16 +6182,16 @@ "DJjPjwFB_M5LqZMR6Riwe", "icWb81AmMBtok_h9W-7F7" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147048, "link": null, "locked": false }, { "type": "text", - "version": 1872, - "versionNonce": 919612317, + "version": 1874, + "versionNonce": 606171151, "isDeleted": false, "id": "7yzIwHGPQnhUkD1fJ1A78", "fillStyle": "solid", @@ -6426,7 +6204,7 @@ "y": 108.2346073441382, "strokeColor": "#000000", "backgroundColor": "#fff", - "width": 29, + "width": 27.370712280273438, "height": 12, "seed": 930546845, "groupIds": [ @@ -6435,24 +6213,25 @@ "DJjPjwFB_M5LqZMR6Riwe", "icWb81AmMBtok_h9W-7F7" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147049, "link": null, "locked": false, "fontSize": 9.250786025523743, "fontFamily": 1, "text": "React", - "baseline": 8, "textAlign": "left", "verticalAlign": "top", "containerId": null, - "originalText": "React" + "originalText": "React", + "lineHeight": 1.297187067876279, + "baseline": 8 }, { "type": "ellipse", - "version": 1143, - "versionNonce": 2119149747, + "version": 1144, + "versionNonce": 1022925921, "isDeleted": false, "id": "W18s7gWIoBHF85Pi7ag0L", "fillStyle": "solid", @@ -6474,16 +6253,16 @@ "DJjPjwFB_M5LqZMR6Riwe", "icWb81AmMBtok_h9W-7F7" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147049, "link": null, "locked": false }, { "type": "ellipse", - "version": 1260, - "versionNonce": 241348605, + "version": 1261, + "versionNonce": 565614127, "isDeleted": false, "id": "VxTVi2G6Xj4oYS6nRbl9w", "fillStyle": "solid", @@ -6505,16 +6284,16 @@ "DJjPjwFB_M5LqZMR6Riwe", "icWb81AmMBtok_h9W-7F7" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147049, "link": null, "locked": false }, { "type": "ellipse", - "version": 1283, - "versionNonce": 39721555, + "version": 1284, + "versionNonce": 1799907393, "isDeleted": false, "id": "dGZFgU_QaMmPnJzz1I4GJ", "fillStyle": "solid", @@ -6536,16 +6315,16 @@ "DJjPjwFB_M5LqZMR6Riwe", "icWb81AmMBtok_h9W-7F7" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076694, + "updated": 1682390147049, "link": null, "locked": false }, { "type": "ellipse", - "version": 780, - "versionNonce": 1843767389, + "version": 781, + "versionNonce": 436336719, "isDeleted": false, "id": "BrUDc3SIIeaR0gMeNP9zc", "fillStyle": "solid", @@ -6567,9 +6346,9 @@ "DJjPjwFB_M5LqZMR6Riwe", "icWb81AmMBtok_h9W-7F7" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664572076695, + "updated": 1682390147049, "link": null, "locked": false } diff --git a/docs/diagrams/laf-arch-simple.excalidraw b/docs/diagrams/laf-arch-simple.excalidraw index 2c06408acc..7c97e149d9 100644 --- a/docs/diagrams/laf-arch-simple.excalidraw +++ b/docs/diagrams/laf-arch-simple.excalidraw @@ -5,8 +5,8 @@ "elements": [ { "type": "rectangle", - "version": 1828, - "versionNonce": 596727967, + "version": 1830, + "versionNonce": 2018580382, "isDeleted": false, "id": "9UnJOgDqkaJktInMVo47r", "fillStyle": "solid", @@ -23,102 +23,31 @@ "height": 157, "seed": 1483473887, "groupIds": [], - "strokeSharpness": "round", + "roundness": { + "type": 1 + }, "boundElements": [ { "type": "text", "id": "Z809WNYMBMTJkJuXxrV2f" }, - { - "id": "kqj5BjInSDGoAuV2NWQC1", - "type": "arrow" - }, { "id": "BKtrNR7ahqNp_W0JX5yYz", "type": "arrow" - } - ], - "updated": 1664546888283, - "link": null, - "locked": false - }, - { - "type": "rectangle", - "version": 2409, - "versionNonce": 1227033591, - "isDeleted": false, - "id": "TMMDu5oiiccd-lZLzPZJ1", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 2, - "opacity": 100, - "angle": 0, - "x": 337.34089158488155, - "y": -717.5280783925962, - "strokeColor": "#000000", - "backgroundColor": "#40c057", - "width": 438, - "height": 141, - "seed": 1037531185, - "groupIds": [], - "strokeSharpness": "sharp", - "boundElements": [ - { - "type": "text", - "id": "oBfeWalO5ee6UnDijMdzq" - }, - { - "id": "kqj5BjInSDGoAuV2NWQC1", - "type": "arrow" }, { - "id": "AzJlXlpiAOpjWfG6hCefX", + "id": "IXGLaKwvNWM7iA7SwPJbz", "type": "arrow" } ], - "updated": 1668084820656, + "updated": 1682390356102, "link": null, "locked": false }, { "type": "text", - "version": 2510, - "versionNonce": 1783691927, - "isDeleted": false, - "id": "oBfeWalO5ee6UnDijMdzq", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 2, - "opacity": 100, - "angle": 0, - "x": 405.34089158488155, - "y": -712.5280783925962, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 302, - "height": 77, - "seed": 318769375, - "groupIds": [], - "strokeSharpness": "sharp", - "boundElements": [], - "updated": 1668084837016, - "link": null, - "locked": false, - "fontSize": 63.94116082054938, - "fontFamily": 3, - "text": "laf core", - "baseline": 62, - "textAlign": "center", - "verticalAlign": "top", - "containerId": "TMMDu5oiiccd-lZLzPZJ1", - "originalText": "laf core" - }, - { - "type": "text", - "version": 1735, - "versionNonce": 354331065, + "version": 1736, + "versionNonce": 906918402, "isDeleted": false, "id": "Z809WNYMBMTJkJuXxrV2f", "fillStyle": "solid", @@ -127,138 +56,33 @@ "roughness": 2, "opacity": 100, "angle": 0, - "x": 664.9176487971549, + "x": 666.1676487971549, "y": -306.1187054323188, "strokeColor": "#000000", "backgroundColor": "transparent", - "width": 460, + "width": 457.5, "height": 94, "seed": 322762385, "groupIds": [], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1668084159361, + "updated": 1682390258427, "link": null, "locked": false, "fontSize": 78.0868293956231, "fontFamily": 3, "text": "laf server", - "baseline": 76, "textAlign": "center", "verticalAlign": "middle", "containerId": "9UnJOgDqkaJktInMVo47r", - "originalText": "laf server" - }, - { - "type": "arrow", - "version": 3295, - "versionNonce": 1726772503, - "isDeleted": false, - "id": "kqj5BjInSDGoAuV2NWQC1", - "fillStyle": "solid", - "strokeWidth": 4, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 6.279247880108075, - "x": 883.8995138780068, - "y": -338.41030154144244, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 106.22484141611312, - "height": 207.19979631724772, - "seed": 336290367, - "groupIds": [], - "strokeSharpness": "round", - "boundElements": [], - "updated": 1668084820656, - "link": null, - "locked": false, - "startBinding": { - "elementId": "pwFa_JsY4UC6EwKz1z0bE", - "focus": -0.8295575145153079, - "gap": 10.551370110599635 - }, - "endBinding": { - "elementId": "TMMDu5oiiccd-lZLzPZJ1", - "focus": -0.5465803449233135, - "gap": 31.189159943192863 - }, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": "arrow", - "points": [ - [ - 0, - 0 - ], - [ - -46.877432913366306, - -124.34028999189604 - ], - [ - -106.22484141611312, - -207.19979631724772 - ] - ] - }, - { - "type": "arrow", - "version": 2643, - "versionNonce": 605178841, - "isDeleted": false, - "id": "AzJlXlpiAOpjWfG6hCefX", - "fillStyle": "solid", - "strokeWidth": 4, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 317.98727024740316, - "y": -551.9926112904379, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 80.4487949742257, - "height": 181.2387351702194, - "seed": 238665841, - "groupIds": [], - "strokeSharpness": "round", - "boundElements": [], - "updated": 1668084820656, - "link": null, - "locked": false, - "startBinding": { - "elementId": "TMMDu5oiiccd-lZLzPZJ1", - "gap": 31.249828876260878, - "focus": 0.6213304482698953 - }, - "endBinding": { - "elementId": "sFE8hJbB0-zakUa7U66ZI", - "gap": 32, - "focus": -0.010070174556607147 - }, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": "arrow", - "points": [ - [ - 0, - 0 - ], - [ - -47.82515686521541, - 64.91849133349608 - ], - [ - -80.4487949742257, - 181.2387351702194 - ] - ] + "originalText": "laf server", + "lineHeight": 1.20378815131235, + "baseline": 75 }, { "type": "text", - "version": 3207, - "versionNonce": 570621375, + "version": 3208, + "versionNonce": 1404018462, "isDeleted": false, "id": "XBwYr-Ggufku0RrL4QBXi", "fillStyle": "solid", @@ -267,29 +91,32 @@ "roughness": 0, "opacity": 100, "angle": 0.04454966694106055, - "x": 481.49874187899337, - "y": 653.1835841987612, + "x": 481.4999744187205, + "y": 653.128260064777, "strokeColor": "#000000", "backgroundColor": "white", - "width": 149, + "width": 146.51547241210938, "height": 39, "seed": 32540977, "groupIds": [ "-elfsLPKjTB42IroSjeyr" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664546888283, + "updated": 1682390258427, "link": null, "locked": false, "fontSize": 31.289487449163044, "fontFamily": 1, "text": "Developer", - "baseline": 28, "textAlign": "left", "verticalAlign": "top", "containerId": null, - "originalText": "Developer" + "originalText": "Developer", + "lineHeight": 1.2464250193731825, + "baseline": 28 }, { "type": "line", @@ -314,7 +141,9 @@ "MmDhGpV7gD0dufHdOn7Xs", "-elfsLPKjTB42IroSjeyr" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1664546888283, "link": null, @@ -374,7 +203,9 @@ "MmDhGpV7gD0dufHdOn7Xs", "-elfsLPKjTB42IroSjeyr" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [ { "id": "qT3ZXcKZMAQ2PIdL4Jn_V", @@ -391,8 +222,8 @@ }, { "type": "arrow", - "version": 4686, - "versionNonce": 2098300511, + "version": 4774, + "versionNonce": 991184642, "isDeleted": false, "id": "BKtrNR7ahqNp_W0JX5yYz", "fillStyle": "solid", @@ -401,17 +232,19 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 897.9153932980781, - "y": 153.136457137969, + "x": 897.9108450761719, + "y": 129.21380563052475, "strokeColor": "#000000", "backgroundColor": "transparent", - "width": 2.2131452341895965, - "height": 285.3857280915365, + "width": 2.196352546919343, + "height": 261.4630765840923, "seed": 333875071, "groupIds": [], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664546888283, + "updated": 1682390388180, "link": null, "locked": false, "startBinding": { @@ -433,15 +266,15 @@ 0 ], [ - 2.2131452341895965, - -285.3857280915365 + 2.196352546919343, + -261.4630765840923 ] ] }, { "type": "arrow", - "version": 5016, - "versionNonce": 997708561, + "version": 5068, + "versionNonce": 481874498, "isDeleted": false, "id": "qT3ZXcKZMAQ2PIdL4Jn_V", "fillStyle": "solid", @@ -454,13 +287,15 @@ "y": 544.4213481896425, "strokeColor": "#000000", "backgroundColor": "transparent", - "width": 303.06333505234153, - "height": 145.99831010245418, + "width": 305.79945738001095, + "height": 167.6264549868415, "seed": 1289142047, "groupIds": [], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664546888283, + "updated": 1682390374323, "link": null, "locked": false, "startBinding": { @@ -486,15 +321,15 @@ -77.41405726701726 ], [ - -303.06333505234153, - -145.99831010245418 + -305.79945738001095, + -167.6264549868415 ] ] }, { "type": "arrow", - "version": 4609, - "versionNonce": 921657983, + "version": 4653, + "versionNonce": 1133194846, "isDeleted": false, "id": "I-Gae0eQW3HFmaEMCgWe6", "fillStyle": "solid", @@ -507,13 +342,15 @@ "y": 535.3090103404702, "strokeColor": "#000000", "backgroundColor": "transparent", - "width": 235.71372702516783, - "height": 121.05443966744548, + "width": 239.00702346745686, + "height": 144.97709117488972, "seed": 1995353727, "groupIds": [], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664546888283, + "updated": 1682390388180, "link": null, "locked": false, "startBinding": { @@ -528,853 +365,26 @@ }, "lastCommittedPoint": null, "startArrowhead": null, - "endArrowhead": "arrow", - "points": [ - [ - 0, - 0 - ], - [ - 170.00189426585837, - -61.134539965866566 - ], - [ - 235.71372702516783, - -121.05443966744548 - ] - ] - }, - { - "type": "line", - "version": 2215, - "versionNonce": 2081245425, - "isDeleted": false, - "id": "SoJ9FPEYeuMLfhGecRWQK", - "fillStyle": "solid", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 557.3303448791635, - "y": -597.859321040327, - "strokeColor": "#000000", - "backgroundColor": "#326ce5", - "width": 317.3553341276203, - "height": 310.62630033039557, - "seed": 457011679, - "groupIds": [ - "eArZb9ZBlnfWJEMQQV4z9" - ], - "strokeSharpness": "sharp", - "boundElements": [], - "updated": 1664546888283, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -130.99347834203905, - 62.65852410098101 - ], - [ - -158.00244294864507, - 196.64111287010007 - ], - [ - -67.52241151651502, - 310.62630033039557 - ], - [ - 84.40301439564368, - 309.95972028676795 - ], - [ - 159.3528911789753, - 187.97557230294285 - ], - [ - 129.64303011170867, - 55.992723664706475 - ], - [ - 0, - 0 - ] - ] - }, - { - "type": "line", - "version": 4637, - "versionNonce": 217889439, - "isDeleted": false, - "id": "yqWQvvbP3Y_Q3HAI3PmYg", - "fillStyle": "solid", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0.010125045471368388, - "x": 532.5847865706936, - "y": -520.7948388771216, - "strokeColor": "#000000", - "backgroundColor": "#ffff", - "width": 238.4426469128351, - "height": 237.4885659417879, - "seed": 1458724753, - "groupIds": [ - "eArZb9ZBlnfWJEMQQV4z9" - ], - "strokeSharpness": "round", - "boundElements": [], - "updated": 1664546888283, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 17.000665349035607, - -5.46968171336234 - ], - [ - 18.574891576791547, - -14.209705556448927 - ], - [ - 16.336458120775223, - -39.07613244008722 - ], - [ - 27.630763746335127, - -40.00821487145517 - ], - [ - 27.122265299164923, - -13.87654221580623 - ], - [ - 31.342243841439927, - -5.793579763136908 - ], - [ - 49.713275366017314, - -2.003746515933498 - ], - [ - 75.31067377467866, - 7.7518678343689045 - ], - [ - 93.45931155316691, - 20.32082325249709 - ], - [ - 100.4142316995715, - 18.782593603901674 - ], - [ - 116.95788790581241, - 5.829080773624646 - ], - [ - 122.18436635902779, - 10.585448765992016 - ], - [ - 105.72301690008176, - 23.84255955322866 - ], - [ - 103.00689423935576, - 30.90627201848909 - ], - [ - 114.24176524508646, - 52.11764927806777 - ], - [ - 121.11437864419639, - 76.44596556243188 - ], - [ - 121.87571605667272, - 100.34924470705245 - ], - [ - 127.10219450988795, - 104.82225460625753 - ], - [ - 148.35791199875223, - 107.1700788067454 - ], - [ - 147.18504084980248, - 115.73154119300645 - ], - [ - 125.92932336093808, - 111.72404816113946 - ], - [ - 119.30363020371247, - 113.3027575373295 - ], - [ - 109.24163034693157, - 133.13782405869122 - ], - [ - 94.879102944001, - 150.4024278777948 - ], - [ - 74.5493363622024, - 166.65503850703305 - ], - [ - 77.100845528339, - 173.55683206191515 - ], - [ - 90.39338521643808, - 192.62278375897918 - ], - [ - 81.52483319543084, - 197.48035107033272 - ], - [ - 71.91552044877115, - 176.43089272113284 - ], - [ - 63.70542240612155, - 170.54109235611628 - ], - [ - 40.165692679828666, - 176.9368893160654 - ], - [ - 8.086637921707267, - 176.30945353834903 - ], - [ - -12.119668539149142, - 167.78847087968236 - ], - [ - -18.107484404840793, - 172.30196050648206 - ], - [ - -28.848514926803176, - 192.29894593822192 - ], - [ - -36.21496880968159, - 187.25921985269252 - ], - [ - -23.560306413116777, - 168.6790248867638 - ], - [ - -22.51089538510894, - 161.5748326939089 - ], - [ - -38.31379086569722, - 149.45115427932134 - ], - [ - -52.820355076393554, - 129.45416884758123 - ], - [ - -59.137397931264246, - 115.6708216016145 - ], - [ - -67.4915327816793, - 114.82074732212754 - ], - [ - -88.80898033101465, - 120.64982809575231 - ], - [ - -90.08473491408286, - 111.46092993177446 - ], - [ - -68.68498061745302, - 108.74878818293537 - ], - [ - -62.6765880649376, - 103.50666345943256 - ], - [ - -62.58056352642709, - 75.16185864818047 - ], - [ - -57.015712889888874, - 53.4557291624454 - ], - [ - -46.75023246340719, - 35.13640355212646 - ], - [ - -51.56517718014895, - 28.052451223068687 - ], - [ - -72.16244069065534, - 17.102684908725127 - ], - [ - -66.93596223743988, - 8.460263067274663 - ], - [ - -48.519827530243845, - 23.17464404791755 - ], - [ - -38.86936140993669, - 24.04495819120175 - ], - [ - -22.408011950990563, - 10.808087267762392 - ], - [ - 0, - 0 - ] - ] - }, - { - "type": "line", - "version": 2150, - "versionNonce": 1513685713, - "isDeleted": false, - "id": "XaE7GXCT4GwJ2nhMwtlWg", - "fillStyle": "solid", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 505.27945011367774, - "y": -486.788630728042, - "strokeColor": "#000000", - "backgroundColor": "#326ce5", - "width": 48.47469376071386, - "height": 48.47469376071386, - "seed": 261217791, - "groupIds": [ - "eArZb9ZBlnfWJEMQQV4z9" - ], - "strokeSharpness": "round", - "boundElements": [], - "updated": 1664546888283, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 14.430327911426346, - -13.068830780054945 - ], - [ - 29.280956635806834, - -22.13699907641955 - ], - [ - 46.653390237912426, - -23.47055323764966 - ], - [ - 48.47469376071386, - 0.6667770806150289 - ], - [ - 45.252387528065256, - 25.004140523064205 - ], - [ - 21.855642273616635, - 13.73560786066992 - ], - [ - 0, - 0 - ] - ] - }, - { - "type": "line", - "version": 2269, - "versionNonce": 1139412671, - "isDeleted": false, - "id": "mvV2dD4yTJcDKdAYmx3FF", - "fillStyle": "solid", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0.9881310661508964, - "x": 556.7059617723021, - "y": -492.54942582191745, - "strokeColor": "#000000", - "backgroundColor": "#326ce5", - "width": 49.13117540263562, - "height": 50.11506909221825, - "seed": 1367491953, - "groupIds": [ - "eArZb9ZBlnfWJEMQQV4z9" - ], - "strokeSharpness": "round", - "boundElements": [], - "updated": 1664546888283, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 14.182288505688028, - -12.844193818214828 - ], - [ - 28.777653375619405, - -21.75649156962916 - ], - [ - 44.04720172849084, - -24.256112534712983 - ], - [ - 49.13117540263562, - -0.9507938675839573 - ], - [ - 47.07841964402909, - 25.858956557505266 - ], - [ - 21.479970940653768, - 13.499509829348174 - ], - [ - 0, - 0 - ] - ] - }, - { - "type": "line", - "version": 2274, - "versionNonce": 1385332913, - "isDeleted": false, - "id": "cigEvAYM5C2n4TajcqSg6", - "fillStyle": "solid", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 1.880863085334429, - "x": 594.3780293494175, - "y": -455.55455559786367, - "strokeColor": "#000000", - "backgroundColor": "#326ce5", - "width": 48.29807726718517, - "height": 50.67219549209237, - "seed": 851691039, - "groupIds": [ - "eArZb9ZBlnfWJEMQQV4z9" - ], - "strokeSharpness": "round", - "boundElements": [], - "updated": 1664546888283, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 14.377751325202478, - -13.021214779048572 - ], - [ - 28.8313107159284, - -21.94645818921957 - ], - [ - 46.48340962419841, - -23.38503878686273 - ], - [ - 48.29807726718517, - 0.664347692808582 - ], - [ - 43.57916915410944, - 27.28715670522964 - ], - [ - 21.52962978284186, - 15.27717845811122 - ], - [ - 0, - 0 - ] - ] - }, - { - "type": "line", - "version": 2454, - "versionNonce": 911728351, - "isDeleted": false, - "id": "hccjRHlL1ZaE1-wS8I9lB", - "fillStyle": "solid", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 2.8469082809423476, - "x": 586.7431828114449, - "y": -404.11188875655375, - "strokeColor": "#000000", - "backgroundColor": "#326ce5", - "width": 46.26123147054415, - "height": 52.5857593702524, - "seed": 551186257, - "groupIds": [ - "eArZb9ZBlnfWJEMQQV4z9" - ], - "strokeSharpness": "round", - "boundElements": [], - "updated": 1664546888283, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 8.98725650698632, - -10.141044492218427 - ], - [ - 24.966812833594844, - -21.61398255978931 - ], - [ - 41.79427231468136, - -24.055575815943136 - ], - [ - 46.26123147054415, - 1.1751965535672875 - ], - [ - 43.95460067977341, - 28.530183554309254 - ], - [ - 21.00664550546962, - 17.000233688329192 - ], - [ - 0, - 0 - ] - ] - }, - { - "type": "line", - "version": 2585, - "versionNonce": 1656832657, - "isDeleted": false, - "id": "XHU2OwqBOrlxwbE59OFhp", - "fillStyle": "solid", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 3.774871714878671, - "x": 541.407570331417, - "y": -377.5946520230925, - "strokeColor": "#000000", - "backgroundColor": "#326ce5", - "width": 47.357643859194916, - "height": 54.39985471610307, - "seed": 1136896575, - "groupIds": [ - "eArZb9ZBlnfWJEMQQV4z9" - ], - "strokeSharpness": "round", - "boundElements": [], - "updated": 1664546888283, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 11.971026379833722, - -11.749470191690138 - ], - [ - 26.862786904361528, - -22.78640428704829 - ], - [ - 43.0452144052358, - -27.06661877900955 - ], - [ - 46.00053463162567, - -0.0045456574213424885 - ], - [ - 47.357643859194916, - 27.33323593709352 - ], - [ - 23.38715276490379, - 14.669574937152335 - ], - [ - 0, - 0 - ] - ] - }, - { - "type": "line", - "version": 2648, - "versionNonce": 383167231, - "isDeleted": false, - "id": "2uHGrUT2YNXCCSed_5Z6T", - "fillStyle": "solid", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 4.759646000521123, - "x": 491.5849780148061, - "y": -397.93793368475764, - "strokeColor": "#000000", - "backgroundColor": "#326ce5", - "width": 46.887285571853354, - "height": 46.1026794771245, - "seed": 189947185, - "groupIds": [ - "eArZb9ZBlnfWJEMQQV4z9" - ], - "strokeSharpness": "round", - "boundElements": [], - "updated": 1664546888283, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 9.324476433685488, - -13.142771725173525 - ], - [ - 24.035693385592612, - -24.243425847069968 - ], - [ - 37.02827557858398, - -25.1011099227724 - ], - [ - 45.935528209756825, - -3.5503731155861638 - ], - [ - 46.887285571853354, - 21.00156955435209 - ], - [ - 21.52962978284186, - 15.27717845811122 - ], - [ - 0, - 0 - ] - ] - }, - { - "type": "line", - "version": 2776, - "versionNonce": 1736231025, - "isDeleted": false, - "id": "gGs2qQi5c6FOrr45ntp7f", - "fillStyle": "solid", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 5.645190933495279, - "x": 477.96611328172173, - "y": -446.0378195776641, - "strokeColor": "#000000", - "backgroundColor": "#326ce5", - "width": 52.66324158134681, - "height": 50.90620499382871, - "seed": 1332873823, - "groupIds": [ - "eArZb9ZBlnfWJEMQQV4z9" - ], - "strokeSharpness": "round", - "boundElements": [], - "updated": 1664546888283, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, + "endArrowhead": "arrow", "points": [ [ 0, 0 ], [ - 9.32447643368549, - -13.142771725173526 - ], - [ - 24.035693385592616, - -24.243425847069975 - ], - [ - 38.74420553451078, - -27.41545864349239 - ], - [ - 47.08278677781014, - -4.4930562314554505 - ], - [ - 52.66324158134681, - 23.490746350336323 - ], - [ - 25.77439970397941, - 14.389466103227798 + 170.00189426585837, + -61.134539965866566 ], [ - 0, - 0 + 239.00702346745686, + -144.97709117488972 ] ] }, - { - "type": "ellipse", - "version": 1595, - "versionNonce": 1910960927, - "isDeleted": false, - "id": "S497XWVRl4wRHDkU0JMet", - "fillStyle": "solid", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 553.2460323407352, - "y": -446.8979002433115, - "strokeColor": "#000000", - "backgroundColor": "#326ce5", - "width": 21.20795466073014, - "height": 21.20795466073014, - "seed": 542215953, - "groupIds": [ - "eArZb9ZBlnfWJEMQQV4z9" - ], - "strokeSharpness": "sharp", - "boundElements": [], - "updated": 1664546888283, - "link": null, - "locked": false - }, { "type": "arrow", - "version": 5021, - "versionNonce": 982291025, + "version": 5125, + "versionNonce": 1958503810, "isDeleted": false, "id": "tBVa_Dx6tqTSgAtdQRH9n", "fillStyle": "solid", @@ -1383,17 +393,19 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 217.94382403697253, - "y": 134.4044053313339, + "x": 218.31107044909433, + "y": 112.77626044694657, "strokeColor": "#000000", "backgroundColor": "transparent", - "width": 0.7819181801259845, - "height": 198.24054861171592, + "width": 0.0808345908460808, + "height": 176.6124037273286, "seed": 1837979281, "groupIds": [], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664546888283, + "updated": 1682390374323, "link": null, "locked": false, "startBinding": { @@ -1415,15 +427,15 @@ 0 ], [ - 0.7819181801259845, - -198.24054861171592 + 0.0808345908460808, + -176.6124037273286 ] ] }, { "type": "rectangle", - "version": 2027, - "versionNonce": 1212474705, + "version": 2079, + "versionNonce": 1932225986, "isDeleted": false, "id": "_-BKWrSu7p3gamORvlowF", "fillStyle": "cross-hatch", @@ -1432,8 +444,8 @@ "roughness": 2, "opacity": 100, "angle": 0, - "x": -39.193306977127804, - "y": 136.27210267117488, + "x": -38.60811286654416, + "y": 114.64395778678755, "strokeColor": "#000000", "backgroundColor": "#ced4da", "width": 542, @@ -1442,7 +454,7 @@ "groupIds": [ "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [ { "type": "text", @@ -1457,14 +469,14 @@ "type": "arrow" } ], - "updated": 1664546888286, + "updated": 1682390374322, "link": null, "locked": false }, { "type": "text", - "version": 2579, - "versionNonce": 1994626111, + "version": 2632, + "versionNonce": 264776606, "isDeleted": false, "id": "8r7_rZGi0MKvtcC2DrjNA", "fillStyle": "solid", @@ -1473,34 +485,35 @@ "roughness": 2, "opacity": 100, "angle": 0, - "x": 36.806693022872196, - "y": 141.27210267117488, + "x": 38.51688713345584, + "y": 119.64395778678755, "strokeColor": "#000000", "backgroundColor": "transparent", - "width": 390, + "width": 387.75, "height": 72, "seed": 583060785, "groupIds": [ "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888286, + "updated": 1682390374323, "link": null, "locked": false, "fontSize": 60.163616257419534, "fontFamily": 3, "text": "app clients", - "baseline": 58, "textAlign": "center", "verticalAlign": "top", "containerId": "_-BKWrSu7p3gamORvlowF", - "originalText": "app clients" + "originalText": "app clients", + "lineHeight": 1.1967365740107214, + "baseline": 58 }, { "type": "rectangle", - "version": 4113, - "versionNonce": 167646001, + "version": 4165, + "versionNonce": 1356358978, "isDeleted": false, "id": "ESnUKVgDaXsKkWE3zAW7H", "fillStyle": "solid", @@ -1509,8 +522,8 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 84.63663329145731, - "y": 238.66306243787574, + "x": 85.22182740204096, + "y": 217.0349175534884, "strokeColor": "#000000", "backgroundColor": "#eaeafa", "width": 87.85825103183927, @@ -1521,16 +534,16 @@ "FPhas0gBc4s_HVOEg2MrJ", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888286, + "updated": 1682390374323, "link": null, "locked": false }, { "type": "rectangle", - "version": 3519, - "versionNonce": 721728607, + "version": 3571, + "versionNonce": 322766814, "isDeleted": false, "id": "pUscOls9kEohQdM1IZ8uZ", "fillStyle": "solid", @@ -1539,8 +552,8 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 123.97379029770661, - "y": 253.14558565426694, + "x": 124.55898440829026, + "y": 231.5174407698796, "strokeColor": "#000000", "backgroundColor": "#fff", "width": 58.3359375, @@ -1551,16 +564,16 @@ "FPhas0gBc4s_HVOEg2MrJ", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888286, + "updated": 1682390374323, "link": null, "locked": false }, { "type": "text", - "version": 2624, - "versionNonce": 2081850641, + "version": 2677, + "versionNonce": 283012354, "isDeleted": false, "id": "u7mJMpi8DHWwSgzpefRI0", "fillStyle": "solid", @@ -1569,11 +582,11 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 133.26429961791962, - "y": 257.5675375676361, + "x": 133.84949372850326, + "y": 235.9393926832488, "strokeColor": "#000000", "backgroundColor": "#c5bcdd", - "width": 40, + "width": 38.09999084472656, "height": 25, "seed": 2065883327, "groupIds": [ @@ -1581,24 +594,25 @@ "FPhas0gBc4s_HVOEg2MrJ", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888286, + "updated": 1682390374323, "link": null, "locked": false, "fontSize": 20, "fontFamily": 1, "text": "VUE", - "baseline": 18, "textAlign": "left", "verticalAlign": "top", "containerId": null, - "originalText": "VUE" + "originalText": "VUE", + "lineHeight": 1.25, + "baseline": 18 }, { "type": "line", - "version": 2569, - "versionNonce": 1514983551, + "version": 2621, + "versionNonce": 1145855006, "isDeleted": false, "id": "o67sbkREmRktODZjahRdX", "fillStyle": "solid", @@ -1607,8 +621,8 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 99.42708175513837, - "y": 302.0463369163764, + "x": 100.01227586572202, + "y": 280.41819203198907, "strokeColor": "#000", "backgroundColor": "#41b883", "width": 57.726740684381255, @@ -1620,9 +634,9 @@ "FPhas0gBc4s_HVOEg2MrJ", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888286, + "updated": 1682390374323, "link": null, "locked": false, "startBinding": null, @@ -1651,8 +665,8 @@ }, { "type": "line", - "version": 2941, - "versionNonce": 1510324977, + "version": 2993, + "versionNonce": 978156738, "isDeleted": false, "id": "IziU7uuKUzp-EmONcYom-", "fillStyle": "solid", @@ -1661,8 +675,8 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 110.23343345148953, - "y": 302.6154183949085, + "x": 110.81862756207317, + "y": 280.98727351052116, "strokeColor": "#000", "backgroundColor": "#34485e", "width": 36.97684919225588, @@ -1674,9 +688,9 @@ "FPhas0gBc4s_HVOEg2MrJ", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888286, + "updated": 1682390374323, "link": null, "locked": false, "startBinding": null, @@ -1705,8 +719,8 @@ }, { "type": "line", - "version": 4081, - "versionNonce": 2122082463, + "version": 4133, + "versionNonce": 2028415070, "isDeleted": false, "id": "PWahcUHKty0CbsTUlK73i", "fillStyle": "solid", @@ -1715,8 +729,8 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 117.4538822427902, - "y": 298.8863703945889, + "x": 118.03907635337384, + "y": 277.25822551020156, "strokeColor": "#ff00", "backgroundColor": "#eaeafa", "width": 21.971236623429228, @@ -1728,9 +742,9 @@ "FPhas0gBc4s_HVOEg2MrJ", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888286, + "updated": 1682390374323, "link": null, "locked": false, "startBinding": null, @@ -1759,8 +773,8 @@ }, { "type": "line", - "version": 2419, - "versionNonce": 72561873, + "version": 2471, + "versionNonce": 1254397058, "isDeleted": false, "id": "EJHLJm7hnutgI4gXi20Zf", "fillStyle": "solid", @@ -1769,8 +783,8 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 116.89703712605808, - "y": 300.0522158293119, + "x": 117.48223123664172, + "y": 278.42407094492455, "strokeColor": "#000", "backgroundColor": "#edf2f9", "width": 21.2946266891332, @@ -1782,9 +796,9 @@ "FPhas0gBc4s_HVOEg2MrJ", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888286, + "updated": 1682390374323, "link": null, "locked": false, "startBinding": null, @@ -1809,8 +823,8 @@ }, { "type": "text", - "version": 1784, - "versionNonce": 88341695, + "version": 1837, + "versionNonce": 551447710, "isDeleted": false, "id": "EvaoyoFLkdnLOpvUx20CK", "fillStyle": "solid", @@ -1819,35 +833,36 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 112.64064555263701, - "y": 366.5582439599842, + "x": 113.22583966322065, + "y": 344.9300990755969, "strokeColor": "#000", "backgroundColor": "#edf2f9", - "width": 35, + "width": 32.63996887207031, "height": 25, "seed": 1006016113, "groupIds": [ "FPhas0gBc4s_HVOEg2MrJ", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888286, + "updated": 1682390374323, "link": null, "locked": false, "fontSize": 20, "fontFamily": 1, "text": "Vue", - "baseline": 18, "textAlign": "left", "verticalAlign": "top", "containerId": null, - "originalText": "Vue" + "originalText": "Vue", + "lineHeight": 1.25, + "baseline": 18 }, { "type": "text", - "version": 2231, - "versionNonce": 1586918065, + "version": 2284, + "versionNonce": 872592450, "isDeleted": false, "id": "VdHeC0OvW_97WbhXDcgej", "fillStyle": "solid", @@ -1856,35 +871,36 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 7.252637980973532, - "y": 361.40719851148924, + "x": 7.837832091557175, + "y": 339.7790536271019, "strokeColor": "#000", "backgroundColor": "#edf2f9", - "width": 61, + "width": 59.179962158203125, "height": 25, "seed": 1401331007, "groupIds": [ "KVisCmg1GFZmWL8P4Tbhv", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888286, + "updated": 1682390374323, "link": null, "locked": false, "fontSize": 20, "fontFamily": 1, "text": "React", - "baseline": 18, "textAlign": "left", "verticalAlign": "top", "containerId": null, - "originalText": "React" + "originalText": "React", + "lineHeight": 1.25, + "baseline": 18 }, { "type": "rectangle", - "version": 4218, - "versionNonce": 1380191455, + "version": 4270, + "versionNonce": 165882078, "isDeleted": false, "id": "xK0foML1IrEFExHM1eyNF", "fillStyle": "solid", @@ -1893,8 +909,8 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": -11.73163271087219, - "y": 235.4807745530377, + "x": -11.146438600288548, + "y": 213.85262966865037, "strokeColor": "#000000", "backgroundColor": "#454c5a", "width": 87.85825103183927, @@ -1906,16 +922,16 @@ "KVisCmg1GFZmWL8P4Tbhv", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888286, + "updated": 1682390374323, "link": null, "locked": false }, { "type": "rectangle", - "version": 3734, - "versionNonce": 1836512401, + "version": 3786, + "versionNonce": 1474747394, "isDeleted": false, "id": "EF1lYZJZMcVxUveR5ehgU", "fillStyle": "solid", @@ -1924,8 +940,8 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 13.167564417711901, - "y": 249.9632977694289, + "x": 13.752758528295544, + "y": 228.33515288504157, "strokeColor": "#000000", "backgroundColor": "#fff", "width": 72.77605438232425, @@ -1937,16 +953,16 @@ "KVisCmg1GFZmWL8P4Tbhv", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888286, + "updated": 1682390374323, "link": null, "locked": false }, { "type": "text", - "version": 2881, - "versionNonce": 17635583, + "version": 2934, + "versionNonce": 596008222, "isDeleted": false, "id": "yriaCvOKBCs7SYSop1qw7", "fillStyle": "solid", @@ -1955,11 +971,11 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 22.812892051747667, - "y": 252.86766681832682, + "x": 23.39808616233131, + "y": 231.2395219339395, "strokeColor": "#000000", "backgroundColor": "#fff", - "width": 61, + "width": 59.179962158203125, "height": 25, "seed": 1080798225, "groupIds": [ @@ -1968,24 +984,25 @@ "KVisCmg1GFZmWL8P4Tbhv", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888286, + "updated": 1682390374323, "link": null, "locked": false, "fontSize": 20, "fontFamily": 1, "text": "React", - "baseline": 18, "textAlign": "left", "verticalAlign": "top", "containerId": null, - "originalText": "React" + "originalText": "React", + "lineHeight": 1.25, + "baseline": 18 }, { "type": "ellipse", - "version": 2152, - "versionNonce": 883702385, + "version": 2204, + "versionNonce": 74451906, "isDeleted": false, "id": "RG75y65RDKd7nkmoCWblm", "fillStyle": "solid", @@ -1994,8 +1011,8 @@ "roughness": 1, "opacity": 100, "angle": 1.566715780553067, - "x": 26.14479844975108, - "y": 294.1658148819017, + "x": 26.729992560334722, + "y": 272.5376699975144, "strokeColor": "#00bbd4", "backgroundColor": "#ff00", "width": 16.325228482441457, @@ -2007,16 +1024,16 @@ "KVisCmg1GFZmWL8P4Tbhv", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888286, + "updated": 1682390374323, "link": null, "locked": false }, { "type": "ellipse", - "version": 2269, - "versionNonce": 1730126111, + "version": 2321, + "versionNonce": 1127811422, "isDeleted": false, "id": "QOdPzB1fnoj2aI7pOaSS1", "fillStyle": "solid", @@ -2025,8 +1042,8 @@ "roughness": 1, "opacity": 100, "angle": 0.5133050667589325, - "x": 25.433164767982362, - "y": 294.1443220949345, + "x": 26.018358878566005, + "y": 272.5161772105472, "strokeColor": "#00bbd4", "backgroundColor": "#ff00", "width": 16.325228482441457, @@ -2038,16 +1055,16 @@ "KVisCmg1GFZmWL8P4Tbhv", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888286, + "updated": 1682390374323, "link": null, "locked": false }, { "type": "ellipse", - "version": 2292, - "versionNonce": 1425917009, + "version": 2344, + "versionNonce": 1874674562, "isDeleted": false, "id": "pn2OiIwDX9FleezNOHBbp", "fillStyle": "solid", @@ -2056,8 +1073,8 @@ "roughness": 1, "opacity": 100, "angle": 2.5193659458493443, - "x": 26.189461892294048, - "y": 294.23276664064633, + "x": 26.77465600287769, + "y": 272.604621756259, "strokeColor": "#00bbd4", "backgroundColor": "#ff00", "width": 16.325228482441457, @@ -2069,16 +1086,16 @@ "KVisCmg1GFZmWL8P4Tbhv", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888286, + "updated": 1682390374323, "link": null, "locked": false }, { "type": "ellipse", - "version": 1789, - "versionNonce": 1441539391, + "version": 1841, + "versionNonce": 1749822878, "isDeleted": false, "id": "bq4quacnLwxfn65nEnlIf", "fillStyle": "solid", @@ -2087,8 +1104,8 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 31.86330776959835, - "y": 318.1363114315718, + "x": 32.44850188018199, + "y": 296.5081665471845, "strokeColor": "#00bbd4", "backgroundColor": "#00bbd4", "width": 3.8855987810294716, @@ -2100,16 +1117,16 @@ "KVisCmg1GFZmWL8P4Tbhv", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888286, + "updated": 1682390374323, "link": null, "locked": false }, { "type": "text", - "version": 2288, - "versionNonce": 1782780465, + "version": 2341, + "versionNonce": 873300802, "isDeleted": false, "id": "QKST9zA7BOBmctPW3qu7Z", "fillStyle": "solid", @@ -2118,35 +1135,36 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 289.10158140727606, - "y": 362.5964956957989, + "x": 289.6867755178597, + "y": 340.9683508114116, "strokeColor": "#000", "backgroundColor": "#edf2f9", - "width": 72, + "width": 70.23992919921875, "height": 25, "seed": 227470257, "groupIds": [ "ciMTMixWnwvt0JakDJmyq", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888286, + "updated": 1682390374323, "link": null, "locked": false, "fontSize": 20, "fontFamily": 1, "text": "Flutter", - "baseline": 18, "textAlign": "left", "verticalAlign": "top", "containerId": null, - "originalText": "Flutter" + "originalText": "Flutter", + "lineHeight": 1.25, + "baseline": 18 }, { "type": "rectangle", - "version": 4274, - "versionNonce": 483599711, + "version": 4326, + "versionNonce": 2146486750, "isDeleted": false, "id": "z8S9OTLJ8tCw4f2D3u9OD", "fillStyle": "solid", @@ -2155,8 +1173,8 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 276.6082110391277, - "y": 237.01283153539475, + "x": 277.19340514971134, + "y": 215.38468665100743, "strokeColor": "#000000", "backgroundColor": "#edf2f9", "width": 87.85825103183927, @@ -2168,21 +1186,21 @@ "ciMTMixWnwvt0JakDJmyq", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [ { "id": "qT3ZXcKZMAQ2PIdL4Jn_V", "type": "arrow" } ], - "updated": 1664546888286, + "updated": 1682390374323, "link": null, "locked": false }, { "type": "rectangle", - "version": 3826, - "versionNonce": 694395921, + "version": 3878, + "versionNonce": 1270860546, "isDeleted": false, "id": "fWEGOCgoor-pCn8fKbzdf", "fillStyle": "solid", @@ -2191,8 +1209,8 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 292.2746863370427, - "y": 251.49535475178595, + "x": 292.8598804476263, + "y": 229.86720986739863, "strokeColor": "#000000", "backgroundColor": "#fff", "width": 82.00877621299335, @@ -2204,16 +1222,16 @@ "ciMTMixWnwvt0JakDJmyq", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888287, + "updated": 1682390374323, "link": null, "locked": false }, { "type": "text", - "version": 2982, - "versionNonce": 1260724607, + "version": 3035, + "versionNonce": 691527198, "isDeleted": false, "id": "dCdRkC8-C_Zz6j2PTt3m_", "fillStyle": "solid", @@ -2222,11 +1240,11 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 298.01788183638985, - "y": 254.78246141215345, + "x": 298.6030759469735, + "y": 233.15431652776613, "strokeColor": "#000000", "backgroundColor": "#fff", - "width": 72, + "width": 70.23992919921875, "height": 25, "seed": 1806290943, "groupIds": [ @@ -2235,24 +1253,25 @@ "ciMTMixWnwvt0JakDJmyq", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888287, + "updated": 1682390374323, "link": null, "locked": false, "fontSize": 20, "fontFamily": 1, "text": "Flutter", - "baseline": 18, "textAlign": "left", "verticalAlign": "top", "containerId": null, - "originalText": "Flutter" + "originalText": "Flutter", + "lineHeight": 1.25, + "baseline": 18 }, { "type": "line", - "version": 2839, - "versionNonce": 1045887473, + "version": 2891, + "versionNonce": 223550146, "isDeleted": false, "id": "owZ8K-S1kTyufhR-jLISn", "fillStyle": "solid", @@ -2261,8 +1280,8 @@ "roughness": 0, "opacity": 100, "angle": 0, - "x": 323.98098245620406, - "y": 302.68670176249816, + "x": 324.5661765667877, + "y": 281.05855687811083, "strokeColor": "#44d1fd", "backgroundColor": "#44d1fd", "width": 33.32480821095047, @@ -2274,9 +1293,9 @@ "ciMTMixWnwvt0JakDJmyq", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888287, + "updated": 1682390374323, "link": null, "locked": false, "startBinding": null, @@ -2309,8 +1328,8 @@ }, { "type": "line", - "version": 2257, - "versionNonce": 841128351, + "version": 2309, + "versionNonce": 2031250014, "isDeleted": false, "id": "Hc9WMem3QVIK-5-AUg8qc", "fillStyle": "solid", @@ -2319,8 +1338,8 @@ "roughness": 0, "opacity": 100, "angle": 0, - "x": 311.93647432667365, - "y": 333.9337353949004, + "x": 312.5216684372573, + "y": 312.30559051051307, "strokeColor": "#065a9d", "backgroundColor": "#065a9d", "width": 24.06937282447777, @@ -2332,9 +1351,9 @@ "ciMTMixWnwvt0JakDJmyq", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888287, + "updated": 1682390374323, "link": null, "locked": false, "startBinding": null, @@ -2367,8 +1386,8 @@ }, { "type": "line", - "version": 2262, - "versionNonce": 1780782033, + "version": 2314, + "versionNonce": 661025410, "isDeleted": false, "id": "h3tL87Z7EvuLMED-MQTiM", "fillStyle": "solid", @@ -2377,8 +1396,8 @@ "roughness": 0, "opacity": 100, "angle": 0, - "x": 312.0710066803389, - "y": 333.5908571141679, + "x": 312.6562007909225, + "y": 311.96271222978055, "strokeColor": "#41d0fd", "backgroundColor": "#41d0fd", "width": 24.495086769147004, @@ -2390,9 +1409,9 @@ "ciMTMixWnwvt0JakDJmyq", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888287, + "updated": 1682390374323, "link": null, "locked": false, "startBinding": null, @@ -2425,8 +1444,8 @@ }, { "type": "text", - "version": 1945, - "versionNonce": 654052799, + "version": 1998, + "versionNonce": 1045524126, "isDeleted": false, "id": "QAjYW3mBlpmVneZe3EXdK", "fillStyle": "solid", @@ -2435,40 +1454,41 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 202.46712165876977, - "y": 362.4067319800322, + "x": 203.0523157693534, + "y": 340.77858709564487, "strokeColor": "#000", "backgroundColor": "#fbbd9b", - "width": 41, + "width": 38.5999755859375, "height": 25, "seed": 270565073, "groupIds": [ "LNvdY8TFeQxuY1KgXMRCr", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [ { "id": "qT3ZXcKZMAQ2PIdL4Jn_V", "type": "arrow" } ], - "updated": 1664546888287, + "updated": 1682390374323, "link": null, "locked": false, "fontSize": 20, "fontFamily": 1, "text": "APK", - "baseline": 18, "textAlign": "left", "verticalAlign": "top", "containerId": null, - "originalText": "APK" + "originalText": "APK", + "lineHeight": 1.25, + "baseline": 18 }, { "type": "rectangle", - "version": 3924, - "versionNonce": 1625551281, + "version": 3976, + "versionNonce": 1168501470, "isDeleted": false, "id": "TYD9JErqDImy8gkbx2MXG", "fillStyle": "solid", @@ -2477,8 +1497,8 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 179.62651364647297, - "y": 236.75467858449747, + "x": 180.21170775705662, + "y": 215.12653370011014, "strokeColor": "#000000", "backgroundColor": "#f48284", "width": 87.85825103183927, @@ -2489,16 +1509,16 @@ "LNvdY8TFeQxuY1KgXMRCr", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888287, + "updated": 1682390374323, "link": null, "locked": false }, { "type": "rectangle", - "version": 3401, - "versionNonce": 80870879, + "version": 3453, + "versionNonce": 1076443650, "isDeleted": false, "id": "fnobSdbsTWzfZbXmg6q0w", "fillStyle": "solid", @@ -2507,8 +1527,8 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 218.95786827602967, - "y": 251.18947528602587, + "x": 219.54306238661331, + "y": 229.56133040163854, "strokeColor": "#000000", "backgroundColor": "#fff", "width": 58.3359375, @@ -2519,16 +1539,16 @@ "LNvdY8TFeQxuY1KgXMRCr", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888287, + "updated": 1682390374323, "link": null, "locked": false }, { "type": "text", - "version": 2509, - "versionNonce": 1740411793, + "version": 2562, + "versionNonce": 497082142, "isDeleted": false, "id": "hTag8egMzfK5pem0VOe5L", "fillStyle": "solid", @@ -2537,11 +1557,11 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 228.24837759624268, - "y": 255.61142719939505, + "x": 228.83357170682632, + "y": 233.98328231500773, "strokeColor": "#000000", "backgroundColor": "#c5bcdd", - "width": 41, + "width": 38.5999755859375, "height": 25, "seed": 1431151327, "groupIds": [ @@ -2549,24 +1569,25 @@ "LNvdY8TFeQxuY1KgXMRCr", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888287, + "updated": 1682390374323, "link": null, "locked": false, "fontSize": 20, "fontFamily": 1, "text": "APK", - "baseline": 18, "textAlign": "left", "verticalAlign": "top", "containerId": null, - "originalText": "APK" + "originalText": "APK", + "lineHeight": 1.25, + "baseline": 18 }, { "type": "line", - "version": 2066, - "versionNonce": 1857350143, + "version": 2118, + "versionNonce": 817277378, "isDeleted": false, "id": "JUgQd_KcJA2Qic5Fnr4Wi", "fillStyle": "solid", @@ -2575,8 +1596,8 @@ "roughness": 0, "opacity": 100, "angle": 0, - "x": 200.36584607650582, - "y": 301.25791199426055, + "x": 200.95104018708946, + "y": 279.6297671098732, "strokeColor": "#000", "backgroundColor": "#aed796", "width": 7.5923919677734375, @@ -2588,9 +1609,9 @@ "LNvdY8TFeQxuY1KgXMRCr", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888287, + "updated": 1682390374323, "link": null, "locked": false, "startBinding": null, @@ -2611,8 +1632,8 @@ }, { "type": "line", - "version": 2088, - "versionNonce": 853932401, + "version": 2140, + "versionNonce": 1521699678, "isDeleted": false, "id": "Z_zY2SOwkwrHDtX0GXRSl", "fillStyle": "solid", @@ -2621,8 +1642,8 @@ "roughness": 0, "opacity": 100, "angle": 0, - "x": 245.2735708851793, - "y": 310.36165393201475, + "x": 245.85876499576295, + "y": 288.7335090476274, "strokeColor": "#000", "backgroundColor": "#aed796", "width": 6.975860595703125, @@ -2634,9 +1655,9 @@ "LNvdY8TFeQxuY1KgXMRCr", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888287, + "updated": 1682390374323, "link": null, "locked": false, "startBinding": null, @@ -2657,8 +1678,8 @@ }, { "type": "line", - "version": 2487, - "versionNonce": 1369788959, + "version": 2539, + "versionNonce": 1434460546, "isDeleted": false, "id": "zux3sNR05IS-4S3hGDeo4", "fillStyle": "solid", @@ -2667,8 +1688,8 @@ "roughness": 0, "opacity": 100, "angle": 0, - "x": 197.47642820746012, - "y": 335.8807088181071, + "x": 198.06162231804376, + "y": 314.2525639337198, "strokeColor": "#000", "backgroundColor": "#aed796", "width": 58.24350785235947, @@ -2680,9 +1701,11 @@ "LNvdY8TFeQxuY1KgXMRCr", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664546888287, + "updated": 1682390374323, "link": null, "locked": false, "startBinding": null, @@ -2759,8 +1782,8 @@ }, { "type": "ellipse", - "version": 2210, - "versionNonce": 61317969, + "version": 2262, + "versionNonce": 1529753502, "isDeleted": false, "id": "ayMFRUCfykbQYWa1T7lMw", "fillStyle": "solid", @@ -2769,8 +1792,8 @@ "roughness": 0, "opacity": 100, "angle": 0, - "x": 211.20289731240598, - "y": 317.34381344926396, + "x": 211.78809142298962, + "y": 295.71566856487664, "strokeColor": "#000", "backgroundColor": "#aed796", "width": 3.3739471435546875, @@ -2782,16 +1805,16 @@ "LNvdY8TFeQxuY1KgXMRCr", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888287, + "updated": 1682390374323, "link": null, "locked": false }, { "type": "ellipse", - "version": 2332, - "versionNonce": 647214655, + "version": 2384, + "versionNonce": 1506058562, "isDeleted": false, "id": "s0xVIfGqHVL9RheEufZWL", "fillStyle": "solid", @@ -2800,8 +1823,8 @@ "roughness": 0, "opacity": 100, "angle": 0, - "x": 234.7368363625743, - "y": 317.5692231321801, + "x": 235.32203047315795, + "y": 295.9410782477928, "strokeColor": "#000", "backgroundColor": "#aed796", "width": 3.3739471435546875, @@ -2813,16 +1836,16 @@ "LNvdY8TFeQxuY1KgXMRCr", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888287, + "updated": 1682390374323, "link": null, "locked": false }, { "type": "text", - "version": 2280, - "versionNonce": 106500401, + "version": 2333, + "versionNonce": 188910558, "isDeleted": false, "id": "dPNePcQpFV_yl4boehg50", "fillStyle": "solid", @@ -2831,35 +1854,36 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 403.407463934636, - "y": 365.60348978548564, + "x": 403.9926580452196, + "y": 343.9753449010983, "strokeColor": "#000", "backgroundColor": "#edf2f9", - "width": 52, + "width": 49.73994445800781, "height": 25, "seed": 1792558527, "groupIds": [ "I8XWYTUn08wlcXvEs72sE", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888287, + "updated": 1682390374323, "link": null, "locked": false, "fontSize": 20, "fontFamily": 1, "text": "Swift", - "baseline": 18, "textAlign": "left", "verticalAlign": "top", "containerId": null, - "originalText": "Swift" + "originalText": "Swift", + "lineHeight": 1.25, + "baseline": 18 }, { "type": "rectangle", - "version": 4228, - "versionNonce": 1952487007, + "version": 4280, + "versionNonce": 685975810, "isDeleted": false, "id": "jCrB9HQo1TYbql4MMUnNF", "fillStyle": "solid", @@ -2868,8 +1892,8 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 380.9441485391304, - "y": 239.04489994571077, + "x": 381.52934264971407, + "y": 217.41675506132344, "strokeColor": "#000000", "backgroundColor": "#868e96", "width": 87.85825103183927, @@ -2881,16 +1905,16 @@ "I8XWYTUn08wlcXvEs72sE", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888287, + "updated": 1682390374323, "link": null, "locked": false }, { "type": "rectangle", - "version": 3751, - "versionNonce": 1885455121, + "version": 3803, + "versionNonce": 687955998, "isDeleted": false, "id": "BpiYgnpWqpgMEKezddORB", "fillStyle": "solid", @@ -2899,8 +1923,8 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 415.08839419066373, - "y": 253.52742316210197, + "x": 415.6735883012474, + "y": 231.89927827771464, "strokeColor": "#000000", "backgroundColor": "#fff", "width": 63.53100585937503, @@ -2912,16 +1936,16 @@ "I8XWYTUn08wlcXvEs72sE", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888287, + "updated": 1682390374323, "link": null, "locked": false }, { "type": "text", - "version": 2885, - "versionNonce": 299659903, + "version": 2938, + "versionNonce": 1784330434, "isDeleted": false, "id": "qW2ZcISUytR3-bOm5nrLS", "fillStyle": "solid", @@ -2930,11 +1954,11 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 423.1901198349534, - "y": 257.03979773468154, + "x": 423.77531394553705, + "y": 235.41165285029422, "strokeColor": "#000000", "backgroundColor": "#fff", - "width": 52, + "width": 49.73994445800781, "height": 25, "seed": 355916689, "groupIds": [ @@ -2943,24 +1967,25 @@ "I8XWYTUn08wlcXvEs72sE", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888287, + "updated": 1682390374323, "link": null, "locked": false, "fontSize": 20, "fontFamily": 1, "text": "Swift", - "baseline": 18, "textAlign": "left", "verticalAlign": "top", "containerId": null, - "originalText": "Swift" + "originalText": "Swift", + "lineHeight": 1.25, + "baseline": 18 }, { "type": "rectangle", - "version": 1398, - "versionNonce": 1580808433, + "version": 1450, + "versionNonce": 140225630, "isDeleted": false, "id": "br53QokYDJxLRUsjPhCwy", "fillStyle": "solid", @@ -2969,8 +1994,8 @@ "roughness": 0, "opacity": 100, "angle": 0, - "x": 401.9401034286399, - "y": 298.29111147776825, + "x": 402.5252975392235, + "y": 276.66296659338093, "strokeColor": "#ef5139", "backgroundColor": "#ef5139", "width": 48.496691645408184, @@ -2982,16 +2007,18 @@ "I8XWYTUn08wlcXvEs72sE", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "round", + "roundness": { + "type": 1 + }, "boundElements": [], - "updated": 1664546888287, + "updated": 1682390374323, "link": null, "locked": false }, { "type": "line", - "version": 1468, - "versionNonce": 667404959, + "version": 1520, + "versionNonce": 2110410882, "isDeleted": false, "id": "p8w32VzdSrLF86ACDRXp8", "fillStyle": "solid", @@ -3000,8 +2027,8 @@ "roughness": 0, "opacity": 100, "angle": 0, - "x": 432.16572596611616, - "y": 322.0919307445047, + "x": 432.7509200766998, + "y": 300.46378586011735, "strokeColor": "#fff", "backgroundColor": "#fff", "width": 37.039122762559145, @@ -3013,9 +2040,11 @@ "I8XWYTUn08wlcXvEs72sE", "JbFUCMpOHEHN3NyvSrPdT" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1664546888287, + "updated": 1682390374323, "link": null, "locked": false, "startBinding": null, @@ -3188,8 +2217,8 @@ }, { "type": "rectangle", - "version": 1881, - "versionNonce": 666005169, + "version": 1885, + "versionNonce": 1405645790, "isDeleted": false, "id": "sFE8hJbB0-zakUa7U66ZI", "fillStyle": "solid", @@ -3206,25 +2235,27 @@ "height": 148, "seed": 1526121535, "groupIds": [], - "strokeSharpness": "round", + "roundness": { + "type": 1 + }, "boundElements": [ { "type": "text", "id": "rLnghxDF0hu3jeUQUOcjY" }, { - "id": "AzJlXlpiAOpjWfG6hCefX", + "id": "IXGLaKwvNWM7iA7SwPJbz", "type": "arrow" } ], - "updated": 1664546888287, + "updated": 1682390356102, "link": null, "locked": false }, { "type": "text", - "version": 1823, - "versionNonce": 905302239, + "version": 1824, + "versionNonce": 1663119518, "isDeleted": false, "id": "rLnghxDF0hu3jeUQUOcjY", "fillStyle": "solid", @@ -3233,27 +2264,28 @@ "roughness": 2, "opacity": 100, "angle": 0, - "x": -20.383601408884147, + "x": -19.308406096384147, "y": -301.25387612021854, "strokeColor": "#000000", "backgroundColor": "transparent", - "width": 462, + "width": 459.849609375, "height": 73, "seed": 1168708113, "groupIds": [], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888287, + "updated": 1682390258429, "link": null, "locked": false, "fontSize": 60.37149825737669, "fontFamily": 3, "text": "app resources", - "baseline": 59, "textAlign": "center", "verticalAlign": "middle", "containerId": "sFE8hJbB0-zakUa7U66ZI", - "originalText": "app resources" + "originalText": "app resources", + "lineHeight": 1.2091798631331838, + "baseline": 58 }, { "type": "freedraw", @@ -3278,7 +2310,9 @@ "HEAUma5p3ll4isR0VQ7cr", "eSa1mG-tgsa-M-bEVkGgd" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1668084793565, "link": null, @@ -4451,7 +3485,7 @@ "groupIds": [ "eSa1mG-tgsa-M-bEVkGgd" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], "updated": 1668084793565, "link": null, @@ -4519,7 +3553,7 @@ "gXTOyhHtXV0fwkdOzla3X", "eSa1mG-tgsa-M-bEVkGgd" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], "updated": 1668084793565, "link": null, @@ -4576,7 +3610,7 @@ "gXTOyhHtXV0fwkdOzla3X", "eSa1mG-tgsa-M-bEVkGgd" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], "updated": 1668084793565, "link": null, @@ -4633,7 +3667,7 @@ "gXTOyhHtXV0fwkdOzla3X", "eSa1mG-tgsa-M-bEVkGgd" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], "updated": 1668084793565, "link": null, @@ -4678,7 +3712,7 @@ "gXTOyhHtXV0fwkdOzla3X", "eSa1mG-tgsa-M-bEVkGgd" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], "updated": 1668084793565, "link": null, @@ -4701,8 +3735,8 @@ }, { "type": "text", - "version": 1222, - "versionNonce": 252418873, + "version": 1223, + "versionNonce": 1061040194, "isDeleted": false, "id": "7NdHRosUGfJjhS_0gpsIg", "fillStyle": "solid", @@ -4715,25 +3749,26 @@ "y": -152.70454893413927, "strokeColor": "#000000", "backgroundColor": "#552f99", - "width": 82, + "width": 80.44355773925781, "height": 41, "seed": 813810897, "groupIds": [ "eSa1mG-tgsa-M-bEVkGgd" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1668084793565, + "updated": 1682390258429, "link": null, "locked": false, "fontSize": 16.602151713597063, "fontFamily": 1, "text": "Container\nInstances", - "baseline": 35, "textAlign": "left", "verticalAlign": "top", "containerId": null, - "originalText": "Container\nInstances" + "originalText": "Container\nInstances", + "lineHeight": 1.2347797052842628, + "baseline": 35 }, { "type": "line", @@ -4758,7 +3793,9 @@ "NMLUUP8IftNJb1tb79wga", "nBc0YIskB39Ba9lzkDVrG" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1668084797457, "link": null, @@ -4866,7 +3903,7 @@ "NMLUUP8IftNJb1tb79wga", "nBc0YIskB39Ba9lzkDVrG" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], "updated": 1668084797457, "link": null, @@ -4874,8 +3911,8 @@ }, { "type": "text", - "version": 806, - "versionNonce": 21604697, + "version": 807, + "versionNonce": 2133683422, "isDeleted": false, "id": "P7nq8xZ3Gz4YhJ0jN-Y46", "fillStyle": "hachure", @@ -4884,30 +3921,31 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 54.344421562151396, + "x": 55.49485796351858, "y": -122.80685829283304, "strokeColor": "#000000", "backgroundColor": "#228be6", - "width": 73, + "width": 70.69912719726562, "height": 18, "seed": 1375689055, "groupIds": [ "tmJTxLP-C9tFCk2RYxENl", "nBc0YIskB39Ba9lzkDVrG" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1668084797457, + "updated": 1682390258430, "link": null, "locked": false, "fontSize": 14.301911527166304, "fontFamily": 1, "text": "Database", - "baseline": 13, "textAlign": "center", "verticalAlign": "top", "containerId": null, - "originalText": "Database" + "originalText": "Database", + "lineHeight": 1.2585730212223185, + "baseline": 13 }, { "type": "rectangle", @@ -4932,7 +3970,7 @@ "c61pafqq2DoyaQk7S7rdQ", "dRHiZS_p9blXC3Ng6hQG8" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], "updated": 1668084772978, "link": null, @@ -4961,7 +3999,7 @@ "c61pafqq2DoyaQk7S7rdQ", "dRHiZS_p9blXC3Ng6hQG8" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], "updated": 1668084772978, "link": null, @@ -4969,8 +4007,8 @@ }, { "type": "text", - "version": 2382, - "versionNonce": 1505854425, + "version": 2383, + "versionNonce": 1716705282, "isDeleted": false, "id": "BjtrAhl09kN7oKEBaL6bn", "fillStyle": "solid", @@ -4983,31 +4021,32 @@ "y": -197.48072848360022, "strokeColor": "#000000", "backgroundColor": "#fff", - "width": 59, - "height": 14, + "width": 56.532501220703125, + "height": 13.999999999999998, "seed": 759863167, "groupIds": [ "c61pafqq2DoyaQk7S7rdQ", "dRHiZS_p9blXC3Ng6hQG8" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1668084772978, + "updated": 1682390258430, "link": null, "locked": false, "fontSize": 11.026657954006614, "fontFamily": 1, "text": "TypeScript", - "baseline": 10, "textAlign": "left", "verticalAlign": "top", "containerId": null, - "originalText": "TypeScript" + "originalText": "TypeScript", + "lineHeight": 1.2696503381528217, + "baseline": 10 }, { "type": "text", - "version": 2452, - "versionNonce": 1072431671, + "version": 2453, + "versionNonce": 2129142046, "isDeleted": false, "id": "n5-vmTGQWUd_p9usIdRUn", "fillStyle": "solid", @@ -5020,31 +4059,32 @@ "y": -165.65083540033294, "strokeColor": "#fff", "backgroundColor": "#fff", - "width": 37, - "height": 32, + "width": 35.01759338378906, + "height": 31.999999999999996, "seed": 334226417, "groupIds": [ "c61pafqq2DoyaQk7S7rdQ", "dRHiZS_p9blXC3Ng6hQG8" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1668084772978, + "updated": 1682390258430, "link": null, "locked": false, "fontSize": 24.80998039651488, "fontFamily": 1, "text": "TS", - "baseline": 22, "textAlign": "left", "verticalAlign": "top", "containerId": null, - "originalText": "TS" + "originalText": "TS", + "lineHeight": 1.2898035181235015, + "baseline": 22 }, { "type": "text", - "version": 1781, - "versionNonce": 108372153, + "version": 1782, + "versionNonce": 1543276482, "isDeleted": false, "id": "PcsOmu30L_rud3Fnl4PTt", "fillStyle": "solid", @@ -5057,30 +4097,31 @@ "y": -121.44556646430952, "strokeColor": "#000", "backgroundColor": "#edf2f9", - "width": 73, + "width": 70.69134521484375, "height": 17, "seed": 1546211231, "groupIds": [ "dRHiZS_p9blXC3Ng6hQG8" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1668084772978, + "updated": 1682390258430, "link": null, "locked": false, "fontSize": 13.783322442508265, "fontFamily": 1, "text": "TypeScript", - "baseline": 12, "textAlign": "left", "verticalAlign": "top", "containerId": null, - "originalText": "TypeScript" + "originalText": "TypeScript", + "lineHeight": 1.2333746142055986, + "baseline": 12 }, { "type": "text", - "version": 1374, - "versionNonce": 1249681305, + "version": 1375, + "versionNonce": 1438797150, "isDeleted": false, "id": "mLuZ7f1DeaNzeP_Sh9kqz", "fillStyle": "solid", @@ -5093,25 +4134,28 @@ "y": -122.65910574530965, "strokeColor": "#000", "backgroundColor": "#fff", - "width": 61, + "width": 59.357696533203125, "height": 19, "seed": 466522577, "groupIds": [ "R4x12rk5t_zG4oOuD4tXV" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], - "updated": 1668084795932, + "updated": 1682390258430, "link": null, "locked": false, "fontSize": 15.332661163750746, "fontFamily": 1, "text": "Storage", - "baseline": 14, "textAlign": "left", "verticalAlign": "top", "containerId": null, - "originalText": "Storage" + "originalText": "Storage", + "lineHeight": 1.2391847571065826, + "baseline": 13 }, { "type": "rectangle", @@ -5136,7 +4180,7 @@ "IlnJLkvE8VOzsRJoGaPA_", "R4x12rk5t_zG4oOuD4tXV" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], "updated": 1668084795932, "link": null, @@ -5165,7 +4209,7 @@ "IlnJLkvE8VOzsRJoGaPA_", "R4x12rk5t_zG4oOuD4tXV" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], "updated": 1668084795932, "link": null, @@ -5173,8 +4217,8 @@ }, { "type": "text", - "version": 1874, - "versionNonce": 1585978263, + "version": 1875, + "versionNonce": 408567682, "isDeleted": false, "id": "kiyKl8-8fMrcRFeTjU3S6", "fillStyle": "solid", @@ -5187,26 +4231,27 @@ "y": -207.7552445122546, "strokeColor": "#000000", "backgroundColor": "#c5bcdd", - "width": 35, + "width": 32.95948791503906, "height": 19, "seed": 2070061023, "groupIds": [ "IlnJLkvE8VOzsRJoGaPA_", "R4x12rk5t_zG4oOuD4tXV" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1668084795932, + "updated": 1682390258430, "link": null, "locked": false, "fontSize": 15.332661163750746, "fontFamily": 1, "text": "DOC", - "baseline": 14, "textAlign": "left", "verticalAlign": "top", "containerId": null, - "originalText": "DOC" + "originalText": "DOC", + "lineHeight": 1.2391847571065826, + "baseline": 13 }, { "type": "line", @@ -5232,7 +4277,9 @@ "IlnJLkvE8VOzsRJoGaPA_", "R4x12rk5t_zG4oOuD4tXV" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1668084795932, "link": null, @@ -5277,7 +4324,9 @@ "IlnJLkvE8VOzsRJoGaPA_", "R4x12rk5t_zG4oOuD4tXV" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1668084795932, "link": null, @@ -5322,7 +4371,9 @@ "IlnJLkvE8VOzsRJoGaPA_", "R4x12rk5t_zG4oOuD4tXV" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1668084795932, "link": null, @@ -5367,7 +4418,9 @@ "IlnJLkvE8VOzsRJoGaPA_", "R4x12rk5t_zG4oOuD4tXV" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1668084795932, "link": null, @@ -5390,8 +4443,8 @@ }, { "type": "text", - "version": 2542, - "versionNonce": 537680479, + "version": 2543, + "versionNonce": 1628238238, "isDeleted": false, "id": "tNK7h97Dn-OfY07IGfRCr", "fillStyle": "hachure", @@ -5404,30 +4457,31 @@ "y": -99.21244366676899, "strokeColor": "#000000", "backgroundColor": "transparent", - "width": 175, + "width": 173.1598663330078, "height": 25, "seed": 1141251455, "groupIds": [ "-sNFEAHViAfchO6_MWFao" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [ { "id": "tBVa_Dx6tqTSgAtdQRH9n", "type": "arrow" } ], - "updated": 1664546888288, + "updated": 1682390258431, "link": null, "locked": false, "fontSize": 20, "fontFamily": 1, "text": "Internet gateway", - "baseline": 18, "textAlign": "left", "verticalAlign": "top", "containerId": null, - "originalText": "Internet gateway" + "originalText": "Internet gateway", + "lineHeight": 1.25, + "baseline": 18 }, { "type": "ellipse", @@ -5452,7 +4506,7 @@ "6FERP11otZouFXGo3kss3", "-sNFEAHViAfchO6_MWFao" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], "updated": 1664546888288, "link": null, @@ -5482,7 +4536,9 @@ "6FERP11otZouFXGo3kss3", "-sNFEAHViAfchO6_MWFao" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1664546888288, "link": null, @@ -5539,7 +4595,9 @@ "6FERP11otZouFXGo3kss3", "-sNFEAHViAfchO6_MWFao" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1664546888288, "link": null, @@ -5596,7 +4654,9 @@ "6FERP11otZouFXGo3kss3", "-sNFEAHViAfchO6_MWFao" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1664546888288, "link": null, @@ -5641,7 +4701,9 @@ "6FERP11otZouFXGo3kss3", "-sNFEAHViAfchO6_MWFao" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1664546888288, "link": null, @@ -5664,8 +4726,8 @@ }, { "type": "rectangle", - "version": 2048, - "versionNonce": 459629247, + "version": 2092, + "versionNonce": 859930434, "isDeleted": false, "id": "wT6zbcxTh2394WWbu094O", "fillStyle": "cross-hatch", @@ -5674,8 +4736,8 @@ "roughness": 2, "opacity": 100, "angle": 0, - "x": 674.2422263047413, - "y": 154.136457137969, + "x": 674.196028669269, + "y": 130.21380563052475, "strokeColor": "#000000", "backgroundColor": "#ced4da", "width": 461, @@ -5684,7 +4746,7 @@ "groupIds": [ "iae2_WmdvEgM8v_reLLV8" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [ { "type": "text", @@ -5695,14 +4757,14 @@ "type": "arrow" } ], - "updated": 1664546888288, + "updated": 1682390388180, "link": null, "locked": false }, { "type": "text", - "version": 2349, - "versionNonce": 1109814449, + "version": 2394, + "versionNonce": 1685660190, "isDeleted": false, "id": "vrCHtx-q8_aRadMYJycWC", "fillStyle": "solid", @@ -5711,34 +4773,35 @@ "roughness": 2, "opacity": 100, "angle": 0, - "x": 705.7422263047413, - "y": 159.136457137969, + "x": 706.889388044269, + "y": 135.21380563052475, "strokeColor": "#000000", "backgroundColor": "transparent", - "width": 398, + "width": 395.61328125, "height": 74, "seed": 1623014289, "groupIds": [ "iae2_WmdvEgM8v_reLLV8" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888288, + "updated": 1682390388180, "link": null, "locked": false, "fontSize": 61.38050137320138, "fontFamily": 3, "text": "laf clients", - "baseline": 60, "textAlign": "center", "verticalAlign": "top", "containerId": "wT6zbcxTh2394WWbu094O", - "originalText": "laf clients" + "originalText": "laf clients", + "lineHeight": 1.2055945836947541, + "baseline": 59 }, { "type": "text", - "version": 1807, - "versionNonce": 726184671, + "version": 1852, + "versionNonce": 347608770, "isDeleted": false, "id": "z2pCxegSVApSkkYf7si7k", "fillStyle": "solid", @@ -5747,40 +4810,41 @@ "roughness": 0, "opacity": 100, "angle": 0, - "x": 786.3662863712673, - "y": 378.0463915604954, + "x": 786.320088735795, + "y": 354.12374005305116, "strokeColor": "#000", "backgroundColor": "transparent", - "width": 56, + "width": 54.39996337890625, "height": 25, "seed": 135864113, "groupIds": [ "5p1vbEZAXknROdLCm6RJJ", "iae2_WmdvEgM8v_reLLV8" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [ { "id": "I-Gae0eQW3HFmaEMCgWe6", "type": "arrow" } ], - "updated": 1664546888288, + "updated": 1682390388180, "link": null, "locked": false, "fontSize": 20, "fontFamily": 1, "text": "HTML", - "baseline": 18, "textAlign": "left", "verticalAlign": "top", "containerId": null, - "originalText": "HTML" + "originalText": "HTML", + "lineHeight": 1.25, + "baseline": 18 }, { "type": "rectangle", - "version": 3504, - "versionNonce": 284667537, + "version": 3548, + "versionNonce": 1892413058, "isDeleted": false, "id": "AQ8qIJz4KhYT6QQzz4K8A", "fillStyle": "solid", @@ -5789,8 +4853,8 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 768.8422140153214, - "y": 243.56907406355697, + "x": 768.7960163798491, + "y": 219.64642255611273, "strokeColor": "#000000", "backgroundColor": "#ff7353", "width": 87.85825103183927, @@ -5801,16 +4865,16 @@ "5p1vbEZAXknROdLCm6RJJ", "iae2_WmdvEgM8v_reLLV8" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888288, + "updated": 1682390388180, "link": null, "locked": false }, { "type": "rectangle", - "version": 3006, - "versionNonce": 1586298623, + "version": 3050, + "versionNonce": 1158787742, "isDeleted": false, "id": "-jN9gTEn3ms81qV7qCNsg", "fillStyle": "solid", @@ -5819,8 +4883,8 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 795.8540540678966, - "y": 258.05159727994817, + "x": 795.8078564324244, + "y": 234.12894577250393, "strokeColor": "#000000", "backgroundColor": "#fff", "width": 70.66341145833303, @@ -5831,16 +4895,16 @@ "5p1vbEZAXknROdLCm6RJJ", "iae2_WmdvEgM8v_reLLV8" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888288, + "updated": 1682390388180, "link": null, "locked": false }, { "type": "text", - "version": 2206, - "versionNonce": 1543877745, + "version": 2251, + "versionNonce": 336514626, "isDeleted": false, "id": "wrjV5tISBRetKQmKbKTdA", "fillStyle": "solid", @@ -5849,11 +4913,11 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 804.7549963308168, - "y": 262.85445434468454, + "x": 804.7087986953445, + "y": 238.9318028372403, "strokeColor": "#000000", "backgroundColor": "#c5bcdd", - "width": 56, + "width": 54.39996337890625, "height": 25, "seed": 1487012991, "groupIds": [ @@ -5861,24 +4925,25 @@ "5p1vbEZAXknROdLCm6RJJ", "iae2_WmdvEgM8v_reLLV8" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888288, + "updated": 1682390388180, "link": null, "locked": false, "fontSize": 20, "fontFamily": 1, "text": "HTML", - "baseline": 18, "textAlign": "left", "verticalAlign": "top", "containerId": null, - "originalText": "HTML" + "originalText": "HTML", + "lineHeight": 1.25, + "baseline": 18 }, { "type": "text", - "version": 1836, - "versionNonce": 397592351, + "version": 1881, + "versionNonce": 331198174, "isDeleted": false, "id": "Wy7ujfL8of09I5Np59siL", "fillStyle": "solid", @@ -5887,11 +4952,11 @@ "roughness": 0, "opacity": 100, "angle": 0, - "x": 785.1592551212673, - "y": 314.67157466596416, + "x": 785.113057485795, + "y": 290.7489231585199, "strokeColor": "#000", "backgroundColor": "transparent", - "width": 59, + "width": 57.239990234375, "height": 46, "seed": 2110637809, "groupIds": [ @@ -5899,19 +4964,20 @@ "5p1vbEZAXknROdLCm6RJJ", "iae2_WmdvEgM8v_reLLV8" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888288, + "updated": 1682390388180, "link": null, "locked": false, "fontSize": 36, "fontFamily": 1, "text": "", - "baseline": 32, "textAlign": "left", "verticalAlign": "top", "containerId": null, - "originalText": "" + "originalText": "", + "lineHeight": 1.2777777777777777, + "baseline": 32 }, { "type": "rectangle", @@ -5936,13 +5002,8 @@ "52h6ZYPpEkAfthNpb7iMr", "E5rLiJESzfEqlGFa-rvfQ" ], - "strokeSharpness": "sharp", - "boundElements": [ - { - "type": "arrow", - "id": "9RT6Uw_WUaOTrDl9MY1Gv" - } - ], + "roundness": null, + "boundElements": [], "updated": 1664546888288, "link": null, "locked": false @@ -5970,7 +5031,7 @@ "52h6ZYPpEkAfthNpb7iMr", "E5rLiJESzfEqlGFa-rvfQ" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], "updated": 1664546888288, "link": null, @@ -5999,7 +5060,7 @@ "52h6ZYPpEkAfthNpb7iMr", "E5rLiJESzfEqlGFa-rvfQ" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], "updated": 1664546888288, "link": null, @@ -6043,7 +5104,7 @@ "52h6ZYPpEkAfthNpb7iMr", "E5rLiJESzfEqlGFa-rvfQ" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], "updated": 1664546888288, "link": null, @@ -6087,7 +5148,9 @@ "52h6ZYPpEkAfthNpb7iMr", "E5rLiJESzfEqlGFa-rvfQ" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1664546888288, "link": null, @@ -6135,7 +5198,9 @@ "52h6ZYPpEkAfthNpb7iMr", "E5rLiJESzfEqlGFa-rvfQ" ], - "strokeSharpness": "round", + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1664546888288, "link": null, @@ -6183,7 +5248,7 @@ "52h6ZYPpEkAfthNpb7iMr", "E5rLiJESzfEqlGFa-rvfQ" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], "updated": 1664546888288, "link": null, @@ -6191,8 +5256,8 @@ }, { "type": "text", - "version": 873, - "versionNonce": 1693630367, + "version": 874, + "versionNonce": 750884546, "isDeleted": false, "id": "jd9JkvH_iBjZmEyY8adrE", "fillStyle": "solid", @@ -6205,94 +5270,26 @@ "y": 276.5847975441686, "strokeColor": "#fff", "backgroundColor": "#40c057", - "width": 65, + "width": 63.28125, "height": 44, "seed": 1090563729, "groupIds": [ "E5rLiJESzfEqlGFa-rvfQ" ], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888288, + "updated": 1682390258431, "link": null, "locked": false, "fontSize": 36, "fontFamily": 3, "text": "cli", - "baseline": 35, "textAlign": "left", "verticalAlign": "top", "containerId": null, - "originalText": "cli" - }, - { - "type": "diamond", - "version": 1132, - "versionNonce": 1113786321, - "isDeleted": false, - "id": "pwFa_JsY4UC6EwKz1z0bE", - "fillStyle": "solid", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 2, - "opacity": 100, - "angle": 0, - "x": 863.1527750386329, - "y": -406.58903058083035, - "strokeColor": "#000000", - "backgroundColor": "#edf2f9", - "width": 132, - "height": 84, - "seed": 1474917169, - "groupIds": [], - "strokeSharpness": "sharp", - "boundElements": [ - { - "type": "text", - "id": "3opB-I7IvrQxx0SlamakC" - }, - { - "id": "kqj5BjInSDGoAuV2NWQC1", - "type": "arrow" - } - ], - "updated": 1664546888289, - "link": null, - "locked": false - }, - { - "type": "text", - "version": 1084, - "versionNonce": 1326373311, - "isDeleted": false, - "id": "3opB-I7IvrQxx0SlamakC", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 2, - "opacity": 100, - "angle": 0, - "x": 896.6527750386329, - "y": -386.58903058083035, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 65, - "height": 44, - "seed": 1304687551, - "groupIds": [], - "strokeSharpness": "sharp", - "boundElements": [], - "updated": 1664546888289, - "link": null, - "locked": false, - "fontSize": 36, - "fontFamily": 3, - "text": "crd", - "baseline": 35, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": "pwFa_JsY4UC6EwKz1z0bE", - "originalText": "crd" + "originalText": "cli", + "lineHeight": 1.2222222222222223, + "baseline": 35 }, { "type": "rectangle", @@ -6314,7 +5311,7 @@ "height": 54, "seed": 562864735, "groupIds": [], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [ { "type": "text", @@ -6331,8 +5328,8 @@ }, { "type": "text", - "version": 758, - "versionNonce": 1911424913, + "version": 759, + "versionNonce": 1049637534, "isDeleted": false, "id": "YI9lnxxXBeeVSOaQWwyhh", "fillStyle": "solid", @@ -6341,32 +5338,33 @@ "roughness": 2, "opacity": 100, "angle": 0, - "x": 782.5213576279182, + "x": 783.5057326279182, "y": -187.4774234379728, "strokeColor": "#000000", "backgroundColor": "#edf2f9", - "width": 234, + "width": 232.03125, "height": 44, "seed": 628287743, "groupIds": [], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888289, + "updated": 1682390258442, "link": null, "locked": false, "fontSize": 36, "fontFamily": 3, "text": "tenant auth", - "baseline": 35, "textAlign": "center", "verticalAlign": "middle", "containerId": "bDbiIjoiWoEF_-QIL1pl6", - "originalText": "tenant auth" + "originalText": "tenant auth", + "lineHeight": 1.2222222222222223, + "baseline": 35 }, { "type": "rectangle", - "version": 1157, - "versionNonce": 1904522751, + "version": 1176, + "versionNonce": 861191042, "isDeleted": false, "id": "94pL6u1LZ9bj5i7fV9faW", "fillStyle": "solid", @@ -6375,29 +5373,29 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 146.63491789577586, - "y": 83.46286674059866, + "x": 147.6204433912486, + "y": 75.70166398126094, "strokeColor": "#000000", "backgroundColor": "#edf2f9", "width": 70, "height": 34, "seed": 1660914559, "groupIds": [], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [ { "type": "text", "id": "z4XZS_B7IC5Hcbq32LNOh" } ], - "updated": 1664546888289, + "updated": 1682390376840, "link": null, "locked": false }, { "type": "rectangle", - "version": 1092, - "versionNonce": 1590226289, + "version": 1142, + "versionNonce": 304143326, "isDeleted": false, "id": "NII3JqUhpr9hNElI5QR0U", "fillStyle": "solid", @@ -6406,33 +5404,29 @@ "roughness": 2, "opacity": 100, "angle": 0, - "x": 848.1876522707755, - "y": 114.54378191916999, + "x": 852.1759518881388, + "y": 95.34101289707564, "strokeColor": "#000000", "backgroundColor": "#edf2f9", "width": 97, "height": 44, "seed": 1676330079, "groupIds": [], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [ { "id": "vvQcKQSjOBH3b9Jl-JzdT", "type": "text" - }, - { - "type": "text", - "id": "vvQcKQSjOBH3b9Jl-JzdT" } ], - "updated": 1664546888289, + "updated": 1682390393704, "link": null, "locked": false }, { "type": "text", - "version": 1136, - "versionNonce": 10198559, + "version": 1156, + "versionNonce": 1711814046, "isDeleted": false, "id": "z4XZS_B7IC5Hcbq32LNOh", "fillStyle": "solid", @@ -6441,32 +5435,33 @@ "roughness": 2, "opacity": 100, "angle": 0, - "x": 157.13491789577586, - "y": 88.46286674059866, + "x": 159.1829433912486, + "y": 80.70166398126094, "strokeColor": "#000000", "backgroundColor": "#edf2f9", - "width": 49, + "width": 46.875, "height": 24, "seed": 1084474143, "groupIds": [], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888289, + "updated": 1682390376840, "link": null, "locked": false, "fontSize": 20, "fontFamily": 3, "text": "http", - "baseline": 20, "textAlign": "center", "verticalAlign": "middle", "containerId": "94pL6u1LZ9bj5i7fV9faW", - "originalText": "http" + "originalText": "http", + "lineHeight": 1.2, + "baseline": 19 }, { "type": "text", - "version": 1074, - "versionNonce": 520886097, + "version": 1125, + "versionNonce": 1104271618, "isDeleted": false, "id": "vvQcKQSjOBH3b9Jl-JzdT", "fillStyle": "solid", @@ -6475,32 +5470,33 @@ "roughness": 2, "opacity": 100, "angle": 0, - "x": 862.6876522707755, - "y": 119.54378191916999, + "x": 867.8634518881388, + "y": 100.34101289707564, "strokeColor": "#000000", "backgroundColor": "#edf2f9", - "width": 68, + "width": 65.625, "height": 34, "seed": 945386769, "groupIds": [], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888289, + "updated": 1682390393704, "link": null, "locked": false, "fontSize": 28, "fontFamily": 3, "text": "http", - "baseline": 27, "textAlign": "center", "verticalAlign": "middle", "containerId": "NII3JqUhpr9hNElI5QR0U", - "originalText": "http" + "originalText": "http", + "lineHeight": 1.2142857142857142, + "baseline": 27 }, { "type": "rectangle", - "version": 2225, - "versionNonce": 386018545, + "version": 2245, + "versionNonce": 330922654, "isDeleted": false, "id": "3b_CUyIro58tYnO8BXHy7", "fillStyle": "solid", @@ -6509,33 +5505,29 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 220.68402503863263, - "y": 44.75778861559877, + "x": 220.86881558052164, + "y": 36.580807137010765, "strokeColor": "#000000", "backgroundColor": "#edf2f9", "width": 102, "height": 30, "seed": 540872767, "groupIds": [], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [ { "id": "Y_pMhovsOA0XaxQv0ZJjF", "type": "text" - }, - { - "type": "text", - "id": "Y_pMhovsOA0XaxQv0ZJjF" } ], - "updated": 1664546888289, + "updated": 1682390378527, "link": null, "locked": false }, { "type": "text", - "version": 2132, - "versionNonce": 1933055647, + "version": 2153, + "versionNonce": 984057410, "isDeleted": false, "id": "Y_pMhovsOA0XaxQv0ZJjF", "fillStyle": "solid", @@ -6544,161 +5536,28 @@ "roughness": 2, "opacity": 100, "angle": 0, - "x": 228.68402503863263, - "y": 49.75778861559877, + "x": 229.68131558052164, + "y": 41.580807137010765, "strokeColor": "#000000", "backgroundColor": "#edf2f9", - "width": 86, + "width": 84.375, "height": 20, "seed": 1817996497, "groupIds": [], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1664546888289, + "updated": 1682390378527, "link": null, "locked": false, "fontSize": 16, "fontFamily": 3, "text": "websocket", - "baseline": 16, "textAlign": "center", "verticalAlign": "middle", "containerId": "3b_CUyIro58tYnO8BXHy7", - "originalText": "websocket" - }, - { - "id": "H08zFlUaSxFLTRVqx9-uH", - "type": "rectangle", - "x": 285.5241090621514, - "y": -592.4904520428331, - "width": 157, - "height": 40, - "angle": 0, - "strokeColor": "#000000", - "backgroundColor": "#228be6", - "fillStyle": "solid", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "sharp", - "seed": 2004336599, - "version": 1478, - "versionNonce": 929812569, - "isDeleted": false, - "boundElements": [ - { - "type": "text", - "id": "Uxzlb_yD-RgqglTRXUQ-c" - } - ], - "updated": 1668084862896, - "link": null, - "locked": false - }, - { - "id": "Uxzlb_yD-RgqglTRXUQ-c", - "type": "text", - "x": 322.0241090621514, - "y": -584.4904520428331, - "width": 84, - "height": 24, - "angle": 0, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "sharp", - "seed": 1354007993, - "version": 1472, - "versionNonce": 574274999, - "isDeleted": false, - "boundElements": null, - "updated": 1668084862896, - "link": null, - "locked": false, - "text": "k8s crd", - "fontSize": 20, - "fontFamily": 3, - "textAlign": "center", - "verticalAlign": "middle", - "baseline": 20, - "containerId": "H08zFlUaSxFLTRVqx9-uH", - "originalText": "k8s crd" - }, - { - "type": "rectangle", - "version": 1098, - "versionNonce": 1427361591, - "isDeleted": false, - "id": "G2Oa1ANDGy2b0RgrAep_I", - "fillStyle": "solid", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 653.0202028121514, - "y": -590.5021707928331, - "strokeColor": "#000000", - "backgroundColor": "#228be6", - "width": 182, - "height": 38, - "seed": 106884025, - "groupIds": [], - "strokeSharpness": "sharp", - "boundElements": [ - { - "id": "NFRVm8Y3PjHUQJuwyC7EP", - "type": "text" - }, - { - "type": "text", - "id": "NFRVm8Y3PjHUQJuwyC7EP" - } - ], - "updated": 1668084858874, - "link": null, - "locked": false - }, - { - "type": "text", - "version": 1110, - "versionNonce": 305996729, - "isDeleted": false, - "id": "NFRVm8Y3PjHUQJuwyC7EP", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 661.0202028121514, - "y": -583.5021707928331, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 166, - "height": 24, - "seed": 1143048279, - "groupIds": [], - "strokeSharpness": "sharp", - "boundElements": [], - "updated": 1668084858874, - "link": null, - "locked": false, - "fontSize": 20, - "fontFamily": 3, - "text": "k8s-api-server", - "baseline": 20, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": "G2Oa1ANDGy2b0RgrAep_I", - "originalText": "k8s-api-server" + "originalText": "websocket", + "lineHeight": 1.25, + "baseline": 16 }, { "type": "rectangle", @@ -6720,15 +5579,11 @@ "height": 37, "seed": 279999705, "groupIds": [], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [ { "id": "Kj05CpUJANSwy-OtOW12G", "type": "text" - }, - { - "type": "text", - "id": "Kj05CpUJANSwy-OtOW12G" } ], "updated": 1668084744609, @@ -6737,8 +5592,8 @@ }, { "type": "text", - "version": 912, - "versionNonce": 310101113, + "version": 913, + "versionNonce": 481857374, "isDeleted": false, "id": "Kj05CpUJANSwy-OtOW12G", "fillStyle": "hachure", @@ -6747,27 +5602,79 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 147.7350465621514, + "x": 148.6412965621514, "y": -347.3224832928331, "strokeColor": "#000000", "backgroundColor": "transparent", - "width": 119, + "width": 117.1875, "height": 24, "seed": 1751163191, "groupIds": [], - "strokeSharpness": "sharp", + "roundness": null, "boundElements": [], - "updated": 1668084744609, + "updated": 1682390258444, "link": null, "locked": false, "fontSize": 20, "fontFamily": 3, "text": "kubernetes", - "baseline": 20, "textAlign": "center", "verticalAlign": "middle", "containerId": "6fsRLl1rBFRMPfralCRWJ", - "originalText": "kubernetes" + "originalText": "kubernetes", + "lineHeight": 1.2, + "baseline": 19 + }, + { + "id": "IXGLaKwvNWM7iA7SwPJbz", + "type": "arrow", + "x": 615.9595016138026, + "y": -266.22505587984483, + "width": 138.95476383334267, + "height": 3.6342380517520496, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "roundness": { + "type": 2 + }, + "seed": 209595230, + "version": 67, + "versionNonce": 1118058818, + "isDeleted": false, + "boundElements": null, + "updated": 1682390356102, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -138.95476383334267, + 3.6342380517520496 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "9UnJOgDqkaJktInMVo47r", + "focus": 0.1685321674877726, + "gap": 12.958147183352423 + }, + "endBinding": { + "elementId": "sFE8hJbB0-zakUa7U66ZI", + "focus": 0.11307072739803732, + "gap": 8.388339189344038 + }, + "startArrowhead": null, + "endArrowhead": "arrow" } ], "appState": { diff --git a/docs/diagrams/laf-arch-simple.png b/docs/diagrams/laf-arch-simple.png deleted file mode 100644 index 1cc97d3c15..0000000000 Binary files a/docs/diagrams/laf-arch-simple.png and /dev/null differ diff --git a/e2e/f1-payload.json b/e2e/f1-payload.json index 7ec4969581..c4fccea0b5 100644 --- a/e2e/f1-payload.json +++ b/e2e/f1-payload.json @@ -1,7 +1,6 @@ { "name": "f1", "description": "laf e2e function(hello-laf)", - "websocket": false, "methods": [ "GET", "POST" diff --git a/e2e/f2-origin-payload.json b/e2e/f2-origin-payload.json index 9f40efb5cb..c3d8d7b915 100644 --- a/e2e/f2-origin-payload.json +++ b/e2e/f2-origin-payload.json @@ -1,7 +1,6 @@ { "name": "f2", "description": "laf e2e function(db example)", - "websocket": false, "methods": [ "GET", "POST" diff --git a/runtimes/nodejs/src/constants.ts b/runtimes/nodejs/src/constants.ts index daf38680f3..a773c49958 100644 --- a/runtimes/nodejs/src/constants.ts +++ b/runtimes/nodejs/src/constants.ts @@ -4,7 +4,7 @@ export const CLOUD_FUNCTION_COLLECTION = '__functions__' export const POLICY_COLLECTION = '__policies__' export const FUNCTION_LOG_COLLECTION = '__function_logs__' -export const CONFIG_COLLECTION = '__config__' +export const CONFIG_COLLECTION = '__conf__' export const WEBSOCKET_FUNCTION_NAME = '__websocket__' export const INTERCEPTOR_FUNCTION_NAME = '__interceptor__' diff --git a/runtimes/nodejs/src/db.ts b/runtimes/nodejs/src/db.ts index 989d6ffe27..1899917dca 100644 --- a/runtimes/nodejs/src/db.ts +++ b/runtimes/nodejs/src/db.ts @@ -9,7 +9,6 @@ import { MongoAccessor } from 'database-proxy' import Config from './config' import { createLogger, logger } from './support/logger' import * as mongodb_uri from 'mongodb-uri' -import { FunctionCache } from './support/function-engine/cache' /** * Database Management @@ -44,7 +43,6 @@ export class DatabaseAgent { .init() .then(async () => { logger.info('db connected') - FunctionCache.initialize() }) .catch((error) => { logger.error(error) diff --git a/runtimes/nodejs/src/index.ts b/runtimes/nodejs/src/index.ts index 12bb5a539a..75fecb2000 100644 --- a/runtimes/nodejs/src/index.ts +++ b/runtimes/nodejs/src/index.ts @@ -20,9 +20,16 @@ import xmlparser from 'express-xml-bodyparser' // init static method of class import './support/function-log' import './support/cloud-sdk' +import { FunctionCache } from './support/function-engine/cache' +import { DatabaseChangeStream } from './support/db-change-stream' const app = express() +DatabaseAgent.accessor.ready.then(() => { + FunctionCache.initialize() + DatabaseChangeStream.initialize() +}) + if (process.env.NODE_ENV === 'development') { app.use(cors()) } diff --git a/runtimes/nodejs/src/support/cloud-sdk.ts b/runtimes/nodejs/src/support/cloud-sdk.ts index 7a378817e9..78afd98f77 100644 --- a/runtimes/nodejs/src/support/cloud-sdk.ts +++ b/runtimes/nodejs/src/support/cloud-sdk.ts @@ -26,7 +26,11 @@ function createCloudSdk() { }, sockets: WebSocketAgent.clients, appid: Config.APP_ID, - env: process.env, + get env() { + return { + ...process.env, + } + }, } /** diff --git a/runtimes/nodejs/src/support/db-change-stream.ts b/runtimes/nodejs/src/support/db-change-stream.ts new file mode 100644 index 0000000000..ed12576bdb --- /dev/null +++ b/runtimes/nodejs/src/support/db-change-stream.ts @@ -0,0 +1,41 @@ +import { CONFIG_COLLECTION } from '../constants' +import { DatabaseAgent } from '../db' + +import { logger } from './logger' + +export class DatabaseChangeStream { + static async initialize() { + this.watchConf() + } + + /** + * stream the change of cloud function + * @param + * @returns + */ + static async watchConf() { + logger.info('Listening for changes in conf collection...') + this.updateEnvironments() + + const stream = DatabaseAgent.db.collection(CONFIG_COLLECTION).watch() + + stream.on('change', async (_change) => { + this.updateEnvironments() + }) + } + + private static async updateEnvironments() { + const conf = await DatabaseAgent.db + .collection(CONFIG_COLLECTION) + .findOne({}) + + if (!conf) { + return + } + + const environments = conf.environments || [] + for (const env of environments) { + process.env[env.name] = env.value + } + } +} diff --git a/runtimes/nodejs/src/support/function-engine/vm.ts b/runtimes/nodejs/src/support/function-engine/vm.ts index 3fd08cc8cd..e59ec8f986 100644 --- a/runtimes/nodejs/src/support/function-engine/vm.ts +++ b/runtimes/nodejs/src/support/function-engine/vm.ts @@ -54,7 +54,9 @@ export class FunctionVm { clearInterval: clearInterval, setTimeout: setTimeout, clearTimeout: clearTimeout, - process: { env: process.env }, + process: { + env: { ...process.env }, + }, URL: URL, fetch: globalThis.fetch, global: null, diff --git a/server/src/application/configuration.service.ts b/server/src/application/configuration.service.ts index b96789b93f..cc7974b3de 100644 --- a/server/src/application/configuration.service.ts +++ b/server/src/application/configuration.service.ts @@ -1,25 +1,37 @@ import { Injectable, Logger } from '@nestjs/common' +import { ApplicationConfiguration } from '@prisma/client' +import { CN_PUBLISHED_CONF } from 'src/constants' +import { DatabaseService } from 'src/database/database.service' import { PrismaService } from 'src/prisma/prisma.service' @Injectable() export class ApplicationConfigurationService { private readonly logger = new Logger(ApplicationConfigurationService.name) - constructor(private readonly prisma: PrismaService) {} + constructor( + private readonly prisma: PrismaService, + private readonly databaseService: DatabaseService, + ) {} async count(appid: string) { - return this.prisma.applicationConfiguration.count({ - where: { - appid, - }, - }) + return this.prisma.applicationConfiguration.count({ where: { appid } }) } async remove(appid: string) { - return this.prisma.applicationConfiguration.delete({ - where: { - appid, - }, - }) + return this.prisma.applicationConfiguration.delete({ where: { appid } }) + } + + async publish(conf: ApplicationConfiguration) { + const { db, client } = await this.databaseService.findAndConnect(conf.appid) + const session = client.startSession() + try { + await session.withTransaction(async () => { + const coll = db.collection(CN_PUBLISHED_CONF) + await coll.deleteOne({ appid: conf.appid }, { session }) + await coll.insertOne(conf, { session }) + }) + } finally { + await client.close() + } } } diff --git a/server/src/application/environment.service.ts b/server/src/application/environment.service.ts index c2d54b8e33..d837e0cf21 100644 --- a/server/src/application/environment.service.ts +++ b/server/src/application/environment.service.ts @@ -1,12 +1,16 @@ import { Injectable, Logger } from '@nestjs/common' import { PrismaService } from 'src/prisma/prisma.service' import { CreateEnvironmentDto } from './dto/create-env.dto' +import { ApplicationConfigurationService } from './configuration.service' @Injectable() export class EnvironmentVariableService { private readonly logger = new Logger(EnvironmentVariableService.name) - constructor(private readonly prisma: PrismaService) {} + constructor( + private readonly prisma: PrismaService, + private readonly confService: ApplicationConfigurationService, + ) {} async updateAll(appid: string, dto: CreateEnvironmentDto[]) { const res = await this.prisma.applicationConfiguration.update({ @@ -14,6 +18,7 @@ export class EnvironmentVariableService { data: { environments: { set: dto } }, }) + await this.confService.publish(res) return res.environments } @@ -37,6 +42,7 @@ export class EnvironmentVariableService { data: { environments: { set: origin } }, }) + await this.confService.publish(res) return res.environments } @@ -54,6 +60,7 @@ export class EnvironmentVariableService { data: { environments: { deleteMany: { where: { name } } } }, }) + await this.confService.publish(res) return res } } diff --git a/server/src/constants.ts b/server/src/constants.ts index ddde3de419..6636a2b1e2 100644 --- a/server/src/constants.ts +++ b/server/src/constants.ts @@ -147,6 +147,7 @@ export const HTTP_METHODS = ['HEAD', 'GET', 'POST', 'PUT', 'DELETE', 'PATCH'] export const CN_PUBLISHED_FUNCTIONS = '__functions__' export const CN_PUBLISHED_POLICIES = '__policies__' export const CN_FUNCTION_LOGS = '__function_logs__' +export const CN_PUBLISHED_CONF = '__conf__' export const X_LAF_TRIGGER_TOKEN_KEY = 'x-laf-trigger-token' export const X_LAF_DEVELOP_TOKEN_KEY = 'x-laf-develop-token'