diff --git a/README.md b/README.md index 0003858e..ddc1aebd 100644 --- a/README.md +++ b/README.md @@ -1,41 +1,57 @@ `drassi` ======= -The drassi `/δράση/` (Greek for `action`) aim to bring [GitHub Actions](https://github.com/features/actions) to +Drassi `/δράση/` (Greek for `action`) aims to bring [GitHub Actions](https://github.com/features/actions) to everyone and everywhere. -## 1. Use-cases +> This project is created by human, and for human. +> Using GenAI tools is allowed but MUST be under human control. -### 1.1 Alternative to [`actions/runner`](https://github.com/actions/runner) for self-hosted runners +## Target users -`actions/runner` executes all jobs within the host environment, making it unsuitable for projects requiring strong -isolation and security. Additionally, `actions/runner` can only process one job at a time, which means implementing -autoscaling with self-hosted runners requires additional tools like `actions-runner-controller` (ARC). +### 1. GitHub users who want faster jobs -Drassi's `gha-runner` offers a drop-in replacement for `actions/runner`, with enhanced security and isolation. It -executes each job within a sandboxed environment, providing flexibility by supporting various sandboxing implementations -such as Docker containers, Incus, or microVMs. These isolated environments enables multiple jobs can be able to run in -parallel, optimizing both resource utilization and time efficiency. +GitHub-hosted Actions runners +are [slow](https://medium.com/@akhilesh-mishra/your-github-actions-runners-are-slow-and-you-are-paying-too-much-for-them-5406577314fe). +Self-hosted runners can be faster, but each runner is limited to **one job at a time**. -With Drassi's `gha-runner`, you gain improved job isolation, security, and parallel job execution, significantly -enhancing your CI/CD pipeline's performance and scalability. +### 2. Self-hosted runner users who need dynamic scaling -### 1.2 Run your GitHub Actions locally +To run multiple jobs in parallel, users often need solutions +like [Actions Runner Controller (ARC)](https://github.com/actions/actions-runner-controller). +Many jobs also need Docker access, for example: -Rather than having to commit/push every time you want to test out the changes you are making to your -`.github/workflows/` files (or for any changes to embedded GitHub actions), you can use `drassi` CLI to run the actions -locally. +* [building images in CI jobs](https://github.com/marketplace/actions/build-and-push-docker-images) +* [using Docker container actions](https://docs.github.com/en/actions/tutorials/use-containerized-services/create-a-docker-container-action) +* [running jobs inside containers](https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idcontainer) -### 1.3 Bring GitHub Actions to other git-hosting like `gitea`, `gitlab`,... +In these use cases, you usually need Docker-in-Docker (`--privileged`) or a mounted Docker socket. +Both options raise **security concerns** when a runner is shared across multiple teams or tenants. -If you’re using a self-hosted Git server, such as Gitea or GitLab, but prefer the flexibility, power, and extensive -ecosystem of GitHub Actions, Drassi provides solutions like `gitea-runner` and `gitlab-runner` to integrate seamlessly -with your Git server. Drassi is also a customizable framework, allowing you to tailor or bring your own runner to suit -your specific needs. +### 3. GitLab, Gitea, and other users who want GitHub Actions -## 2. Architecture +Many teams want the GitHub Actions model because it provides: + +* composable steps +* multiple workflows +* reusable jobs +* a large actions ecosystem + +However, `actions/runner` is designed to work with GitHub servers. `act`-based runners can support GitHub-like servers, +such as Gitea, but they are not fully compatible with the GitHub runner and miss features like problem matchers and +issue reporting. + +### 4. Users who want to run jobs locally + +Running jobs locally reduces the feedback loop before pushing to a Git server or debugging CI failures. + +## Architecture ![Arch](docs/architecture.svg) +Drassi supports multiple runners, including GitHub, Gitea, and GitLab, from a shared core. +Each job runs in a sandboxed environment, with multiple sandboxers available to match different isolation, security, and +performance needs. + ## 3. Usage ### 3.1 `drassi` CLI diff --git a/docs/architecture.excalidraw b/docs/architecture.excalidraw index 8a331094..b43206a7 100644 --- a/docs/architecture.excalidraw +++ b/docs/architecture.excalidraw @@ -22,13 +22,13 @@ "mx-5Q64x-IoiQZwWxykVa" ], "frameId": null, - "index": "aF", + "index": "aX2", "roundness": { "type": 3 }, "seed": 1801127985, - "version": 446, - "versionNonce": 1335344386, + "version": 447, + "versionNonce": 1153303954, "isDeleted": false, "boundElements": [ { @@ -68,7 +68,7 @@ "type": "arrow" } ], - "updated": 1733369097574, + "updated": 1782292022771, "link": null, "locked": false }, @@ -91,14 +91,14 @@ "mx-5Q64x-IoiQZwWxykVa" ], "frameId": null, - "index": "aG", + "index": "aX4", "roundness": null, "seed": 473319889, - "version": 314, - "versionNonce": 189895298, + "version": 315, + "versionNonce": 1916556430, "isDeleted": false, "boundElements": [], - "updated": 1733368397254, + "updated": 1782292022771, "link": null, "locked": false, "text": " Drassi core", @@ -113,8 +113,8 @@ }, { "type": "ellipse", - "version": 450, - "versionNonce": 1787488834, + "version": 451, + "versionNonce": 499876690, "isDeleted": false, "id": "AQJhnyBiu7C0b_cKRH3qa", "fillStyle": "cross-hatch", @@ -134,19 +134,18 @@ "tsJCGdHQgWcZcdIkMucAQ", "mx-5Q64x-IoiQZwWxykVa" ], - "strokeSharpness": "sharp", "boundElements": [], - "updated": 1733367849675, + "updated": 1782292022771, "link": null, - "index": "aH", + "index": "aX8", "frameId": null, "roundness": null, "locked": false }, { "type": "ellipse", - "version": 521, - "versionNonce": 128013022, + "version": 522, + "versionNonce": 421434062, "isDeleted": false, "id": "UpjKv5ZgyxTFONCpZ4HE8", "fillStyle": "solid", @@ -166,19 +165,18 @@ "tsJCGdHQgWcZcdIkMucAQ", "mx-5Q64x-IoiQZwWxykVa" ], - "strokeSharpness": "sharp", "boundElements": [], - "updated": 1733367849675, + "updated": 1782292022771, "link": null, - "index": "aI", + "index": "aXC", "frameId": null, "roundness": null, "locked": false }, { "type": "ellipse", - "version": 403, - "versionNonce": 1006129666, + "version": 404, + "versionNonce": 2078492946, "isDeleted": false, "id": "cjfKIVfp-kLoQMUFu4cSA", "fillStyle": "cross-hatch", @@ -198,19 +196,18 @@ "tsJCGdHQgWcZcdIkMucAQ", "mx-5Q64x-IoiQZwWxykVa" ], - "strokeSharpness": "sharp", "boundElements": [], - "updated": 1733367849675, + "updated": 1782292022771, "link": null, - "index": "aJ", + "index": "aXG", "frameId": null, "roundness": null, "locked": false }, { "type": "ellipse", - "version": 439, - "versionNonce": 1542407966, + "version": 440, + "versionNonce": 496961806, "isDeleted": false, "id": "bCt2dOWFPO3BMJPDn2rDD", "fillStyle": "solid", @@ -230,19 +227,18 @@ "tsJCGdHQgWcZcdIkMucAQ", "mx-5Q64x-IoiQZwWxykVa" ], - "strokeSharpness": "sharp", "boundElements": [], - "updated": 1733367849675, + "updated": 1782292022771, "link": null, - "index": "aK", + "index": "aXI", "frameId": null, "roundness": null, "locked": false }, { "type": "ellipse", - "version": 441, - "versionNonce": 316850626, + "version": 442, + "versionNonce": 1450989266, "isDeleted": false, "id": "6FVHC5qdlAk7R_kZQuYbH", "fillStyle": "cross-hatch", @@ -262,19 +258,18 @@ "tsJCGdHQgWcZcdIkMucAQ", "mx-5Q64x-IoiQZwWxykVa" ], - "strokeSharpness": "sharp", "boundElements": [], - "updated": 1733367849675, + "updated": 1782292022771, "link": null, - "index": "aL", + "index": "aXK", "frameId": null, "roundness": null, "locked": false }, { "type": "ellipse", - "version": 471, - "versionNonce": 318026590, + "version": 472, + "versionNonce": 523679566, "isDeleted": false, "id": "0wI1fDtpKvdD8Xtem_lXa", "fillStyle": "solid", @@ -294,19 +289,18 @@ "tsJCGdHQgWcZcdIkMucAQ", "mx-5Q64x-IoiQZwWxykVa" ], - "strokeSharpness": "sharp", "boundElements": [], - "updated": 1733367849675, + "updated": 1782292022771, "link": null, - "index": "aM", + "index": "aXO", "frameId": null, "roundness": null, "locked": false }, { "type": "line", - "version": 711, - "versionNonce": 1248409986, + "version": 712, + "versionNonce": 506309778, "isDeleted": false, "id": "CyRmWX8QERwYNS1j-cmMc", "fillStyle": "cross-hatch", @@ -326,9 +320,8 @@ "tsJCGdHQgWcZcdIkMucAQ", "mx-5Q64x-IoiQZwWxykVa" ], - "strokeSharpness": "round", "boundElements": [], - "updated": 1733367849675, + "updated": 1782292022771, "link": null, "startBinding": null, "endBinding": null, @@ -353,17 +346,18 @@ 0 ] ], - "index": "aN", + "index": "aXS", "frameId": null, "roundness": { "type": 2 }, - "locked": false + "locked": false, + "polygon": false }, { "type": "line", - "version": 757, - "versionNonce": 1459787678, + "version": 758, + "versionNonce": 1715379598, "isDeleted": false, "id": "QsvQiUfd3cHZBRal_o5mU", "fillStyle": "solid", @@ -383,9 +377,8 @@ "tsJCGdHQgWcZcdIkMucAQ", "mx-5Q64x-IoiQZwWxykVa" ], - "strokeSharpness": "round", "boundElements": [], - "updated": 1733367849675, + "updated": 1782292022771, "link": null, "startBinding": null, "endBinding": null, @@ -410,17 +403,18 @@ 0 ] ], - "index": "aO", + "index": "aXV", "frameId": null, "roundness": { "type": 2 }, - "locked": false + "locked": false, + "polygon": false }, { "type": "line", - "version": 501, - "versionNonce": 30062914, + "version": 502, + "versionNonce": 414075474, "isDeleted": false, "id": "XKx0XlmpbEYNX_OchHcSb", "fillStyle": "solid", @@ -440,9 +434,8 @@ "tsJCGdHQgWcZcdIkMucAQ", "mx-5Q64x-IoiQZwWxykVa" ], - "strokeSharpness": "round", "boundElements": [], - "updated": 1733367849675, + "updated": 1782292022771, "link": null, "startBinding": null, "endBinding": null, @@ -463,17 +456,18 @@ 29.52634490770754 ] ], - "index": "aP", + "index": "aXX", "frameId": null, "roundness": { "type": 2 }, - "locked": false + "locked": false, + "polygon": false }, { "type": "line", - "version": 633, - "versionNonce": 1615459294, + "version": 634, + "versionNonce": 1206893518, "isDeleted": false, "id": "50qj9AwnSIbT4X6ymIc4K", "fillStyle": "cross-hatch", @@ -493,9 +487,8 @@ "tsJCGdHQgWcZcdIkMucAQ", "mx-5Q64x-IoiQZwWxykVa" ], - "strokeSharpness": "round", "boundElements": [], - "updated": 1733367849675, + "updated": 1782292022771, "link": null, "startBinding": null, "endBinding": null, @@ -524,17 +517,18 @@ 4.011930767938009 ] ], - "index": "aQ", + "index": "aXZ", "frameId": null, "roundness": { "type": 2 }, - "locked": false + "locked": false, + "polygon": false }, { "type": "ellipse", - "version": 403, - "versionNonce": 409354498, + "version": 404, + "versionNonce": 1020604434, "isDeleted": false, "id": "d8YFIxxfuV520e1HlpdCa", "fillStyle": "cross-hatch", @@ -554,19 +548,18 @@ "tsJCGdHQgWcZcdIkMucAQ", "mx-5Q64x-IoiQZwWxykVa" ], - "strokeSharpness": "sharp", "boundElements": [], - "updated": 1733367849675, + "updated": 1782292022771, "link": null, - "index": "aR", + "index": "aXd", "frameId": null, "roundness": null, "locked": false }, { "type": "ellipse", - "version": 440, - "versionNonce": 953927710, + "version": 441, + "versionNonce": 174264846, "isDeleted": false, "id": "1GSw4w2HuREfgVHvhwgBf", "fillStyle": "solid", @@ -586,19 +579,18 @@ "tsJCGdHQgWcZcdIkMucAQ", "mx-5Q64x-IoiQZwWxykVa" ], - "strokeSharpness": "sharp", "boundElements": [], - "updated": 1733367849675, + "updated": 1782292022771, "link": null, - "index": "aS", + "index": "aXh", "frameId": null, "roundness": null, "locked": false }, { "type": "ellipse", - "version": 449, - "versionNonce": 700108994, + "version": 450, + "versionNonce": 244932050, "isDeleted": false, "id": "y8jY03Vw4I8yqBE6Z86b_", "fillStyle": "cross-hatch", @@ -618,19 +610,18 @@ "tsJCGdHQgWcZcdIkMucAQ", "mx-5Q64x-IoiQZwWxykVa" ], - "strokeSharpness": "sharp", "boundElements": [], - "updated": 1733367849675, + "updated": 1782292022771, "link": null, - "index": "aT", + "index": "aXl", "frameId": null, "roundness": null, "locked": false }, { "type": "ellipse", - "version": 486, - "versionNonce": 11080798, + "version": 487, + "versionNonce": 1217503310, "isDeleted": false, "id": "I07-STAHdxCamkIP2Y2Yz", "fillStyle": "solid", @@ -650,19 +641,18 @@ "tsJCGdHQgWcZcdIkMucAQ", "mx-5Q64x-IoiQZwWxykVa" ], - "strokeSharpness": "sharp", "boundElements": [], - "updated": 1733367849675, + "updated": 1782292022771, "link": null, - "index": "aU", + "index": "aXn", "frameId": null, "roundness": null, "locked": false }, { "type": "line", - "version": 432, - "versionNonce": 157771906, + "version": 433, + "versionNonce": 2064765842, "isDeleted": false, "id": "Rr6fprH5t9dCE6TZFyCa6", "fillStyle": "solid", @@ -682,9 +672,8 @@ "tsJCGdHQgWcZcdIkMucAQ", "mx-5Q64x-IoiQZwWxykVa" ], - "strokeSharpness": "round", "boundElements": [], - "updated": 1733367849675, + "updated": 1782292022771, "link": null, "startBinding": null, "endBinding": null, @@ -701,17 +690,18 @@ 0.2468541974995875 ] ], - "index": "aV", + "index": "aXp", "frameId": null, "roundness": { "type": 2 }, - "locked": false + "locked": false, + "polygon": false }, { "type": "line", - "version": 445, - "versionNonce": 830658718, + "version": 446, + "versionNonce": 1448371854, "isDeleted": false, "id": "CZYS4Gf16Grj0b6spAg43", "fillStyle": "cross-hatch", @@ -731,9 +721,8 @@ "tsJCGdHQgWcZcdIkMucAQ", "mx-5Q64x-IoiQZwWxykVa" ], - "strokeSharpness": "sharp", "boundElements": [], - "updated": 1733367849675, + "updated": 1782292022771, "link": null, "lastCommittedPoint": null, "startArrowhead": null, @@ -936,17 +925,18 @@ 0 ] ], - "index": "aW", + "index": "aXt", "frameId": null, "roundness": null, "locked": false, "startBinding": null, - "endBinding": null + "endBinding": null, + "polygon": false }, { "type": "line", - "version": 481, - "versionNonce": 1059784770, + "version": 482, + "versionNonce": 880120146, "isDeleted": false, "id": "7GaKTymKQawEh6Q3pIYz4", "fillStyle": "cross-hatch", @@ -966,9 +956,8 @@ "tsJCGdHQgWcZcdIkMucAQ", "mx-5Q64x-IoiQZwWxykVa" ], - "strokeSharpness": "sharp", "boundElements": [], - "updated": 1733367849675, + "updated": 1782292022771, "link": null, "lastCommittedPoint": null, "startArrowhead": null, @@ -1171,12 +1160,13 @@ 0 ] ], - "index": "aX", + "index": "aXx", "frameId": null, "roundness": null, "locked": false, "startBinding": null, - "endBinding": null + "endBinding": null, + "polygon": false }, { "type": "line", @@ -1201,7 +1191,6 @@ "tsJCGdHQgWcZcdIkMucAQ", "mx-5Q64x-IoiQZwWxykVa" ], - "strokeSharpness": "round", "boundElements": [], "updated": 1733367849675, "link": null, @@ -1225,7 +1214,8 @@ "roundness": { "type": 2 }, - "locked": false + "locked": false, + "polygon": false }, { "type": "ellipse", @@ -1251,7 +1241,6 @@ "tsJCGdHQgWcZcdIkMucAQ", "mx-5Q64x-IoiQZwWxykVa" ], - "strokeSharpness": "sharp", "boundElements": [], "updated": 1733367849675, "link": null, @@ -1284,7 +1273,6 @@ "tsJCGdHQgWcZcdIkMucAQ", "mx-5Q64x-IoiQZwWxykVa" ], - "strokeSharpness": "sharp", "boundElements": [], "updated": 1733367849675, "link": null, @@ -1396,7 +1384,6 @@ "N5BP9VkFF41U1Ld-eWAAQ", "CEUiw9xtO5dPh07xJHlHo" ], - "strokeSharpness": "sharp", "boundElements": [], "updated": 1733368343473, "link": null, @@ -1790,7 +1777,8 @@ "roundness": null, "locked": false, "startBinding": null, - "endBinding": null + "endBinding": null, + "polygon": false }, { "type": "line", @@ -1815,7 +1803,6 @@ "N5BP9VkFF41U1Ld-eWAAQ", "CEUiw9xtO5dPh07xJHlHo" ], - "strokeSharpness": "sharp", "boundElements": [], "updated": 1733368343473, "link": null, @@ -1965,7 +1952,8 @@ "roundness": null, "locked": false, "startBinding": null, - "endBinding": null + "endBinding": null, + "polygon": false }, { "type": "rectangle", @@ -1990,7 +1978,6 @@ "N5BP9VkFF41U1Ld-eWAAQ", "CEUiw9xtO5dPh07xJHlHo" ], - "strokeSharpness": "round", "boundElements": [], "updated": 1733368343473, "link": null, @@ -2025,7 +2012,6 @@ "N5BP9VkFF41U1Ld-eWAAQ", "CEUiw9xtO5dPh07xJHlHo" ], - "strokeSharpness": "sharp", "boundElements": [], "updated": 1733368343473, "link": null, @@ -2059,7 +2045,8 @@ "roundness": null, "locked": false, "startBinding": null, - "endBinding": null + "endBinding": null, + "polygon": false }, { "type": "line", @@ -2085,7 +2072,6 @@ "N5BP9VkFF41U1Ld-eWAAQ", "CEUiw9xtO5dPh07xJHlHo" ], - "strokeSharpness": "sharp", "boundElements": [], "updated": 1733368343473, "link": null, @@ -2171,7 +2157,8 @@ "roundness": null, "locked": false, "startBinding": null, - "endBinding": null + "endBinding": null, + "polygon": false }, { "type": "line", @@ -2197,7 +2184,6 @@ "N5BP9VkFF41U1Ld-eWAAQ", "CEUiw9xtO5dPh07xJHlHo" ], - "strokeSharpness": "sharp", "boundElements": [], "updated": 1733368343473, "link": null, @@ -2231,7 +2217,8 @@ "roundness": null, "locked": false, "startBinding": null, - "endBinding": null + "endBinding": null, + "polygon": false }, { "type": "ellipse", @@ -2257,7 +2244,6 @@ "N5BP9VkFF41U1Ld-eWAAQ", "CEUiw9xtO5dPh07xJHlHo" ], - "strokeSharpness": "sharp", "boundElements": [], "updated": 1733368343473, "link": null, @@ -2290,7 +2276,6 @@ "N5BP9VkFF41U1Ld-eWAAQ", "CEUiw9xtO5dPh07xJHlHo" ], - "strokeSharpness": "sharp", "boundElements": [], "updated": 1733368343474, "link": null, @@ -2323,7 +2308,6 @@ "N5BP9VkFF41U1Ld-eWAAQ", "CEUiw9xtO5dPh07xJHlHo" ], - "strokeSharpness": "sharp", "boundElements": [], "updated": 1733368343474, "link": null, @@ -2437,7 +2421,6 @@ "PpU5JBbu3LHRSikKHOo-O", "URtXVuQKruCwOpqeU_9p9" ], - "strokeSharpness": "sharp", "boundElements": [], "updated": 1733369058350, "link": null, @@ -3015,7 +2998,8 @@ "roundness": null, "locked": false, "startBinding": null, - "endBinding": null + "endBinding": null, + "polygon": false }, { "type": "line", @@ -3041,7 +3025,6 @@ "PpU5JBbu3LHRSikKHOo-O", "URtXVuQKruCwOpqeU_9p9" ], - "strokeSharpness": "sharp", "boundElements": [], "updated": 1733369058350, "link": null, @@ -3079,7 +3062,8 @@ "roundness": null, "locked": false, "startBinding": null, - "endBinding": null + "endBinding": null, + "polygon": false }, { "type": "line", @@ -3105,7 +3089,6 @@ "PpU5JBbu3LHRSikKHOo-O", "URtXVuQKruCwOpqeU_9p9" ], - "strokeSharpness": "sharp", "boundElements": [], "updated": 1733369058350, "link": null, @@ -3143,7 +3126,8 @@ "roundness": null, "locked": false, "startBinding": null, - "endBinding": null + "endBinding": null, + "polygon": false }, { "type": "line", @@ -3169,7 +3153,6 @@ "PpU5JBbu3LHRSikKHOo-O", "URtXVuQKruCwOpqeU_9p9" ], - "strokeSharpness": "sharp", "boundElements": [], "updated": 1733369058350, "link": null, @@ -3207,7 +3190,8 @@ "roundness": null, "locked": false, "startBinding": null, - "endBinding": null + "endBinding": null, + "polygon": false }, { "type": "line", @@ -3233,7 +3217,6 @@ "PpU5JBbu3LHRSikKHOo-O", "URtXVuQKruCwOpqeU_9p9" ], - "strokeSharpness": "sharp", "boundElements": [], "updated": 1733369058350, "link": null, @@ -3271,7 +3254,8 @@ "roundness": null, "locked": false, "startBinding": null, - "endBinding": null + "endBinding": null, + "polygon": false }, { "type": "line", @@ -3297,7 +3281,6 @@ "PpU5JBbu3LHRSikKHOo-O", "URtXVuQKruCwOpqeU_9p9" ], - "strokeSharpness": "sharp", "boundElements": [], "updated": 1733369058350, "link": null, @@ -3335,7 +3318,8 @@ "roundness": null, "locked": false, "startBinding": null, - "endBinding": null + "endBinding": null, + "polygon": false }, { "type": "line", @@ -3361,7 +3345,6 @@ "PpU5JBbu3LHRSikKHOo-O", "URtXVuQKruCwOpqeU_9p9" ], - "strokeSharpness": "sharp", "boundElements": [], "updated": 1733369058350, "link": null, @@ -3399,7 +3382,8 @@ "roundness": null, "locked": false, "startBinding": null, - "endBinding": null + "endBinding": null, + "polygon": false }, { "type": "line", @@ -3425,7 +3409,6 @@ "PpU5JBbu3LHRSikKHOo-O", "URtXVuQKruCwOpqeU_9p9" ], - "strokeSharpness": "sharp", "boundElements": [], "updated": 1733369058350, "link": null, @@ -3463,7 +3446,8 @@ "roundness": null, "locked": false, "startBinding": null, - "endBinding": null + "endBinding": null, + "polygon": false }, { "type": "line", @@ -3489,7 +3473,6 @@ "PpU5JBbu3LHRSikKHOo-O", "URtXVuQKruCwOpqeU_9p9" ], - "strokeSharpness": "sharp", "boundElements": [], "updated": 1733369058350, "link": null, @@ -3527,7 +3510,8 @@ "roundness": null, "locked": false, "startBinding": null, - "endBinding": null + "endBinding": null, + "polygon": false }, { "type": "line", @@ -3554,7 +3538,6 @@ "PpU5JBbu3LHRSikKHOo-O", "URtXVuQKruCwOpqeU_9p9" ], - "strokeSharpness": "sharp", "boundElements": [], "updated": 1733369058350, "link": null, @@ -3672,7 +3655,8 @@ "roundness": null, "locked": false, "startBinding": null, - "endBinding": null + "endBinding": null, + "polygon": false }, { "type": "line", @@ -3697,7 +3681,6 @@ "PpU5JBbu3LHRSikKHOo-O", "URtXVuQKruCwOpqeU_9p9" ], - "strokeSharpness": "sharp", "boundElements": [], "updated": 1733369058350, "link": null, @@ -4147,7 +4130,8 @@ "roundness": null, "locked": false, "startBinding": null, - "endBinding": null + "endBinding": null, + "polygon": false }, { "id": "OYz_Dn3DJiRHN1psntrFb", @@ -4249,7 +4233,6 @@ "GFjFvRBVqgFajgeGcFjPO", "VqN-gIVjXYaqoeoaRKjbl" ], - "strokeSharpness": "sharp", "boundElements": [], "updated": 1733368350306, "link": null, @@ -4283,7 +4266,8 @@ "roundness": null, "locked": false, "startBinding": null, - "endBinding": null + "endBinding": null, + "polygon": false }, { "type": "line", @@ -4309,7 +4293,6 @@ "GFjFvRBVqgFajgeGcFjPO", "VqN-gIVjXYaqoeoaRKjbl" ], - "strokeSharpness": "sharp", "boundElements": [], "updated": 1733368350306, "link": null, @@ -4343,7 +4326,8 @@ "roundness": null, "locked": false, "startBinding": null, - "endBinding": null + "endBinding": null, + "polygon": false }, { "type": "line", @@ -4369,7 +4353,6 @@ "GFjFvRBVqgFajgeGcFjPO", "VqN-gIVjXYaqoeoaRKjbl" ], - "strokeSharpness": "sharp", "boundElements": [], "updated": 1733368350306, "link": null, @@ -4439,7 +4422,8 @@ "roundness": null, "locked": false, "startBinding": null, - "endBinding": null + "endBinding": null, + "polygon": false }, { "type": "line", @@ -4465,7 +4449,6 @@ "GFjFvRBVqgFajgeGcFjPO", "VqN-gIVjXYaqoeoaRKjbl" ], - "strokeSharpness": "sharp", "boundElements": [], "updated": 1733368350306, "link": null, @@ -4535,7 +4518,8 @@ "roundness": null, "locked": false, "startBinding": null, - "endBinding": null + "endBinding": null, + "polygon": false }, { "type": "line", @@ -4561,7 +4545,6 @@ "GFjFvRBVqgFajgeGcFjPO", "VqN-gIVjXYaqoeoaRKjbl" ], - "strokeSharpness": "sharp", "boundElements": [], "updated": 1733368350306, "link": null, @@ -4595,7 +4578,8 @@ "roundness": null, "locked": false, "startBinding": null, - "endBinding": null + "endBinding": null, + "polygon": false }, { "type": "line", @@ -4621,7 +4605,6 @@ "GFjFvRBVqgFajgeGcFjPO", "VqN-gIVjXYaqoeoaRKjbl" ], - "strokeSharpness": "sharp", "boundElements": [], "updated": 1733368350306, "link": null, @@ -4691,7 +4674,8 @@ "roundness": null, "locked": false, "startBinding": null, - "endBinding": null + "endBinding": null, + "polygon": false }, { "type": "line", @@ -4717,7 +4701,6 @@ "GFjFvRBVqgFajgeGcFjPO", "VqN-gIVjXYaqoeoaRKjbl" ], - "strokeSharpness": "sharp", "boundElements": [], "updated": 1733368350306, "link": null, @@ -4787,7 +4770,8 @@ "roundness": null, "locked": false, "startBinding": null, - "endBinding": null + "endBinding": null, + "polygon": false }, { "id": "IeKgneW--Val4qwToblBi", @@ -5284,7 +5268,8 @@ 0, 0 ] - ] + ], + "polygon": false }, { "id": "ejrz2KaguoHEkjHVNpDmO", @@ -5384,16 +5369,16 @@ "type": 3 }, "seed": 978869026, - "version": 458, - "versionNonce": 1811986078, - "isDeleted": false, + "version": 459, + "versionNonce": 1701748306, + "isDeleted": true, "boundElements": [ { "type": "text", "id": "jG9WPmC56a5XPeJKCucH6" } ], - "updated": 1733368967952, + "updated": 1782292028780, "link": null, "locked": false }, @@ -5417,11 +5402,11 @@ "index": "b0v", "roundness": null, "seed": 379889378, - "version": 444, - "versionNonce": 1945545346, - "isDeleted": false, + "version": 445, + "versionNonce": 1695459278, + "isDeleted": true, "boundElements": [], - "updated": 1733368967952, + "updated": 1782292028780, "link": null, "locked": false, "text": "WIP", @@ -5475,16 +5460,20 @@ ], "lastCommittedPoint": null, "startBinding": { + "mode": "orbit", "elementId": "5f5J-9mOw1MprjZ6-ZHvY", - "focus": -0.4870933810014231, - "gap": 5.5000025431314725, - "fixedPoint": null + "fixedPoint": [ + 1.0000000000000002, + 0.5001 + ] }, "endBinding": { + "mode": "orbit", "elementId": "J6K94XitOqfMM-oi2Gu2L", - "focus": -0.4642875920934128, - "gap": 7.349998474121264, - "fixedPoint": null + "fixedPoint": [ + 0.40702968332344597, + 0.5929703166765533 + ] }, "startArrowhead": null, "endArrowhead": "arrow", @@ -5535,16 +5524,20 @@ ], "lastCommittedPoint": null, "startBinding": { + "mode": "orbit", "elementId": "J6K94XitOqfMM-oi2Gu2L", - "focus": -0.5052026971309512, - "gap": 5.937350069573256, - "fixedPoint": null + "fixedPoint": [ + 0.8504494479872807, + 0.8504494479872806 + ] }, "endBinding": { + "mode": "orbit", "elementId": "ldQhm07d_-k9cp06z8Gr0", - "focus": -0.7973349081973792, - "gap": 5.6171589174177825, - "fixedPoint": null + "fixedPoint": [ + 0, + 0.5001 + ] }, "startArrowhead": null, "endArrowhead": "arrow", @@ -5801,7 +5794,7 @@ "version": 51, "versionNonce": 1311784990, "isDeleted": false, - "boundElements": null, + "boundElements": [], "updated": 1733368397256, "link": null, "locked": false, @@ -5817,16 +5810,20 @@ ], "lastCommittedPoint": null, "startBinding": { + "mode": "orbit", "elementId": "6WWz3Ij3u-_5Mfci8bIf5", - "focus": 0.7631313097152825, - "gap": 6.929684087650003, - "fixedPoint": null + "fixedPoint": [ + 1.0000000000000002, + 0.5001 + ] }, "endBinding": { + "mode": "orbit", "elementId": "J6K94XitOqfMM-oi2Gu2L", - "focus": 0.6457148590031835, - "gap": 5.338775617425711, - "fixedPoint": null + "fixedPoint": [ + 0.32396664530021896, + 0.32396664530021924 + ] }, "startArrowhead": null, "endArrowhead": "arrow", @@ -5857,7 +5854,7 @@ "version": 79, "versionNonce": 975260958, "isDeleted": false, - "boundElements": null, + "boundElements": [], "updated": 1733368409813, "link": null, "locked": false, @@ -5877,16 +5874,20 @@ ], "lastCommittedPoint": null, "startBinding": { + "mode": "orbit", "elementId": "IeKgneW--Val4qwToblBi", - "focus": 0.813496973878991, - "gap": 5.298596870154256, - "fixedPoint": null + "fixedPoint": [ + 1, + 0.5001 + ] }, "endBinding": { + "mode": "orbit", "elementId": "J6K94XitOqfMM-oi2Gu2L", - "focus": 0.5657476576120634, - "gap": 3.364270123541189, - "fixedPoint": null + "fixedPoint": [ + 0.11360733222315209, + 0.8863926677768478 + ] }, "startArrowhead": null, "endArrowhead": "arrow", @@ -5917,7 +5918,7 @@ "version": 57, "versionNonce": 1489393694, "isDeleted": false, - "boundElements": null, + "boundElements": [], "updated": 1733368895781, "link": null, "locked": false, @@ -5937,16 +5938,20 @@ ], "lastCommittedPoint": null, "startBinding": { + "mode": "orbit", "elementId": "IALsU3nQ6m_828PiOyfWD", - "focus": -0.7879009083635357, - "gap": 5.79859687015437, - "fixedPoint": null + "fixedPoint": [ + 1.0000000000000002, + 0.5001 + ] }, "endBinding": { + "mode": "orbit", "elementId": "J6K94XitOqfMM-oi2Gu2L", - "focus": -0.5803456327594292, - "gap": 5.601065335980053, - "fixedPoint": null + "fixedPoint": [ + 0.1037749263259829, + 0.10377492632598322 + ] }, "startArrowhead": null, "endArrowhead": "arrow", @@ -5977,7 +5982,7 @@ "version": 64, "versionNonce": 680907166, "isDeleted": false, - "boundElements": null, + "boundElements": [], "updated": 1733369088022, "link": null, "locked": false, @@ -5997,16 +6002,20 @@ ], "lastCommittedPoint": null, "startBinding": { + "mode": "orbit", "elementId": "J6K94XitOqfMM-oi2Gu2L", - "focus": 0.521980584333917, - "gap": 6.019464937724479, - "fixedPoint": null + "fixedPoint": [ + 0.8598284002876371, + 0.14017159971236245 + ] }, "endBinding": { + "mode": "orbit", "elementId": "OYz_Dn3DJiRHN1psntrFb", - "focus": 0.8049039490459903, - "gap": 5.363538798274476, - "fixedPoint": null + "fixedPoint": [ + 0, + 0.5001 + ] }, "startArrowhead": null, "endArrowhead": "arrow", @@ -6037,7 +6046,7 @@ "version": 49, "versionNonce": 1123869378, "isDeleted": false, - "boundElements": null, + "boundElements": [], "updated": 1733369107344, "link": null, "locked": false, @@ -6053,16 +6062,20 @@ ], "lastCommittedPoint": null, "startBinding": { + "mode": "orbit", "elementId": "J6K94XitOqfMM-oi2Gu2L", - "focus": 0.5161280695331992, - "gap": 8.370123866504684, - "fixedPoint": null + "fixedPoint": [ + 0.5351704943992864, + 0.5351704943992869 + ] }, "endBinding": { + "mode": "orbit", "elementId": "BafIO1yB00AzGUMEtTFki", - "focus": 0.734934665387965, - "gap": 1, - "fixedPoint": null + "fixedPoint": [ + 0, + 0.5001 + ] }, "startArrowhead": null, "endArrowhead": "arrow", @@ -6093,7 +6106,7 @@ "version": 58, "versionNonce": 1419189982, "isDeleted": false, - "boundElements": null, + "boundElements": [], "updated": 1733369102409, "link": null, "locked": false, @@ -6109,16 +6122,20 @@ ], "lastCommittedPoint": null, "startBinding": { + "mode": "orbit", "elementId": "J6K94XitOqfMM-oi2Gu2L", - "focus": -0.4655765192906133, - "gap": 7.152961388702636, - "fixedPoint": null + "fixedPoint": [ + 0.5512023036740659, + 0.44879769632593386 + ] }, "endBinding": { + "mode": "orbit", "elementId": "ejrz2KaguoHEkjHVNpDmO", - "focus": -0.6334389167431277, - "gap": 3.429213842670606, - "fixedPoint": null + "fixedPoint": [ + 0, + 0.5001 + ] }, "startArrowhead": null, "endArrowhead": "arrow", @@ -6273,7 +6290,8 @@ "gridSize": 20, "gridStep": 5, "gridModeEnabled": false, - "viewBackgroundColor": "#ffffff" + "viewBackgroundColor": "#ffffff", + "lockedMultiSelections": {} }, "files": {} } \ No newline at end of file diff --git a/docs/architecture.svg b/docs/architecture.svg index a7a585b4..7f22f63e 100644 --- a/docs/architecture.svg +++ b/docs/architecture.svg @@ -1,11 +1,5 @@ - - - - - - - - Drassi core gitea-runnercontainer-sandboxer host-sandboxer gitlab-runnermicrovm-sandboxer github-runnerincus-sandboxerWIPdrassi CLIPLAN......PLANPLAN \ No newline at end of file + + + Drassi core gitea-runnercontainer-sandboxer host-sandboxer gitlab-runnermicrovm-sandboxer github-runnerincus-sandboxerdrassi CLIPLAN......PLANPLAN \ No newline at end of file diff --git a/docs/executor.excalidraw b/docs/executor.excalidraw new file mode 100644 index 00000000..dfb301b0 --- /dev/null +++ b/docs/executor.excalidraw @@ -0,0 +1,2353 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "id": "LBYf82p6ktgQddPKUjfGt", + "type": "rectangle", + "x": 404.2451171875, + "y": 289.1455078125, + "width": 227.5, + "height": 96.67578125, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b2p", + "roundness": { + "type": 3 + }, + "seed": 1564936492, + "version": 45, + "versionNonce": 1384192786, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "-7jqqS0puG8toEPZ-PHS6" + }, + { + "id": "LR-hHVypJe3VOtKri0U_C", + "type": "arrow" + }, + { + "id": "dHSOZQ6fSqspsVYWJGcXW", + "type": "arrow" + }, + { + "id": "pTj6Daa-DHBxm12nPHlIN", + "type": "arrow" + } + ], + "updated": 1782291462665, + "link": null, + "locked": false + }, + { + "id": "-7jqqS0puG8toEPZ-PHS6", + "type": "text", + "x": 478.7551574707031, + "y": 324.9833984375, + "width": 78.47991943359375, + "height": 25, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b2q", + "roundness": null, + "seed": 991075220, + "version": 33, + "versionNonce": 1711232782, + "isDeleted": false, + "boundElements": [], + "updated": 1782291462665, + "link": null, + "locked": false, + "text": "JobSpec", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "LBYf82p6ktgQddPKUjfGt", + "originalText": "JobSpec", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "3ty8ezTsKFHvMANFoDwur", + "type": "rectangle", + "x": 821.8955078125, + "y": 289.1455078125, + "width": 227.5, + "height": 96.67578125, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b2r", + "roundness": { + "type": 3 + }, + "seed": 1668363948, + "version": 155, + "versionNonce": 2106583250, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "u4vXxgvV970UhRxl-m9Jr" + }, + { + "id": "LR-hHVypJe3VOtKri0U_C", + "type": "arrow" + }, + { + "id": "oWjaRGIL-Qs4l_t7gLSu8", + "type": "arrow" + } + ], + "updated": 1782291462665, + "link": null, + "locked": false + }, + { + "id": "u4vXxgvV970UhRxl-m9Jr", + "type": "text", + "x": 891.1555557250977, + "y": 324.9833984375, + "width": 88.97990417480469, + "height": 25, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b2s", + "roundness": null, + "seed": 1542291756, + "version": 154, + "versionNonce": 1381844302, + "isDeleted": false, + "boundElements": [], + "updated": 1782291462665, + "link": null, + "locked": false, + "text": "StepSpec", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "3ty8ezTsKFHvMANFoDwur", + "originalText": "StepSpec", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "NB4-9LQXQtzlLkjqwLAVR", + "type": "rectangle", + "x": 1239.5458984375, + "y": 289.1455078125, + "width": 227.5, + "height": 96.67578125, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b2t", + "roundness": { + "type": 3 + }, + "seed": 1058674964, + "version": 107, + "versionNonce": 16711314, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "2DUt9T-zLVKOGC9u7K7WK" + }, + { + "id": "QTNlTTXnJsouybVGqumAd", + "type": "arrow" + }, + { + "id": "FpKSeNBSqHSA_YMLBXE_b", + "type": "arrow" + }, + { + "id": "oWjaRGIL-Qs4l_t7gLSu8", + "type": "arrow" + } + ], + "updated": 1782291462665, + "link": null, + "locked": false + }, + { + "id": "2DUt9T-zLVKOGC9u7K7WK", + "type": "text", + "x": 1300.2659606933594, + "y": 324.9833984375, + "width": 106.05987548828125, + "height": 25, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b2u", + "roundness": null, + "seed": 1075697300, + "version": 109, + "versionNonce": 1365470094, + "isDeleted": false, + "boundElements": [], + "updated": 1782291462665, + "link": null, + "locked": false, + "text": "ActionSpec", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "NB4-9LQXQtzlLkjqwLAVR", + "originalText": "ActionSpec", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "LR-hHVypJe3VOtKri0U_C", + "type": "arrow", + "x": 637.7451171875, + "y": 337.49306601562495, + "width": 178.150390625, + "height": 0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b2v", + "roundness": { + "type": 2 + }, + "seed": 851103892, + "version": 186, + "versionNonce": 2038783058, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "Qz7tj4bVDjc49La7eCK6A" + } + ], + "updated": 1782291462665, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 151.4736328125, + 0 + ], + [ + 178.150390625, + 0 + ] + ], + "startBinding": { + "elementId": "LBYf82p6ktgQddPKUjfGt", + "mode": "orbit", + "fixedPoint": [ + 1, + 0.5001 + ] + }, + "endBinding": { + "elementId": "3ty8ezTsKFHvMANFoDwur", + "mode": "orbit", + "fixedPoint": [ + 0, + 0.5001 + ] + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false, + "moveMidPointsWithElement": false + }, + { + "id": "Qz7tj4bVDjc49La7eCK6A", + "type": "text", + "x": 783.9587554931641, + "y": 324.99306601562495, + "width": 10.519989013671875, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b2w", + "roundness": null, + "seed": 1633153172, + "version": 5, + "versionNonce": 1363855822, + "isDeleted": false, + "boundElements": [], + "updated": 1782291462665, + "link": null, + "locked": false, + "text": "n", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "LR-hHVypJe3VOtKri0U_C", + "originalText": "n", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "oWjaRGIL-Qs4l_t7gLSu8", + "type": "arrow", + "x": 1055.3955078125, + "y": 337.5531221774718, + "width": 178.150390625, + "height": 1.5156126970672403, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b2x", + "roundness": { + "type": 2 + }, + "seed": 1291153300, + "version": 126, + "versionNonce": 1425670674, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "u75H3hI9GgetBpqLptuAr" + } + ], + "updated": 1782291462665, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 151.41953636004018, + 1.5156126970672403 + ], + [ + 178.150390625, + 0.22878485271871796 + ] + ], + "startBinding": { + "elementId": "3ty8ezTsKFHvMANFoDwur", + "mode": "orbit", + "fixedPoint": [ + 1, + 0.5001 + ] + }, + "endBinding": { + "elementId": "NB4-9LQXQtzlLkjqwLAVR", + "mode": "orbit", + "fixedPoint": [ + 0, + 0.5001 + ] + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false, + "moveMidPointsWithElement": false + }, + { + "id": "u75H3hI9GgetBpqLptuAr", + "type": "text", + "x": 1143.2085189819336, + "y": 325.4388421861425, + "width": 8.539993286132812, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b2y", + "roundness": null, + "seed": 867876012, + "version": 4, + "versionNonce": 288120846, + "isDeleted": false, + "boundElements": [], + "updated": 1782291462665, + "link": null, + "locked": false, + "text": "1", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "oWjaRGIL-Qs4l_t7gLSu8", + "originalText": "1", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "ZNOEST4A86tz_-0z_CrJr", + "type": "rectangle", + "x": 404.2451171875, + "y": 509.423828125, + "width": 227.5, + "height": 96.67578125, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b2z", + "roundness": { + "type": 3 + }, + "seed": 123062700, + "version": 108, + "versionNonce": 1419233810, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "7jtiSw29TPxh01xHjmz4p" + }, + { + "id": "dHSOZQ6fSqspsVYWJGcXW", + "type": "arrow" + }, + { + "id": "pTj6Daa-DHBxm12nPHlIN", + "type": "arrow" + }, + { + "id": "9QPFIhiXqAVHruo8I5_wx", + "type": "arrow" + }, + { + "id": "wd-I86jKJy27LX1Acjjfi", + "type": "arrow" + } + ], + "updated": 1782291729109, + "link": null, + "locked": false + }, + { + "id": "7jtiSw29TPxh01xHjmz4p", + "type": "text", + "x": 456.2351837158203, + "y": 545.26171875, + "width": 123.51986694335938, + "height": 25, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b30", + "roundness": null, + "seed": 1539814444, + "version": 95, + "versionNonce": 83963470, + "isDeleted": false, + "boundElements": [], + "updated": 1782291462665, + "link": null, + "locked": false, + "text": "JobExecutor", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "ZNOEST4A86tz_-0z_CrJr", + "originalText": "JobExecutor", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "mMqx_LMek6b4-fXGG744D", + "type": "rectangle", + "x": 821.8955078125, + "y": 509.423828125, + "width": 227.5, + "height": 96.67578125, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b31", + "roundness": { + "type": 3 + }, + "seed": 1335381676, + "version": 233, + "versionNonce": 116518990, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "FbJ5AyCxbwxWqG7KTa75u" + }, + { + "id": "kpjC4L5vRlQJFZ5sz4yWQ", + "type": "arrow" + }, + { + "id": "CVOqXqcjTYRHSTnHRo4QK", + "type": "arrow" + }, + { + "id": "9QPFIhiXqAVHruo8I5_wx", + "type": "arrow" + }, + { + "id": "SSPHkNCM4tDloFoyFIr-e", + "type": "arrow" + } + ], + "updated": 1782291693985, + "link": null, + "locked": false + }, + { + "id": "FbJ5AyCxbwxWqG7KTa75u", + "type": "text", + "x": 868.6355819702148, + "y": 545.26171875, + "width": 134.0198516845703, + "height": 25, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b32", + "roundness": null, + "seed": 1668389164, + "version": 228, + "versionNonce": 966931598, + "isDeleted": false, + "boundElements": [], + "updated": 1782291462665, + "link": null, + "locked": false, + "text": "StepExecutor", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "mMqx_LMek6b4-fXGG744D", + "originalText": "StepExecutor", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "6vmGht6PGtIly_Y3Dtpoz", + "type": "rectangle", + "x": 1239.5458984375, + "y": 509.423828125, + "width": 227.5, + "height": 96.67578125, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b33", + "roundness": { + "type": 3 + }, + "seed": 1925026732, + "version": 169, + "versionNonce": 1345561426, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "2Baeq-3JDTeR_QdcHRfmC" + }, + { + "id": "QTNlTTXnJsouybVGqumAd", + "type": "arrow" + }, + { + "id": "FpKSeNBSqHSA_YMLBXE_b", + "type": "arrow" + }, + { + "id": "CVOqXqcjTYRHSTnHRo4QK", + "type": "arrow" + } + ], + "updated": 1782291462665, + "link": null, + "locked": false + }, + { + "id": "2Baeq-3JDTeR_QdcHRfmC", + "type": "text", + "x": 1277.7459869384766, + "y": 545.26171875, + "width": 151.09982299804688, + "height": 25, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b34", + "roundness": null, + "seed": 1537621548, + "version": 172, + "versionNonce": 952660686, + "isDeleted": false, + "boundElements": [], + "updated": 1782291462665, + "link": null, + "locked": false, + "text": "ActionExecutor", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "6vmGht6PGtIly_Y3Dtpoz", + "originalText": "ActionExecutor", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "MpIhq1pZBcUdwRJSzA4U6", + "type": "arrow", + "x": 640.2060546875, + "y": 543.919823828125, + "width": 182.953125, + "height": 0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b35", + "roundness": { + "type": 2 + }, + "seed": 655726764, + "version": 221, + "versionNonce": 1816619282, + "isDeleted": false, + "boundElements": [], + "updated": 1782291462665, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 182.953125, + 0 + ] + ], + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false, + "moveMidPointsWithElement": false + }, + { + "id": "evakkAv0JQjMSCde38bnb", + "type": "arrow", + "x": 1063.3388671875, + "y": 542.650292578125, + "width": 173.34765625, + "height": 0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b36", + "roundness": { + "type": 2 + }, + "seed": 817210156, + "version": 158, + "versionNonce": 1829562638, + "isDeleted": false, + "boundElements": [], + "updated": 1782291462665, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 173.34765625, + 0 + ] + ], + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false, + "moveMidPointsWithElement": false + }, + { + "id": "dHSOZQ6fSqspsVYWJGcXW", + "type": "arrow", + "x": 473.6588564161063, + "y": 391.8212890625, + "width": 1.4761511101813767, + "height": 111.60253906249994, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b37", + "roundness": { + "type": 2 + }, + "seed": 92861972, + "version": 83, + "versionNonce": 1700558546, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "sE4KVTWiowITm4tZH2cp-" + } + ], + "updated": 1782291462665, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 1.4761511101813767, + 111.60253906249994 + ] + ], + "startBinding": { + "elementId": "LBYf82p6ktgQddPKUjfGt", + "mode": "orbit", + "fixedPoint": [ + 0.30306306017547574, + 0.6969369398245246 + ] + }, + "endBinding": { + "elementId": "ZNOEST4A86tz_-0z_CrJr", + "mode": "orbit", + "fixedPoint": [ + 0.3137160683955289, + 0.31371606839552857 + ] + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false, + "moveMidPointsWithElement": false + }, + { + "id": "sE4KVTWiowITm4tZH2cp-", + "type": "text", + "x": 487.0086078560172, + "y": 433.67236328125, + "width": 61.97993469238281, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b38", + "roundness": null, + "seed": 1972864404, + "version": 10, + "versionNonce": 99129166, + "isDeleted": false, + "boundElements": [], + "updated": 1782291462665, + "link": null, + "locked": false, + "text": "create", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "dHSOZQ6fSqspsVYWJGcXW", + "originalText": "create", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "pTj6Daa-DHBxm12nPHlIN", + "type": "arrow", + "x": 561.2012561076791, + "y": 503.42382812500006, + "width": 1.1122869249365976, + "height": 111.6025390625, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b39", + "roundness": { + "type": 2 + }, + "seed": 1419815444, + "version": 118, + "versionNonce": 470404242, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "_W4aLt-fd1VHV0JbrbnTO" + } + ], + "updated": 1782291462665, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1.1122869249365976, + -111.6025390625 + ] + ], + "startBinding": { + "elementId": "ZNOEST4A86tz_-0z_CrJr", + "mode": "orbit", + "fixedPoint": [ + 0.6914865784074169, + 0.30851342159258244 + ] + }, + "endBinding": { + "elementId": "LBYf82p6ktgQddPKUjfGt", + "mode": "orbit", + "fixedPoint": [ + 0.6834242908022403, + 0.6834242908022402 + ] + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false, + "moveMidPointsWithElement": false + }, + { + "id": "_W4aLt-fd1VHV0JbrbnTO", + "type": "text", + "x": 508.7359424131515, + "y": 433.67236328125, + "width": 28.519973754882812, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b3A", + "roundness": null, + "seed": 1064721196, + "version": 12, + "versionNonce": 1538555278, + "isDeleted": false, + "boundElements": [], + "updated": 1782291462665, + "link": null, + "locked": false, + "text": "ref", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "pTj6Daa-DHBxm12nPHlIN", + "originalText": "ref", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "KoRxSno9t_39JkEEp9E3t", + "type": "arrow", + "x": 892.8422714578152, + "y": 391.283203125, + "width": 1.7667588260335378, + "height": 111.6025390625, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b3B", + "roundness": { + "type": 2 + }, + "seed": 1719695532, + "version": 101, + "versionNonce": 1174825554, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "l1KjUU8bv76eHAtNBxnXM" + } + ], + "updated": 1782291462665, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 1.7667588260335378, + 111.6025390625 + ] + ], + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "l1KjUU8bv76eHAtNBxnXM", + "type": "text", + "x": 655.3225326538086, + "y": 506.3849218652863, + "width": 61.97993469238281, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b3C", + "roundness": null, + "seed": 2143585068, + "version": 12, + "versionNonce": 1403624398, + "isDeleted": false, + "boundElements": [], + "updated": 1782291462665, + "link": null, + "locked": false, + "text": "create", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "KoRxSno9t_39JkEEp9E3t", + "originalText": "create", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "kpjC4L5vRlQJFZ5sz4yWQ", + "type": "arrow", + "x": 970.5494830803973, + "y": 503.423828125, + "width": 4.2131219348653985, + "height": 112.22268023341894, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b3D", + "roundness": { + "type": 2 + }, + "seed": 1133014548, + "version": 133, + "versionNonce": 1244221458, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "amWNCFGSnNuLjARDmEGbZ" + } + ], + "updated": 1782291462665, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 4.2131219348653985, + -112.22268023341894 + ] + ], + "startBinding": { + "elementId": "mMqx_LMek6b4-fXGG744D", + "mode": "orbit", + "fixedPoint": [ + 0.6467990960987933, + 0.35320090390120634 + ] + }, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false, + "moveMidPointsWithElement": false + }, + { + "id": "amWNCFGSnNuLjARDmEGbZ", + "type": "text", + "x": 959.9413842263043, + "y": 434.81248800829053, + "width": 28.519973754882812, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b3E", + "roundness": null, + "seed": 771328916, + "version": 11, + "versionNonce": 1138815502, + "isDeleted": false, + "boundElements": [], + "updated": 1782291462665, + "link": null, + "locked": false, + "text": "ref", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "kpjC4L5vRlQJFZ5sz4yWQ", + "originalText": "ref", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "QTNlTTXnJsouybVGqumAd", + "type": "arrow", + "x": 1299.6019727146243, + "y": 391.8212890625, + "width": 4.41948432518393, + "height": 111.6025390625, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b3F", + "roundness": { + "type": 2 + }, + "seed": 1229652116, + "version": 154, + "versionNonce": 476675538, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "BOftvHWN9RlcYE-6KdWC2" + } + ], + "updated": 1782291462665, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 4.41948432518393, + 111.6025390625 + ] + ], + "startBinding": { + "elementId": "NB4-9LQXQtzlLkjqwLAVR", + "mode": "orbit", + "fixedPoint": [ + 0.2585868305553139, + 0.7414131694446865 + ] + }, + "endBinding": { + "elementId": "6vmGht6PGtIly_Y3Dtpoz", + "mode": "orbit", + "fixedPoint": [ + 0.2893221783118071, + 0.2893221783118069 + ] + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false, + "moveMidPointsWithElement": false + }, + { + "id": "BOftvHWN9RlcYE-6KdWC2", + "type": "text", + "x": 949.7405014038086, + "y": 487.07788676241876, + "width": 61.97993469238281, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b3G", + "roundness": null, + "seed": 851824148, + "version": 16, + "versionNonce": 1465090126, + "isDeleted": false, + "boundElements": [], + "updated": 1782291462665, + "link": null, + "locked": false, + "text": "create", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "QTNlTTXnJsouybVGqumAd", + "originalText": "create", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "FpKSeNBSqHSA_YMLBXE_b", + "type": "arrow", + "x": 1388.9463008656596, + "y": 503.42382812500006, + "width": 0.04987238572471142, + "height": 111.60253906250006, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b3H", + "roundness": { + "type": 2 + }, + "seed": 1642613396, + "version": 177, + "versionNonce": 433976210, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "WCuMr26TvrVS7dGbaWVxK" + } + ], + "updated": 1782291462665, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.04987238572471142, + -111.60253906250006 + ] + ], + "startBinding": { + "elementId": "6vmGht6PGtIly_Y3Dtpoz", + "mode": "orbit", + "fixedPoint": [ + 0.6567820280344826, + 0.3432179719655188 + ] + }, + "endBinding": { + "elementId": "NB4-9LQXQtzlLkjqwLAVR", + "mode": "orbit", + "fixedPoint": [ + 0.6564088130510755, + 0.6564088130510756 + ] + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false, + "moveMidPointsWithElement": false + }, + { + "id": "WCuMr26TvrVS7dGbaWVxK", + "type": "text", + "x": 1050.7634506225586, + "y": 496.59305348545314, + "width": 28.519973754882812, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b3I", + "roundness": null, + "seed": 489281556, + "version": 14, + "versionNonce": 1910130318, + "isDeleted": false, + "boundElements": [], + "updated": 1782291462665, + "link": null, + "locked": false, + "text": "ref", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "FpKSeNBSqHSA_YMLBXE_b", + "originalText": "ref", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "kvec_ibGwgrOVRUYKrCOK", + "type": "rectangle", + "x": 1239.5458984375, + "y": 725.79296875, + "width": 227.5, + "height": 96.67578125, + "angle": 0, + "strokeColor": "#e03131", + "backgroundColor": "#ffc9c9", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b3J", + "roundness": { + "type": 3 + }, + "seed": 1658380588, + "version": 199, + "versionNonce": 82575246, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "lGibeuUtqmgxvHadHnDUb" + } + ], + "updated": 1782291708138, + "link": null, + "locked": false + }, + { + "id": "lGibeuUtqmgxvHadHnDUb", + "type": "text", + "x": 1298.1759643554688, + "y": 749.130859375, + "width": 110.2398681640625, + "height": 50, + "angle": 0, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b3K", + "roundness": null, + "seed": 368827308, + "version": 237, + "versionNonce": 1349015886, + "isDeleted": false, + "boundElements": [], + "updated": 1782291708138, + "link": null, + "locked": false, + "text": "ActionTask\n", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "kvec_ibGwgrOVRUYKrCOK", + "originalText": "ActionTask\n", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "eTlRkYmk946Zp0yaFWHYw", + "type": "arrow", + "x": 1352.2399684031318, + "y": 610.1215760388832, + "width": 3.6528756937366325, + "height": 111.6025390625, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b3L", + "roundness": { + "type": 2 + }, + "seed": 1018943020, + "version": 221, + "versionNonce": 1080014610, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "aiNG8Xt8YJxYTSmwuoNHf" + } + ], + "updated": 1782291462665, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 3.6528756937366325, + 111.6025390625 + ] + ], + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false, + "moveMidPointsWithElement": false + }, + { + "id": "aiNG8Xt8YJxYTSmwuoNHf", + "type": "text", + "x": 1309.5334701538088, + "y": 591.8056580701332, + "width": 61.97993469238281, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b3M", + "roundness": null, + "seed": 28848300, + "version": 20, + "versionNonce": 1072200462, + "isDeleted": false, + "boundElements": [], + "updated": 1782291462665, + "link": null, + "locked": false, + "text": "create", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "eTlRkYmk946Zp0yaFWHYw", + "originalText": "create", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "qFoX5cX4jvQr7Mgtitj3j", + "type": "rectangle", + "x": 828.58984375, + "y": 725.79296875, + "width": 227.5, + "height": 96.67578125, + "angle": 0, + "strokeColor": "#e03131", + "backgroundColor": "#ffc9c9", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b3N", + "roundness": { + "type": 3 + }, + "seed": 1958880556, + "version": 321, + "versionNonce": 44037134, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "w7dRZZf5VN7UHgD6XmJd6" + }, + { + "id": "SSPHkNCM4tDloFoyFIr-e", + "type": "arrow" + } + ], + "updated": 1782291708138, + "link": null, + "locked": false + }, + { + "id": "w7dRZZf5VN7UHgD6XmJd6", + "type": "text", + "x": 896.5598983764648, + "y": 749.130859375, + "width": 91.55989074707031, + "height": 50, + "angle": 0, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b3O", + "roundness": null, + "seed": 572301228, + "version": 337, + "versionNonce": 782294478, + "isDeleted": false, + "boundElements": [], + "updated": 1782291708138, + "link": null, + "locked": false, + "text": "StepTask\n", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "qFoX5cX4jvQr7Mgtitj3j", + "originalText": "StepTask\n", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "CVOqXqcjTYRHSTnHRo4QK", + "type": "arrow", + "x": 1233.5458984375, + "y": 572.6539138456633, + "width": 178.150390625, + "height": 1.6287716764924198, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b3P", + "roundness": { + "type": 2 + }, + "seed": 1253993577, + "version": 176, + "versionNonce": 82221714, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "4vTOtxTm5M0euSziCiuP5" + } + ], + "updated": 1782291462665, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -178.150390625, + 1.6287716764924198 + ] + ], + "startBinding": { + "elementId": "6vmGht6PGtIly_Y3Dtpoz", + "mode": "orbit", + "fixedPoint": [ + 0.5038895319225878, + 0.6426341648945548 + ] + }, + "endBinding": { + "elementId": "mMqx_LMek6b4-fXGG744D", + "mode": "orbit", + "fixedPoint": [ + 0.5208650431564885, + 0.6817663514955079 + ] + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false, + "moveMidPointsWithElement": false + }, + { + "id": "4vTOtxTm5M0euSziCiuP5", + "type": "text", + "x": 1132.6120834350586, + "y": 560.9686019996265, + "width": 28.519973754882812, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b3Q", + "roundness": null, + "seed": 1972780745, + "version": 6, + "versionNonce": 374574990, + "isDeleted": false, + "boundElements": [], + "updated": 1782291462665, + "link": null, + "locked": false, + "text": "ref", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "CVOqXqcjTYRHSTnHRo4QK", + "originalText": "ref", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "9QPFIhiXqAVHruo8I5_wx", + "type": "arrow", + "x": 815.8955078125, + "y": 575.3097241494834, + "width": 178.150390625, + "height": 0.2368459794897717, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b3R", + "roundness": { + "type": 2 + }, + "seed": 1680047623, + "version": 329, + "versionNonce": 1444509778, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "fzhj8vTST9JPUwO3GpY5V" + } + ], + "updated": 1782291462665, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -178.150390625, + -0.2368459794897717 + ] + ], + "startBinding": { + "elementId": "mMqx_LMek6b4-fXGG744D", + "mode": "orbit", + "fixedPoint": [ + 0.3668612622537089, + 0.6827442301871012 + ] + }, + "endBinding": { + "elementId": "ZNOEST4A86tz_-0z_CrJr", + "mode": "orbit", + "fixedPoint": [ + 0.5638986381903434, + 0.6776172001624325 + ] + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false, + "moveMidPointsWithElement": false + }, + { + "id": "fzhj8vTST9JPUwO3GpY5V", + "type": "text", + "x": 714.9616928100586, + "y": 562.6911679874951, + "width": 28.519973754882812, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b3S", + "roundness": null, + "seed": 44991657, + "version": 6, + "versionNonce": 1284926926, + "isDeleted": false, + "boundElements": [], + "updated": 1782291462665, + "link": null, + "locked": false, + "text": "ref", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "9QPFIhiXqAVHruo8I5_wx", + "originalText": "ref", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "SSPHkNCM4tDloFoyFIr-e", + "type": "arrow", + "x": 936.0038321153245, + "y": 612.099609375, + "width": 6.051151857086211, + "height": 108.193359375, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b3T", + "roundness": { + "type": 2 + }, + "seed": 1795021253, + "version": 77, + "versionNonce": 437283918, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "3LKiuS4_Hr1_HnZOUmKRC" + } + ], + "updated": 1782291805491, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 6.051151857086211, + 108.193359375 + ] + ], + "startBinding": { + "elementId": "mMqx_LMek6b4-fXGG744D", + "mode": "orbit", + "fixedPoint": [ + 0.5001, + 1 + ] + }, + "endBinding": { + "elementId": "qFoX5cX4jvQr7Mgtitj3j", + "mode": "orbit", + "fixedPoint": [ + 0.5001, + 0 + ] + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false, + "moveMidPointsWithElement": false + }, + { + "id": "3LKiuS4_Hr1_HnZOUmKRC", + "type": "text", + "x": 914.2373700800005, + "y": 656.1962890625, + "width": 49.584075927734375, + "height": 20, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b3TV", + "roundness": null, + "seed": 957011474, + "version": 8, + "versionNonce": 824583186, + "isDeleted": false, + "boundElements": null, + "updated": 1782291804609, + "link": null, + "locked": false, + "text": "create", + "fontSize": 16, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "SSPHkNCM4tDloFoyFIr-e", + "originalText": "create", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "clDK8PIkWB-ZLy5cDFkYH", + "type": "rectangle", + "x": 1369.9931640625, + "y": 786.10693359375, + "width": 94.72656249999996, + "height": 32.96484375, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b3U", + "roundness": { + "type": 3 + }, + "seed": 1388263950, + "version": 217, + "versionNonce": 426858766, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "R7wY61ROQE04sw7CJTP4d" + } + ], + "updated": 1782291693984, + "link": null, + "locked": false + }, + { + "id": "R7wY61ROQE04sw7CJTP4d", + "type": "text", + "x": 1378.052360534668, + "y": 792.58935546875, + "width": 78.60816955566406, + "height": 20, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b3V", + "roundness": null, + "seed": 1823764302, + "version": 173, + "versionNonce": 1941374674, + "isDeleted": false, + "boundElements": null, + "updated": 1782291693984, + "link": null, + "locked": false, + "text": "ActionRun", + "fontSize": 16, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "clDK8PIkWB-ZLy5cDFkYH", + "originalText": "ActionRun", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "DxZ1EPhPFNTbdE5phZ2t1", + "type": "rectangle", + "x": 959.1572265625, + "y": 787.90576171875, + "width": 94.72656249999996, + "height": 32.96484375, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b3W", + "roundness": { + "type": 3 + }, + "seed": 258508690, + "version": 281, + "versionNonce": 205457230, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "Qm0EFA9ygDRKO3MJLhyjr" + } + ], + "updated": 1782291693984, + "link": null, + "locked": false + }, + { + "id": "Qm0EFA9ygDRKO3MJLhyjr", + "type": "text", + "x": 974.0484390258789, + "y": 794.38818359375, + "width": 64.94413757324219, + "height": 20, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b3X", + "roundness": null, + "seed": 1943389522, + "version": 242, + "versionNonce": 546462866, + "isDeleted": false, + "boundElements": [], + "updated": 1782291693984, + "link": null, + "locked": false, + "text": "StepRun", + "fontSize": 16, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "DxZ1EPhPFNTbdE5phZ2t1", + "originalText": "StepRun", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "5FcG3DrSxIuvw7RfCNgs4", + "type": "rectangle", + "x": 404.2451171875, + "y": 725.79296875, + "width": 227.5, + "height": 96.67578125, + "angle": 0, + "strokeColor": "#e03131", + "backgroundColor": "#ffc9c9", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b3Y", + "roundness": { + "type": 3 + }, + "seed": 747521550, + "version": 375, + "versionNonce": 1806362958, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "cB5uSftui6wFQBgFfdvW_" + }, + { + "id": "wd-I86jKJy27LX1Acjjfi", + "type": "arrow" + } + ], + "updated": 1782291769239, + "link": null, + "locked": false + }, + { + "id": "cB5uSftui6wFQBgFfdvW_", + "type": "text", + "x": 477.4651641845703, + "y": 749.130859375, + "width": 81.05990600585938, + "height": 50, + "angle": 0, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b3Z", + "roundness": null, + "seed": 1731613774, + "version": 394, + "versionNonce": 1630632718, + "isDeleted": false, + "boundElements": [], + "updated": 1782291769239, + "link": null, + "locked": false, + "text": "JobTask\n", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "5FcG3DrSxIuvw7RfCNgs4", + "originalText": "JobTask\n", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "xzL1TP5BqEJKSBqkQdoX9", + "type": "rectangle", + "x": 536.142578125, + "y": 785.4150390625, + "width": 94.72656249999996, + "height": 32.96484375, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b3a", + "roundness": { + "type": 3 + }, + "seed": 641899150, + "version": 347, + "versionNonce": 1330613902, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "wvQrEp-OzZ3jSJ9_S4JXO" + } + ], + "updated": 1782291781321, + "link": null, + "locked": false + }, + { + "id": "wvQrEp-OzZ3jSJ9_S4JXO", + "type": "text", + "x": 555.2337951660156, + "y": 791.8974609375, + "width": 56.54412841796875, + "height": 20, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b3b", + "roundness": null, + "seed": 1080826062, + "version": 312, + "versionNonce": 599428302, + "isDeleted": false, + "boundElements": [], + "updated": 1782291781321, + "link": null, + "locked": false, + "text": "JobRun", + "fontSize": 16, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "xzL1TP5BqEJKSBqkQdoX9", + "originalText": "JobRun", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "wd-I86jKJy27LX1Acjjfi", + "type": "arrow", + "x": 518.0178671875, + "y": 612.099609375, + "width": 0, + "height": 108.193359375, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b3c", + "roundness": { + "type": 2 + }, + "seed": 81309906, + "version": 39, + "versionNonce": 356388238, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "SD16J9-4VMrgAQqu73iO7" + } + ], + "updated": 1782291809641, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 108.193359375 + ] + ], + "startBinding": { + "elementId": "ZNOEST4A86tz_-0z_CrJr", + "mode": "orbit", + "fixedPoint": [ + 0.5001, + 1 + ] + }, + "endBinding": { + "elementId": "5FcG3DrSxIuvw7RfCNgs4", + "mode": "orbit", + "fixedPoint": [ + 0.5001, + 0 + ] + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false, + "moveMidPointsWithElement": false + }, + { + "id": "SD16J9-4VMrgAQqu73iO7", + "type": "text", + "x": 493.2258292236328, + "y": 656.1962890625, + "width": 49.584075927734375, + "height": 20, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b3d", + "roundness": null, + "seed": 934500562, + "version": 8, + "versionNonce": 823125714, + "isDeleted": false, + "boundElements": null, + "updated": 1782291809170, + "link": null, + "locked": false, + "text": "create", + "fontSize": 16, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "wd-I86jKJy27LX1Acjjfi", + "originalText": "create", + "autoResize": true, + "lineHeight": 1.25 + } + ], + "appState": { + "gridSize": 20, + "gridStep": 5, + "gridModeEnabled": false, + "viewBackgroundColor": "#ffffff", + "lockedMultiSelections": {} + }, + "files": {} +} \ No newline at end of file diff --git a/runner-gha/pkg/log/log.excalidraw b/docs/gha-log.excalidraw similarity index 100% rename from runner-gha/pkg/log/log.excalidraw rename to docs/gha-log.excalidraw diff --git a/docs/server.excalidraw b/docs/server.excalidraw new file mode 100644 index 00000000..e962407f --- /dev/null +++ b/docs/server.excalidraw @@ -0,0 +1,1269 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "id": "4Ve7oiS6WH_WGcozFdE7H", + "type": "rectangle", + "x": 1004.0155024688158, + "y": 595.122375604246, + "width": 326.23046875, + "height": 229.11328125, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a0", + "roundness": { + "type": 3 + }, + "seed": 836396436, + "version": 60, + "versionNonce": 283684156, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "N-72wjodOWpRax-71rGqe" + }, + { + "id": "ZTkfQnP52r0cmPiJKiyo4", + "type": "arrow" + } + ], + "updated": 1769767248039, + "link": null, + "locked": false + }, + { + "id": "N-72wjodOWpRax-71rGqe", + "type": "text", + "x": 1097.9284663360033, + "y": 600.122375604246, + "width": 138.404541015625, + "height": 35, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffc9c9", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a1", + "roundness": null, + "seed": 932363668, + "version": 40, + "versionNonce": 911713724, + "isDeleted": false, + "boundElements": [], + "updated": 1769767248039, + "link": null, + "locked": false, + "text": "Git server", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "top", + "containerId": "4Ve7oiS6WH_WGcozFdE7H", + "originalText": "Git server", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "iEhsMZRgyV9dcMvPgYsfN", + "type": "rectangle", + "x": 1512.40283203125, + "y": 596.076171875, + "width": 372.0234375, + "height": 205.55078125, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a2", + "roundness": { + "type": 3 + }, + "seed": 1162315692, + "version": 75, + "versionNonce": 1361725116, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "foQsyn52rpc12JzseApXY" + }, + { + "id": "D8TjjKkQOMsGkhualPQMW", + "type": "arrow" + }, + { + "id": "-B3PlOZpgVVzJBsShUxRn", + "type": "arrow" + }, + { + "id": "-5rpEU-nh4gLWEABCwU89", + "type": "arrow" + }, + { + "id": "cx-LZJzS1J4oZYp_TfK8-", + "type": "arrow" + } + ], + "updated": 1769767237421, + "link": null, + "locked": false + }, + { + "id": "foQsyn52rpc12JzseApXY", + "type": "text", + "x": 1616.6945266723633, + "y": 676.3515625, + "width": 163.44004821777344, + "height": 45, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffc9c9", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a3", + "roundness": null, + "seed": 2114060844, + "version": 42, + "versionNonce": 883829396, + "isDeleted": false, + "boundElements": [], + "updated": 1769766836673, + "link": null, + "locked": false, + "text": "CI server", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "iEhsMZRgyV9dcMvPgYsfN", + "originalText": "CI server", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "YeGrrpVzA5hvV-x8IgU5d", + "type": "rectangle", + "x": 2060.77978515625, + "y": 636.52734375, + "width": 372.0234374999998, + "height": 129.9404296875, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a4", + "roundness": { + "type": 3 + }, + "seed": 548709524, + "version": 214, + "versionNonce": 1845815572, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "PxC-k_56B2xwag3s9TjTC" + }, + { + "id": "D8TjjKkQOMsGkhualPQMW", + "type": "arrow" + } + ], + "updated": 1769766833861, + "link": null, + "locked": false + }, + { + "id": "PxC-k_56B2xwag3s9TjTC", + "type": "text", + "x": 2165.161476135254, + "y": 678.99755859375, + "width": 163.2600555419922, + "height": 45, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffc9c9", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a5", + "roundness": null, + "seed": 895152660, + "version": 215, + "versionNonce": 1764664980, + "isDeleted": false, + "boundElements": [], + "updated": 1769766833861, + "link": null, + "locked": false, + "text": "CI runner", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "YeGrrpVzA5hvV-x8IgU5d", + "originalText": "CI runner", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "D8TjjKkQOMsGkhualPQMW", + "type": "arrow", + "x": 2050.27978515625, + "y": 702.828699781541, + "width": 155.353515625, + "height": 1.6551885655923115, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a6", + "roundness": { + "type": 2 + }, + "seed": 1522485524, + "version": 159, + "versionNonce": 1546893332, + "isDeleted": false, + "boundElements": [], + "updated": 1769766836673, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -155.353515625, + -1.6551885655923115 + ] + ], + "startBinding": { + "elementId": "YeGrrpVzA5hvV-x8IgU5d", + "mode": "orbit", + "fixedPoint": [ + 0.47492167161091653, + 0.5250783283890836 + ] + }, + "endBinding": { + "elementId": "iEhsMZRgyV9dcMvPgYsfN", + "mode": "orbit", + "fixedPoint": [ + 0.5001, + 0.5001 + ] + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false, + "moveMidPointsWithElement": false + }, + { + "id": "oUM1IyaB-VZoEMQKxISY8", + "type": "rectangle", + "x": 1514.76513671875, + "y": 340.80712890625, + "width": 372.0234374999998, + "height": 129.9404296875, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a9", + "roundness": { + "type": 3 + }, + "seed": 782980756, + "version": 262, + "versionNonce": 1076483220, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "b9AtBz6Prn2KYlCNEi6HL" + }, + { + "id": "-B3PlOZpgVVzJBsShUxRn", + "type": "arrow" + } + ], + "updated": 1769766853910, + "link": null, + "locked": false + }, + { + "id": "b9AtBz6Prn2KYlCNEi6HL", + "type": "text", + "x": 1617.292823791504, + "y": 383.27734375, + "width": 166.9680633544922, + "height": 45, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffc9c9", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aA", + "roundness": null, + "seed": 1974166548, + "version": 278, + "versionNonce": 1144201132, + "isDeleted": false, + "boundElements": [], + "updated": 1769766850744, + "link": null, + "locked": false, + "text": "CI Portal", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "oUM1IyaB-VZoEMQKxISY8", + "originalText": "CI Portal", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "-B3PlOZpgVVzJBsShUxRn", + "type": "arrow", + "x": 1694.0058814769673, + "y": 481.24755859374994, + "width": 0.7199820946757427, + "height": 104.32861328125006, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aB", + "roundness": { + "type": 2 + }, + "seed": 921357332, + "version": 39, + "versionNonce": 1565366932, + "isDeleted": false, + "boundElements": [], + "updated": 1769766855613, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.7199820946757427, + 104.32861328125006 + ] + ], + "startBinding": { + "elementId": "oUM1IyaB-VZoEMQKxISY8", + "mode": "orbit", + "fixedPoint": [ + 0.4831737331737341, + 0.5168262668262675 + ] + }, + "endBinding": { + "elementId": "iEhsMZRgyV9dcMvPgYsfN", + "mode": "orbit", + "fixedPoint": [ + 0.4841732406552877, + 0.48417324065528866 + ] + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "_VKENIIePloLDy4uy_1sl", + "type": "line", + "x": 1793.9113132990817, + "y": 1016.2964350303951, + "width": 88.21658171083376, + "height": 113.8575037534261, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [ + "UaE3XhfwpxqgdnfCWFgna" + ], + "seed": 213851564, + "version": 3949, + "versionNonce": 442945324, + "isDeleted": false, + "points": [ + [ + 0, + 0 + ], + [ + 0.29089298333313673, + 86.05288422061678 + ], + [ + 0.013613108737802165, + 95.84963140781468 + ], + [ + 4.543349062013738, + 100.08268472409586 + ], + [ + 20.317928500125443, + 103.66521849306073 + ], + [ + 46.98143617553956, + 104.78076599153316 + ], + [ + 72.45665455006592, + 102.9996310009587 + ], + [ + 85.99182564238487, + 98.74007888522631 + ], + [ + 87.90077837148979, + 95.14923176741362 + ], + [ + 88.16888387182134, + 87.26194204835767 + ], + [ + 87.95845222911922, + 7.219356674957439 + ], + [ + 87.48407176050935, + -0.3431928547433216 + ], + [ + 81.81967725989045, + -4.569951534960701 + ], + [ + 69.89167127292335, + -7.017866506201685 + ], + [ + 42.70935725136615, + -9.076737761892943 + ], + [ + 20.91603533578692, + -7.849028196182914 + ], + [ + 3.775735655469765, + -3.684787148572539 + ], + [ + -0.047697839012426885, + -0.0517060607782156 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": [ + 1.0602678571428896, + 551.8638392857142 + ], + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "index": "aC", + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1769766948637, + "link": null, + "locked": false, + "polygon": false + }, + { + "id": "lLZbD3b2MDrNxGZ3nUoPh", + "type": "line", + "x": 1794.5986748885791, + "y": 1081.5865630611827, + "width": 88.30808627974527, + "height": 9.797916664247975, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [ + "UaE3XhfwpxqgdnfCWFgna" + ], + "seed": 283543596, + "version": 1683, + "versionNonce": 1066535316, + "isDeleted": false, + "points": [ + [ + 0, + 0 + ], + [ + 2.326538897826852, + 3.9056133261361587 + ], + [ + 12.359939318521995, + 7.182387014695761 + ], + [ + 25.710950037209347, + 9.166781347006062 + ], + [ + 46.6269757640547, + 9.347610268342288 + ], + [ + 71.03526003420632, + 8.084235941711592 + ], + [ + 85.2899738827162, + 3.4881086608341767 + ], + [ + 88.30808627974527, + -0.45030639590568633 + ] + ], + "lastCommittedPoint": [ + 510.69444444444457, + -2.6041666666666288 + ], + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "index": "aD", + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1769766948637, + "link": null, + "locked": false, + "polygon": false + }, + { + "id": "tbN28MRu7s1nw3VsmB5hC", + "type": "line", + "x": 1793.5049333765176, + "y": 1048.512408499111, + "width": 88.30808627974527, + "height": 9.797916664247975, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [ + "UaE3XhfwpxqgdnfCWFgna" + ], + "seed": 566010540, + "version": 1770, + "versionNonce": 1100745132, + "isDeleted": false, + "points": [ + [ + 0, + 0 + ], + [ + 2.326538897826852, + 3.9056133261361587 + ], + [ + 12.359939318521995, + 7.182387014695761 + ], + [ + 25.710950037209347, + 9.166781347006062 + ], + [ + 46.6269757640547, + 9.347610268342288 + ], + [ + 71.03526003420632, + 8.084235941711592 + ], + [ + 85.2899738827162, + 3.4881086608341767 + ], + [ + 88.30808627974527, + -0.45030639590568633 + ] + ], + "lastCommittedPoint": [ + 510.69444444444457, + -2.6041666666666288 + ], + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "index": "aE", + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1769766948637, + "link": null, + "locked": false, + "polygon": false + }, + { + "type": "ellipse", + "version": 4787, + "versionNonce": 2061089556, + "isDeleted": false, + "id": "ZqkwjoItOVTFYFr2prUS8", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1792.3841106903558, + "y": 1008.2717388032984, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 87.65074610854188, + "height": 17.72670397681366, + "seed": 367750444, + "groupIds": [ + "UaE3XhfwpxqgdnfCWFgna" + ], + "index": "aF", + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "-5rpEU-nh4gLWEABCwU89", + "type": "arrow" + } + ], + "updated": 1769766952709, + "link": null, + "locked": false + }, + { + "id": "H9HlgS1-TFsCucVUmzRbS", + "type": "ellipse", + "x": 1863.8938429909365, + "y": 1032.847541680432, + "width": 12.846057046979809, + "height": 13.941904362416096, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [ + "UaE3XhfwpxqgdnfCWFgna" + ], + "seed": 1591535532, + "version": 157, + "versionNonce": 1933964332, + "isDeleted": false, + "index": "aG", + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1769766948637, + "link": null, + "locked": false + }, + { + "id": "RmR7i7C-WUQmhrVwr_Lol", + "type": "ellipse", + "x": 1863.8938429909365, + "y": 1063.4499955394924, + "width": 12.846057046979809, + "height": 13.941904362416096, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [ + "UaE3XhfwpxqgdnfCWFgna" + ], + "seed": 817566252, + "version": 206, + "versionNonce": 1130607764, + "isDeleted": false, + "index": "aH", + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1769766948637, + "link": null, + "locked": false + }, + { + "id": "vZ4nJv0srLZDX6kzPyCSj", + "type": "ellipse", + "x": 1863.8938429909365, + "y": 1096.710796713989, + "width": 12.846057046979809, + "height": 13.941904362416096, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [ + "UaE3XhfwpxqgdnfCWFgna" + ], + "seed": 711978156, + "version": 260, + "versionNonce": 1565429420, + "isDeleted": false, + "index": "aI", + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1769766948637, + "link": null, + "locked": false + }, + { + "id": "IbMkrKFu4XEYA7ZjH3xZP", + "type": "rectangle", + "x": 1473.29638671875, + "y": 671.6025390625, + "width": 129.70703124999991, + "height": 48.7451171875, + "angle": 4.71238898038469, + "strokeColor": "#e03131", + "backgroundColor": "#ffc9c9", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aJ", + "roundness": { + "type": 3 + }, + "seed": 514233620, + "version": 230, + "versionNonce": 1442405524, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "9XHipyZNXQMOK0_YRGqS_" + }, + { + "id": "ZTkfQnP52r0cmPiJKiyo4", + "type": "arrow" + } + ], + "updated": 1769766943939, + "link": null, + "locked": false + }, + { + "id": "9XHipyZNXQMOK0_YRGqS_", + "type": "text", + "x": 1499.559944152832, + "y": 683.47509765625, + "width": 77.17991638183594, + "height": 25, + "angle": 4.71238898038469, + "strokeColor": "#e03131", + "backgroundColor": "#ffc9c9", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aK", + "roundness": null, + "seed": 1130547220, + "version": 109, + "versionNonce": 518194348, + "isDeleted": false, + "boundElements": [], + "updated": 1769766912156, + "link": null, + "locked": false, + "text": "adaptor", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "IbMkrKFu4XEYA7ZjH3xZP", + "originalText": "adaptor", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "Ue4zezEdIhQ1xt5_RgViQ", + "type": "arrow", + "x": 1503.27734375, + "y": 684.0572826436296, + "width": 171.19091796875, + "height": 4.814581932754436, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffc9c9", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aL", + "roundness": { + "type": 2 + }, + "seed": 2136536852, + "version": 66, + "versionNonce": 1653541652, + "isDeleted": false, + "boundElements": [], + "updated": 1769766944089, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -171.19091796875, + 4.814581932754436 + ] + ], + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false, + "moveMidPointsWithElement": false + }, + { + "id": "ZTkfQnP52r0cmPiJKiyo4", + "type": "arrow", + "x": 1340.7459712188158, + "y": 741.9375561011324, + "width": 173.12170456243416, + "height": 2.1660717261323725, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffc9c9", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aM", + "roundness": { + "type": 2 + }, + "seed": 1674483348, + "version": 44, + "versionNonce": 877891132, + "isDeleted": false, + "boundElements": [], + "updated": 1769767248039, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 173.12170456243416, + -2.1660717261323725 + ] + ], + "startBinding": { + "elementId": "4Ve7oiS6WH_WGcozFdE7H", + "mode": "orbit", + "fixedPoint": [ + 0.6476480316437356, + 0.6476480316437356 + ] + }, + "endBinding": { + "elementId": "IbMkrKFu4XEYA7ZjH3xZP", + "mode": "inside", + "fixedPoint": [ + 0.16234377352808324, + 0.0018531503556045276 + ] + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false, + "moveMidPointsWithElement": false + }, + { + "id": "-5rpEU-nh4gLWEABCwU89", + "type": "arrow", + "x": 1761.0692006881538, + "y": 812.126953125, + "width": 77.70358976091734, + "height": 185.66635260105863, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aN", + "roundness": { + "type": 2 + }, + "seed": 956735380, + "version": 22, + "versionNonce": 1738094740, + "isDeleted": false, + "boundElements": [], + "updated": 1769766952709, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 77.70358976091734, + 185.66635260105863 + ] + ], + "startBinding": { + "elementId": "iEhsMZRgyV9dcMvPgYsfN", + "mode": "orbit", + "fixedPoint": [ + 0.5523435967928149, + 0.5523435967928159 + ] + }, + "endBinding": { + "elementId": "ZqkwjoItOVTFYFr2prUS8", + "mode": "orbit", + "fixedPoint": [ + 0.6216055482076189, + 0.5001 + ] + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "eL5SIz12CogN0ZinY7p_S", + "type": "diamond", + "x": 1479.6727305572042, + "y": 1040.31811853, + "width": 112.64736525303451, + "height": 36.77344700318558, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [ + "5Stc_ne_JvrDYPVG1dj0c" + ], + "seed": 133740732, + "version": 697, + "versionNonce": 350601916, + "isDeleted": false, + "index": "aT", + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1769767234006, + "link": null, + "locked": false + }, + { + "id": "s9d6ckVu8WefNzAI1YIJo", + "type": "diamond", + "x": 1479.6727305572042, + "y": 1031.4463386017414, + "width": 112.64736525303451, + "height": 36.77344700318558, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [ + "5Stc_ne_JvrDYPVG1dj0c" + ], + "seed": 1985626428, + "version": 738, + "versionNonce": 890637116, + "isDeleted": false, + "index": "aU", + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1769767234006, + "link": null, + "locked": false + }, + { + "id": "Hl6x8t2YDZh3jnxs6mB-P", + "type": "diamond", + "x": 1479.6727305572042, + "y": 1018.8157790070293, + "width": 112.64736525303451, + "height": 36.77344700318558, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [ + "5Stc_ne_JvrDYPVG1dj0c" + ], + "seed": 544651708, + "version": 818, + "versionNonce": 1764311996, + "isDeleted": false, + "index": "aV", + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1769767234006, + "link": null, + "locked": false + }, + { + "id": "TdKuO0hrMszcQqLnzPwND", + "type": "diamond", + "x": 1479.6727305572042, + "y": 1006.284106709732, + "width": 112.64736525303451, + "height": 36.77344700318558, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [ + "5Stc_ne_JvrDYPVG1dj0c" + ], + "seed": 829432380, + "version": 861, + "versionNonce": 1741855036, + "isDeleted": false, + "index": "aW", + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "cx-LZJzS1J4oZYp_TfK8-", + "type": "arrow" + } + ], + "updated": 1769767238509, + "link": null, + "locked": false + }, + { + "id": "cx-LZJzS1J4oZYp_TfK8-", + "type": "arrow", + "x": 1659.6667635362599, + "y": 801.3073182923445, + "width": 93.82392922891495, + "height": 203.84129520647912, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aX", + "roundness": { + "type": 2 + }, + "seed": 482905404, + "version": 24, + "versionNonce": 396103868, + "isDeleted": false, + "boundElements": [], + "updated": 1769767238509, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -93.82392922891495, + 203.84129520647912 + ] + ], + "startBinding": { + "elementId": "iEhsMZRgyV9dcMvPgYsfN", + "mode": "inside", + "fixedPoint": [ + 0.3958458437313102, + 0.9984449836156702 + ] + }, + "endBinding": { + "elementId": "TdKuO0hrMszcQqLnzPwND", + "mode": "orbit", + "fixedPoint": [ + 0.68517127475273, + 0.5001 + ] + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + } + ], + "appState": { + "gridSize": 20, + "gridStep": 5, + "gridModeEnabled": false, + "viewBackgroundColor": "#ffffff", + "lockedMultiSelections": {} + }, + "files": {} +} \ No newline at end of file