diff --git a/content/en/docs/_index.md b/content/en/docs/_index.md index 9ab7538..4602768 100644 --- a/content/en/docs/_index.md +++ b/content/en/docs/_index.md @@ -10,7 +10,7 @@ menu: Welcome to the EDP documentation. This documentation serves developers, engineers, and auditors who want to understand, use, and audit the Edge Developer Platform. -{{< likec4-view view="developer-landscape-with-foundry" project="architecture" title="High level eDF Vision: DevOps enhanced by Platform integration with a deployment channel to Edge Connect" >}} +It describes the outcomes and products of the edgeDeveloperFramework (eDF) sub-project within IPCEI-CIS. ## Target Audience @@ -20,14 +20,8 @@ Welcome to the EDP documentation. This documentation serves developers, engineer ## Documentation Structure -The documentation follows a top-down approach focusing on outcomes and practical usage: +The documentation is organized into three core areas: -* **Platform Overview**: High-level introduction and product structure -* **Components**: Individual platform components and their usage -* **Getting Started**: Onboarding and quick start guides -* **Operations**: Deployment, monitoring, and troubleshooting +* **Edge Developer Platform (EDP)**: The central platform to support developers working in the Edge, based around Forgejo +* **Edge Connect Cloud**: The IPCEI-CIS channel of EDP deployments per secure connectivity solutions for edge devices and environments * **Governance**: Project history, decisions, and compliance - -## Purpose - -This documentation describes the outcomes and products of the edgeDeveloperFramework (eDF) project. The EDP is designed as a usable, integrated platform with clear links to repositories and implementation details. diff --git a/content/en/docs/edp/_index.md b/content/en/docs/edp/_index.md index be9635e..be2c3e9 100644 --- a/content/en/docs/edp/_index.md +++ b/content/en/docs/edp/_index.md @@ -6,29 +6,15 @@ description: > A platform to support developers working in the Edge, based around Forgejo --- -{{% alert title="Draft" color="warning" %}} -**Editorial Status**: This page is currently being developed. - -* **Jira Ticket**: TBD -* **Assignee**: Team -* **Status**: Draft - Initial structure created -* **Last Updated**: 2025-11-16 -* **TODO**: - * [ ] Add detailed product structure from excalidraw - * [ ] Include platform maturity matrix - * [ ] Add links to component pages as they are created -{{% /alert %}} - ## Purpose The Edge Developer Platform (EDP) is a comprehensive DevOps platform designed to enable developers to build, deploy, and operate cloud-native applications at the edge. It provides an integrated suite of tools and services covering the entire software development lifecycle. -## Target Audience +{{< likec4-view view="application-transition" project="architecture" title="EDP Context View: Edge Developer Platform Components and User Interaction" >}} -* **Developers**: Build and deploy applications using standardized workflows -* **Platform Engineers**: Operate and maintain the platform infrastructure -* **DevOps Teams**: Implement CI/CD pipelines and automation -* **Auditors**: Verify platform capabilities and compliance +The magenta **EDP** represents the developer platform: a shared, productized layer that enables modern DevOps by standardizing how applications are described, built, deployed, and observed. In the **inner loop**, developers iterate locally (fast feedback: code → run → test). EDP then connects that work to an **outer loop** where additional roles (review, test, operations, audit/compliance) contribute feedback and controls for production readiness. + +In this modern DevOps setup, EDP acts as the hub: it synchronizes with local development and **deploys applications to target clouds** (for example, an EdgeConnect cloud), while providing the operational capabilities needed to run them safely. Agentic AI can support both loops—for example by assisting developers with implementation and testing in the inner loop, and by automating reviews, policy checks, release notes, and deployment verification (including drift detection and remediation) in the outer loop. ## Product Structure @@ -46,14 +32,6 @@ Tools and services that developers interact with directly to build, test, and de Infrastructure automation, observability, and operational tooling for platform management. -## Platform Maturity - -Components in EDP have different maturity levels: - -* **Production**: Fully integrated and supported for production use -* **Beta**: Available for testing with potential changes -* **Experimental**: Early stage, subject to significant changes - ## Getting Started For quick start guides and onboarding information, see the [Getting Started](../getting-started/) section. diff --git a/resources/edp-likec4/images/person-profile.svg b/resources/edp-likec4/images/person-profile.svg new file mode 100644 index 0000000..40786b2 --- /dev/null +++ b/resources/edp-likec4/images/person-profile.svg @@ -0,0 +1,5 @@ + + + Person profile + + diff --git a/resources/edp-likec4/models/context/actors.c4 b/resources/edp-likec4/models/context/actors.c4 index dd690f5..46e2ff4 100644 --- a/resources/edp-likec4/models/context/actors.c4 +++ b/resources/edp-likec4/models/context/actors.c4 @@ -1,8 +1,8 @@ model { developer = actor 'Developer' { description 'The regular user of the platform' - -> localbox 'inner loop development' - -> edp 'outer loop development' + -> localbox 'inner loop' + -> edp 'outer loop' -> edp.ui 'manages project' -> edp.forgejo 'manages code' -> edp.keycloak 'authenticates' @@ -22,7 +22,7 @@ model { } otherProductLifecycleRoles = actor 'Reviewer, Tester, Auditors, Operators' { description 'Coworking roles in the outer loop' - -> edp 'act according to responibility' + -> edp 'review / operate' } customers = actor 'End Customers' { description 'Consumers of your Application' diff --git a/resources/edp-likec4/models/context/edp.c4 b/resources/edp-likec4/models/context/edp.c4 index 970e989..8c71546 100644 --- a/resources/edp-likec4/models/context/edp.c4 +++ b/resources/edp-likec4/models/context/edp.c4 @@ -4,7 +4,7 @@ model { technology 'Kubernetes' icon tech:kubernetes -> enterprise 'integrates' - -> cloud 'deploys and observes' + -> cloud 'deploy & observe' -> localbox // inner-outer loop synchronization application = schema 'application' { diff --git a/resources/edp-likec4/models/context/localbox.c4 b/resources/edp-likec4/models/context/localbox.c4 index 07547d8..1a3138f 100644 --- a/resources/edp-likec4/models/context/localbox.c4 +++ b/resources/edp-likec4/models/context/localbox.c4 @@ -2,7 +2,7 @@ model { localbox = system 'localbox' { description 'A local development system' technology 'Linux/Windows/Mac' - -> edp 'inner-outer-loop synchronization' + -> edp 'sync' -> enterprise 'company integration' application = schema 'application' { diff --git a/resources/edp-likec4/models/spec.c4 b/resources/edp-likec4/models/spec.c4 index c99a0ad..75311f7 100644 --- a/resources/edp-likec4/models/spec.c4 +++ b/resources/edp-likec4/models/spec.c4 @@ -1,4 +1,7 @@ specification { + // Custom color used for view-local highlighting + color magenta #b100ff + element actor { style { shape person diff --git a/resources/edp-likec4/views/high-level-concept/application-transition.c4 b/resources/edp-likec4/views/high-level-concept/application-transition.c4 index cf86039..781177c 100644 --- a/resources/edp-likec4/views/high-level-concept/application-transition.c4 +++ b/resources/edp-likec4/views/high-level-concept/application-transition.c4 @@ -3,12 +3,15 @@ views { // the application meta-definition travels through all deploying components view application-transition { title 'application-transistion' - // autoLayout LeftRight 100 100 + autoLayout LeftRight 180 140 // include * exclude developer, localbox, edp, otherProductLifecycleRoles exclude element.kind = workflow - include cloud, cloud.application + include cloud with { + title 'EdgeConnect Cloud' + } + include cloud.application group 'developer-scope' { color green @@ -31,5 +34,16 @@ views { include edp, edp.application } } + + // Only in this view: highlight EDP itself + style edp { + color magenta + } + + // Make actors more "icon-like" (no subtitle/description in-node) + style developer, otherProductLifecycleRoles { + size xsmall + textSize small + } } } \ No newline at end of file diff --git a/static/js/likec4-webcomponent.js b/static/js/likec4-webcomponent.js index 5294fd6..0ea0c59 100644 --- a/static/js/likec4-webcomponent.js +++ b/static/js/likec4-webcomponent.js @@ -205,7 +205,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho ${a?"min-width: 80px;":"min-height: 80px;"} max-height: min(100%, var(--likec4-view-max-height, ${Math.ceil(o)}px)); } -`.trim()}const Qre=S.forwardRef(({children:e,theme:r=Bre,injectFontCss:n=!0,styleNonce:o,colorScheme:a,keepAspectRatio:i=!1,...l},s)=>{const c=WQe(a),d=DG(),u=fJe(d,i),p=S.useRef(null),f=UQe(n,o),g=S.useCallback(()=>p.current??void 0,[p]),v=it(()=>{if(ri(o)){if(typeof o=="string")return o;if(typeof o=="function")return o()}return""});let w=ri(o)?v():void 0;return y.jsxs(y.Fragment,{children:[y.jsx("style",{type:"text/css",nonce:w,dangerouslySetInnerHTML:{__html:u}}),y.jsx(hJe,{ssr:!1,...l,styleSheets:f,"data-likec4-instance":d,children:y.jsx("div",{ref:$r(p,s),"data-mantine-color-scheme":c,className:"likec4-shadow-root",children:y.jsx(R9,{...a&&{forceColorScheme:a},defaultColorScheme:c,getRootElement:g,...!!w&&{getStyleNonce:v},cssVariablesSelector:".likec4-shadow-root",theme:r,children:y.jsx(wR,{children:e})})})})]})});Qre.displayName="ShadowRoot";const mJe=fe({cursor:"pointer","--mantine-cursor-pointer":"pointer","& :where(.likec4-diagram, .likec4-compound-node, .likec4-element-node)":{cursor:"pointer"}});function gJe({viewId:e,className:r,pannable:n=!1,zoomable:o=!1,keepAspectRatio:a=!0,colorScheme:i,injectFontCss:l=!0,controls:s=!1,background:c="transparent",browser:d=!0,showNavigationButtons:u=!1,enableNotations:p,enableFocusMode:f=!1,enableDynamicViewWalkthrough:g=!1,enableElementDetails:v=!1,enableRelationshipDetails:w=!1,enableRelationshipBrowser:x=w,reduceGraphics:k="auto",mantineTheme:C,styleNonce:_,style:$,reactFlowProps:z,renderNodes:T,children:A,...R}){const j=S.useRef(null),I=gNe(),[P,L]=S.useState("manual"),[H,M]=S.useState(null),V=it(Q=>{Q&&Q!==H&&L("manual"),M(Q)}),B=it(()=>{V(e)});if(!I)return y.jsx(kR,{children:"LikeC4Model not found. Make sure you provided LikeC4ModelProvider."});const F=I.findView(e)?.$layouted;if(!F)return y.jsx(XQe,{viewId:e});if(F._stage!=="layouted")return y.jsxs(kR,{children:['LikeC4 View "$',e,'" is not layouted. Make sure you have LikeC4ModelProvider with layouted model.']});const q=H?I.findView(H):null,G=P==="manual"?q?.$layouted:q?.$view,U=!!p&&(F.notation?.nodes?.length??0)>0,Y=(G?.notation?.nodes?.length??0)>0,Z=d!==!1,O=Pq(d)?{}:d,W=kee(F,R.dynamicViewVariant),K=j.current?{root:j.current}:void 0;return y.jsx(Qre,{ref:j,injectFontCss:l,theme:C,colorScheme:i,styleNonce:_,keepAspectRatio:a?W:!1,className:Ge("likec4-view",r),style:$,children:y.jsxs(wR,{children:[y.jsx(Lre,{view:F,pannable:n,zoomable:o,background:c,fitView:!0,fitViewPadding:y2.default,enableNotations:U,enableDynamicViewWalkthrough:g,showNavigationButtons:u,enableCompareWithLatest:!1,enableFocusMode:f,enableRelationshipDetails:w,enableElementDetails:v,enableRelationshipBrowser:x,enableElementTags:!1,controls:s,reduceGraphics:k,className:Ge("likec4-static-view",Z&&mJe),enableSearch:!1,...Z&&{onCanvasClick:B,onNodeClick:B},reactFlowProps:z,renderNodes:T,children:A,...R}),y.jsx(Cn,{...K,children:G&&y.jsxs(p0,{openDelay:0,onClose:()=>V(null),children:[y.jsx(Lre,{view:G,pannable:!0,zoomable:!0,background:"dots",onNavigateTo:V,showNavigationButtons:!0,enableDynamicViewWalkthrough:!0,enableFocusMode:!0,enableRelationshipBrowser:!0,enableElementDetails:!0,enableRelationshipDetails:!0,enableSearch:!0,enableElementTags:!0,enableCompareWithLatest:!0,controls:!0,fitView:!0,...R,fitViewPadding:y2.withControls,...O,enableNotations:Y&&(O.enableNotations??!0),renderNodes:T,onLayoutTypeChange:L}),y.jsx(hr,{pos:"absolute",top:"4",right:"4",zIndex:"999",children:y.jsx(lr,{variant:"default",color:"gray",onClick:Q=>{Q.stopPropagation(),V(null)},children:y.jsx(fp,{})})})]})})]})})}var yJe=e=>y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 512 131",...e,children:y.jsx("path",{fill:"#2396ED",d:"m140.598 25.715 3.892 2.818c6.77 5.46 10.662 11.625 11.508 18.67 7.277-1.409 16.584-.352 20.646 2.466l3.723 2.29-.677 1.41c-1.185 2.641-1.523 3.346-1.692 3.698-6.6 13.21-19.631 13.386-25.723 13.21-15.4 38.573-48.23 59.885-92.57 59.885-20.476 0-36.045-6.517-46.538-19.375C-.709 93.88-.709 71.862.475 64.817l.339-1.41h122.353c6.43 0 11.339-1.76 13.708-3.17-2.539-3.875-3.385-8.278-3.554-10.744-.508-7.045 1.185-14.443 4.57-19.727zm106.014 8.179q2.048 0 3.468 1.373t1.42 3.467v43.563q0 10.89-7.634 18.43-7.726 7.633-18.43 7.633-10.798 0-18.43-7.633-7.633-7.633-7.633-18.43t7.633-18.43q7.632-7.634 18.43-7.633 9.262 0 16.336 5.724V38.734q0-2.094 1.373-3.467t3.467-1.373m36.49 22.34q10.705 0 18.43 7.632 3.818 3.818 5.702 8.424 1.885 4.608 1.932 10.007 0 10.89-7.633 18.43-7.725 7.633-18.43 7.633-10.798 0-18.43-7.633-7.634-7.633-7.634-18.43t7.633-18.43q7.633-7.634 18.43-7.633m57.574 0q9.82 0 16.988 6.33 1.675 1.488 1.675 3.676 0 2.095-1.373 3.49-1.373 1.397-3.467 1.397a4.93 4.93 0 0 1-3.165-1.117q-2.373-2.002-4.98-3.025t-5.678-1.024q-3.397 0-6.376 1.28a16.7 16.7 0 0 0-5.213 3.49 16.2 16.2 0 0 0-3.514 5.19q-1.28 2.977-1.28 6.376 0 3.397 1.28 6.376a16.2 16.2 0 0 0 3.514 5.19 16.7 16.7 0 0 0 5.213 3.49q2.979 1.28 6.376 1.28 3.072 0 5.678-1 2.607-1.002 4.933-3.003 1.304-.977 3.072-1.024 2.094 0 3.467 1.373t1.373 3.468q0 2.048-1.535 3.583-7.214 6.33-16.988 6.33-10.798 0-18.43-7.633-7.633-7.633-7.633-18.43t7.633-18.43q7.632-7.634 18.43-7.633m29.044-22.34q2.001 0 3.42 1.42 1.42 1.418 1.42 3.467v36.302l27.832-18.105q1.163-.744 2.606-.744 1.024 0 1.908.372.885.372 1.536 1.047t1.047 1.56.396 1.86q0 2.607-1.862 3.864l-19.5 12.66 20.012 22.525q1.35 1.489 1.35 3.398 0 .977-.396 1.861a5.4 5.4 0 0 1-1.047 1.56q-.651.675-1.536 1.046a4.9 4.9 0 0 1-1.908.373q-1.955 0-3.258-1.257l-21.502-24.155-5.678 3.724v16.801q0 2.001-1.42 3.444t-3.42 1.443q-2.048 0-3.468-1.443t-1.42-3.444V38.781q0-2.048 1.42-3.468t3.468-1.42m71.489 22.34q10.704 0 18.43 7.632 3.816 3.77 5.725 8.401 1.908 4.63 1.908 10.03 0 2.094-1.42 3.467t-3.467 1.373h-36.86a15.9 15.9 0 0 0 2.327 4.677 16.3 16.3 0 0 0 3.606 3.63 16.7 16.7 0 0 0 4.562 2.351q2.49.838 5.189.838 3.072 0 5.631-.931 2.56-.93 4.748-2.793a5.1 5.1 0 0 1 3.21-1.21q2.095 0 3.468 1.373t1.373 3.468q0 2.047-1.396 3.49-7.214 6.33-17.034 6.33-10.798 0-18.43-7.633-7.633-7.633-7.633-18.43t7.633-18.43q7.632-7.634 18.43-7.633m57.48 0q2.048 0 4.398.279 2.35.28 4.329 1 1.978.721 3.28 1.978 1.305 1.257 1.304 3.258 0 1.025-.396 1.909a5.4 5.4 0 0 1-1.047 1.559q-.651.675-1.536 1.047a4.9 4.9 0 0 1-1.908.372q-.885 0-2.048-.512-2.932-1.163-6.376-1.163-3.397 0-6.376 1.28-2.978 1.28-5.19 3.49-2.21 2.211-3.49 5.19-1.28 2.977-1.28 6.376v21.223q0 2.001-1.42 3.42t-3.42 1.42q-2.048 0-3.467-1.42t-1.42-3.42V61.074q0-2.002 1.42-3.42 1.42-1.42 3.467-1.42 2.001 0 3.42 1.42 1.42 1.418 1.42 3.42v.93a26.7 26.7 0 0 1 7.586-4.281q4.095-1.49 8.75-1.49M225.436 65.96q-3.444 0-6.423 1.303t-5.166 3.514-3.467 5.19-1.28 6.329 1.28 6.33 3.467 5.189 5.166 3.514q2.979 1.302 6.423 1.303 3.397 0 6.376-1.303a16.6 16.6 0 0 0 5.19-3.538 16.8 16.8 0 0 0 3.49-5.189q1.28-2.955 1.28-6.306t-1.28-6.307a16.8 16.8 0 0 0-3.49-5.189 16.6 16.6 0 0 0-5.19-3.537q-2.978-1.303-6.376-1.303m57.667 0q-3.444 0-6.423 1.303t-5.166 3.514-3.468 5.19-1.28 6.329 1.28 6.33q1.281 2.978 3.468 5.189t5.166 3.514 6.423 1.303q3.397 0 6.376-1.303a16.6 16.6 0 0 0 5.19-3.538 16.8 16.8 0 0 0 3.49-5.189q1.28-2.955 1.28-6.306t-1.28-6.307a16.8 16.8 0 0 0-3.49-5.189 16.6 16.6 0 0 0-5.19-3.537q-2.979-1.303-6.376-1.303m158.106 0q-2.653 0-5.166.837a17 17 0 0 0-4.608 2.35 16.1 16.1 0 0 0-3.63 3.631 15.1 15.1 0 0 0-2.28 4.677h31.368a15.6 15.6 0 0 0-2.35-4.677 16.8 16.8 0 0 0-3.63-3.63 16.7 16.7 0 0 0-4.561-2.35 16 16 0 0 0-5.143-.838M32.629 42.27v17.614H14.014V42.272zm22 0v17.614H36.014V42.272zm22 0v17.614H58.013V42.272zm22 0v17.614H80.013V42.272zm22 0v17.614h-18.616V42.272zm-22-21.135v17.613H80.013V21.136zm-22 0v17.613H58.013V21.136zm-22 0v17.613H36.014V21.136zM98.629 0v17.613H80.013V0z"})}),vJe=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 288",...e,children:[y.jsx("path",{fill:"#343741",d:"M0 143.82c0 12.44 1.744 24.441 4.71 35.956h175.067c19.856 0 35.955-16.1 35.955-35.956 0-19.865-16.1-35.955-35.955-35.955H4.71C1.744 119.371 0 131.38 0 143.82"}),y.jsx("path",{fill:"#FEC514",d:"M242.013 68.863c5.025-4.629 9.7-9.6 13.987-14.93C229.636 21.079 189.213 0 143.82 0 87 0 38.101 33.052 14.775 80.9h196.559c11.38 0 22.319-4.324 30.678-12.037"}),y.jsx("path",{fill:"#00BFB3",d:"M211.334 206.742H14.774c23.336 47.839 72.226 80.9 129.045 80.9 45.393 0 85.816-21.088 112.18-53.933a136.6 136.6 0 0 0-13.987-14.94c-8.36-7.721-19.299-12.027-30.678-12.027"})]}),bJe=e=>y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 278",...e,children:y.jsx("path",{fill:"#47848F",d:"M90.317 59.645c-36.264-6.605-64.936.308-76.364 20.101-8.527 14.77-6.09 34.353 5.912 55.285a3.719 3.719 0 1 0 6.452-3.699c-10.811-18.856-12.915-35.757-5.923-47.867 9.493-16.442 35.068-22.608 68.59-16.503a3.719 3.719 0 1 0 1.333-7.317m53.63-33.684c-2.959 5.723-8.932 9.635-15.819 9.635-9.83 0-17.798-7.969-17.798-17.798C110.33 7.968 118.3 0 128.128 0c9.83 0 17.798 7.968 17.798 17.798q0 .386-.016.767c29.461 15.237 49.933 67.197 49.933 127.226 0 24.69-3.452 48.382-9.879 68.92a3.719 3.719 0 1 1-7.097-2.221c6.196-19.802 9.539-42.747 9.539-66.699 0-56.524-18.789-105.163-44.458-119.83M16.469 193.319a18 18 0 0 1 1.33-.05c9.83 0 17.798 7.97 17.798 17.799s-7.969 17.797-17.798 17.797C7.968 228.865 0 220.897 0 211.068c0-6.692 3.693-12.52 9.151-15.56-2.68-33.265 32.283-77.855 85.12-108.36 21.946-12.671 44.798-21.665 66.267-26.265a3.719 3.719 0 0 1 1.558 7.273c-20.69 4.433-42.817 13.141-64.107 25.433-49.759 28.728-82.66 70.134-81.52 99.73m206.26 26.546a17.7 17.7 0 0 1-2.324-8.797c0-9.83 7.969-17.798 17.798-17.798 9.83 0 17.798 7.968 17.798 17.798s-7.968 17.797-17.798 17.797a17.7 17.7 0 0 1-10.38-3.338c-28.392 16.703-82.625 8.184-133.66-21.282-21.726-12.543-40.776-27.657-55.439-43.77a3.719 3.719 0 0 1 5.5-5.006c14.134 15.532 32.581 30.167 53.657 42.335 48.165 27.808 98.886 36.084 124.847 22.061m-1.166-63.914a3.719 3.719 0 0 1-5.676-4.805c21.946-25.926 29.34-51.086 19.867-67.492-6.876-11.91-22.159-18.52-43.362-18.796a3.719 3.719 0 1 1 .097-7.437c23.575.307 41.315 7.98 49.706 22.514 11.404 19.752 3.113 47.965-20.632 76.016M72.564 221.49a3.719 3.719 0 0 1 7.001-2.507c11.476 32.045 29.591 51.082 48.563 51.082 13.645 0 26.91-9.774 37.71-27.74a3.719 3.719 0 0 1 6.375 3.832c-12.018 19.99-27.428 31.345-44.085 31.345-22.839 0-43.15-21.344-55.564-56.011m175.999-10.423c0-5.722-4.639-10.361-10.36-10.361-5.723 0-10.362 4.639-10.362 10.36 0 5.723 4.64 10.361 10.361 10.361s10.36-4.638 10.36-10.36m-230.765 10.36c5.722 0 10.36-4.638 10.36-10.36s-4.638-10.361-10.36-10.361-10.36 4.639-10.36 10.36c0 5.723 4.638 10.361 10.36 10.361m110.33-193.27c5.722 0 10.36-4.638 10.36-10.36s-4.638-10.36-10.36-10.36-10.36 4.638-10.36 10.36 4.638 10.36 10.36 10.36m2.718 130.22c-6.951 1.502-13.8-2.916-15.305-9.868-1.499-6.952 2.916-13.8 9.868-15.305 6.951-1.502 13.8 2.915 15.305 9.867 1.502 6.952-2.916 13.8-9.868 15.305"})}),xJe=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 108",...e,children:[y.jsx("path",{fill:"#2F2707",d:"M152.984 37.214c-5.597 0-9.765 2.748-9.765 9.362 0 4.983 2.747 8.443 9.463 8.443 5.693 0 9.56-3.355 9.56-8.65 0-6-3.46-9.155-9.258-9.155m-11.19 46.701c-1.325 1.625-2.645 3.353-2.645 5.39 0 4.067 5.186 5.291 12.31 5.291 5.9 0 13.938-.414 13.938-5.9 0-3.261-3.867-3.462-8.753-3.768zm30.113-46.394c1.828 2.34 3.764 5.597 3.764 10.276 0 11.292-8.851 17.904-21.667 17.904-3.259 0-6.209-.406-8.038-.914l-3.359 5.39 9.969.61c17.602 1.122 27.975 1.632 27.975 15.157 0 11.702-10.272 18.311-27.975 18.311-18.413 0-25.433-4.68-25.433-12.716 0-4.578 2.035-7.015 5.596-10.378-3.358-1.419-4.476-3.961-4.476-6.71 0-2.24 1.118-4.273 2.952-6.208 1.83-1.93 3.864-3.865 6.306-6.103-4.984-2.442-8.75-7.732-8.75-15.262 0-11.697 7.733-19.731 23.295-19.731 4.376 0 7.022.402 9.362 1.017h19.84v8.644zM199.166 19.034c-5.8 0-9.157-3.36-9.157-9.161 0-5.793 3.356-8.95 9.157-8.95 5.9 0 9.258 3.157 9.258 8.95 0 5.801-3.357 9.161-9.258 9.161M186.04 80.171v-8.033l5.19-.71c1.425-.205 1.627-.509 1.627-2.038V39.48c0-1.116-.304-1.832-1.325-2.134l-5.492-1.935 1.118-8.238h21.061V69.39c0 1.63.098 1.833 1.629 2.039l5.188.71v8.032zM255.267 76.227c-4.376 2.135-10.785 4.068-16.586 4.068-12.106 0-16.682-4.878-16.682-16.38V37.264c0-.61 0-1.017-.817-1.017h-7.12V27.19c8.955-1.02 12.513-5.496 13.632-16.585h9.666v14.45c0 .71 0 1.017.815 1.017h14.343v10.173H237.36v24.313c0 6.002 1.426 8.34 6.917 8.34 2.852 0 5.799-.71 8.24-1.626z"}),y.jsx("path",{fill:"#DE4C36",d:"M104.529 49.53 58.013 3.017a6.86 6.86 0 0 0-9.703 0l-9.659 9.66 12.253 12.252a8.15 8.15 0 0 1 8.383 1.953 8.16 8.16 0 0 1 1.936 8.434L73.03 47.125c2.857-.984 6.154-.347 8.435 1.938a8.16 8.16 0 0 1 0 11.545 8.164 8.164 0 0 1-13.324-8.88L57.129 40.716l-.001 28.98a8.3 8.3 0 0 1 2.159 1.544 8.164 8.164 0 0 1 0 11.547c-3.19 3.19-8.36 3.19-11.545 0a8.164 8.164 0 0 1 2.672-13.328v-29.25a8.1 8.1 0 0 1-2.672-1.782c-2.416-2.413-2.997-5.958-1.759-8.925l-12.078-12.08L2.011 49.314a6.863 6.863 0 0 0 0 9.706l46.516 46.514a6.86 6.86 0 0 0 9.703 0l46.299-46.297a6.866 6.866 0 0 0 0-9.707"})]}),wJe=e=>y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 512 139",...e,children:y.jsx("path",{fill:"#11110F",d:"M98.696 59.312h-43.06c-1.111 0-2.013.903-2.013 2.014v21.053c0 1.111.902 2.015 2.012 2.015h16.799v26.157s-3.772 1.286-14.2 1.286c-12.303 0-29.49-4.496-29.49-42.288 0-37.8 17.897-42.773 34.698-42.773 14.543 0 20.809 2.56 24.795 3.794 1.253.384 2.412-.863 2.412-1.975l4.803-20.342c0-.52-.176-1.146-.769-1.571C93.064 5.527 83.187 0 58.233 0 29.488 0 0 12.23 0 71.023c0 58.795 33.76 67.556 62.21 67.556 23.555 0 37.844-10.066 37.844-10.066.59-.325.653-1.148.653-1.526V61.326c0-1.11-.9-2.014-2.01-2.014m221.8-51.953c0-1.12-.888-2.024-1.999-2.024h-24.246a2.016 2.016 0 0 0-2.008 2.024l.006 46.856h-37.792V7.36c0-1.12-.892-2.024-2.001-2.024H228.21a2.014 2.014 0 0 0-2.003 2.024v126.872c0 1.12.9 2.03 2.003 2.03h24.245c1.109 0 2-.91 2-2.03V79.964h37.793l-.066 54.267c0 1.12.9 2.03 2.008 2.03h24.304c1.11 0 1.998-.91 2-2.03zM144.37 24.322c0-8.73-7-15.786-15.635-15.786-8.627 0-15.632 7.055-15.632 15.786 0 8.72 7.005 15.795 15.632 15.795 8.635 0 15.635-7.075 15.635-15.795m-1.924 83.212V48.97c0-1.112-.897-2.021-2.006-2.021h-24.169c-1.109 0-2.1 1.144-2.1 2.256v83.905c0 2.466 1.536 3.199 3.525 3.199h21.775c2.39 0 2.975-1.173 2.975-3.239zM413.162 46.95h-24.06c-1.104 0-2.002.909-2.002 2.028v62.21s-6.112 4.472-14.788 4.472-10.977-3.937-10.977-12.431v-54.25c0-1.12-.897-2.03-2.001-2.03h-24.419c-1.102 0-2.005.91-2.005 2.03v58.358c0 25.23 14.063 31.403 33.408 31.403 15.87 0 28.665-8.767 28.665-8.767s.61 4.62.885 5.168c.276.547.994 1.098 1.77 1.098l15.535-.068c1.102 0 2.005-.911 2.005-2.025l-.008-85.168c0-1.119-.9-2.028-2.008-2.028m55.435 68.758c-8.345-.254-14.006-4.041-14.006-4.041V71.488s5.585-3.423 12.436-4.035c8.664-.776 17.013 1.841 17.013 22.51 0 21.795-3.768 26.096-15.443 25.744m9.49-71.483c-13.665 0-22.96 6.097-22.96 6.097V7.359a2.01 2.01 0 0 0-2-2.024h-24.315a2.013 2.013 0 0 0-2.004 2.024v126.872c0 1.12.898 2.03 2.007 2.03h16.87c.76 0 1.335-.39 1.76-1.077.419-.682 1.024-5.85 1.024-5.85s9.942 9.422 28.763 9.422c22.096 0 34.768-11.208 34.768-50.315s-20.238-44.217-33.913-44.217M212.229 46.73h-18.187l-.028-24.027c0-.909-.468-1.364-1.52-1.364H167.71c-.964 0-1.481.424-1.481 1.35v24.83s-12.42 2.998-13.26 3.24a2.01 2.01 0 0 0-1.452 1.934v15.603c0 1.122.896 2.027 2.005 2.027h12.707v37.536c0 27.88 19.556 30.619 32.753 30.619 6.03 0 13.243-1.937 14.434-2.376.72-.265 1.138-1.01 1.138-1.82l.02-17.164c0-1.119-.945-2.025-2.01-2.025-1.06 0-3.77.431-6.562.431-8.933 0-11.96-4.154-11.96-9.53l-.001-35.67h18.188a2.014 2.014 0 0 0 2.006-2.028V48.753c0-1.12-.897-2.022-2.006-2.022"})}),kJe=e=>y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 512 192",...e,children:y.jsx("path",{fill:"#00ACD7",d:"m292.533 13.295 1.124.75c13.212 8.725 22.685 20.691 28.917 35.15 1.496 2.243.499 3.49-2.493 4.237l-5.063 1.296c-11.447 2.949-20.53 5.429-31.827 8.378l-6.443 1.678c-2.32.574-2.96.333-5.428-2.477l-.348-.399c-3.519-3.988-6.155-6.652-10.817-9.03l-.899-.443c-15.705-7.727-30.911-5.484-45.12 3.74-16.952 10.968-25.677 27.172-25.428 47.364.25 19.942 13.96 36.395 33.654 39.137 16.951 2.244 31.16-3.739 42.378-16.452 2.244-2.743 4.238-5.734 6.73-9.224H223.36c-5.235 0-6.481-3.24-4.736-7.478l.864-2.035c3.204-7.454 8.173-18.168 11.4-24.294l.704-1.319c.862-1.494 2.612-3.513 5.977-3.513h80.224c3.603-11.415 9.449-22.201 17.246-32.407 18.198-23.931 40.135-36.396 69.8-41.63 25.427-4.488 49.359-1.995 71.046 12.713 19.694 13.461 31.909 31.66 35.15 55.59 4.237 33.654-5.485 61.075-28.668 84.508-16.453 16.702-36.645 27.172-59.829 31.908-6.73 1.247-13.461 1.496-19.942 2.244-22.685-.499-43.376-6.98-60.826-21.937-12.273-10.61-20.727-23.648-24.928-38.828a105 105 0 0 1-10.47 16.89c-17.949 23.683-41.381 38.39-71.046 42.38-24.43 3.24-47.115-1.497-67.058-16.454-18.447-13.96-28.917-32.407-31.66-55.34-3.24-27.173 4.737-51.603 21.19-73.041 17.7-23.184 41.132-37.891 69.8-43.126 22.999-4.16 45.037-1.595 64.936 11.464M411.12 49.017l-.798.178c-23.183 5.235-38.14 19.942-43.624 43.375-4.488 19.444 4.985 39.138 22.934 47.115 13.71 5.983 27.421 5.235 40.633-1.496 19.694-10.22 30.413-26.175 31.66-47.613-.25-3.24-.25-5.734-.749-8.227-4.436-24.401-26.664-38.324-50.056-33.332M116.416 94.564c.997 0 1.496.748 1.496 1.745l-.499 5.983c0 .997-.997 1.745-1.745 1.745l-54.344-.249c-.997 0-1.246-.748-.748-1.496l3.49-6.232c.499-.748 1.496-1.496 2.493-1.496zM121.9 71.63c.997 0 1.496.748 1.247 1.496l-1.995 5.983c-.249.997-1.246 1.495-2.243 1.495l-117.912.25c-.997 0-1.246-.499-.748-1.247l5.235-6.73c.499-.748 1.745-1.247 2.742-1.247zm12.963-22.934c.997 0 1.246.748.748 1.496l-4.238 6.481c-.499.748-1.745 1.496-2.493 1.496l-90.24-.25c-.998 0-1.247-.498-.749-1.246l5.235-6.73c.499-.748 1.745-1.247 2.742-1.247z"})}),_Je=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 279",...e,children:[y.jsx("defs",{children:y.jsxs("linearGradient",{id:"Grafana_svg__a",x1:"49.995%",x2:"49.995%",y1:"122.45%",y2:"31.139%",children:[y.jsx("stop",{offset:"0%",stopColor:"#FFF100"}),y.jsx("stop",{offset:"100%",stopColor:"#F05A28"})]})}),y.jsx("path",{fill:"url(#Grafana_svg__a)",d:"M255.59 122.775c-.46-4.675-1.226-10.04-2.759-16.017a98 98 0 0 0-7.204-19.16 106.7 106.7 0 0 0-13.412-20.54c-2.222-2.681-4.675-5.287-7.28-7.816 3.908-15.558-4.752-29.046-4.752-29.046-14.945-.92-24.448 4.675-27.973 7.204-.613-.23-1.15-.537-1.763-.767-2.529-.996-5.135-1.992-7.894-2.835a130 130 0 0 0-8.277-2.3c-2.835-.69-5.67-1.226-8.583-1.686-.537-.076-.996-.153-1.533-.23C157.646 8.738 138.946 0 138.946 0c-20.922 13.258-24.831 31.805-24.831 31.805s-.077.383-.23 1.073c-1.15.307-2.299.69-3.449.996-1.609.46-3.218 1.073-4.751 1.686a123 123 0 0 0-4.752 1.916 117 117 0 0 0-9.35 4.599c-2.989 1.686-5.9 3.525-8.737 5.441l-.766-.307c-28.97-11.036-54.643 2.223-54.643 2.223-2.376 30.809 11.572 50.198 14.331 53.724-.69 1.916-1.303 3.832-1.916 5.748-2.146 6.974-3.755 14.101-4.751 21.535-.154 1.073-.307 2.146-.384 3.219C7.894 146.916 0 173.97 0 173.97c22.302 25.674 48.359 27.283 48.359 27.283l.077-.076c3.295 5.9 7.127 11.495 11.419 16.783a112 112 0 0 0 5.671 6.362c-8.124 23.298 1.15 42.61 1.15 42.61 24.83.92 41.155-10.882 44.603-13.564a85 85 0 0 0 7.511 2.222 109.7 109.7 0 0 0 23.298 3.449c1.916.076 3.909.153 5.825.076h2.759l1.226-.076v.076c11.726 16.708 32.265 19.084 32.265 19.084 14.638-15.405 15.48-30.733 15.48-34.028v-1.38c3.066-2.145 5.979-4.445 8.738-6.974 5.824-5.288 10.959-11.342 15.25-17.857l1.15-1.839c16.554.92 28.28-10.27 28.28-10.27-2.759-17.243-12.569-25.673-14.638-27.283 0 0-.077-.076-.23-.153s-.153-.153-.153-.153c-.077-.077-.23-.154-.383-.23.076-1.073.153-2.07.23-3.142.153-1.84.153-3.756.153-5.595v-2.913l-.077-1.149-.076-1.533c0-.536-.077-.996-.154-1.456-.076-.46-.076-.996-.153-1.456l-.153-1.456-.23-1.456c-.307-1.916-.613-3.756-1.073-5.672-1.763-7.433-4.675-14.484-8.43-20.845a70.4 70.4 0 0 0-14.025-16.707c-5.365-4.752-11.42-8.584-17.704-11.42-6.36-2.835-12.952-4.675-19.543-5.518-3.295-.46-6.59-.613-9.886-.536h-2.453l-1.226.077c-.46 0-.92.076-1.303.076a52 52 0 0 0-4.981.69c-6.591 1.226-12.799 3.602-18.24 6.897s-10.193 7.358-14.025 11.956a54.7 54.7 0 0 0-8.89 15.021 52.9 52.9 0 0 0-3.525 16.094c-.077 1.303-.077 2.683-.077 3.986v.996l.077 1.073c.076.613.076 1.303.153 1.916.23 2.682.766 5.288 1.456 7.74 1.456 4.982 3.755 9.503 6.59 13.335s6.285 6.975 9.887 9.504c3.602 2.452 7.51 4.215 11.343 5.364 3.832 1.15 7.664 1.61 11.266 1.61h1.993c.23 0 .46 0 .689-.077.383 0 .766-.077 1.15-.077.076 0 .23 0 .306-.076l.383-.077c.23 0 .46-.076.69-.076.46-.077.843-.154 1.303-.23s.843-.154 1.226-.307c.843-.153 1.61-.46 2.376-.69 1.533-.536 3.066-1.15 4.368-1.839 1.38-.69 2.606-1.533 3.832-2.3.307-.23.69-.459.997-.766 1.226-.996 1.456-2.835.46-4.061-.844-1.073-2.376-1.38-3.603-.69l-.92.46a25 25 0 0 1-3.295 1.38c-1.15.382-2.375.689-3.602.919-.613.076-1.226.153-1.916.23-.306 0-.613.076-.996.076h-1.84c-.383 0-.766 0-1.149-.076h-.46c-.153 0-.383 0-.536-.077-.383-.077-.69-.077-1.073-.153-2.836-.383-5.671-1.226-8.354-2.453a29.3 29.3 0 0 1-7.74-5.058c-2.376-2.146-4.445-4.675-6.055-7.587s-2.759-6.131-3.295-9.503c-.23-1.686-.383-3.449-.307-5.135 0-.46.077-.92.077-1.38v-.613c0-.23.077-.46.077-.69.076-.919.23-1.839.383-2.758 1.303-7.358 4.981-14.562 10.653-20.003 1.456-1.38 2.988-2.606 4.598-3.755a31.7 31.7 0 0 1 5.211-2.99 36 36 0 0 1 5.672-2.068c1.915-.537 3.908-.844 5.977-1.073.997-.077 1.993-.154 3.066-.154h2.376l.843.077c2.222.153 4.368.46 6.514.996 4.292.92 8.507 2.53 12.415 4.675 7.818 4.369 14.485 11.113 18.547 19.237 2.07 4.061 3.525 8.43 4.215 12.951.153 1.15.307 2.3.383 3.45l.077.842.077.843v3.296c0 .536-.077 1.456-.077 1.992-.077 1.227-.23 2.53-.383 3.756s-.383 2.452-.613 3.678a50 50 0 0 1-.843 3.602 64 64 0 0 1-2.3 7.128 62.4 62.4 0 0 1-7.204 13.105c-5.9 8.124-13.948 14.715-23.144 18.93-4.599 2.069-9.427 3.602-14.408 4.368-2.453.46-4.982.69-7.511.766h-3.832a36 36 0 0 1-4.062-.23c-5.365-.383-10.653-1.379-15.864-2.835-5.135-1.456-10.116-3.525-14.868-5.978-9.427-5.058-17.933-11.956-24.524-20.31a79 79 0 0 1-8.584-13.334 79 79 0 0 1-5.671-14.638c-1.38-5.058-2.223-10.193-2.606-15.405l-.077-.996v-6.821c.077-2.529.307-5.211.614-7.817.306-2.606.766-5.288 1.302-7.894.537-2.605 1.15-5.211 1.916-7.817a103 103 0 0 1 5.442-14.791c4.368-9.35 10.04-17.704 16.86-24.371 1.686-1.686 3.449-3.22 5.288-4.752a78 78 0 0 1 5.748-4.138c1.916-1.303 3.985-2.453 6.055-3.526a40 40 0 0 1 3.142-1.533l3.219-1.379c2.146-.92 4.368-1.686 6.667-2.376.537-.153 1.15-.306 1.686-.536.537-.154 1.15-.307 1.686-.46 1.15-.307 2.3-.613 3.45-.843.536-.153 1.149-.23 1.762-.383.613-.154 1.15-.23 1.763-.384.613-.076 1.15-.23 1.762-.306l.843-.153.92-.154c.613-.076 1.15-.153 1.763-.23.69-.076 1.302-.153 1.992-.23.537-.076 1.456-.153 1.993-.23.383-.076.843-.076 1.226-.153l.843-.076.383-.077h.46c.69-.077 1.303-.077 1.993-.153l.996-.077h.767c.536 0 1.149-.076 1.685-.076a99 99 0 0 1 6.745 0c4.445.153 8.813.69 13.028 1.456 8.507 1.61 16.478 4.291 23.758 7.893 7.28 3.526 13.719 7.894 19.39 12.646.383.306.69.613 1.073.92.306.306.69.613.996.92.69.612 1.303 1.225 1.993 1.838.69.614 1.303 1.227 1.916 1.84a44 44 0 0 1 1.839 1.916c2.376 2.529 4.598 5.058 6.59 7.664a99 99 0 0 1 9.734 15.25l.46.92.46.92c.306.613.613 1.226.843 1.84.306.613.536 1.149.843 1.762.23.613.536 1.15.766 1.763.92 2.299 1.84 4.521 2.53 6.59 1.149 3.373 1.992 6.362 2.682 8.967a2.043 2.043 0 0 0 2.299 1.61c1.15-.077 1.992-.996 1.992-2.146.077-2.759 0-6.054-.383-9.81"})]}),SJe=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 346",...e,children:[y.jsx("path",{fill:"#5382A1",d:"M82.554 267.473s-13.198 7.675 9.393 10.272c27.369 3.122 41.356 2.675 71.517-3.034 0 0 7.93 4.972 19.003 9.279-67.611 28.977-153.019-1.679-99.913-16.517M74.292 229.659s-14.803 10.958 7.805 13.296c29.236 3.016 52.324 3.263 92.276-4.43 0 0 5.526 5.602 14.215 8.666-81.747 23.904-172.798 1.885-114.296-17.532"}),y.jsx("path",{fill:"#E76F00",d:"M143.942 165.515c16.66 19.18-4.377 36.44-4.377 36.44s42.301-21.837 22.874-49.183c-18.144-25.5-32.059-38.172 43.268-81.858 0 0-118.238 29.53-61.765 94.6"}),y.jsx("path",{fill:"#5382A1",d:"M233.364 295.442s9.767 8.047-10.757 14.273c-39.026 11.823-162.432 15.393-196.714.471-12.323-5.36 10.787-12.8 18.056-14.362 7.581-1.644 11.914-1.337 11.914-1.337-13.705-9.655-88.583 18.957-38.034 27.15 137.853 22.356 251.292-10.066 215.535-26.195M88.9 190.48s-62.771 14.91-22.228 20.323c17.118 2.292 51.243 1.774 83.03-.89 25.978-2.19 52.063-6.85 52.063-6.85s-9.16 3.923-15.787 8.448c-63.744 16.765-186.886 8.966-151.435-8.183 29.981-14.492 54.358-12.848 54.358-12.848M201.506 253.422c64.8-33.672 34.839-66.03 13.927-61.67-5.126 1.066-7.411 1.99-7.411 1.99s1.903-2.98 5.537-4.27c41.37-14.545 73.187 42.897-13.355 65.647 0 .001 1.003-.895 1.302-1.697"}),y.jsx("path",{fill:"#E76F00",d:"M162.439.371s35.887 35.9-34.037 91.101c-56.071 44.282-12.786 69.53-.023 98.377-32.73-29.53-56.75-55.526-40.635-79.72C111.395 74.612 176.918 57.393 162.439.37"}),y.jsx("path",{fill:"#5382A1",d:"M95.268 344.665c62.199 3.982 157.712-2.209 159.974-31.64 0 0-4.348 11.158-51.404 20.018-53.088 9.99-118.564 8.824-157.399 2.421.001 0 7.95 6.58 48.83 9.201"})]}),EJe=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 249",...e,children:[y.jsx("path",{fill:"#326DE6",d:"M82.085 244.934c-5.946 0-11.561-2.642-15.36-7.432L8.92 165.657c-3.799-4.79-5.285-10.9-3.799-16.847l20.645-89.682c1.321-5.946 5.285-10.736 10.736-13.378l83.571-39.97c2.643-1.32 5.616-1.981 8.589-1.981s5.945.66 8.588 1.982l83.572 39.804c5.45 2.642 9.414 7.432 10.735 13.378l20.645 89.682c1.322 5.946 0 12.057-3.798 16.847l-57.807 71.845c-3.799 4.624-9.414 7.432-15.36 7.432z"}),y.jsx("path",{fill:"#FFF",d:"M128.495 7.928c2.313 0 4.625.495 6.772 1.486l83.572 39.804c4.294 2.147 7.597 6.111 8.588 10.736l20.645 89.682c1.156 4.79 0 9.745-3.138 13.543l-57.806 71.846c-2.973 3.798-7.598 5.945-12.387 5.945H82.085c-4.79 0-9.414-2.147-12.387-5.945l-57.806-71.846c-2.973-3.798-4.13-8.753-3.138-13.543l20.645-89.682c1.156-4.79 4.294-8.754 8.588-10.736L121.56 9.25c2.147-.826 4.624-1.321 6.936-1.321m0-7.763c-3.468 0-6.936.826-10.24 2.312l-83.571 39.97c-6.607 3.138-11.231 8.918-12.883 16.02L1.156 148.15c-1.651 7.102 0 14.369 4.625 20.15l57.806 71.845c4.46 5.615 11.231 8.753 18.333 8.753h92.655c7.102 0 13.874-3.138 18.333-8.753l57.807-71.846c4.624-5.615 6.276-13.047 4.624-20.15l-20.645-89.682c-1.651-7.102-6.276-12.882-12.882-16.02L138.57 2.476C135.432.991 131.964.165 128.495.165"}),y.jsx("path",{fill:"#FFF",d:"M212.232 142.534q-.248 0 0 0h-.165c-.165 0-.33 0-.33-.165-.33 0-.66-.165-.991-.165-1.156-.165-2.147-.33-3.138-.33-.496 0-.991 0-1.652-.166h-.165c-3.468-.33-6.276-.66-8.919-1.486-1.156-.496-1.486-1.156-1.817-1.817 0-.165-.165-.165-.165-.33l-2.147-.66a65.3 65.3 0 0 0-1.156-23.289 68 68 0 0 0-9.249-21.636l1.652-1.486v-.33c0-.826.165-1.652.825-2.478 1.982-1.817 4.46-3.303 7.433-5.12.495-.33.99-.495 1.486-.826.991-.495 1.817-.99 2.808-1.651.165-.165.495-.33.826-.66.165-.166.33-.166.33-.331 2.312-1.982 2.808-5.285 1.156-7.433-.826-1.156-2.312-1.816-3.799-1.816-1.32 0-2.477.495-3.633 1.321l-.33.33c-.33.165-.496.496-.826.661-.826.826-1.487 1.486-2.147 2.312-.33.33-.66.826-1.156 1.156-2.313 2.478-4.46 4.46-6.607 5.946q-.742.495-1.486.496c-.33 0-.661 0-.991-.166h-.33l-1.983 1.322c-2.147-2.312-4.459-4.294-6.771-6.276a65.96 65.96 0 0 0-34.519-13.709l-.165-2.147-.33-.33c-.496-.496-1.156-.991-1.322-2.147-.165-2.643.166-5.616.496-8.919v-.165c0-.496.165-1.156.33-1.652.165-.99.33-1.982.496-3.138v-1.486c0-2.973-2.313-5.45-5.12-5.45-1.322 0-2.643.66-3.634 1.651-.99.991-1.486 2.312-1.486 3.799v1.321c0 1.156.165 2.147.495 3.138.165.496.165.991.33 1.652v.165c.33 3.303.826 6.276.496 8.919-.165 1.156-.826 1.651-1.321 2.147l-.33.33-.166 2.147c-2.973.33-5.946.66-8.919 1.321-12.717 2.808-23.948 9.25-32.701 18.498l-1.652-1.156h-.33c-.33 0-.661.165-.991.165q-.743 0-1.487-.495c-2.147-1.486-4.294-3.634-6.606-6.111-.33-.33-.66-.826-1.156-1.156-.661-.826-1.322-1.487-2.148-2.312-.165-.166-.495-.33-.825-.661-.165-.165-.33-.165-.33-.33a5.77 5.77 0 0 0-3.634-1.322c-1.487 0-2.973.661-3.799 1.817-1.652 2.147-1.156 5.45 1.156 7.432.165 0 .165.166.33.166.33.165.496.495.826.66.991.66 1.817 1.156 2.808 1.652.496.165.991.495 1.487.826 2.972 1.816 5.45 3.303 7.432 5.12.826.825.826 1.651.826 2.477v.33l1.651 1.487c-.33.495-.66.826-.826 1.321-8.258 13.048-11.396 28.408-9.249 43.603l-2.147.66c0 .166-.165.166-.165.33-.33.661-.826 1.322-1.817 1.817-2.477.826-5.45 1.157-8.918 1.487h-.166c-.495 0-1.156 0-1.651.165-.991 0-1.982.165-3.138.33-.33 0-.66.166-.991.166-.165 0-.33 0-.496.165-2.973.66-4.79 3.468-4.294 6.11.496 2.313 2.643 3.8 5.285 3.8.496 0 .826 0 1.322-.166.165 0 .33 0 .33-.165.33 0 .66-.165.99-.165 1.157-.33 1.983-.66 2.974-1.156.495-.165.99-.496 1.486-.66h.165c3.138-1.157 5.946-2.148 8.589-2.478h.33c.991 0 1.652.495 2.147.826.165 0 .165.165.33.165l2.313-.33c3.964 12.221 11.561 23.122 21.636 31.05 2.312 1.816 4.624 3.303 7.102 4.79l-.991 2.146c0 .166.165.166.165.33.33.661.66 1.487.33 2.643-.99 2.478-2.477 4.955-4.294 7.763v.165c-.33.496-.66.826-.99 1.321-.661.826-1.157 1.652-1.818 2.643-.165.165-.33.495-.495.826 0 .165-.165.33-.165.33-1.321 2.808-.33 5.946 2.147 7.102q.99.496 1.982.496c1.982 0 3.964-1.322 4.955-3.139 0-.165.165-.33.165-.33.165-.33.33-.66.495-.826.496-1.156.661-1.982.991-2.973l.496-1.486c1.156-3.303 1.982-5.946 3.468-8.258.66-.991 1.487-1.156 2.147-1.487.165 0 .165 0 .33-.165l1.157-2.147c7.267 2.808 15.195 4.294 23.122 4.294 4.79 0 9.745-.495 14.37-1.651a73 73 0 0 0 8.588-2.478l.99 1.817c.166 0 .166 0 .331.165.826.165 1.486.496 2.147 1.487 1.321 2.312 2.312 5.12 3.468 8.258v.165l.496 1.486c.33.991.495 1.982.99 2.973.166.33.331.496.496.826 0 .165.166.33.166.33.99 1.982 2.972 3.139 4.954 3.139q.992 0 1.982-.496c1.156-.66 2.147-1.652 2.478-2.973.33-1.321.33-2.808-.33-4.129 0-.165-.166-.165-.166-.33-.165-.33-.33-.66-.495-.826-.496-.991-1.156-1.817-1.817-2.643-.33-.495-.66-.825-.99-1.32v-.166c-1.818-2.808-3.47-5.285-4.295-7.763-.33-1.156 0-1.816.165-2.642 0-.165.165-.165.165-.33l-.826-1.982c8.754-5.12 16.186-12.388 21.802-21.306 2.973-4.625 5.285-9.745 6.936-14.865l1.982.33c.166 0 .166-.165.33-.165.661-.33 1.157-.825 2.148-.825h.33c2.643.33 5.45 1.32 8.589 2.477h.165c.495.165.99.495 1.486.66.991.496 1.817.826 2.973 1.157.33 0 .66.165.991.165.165 0 .33 0 .495.165.496.165.826.165 1.322.165 2.477 0 4.624-1.651 5.285-3.798 0-1.982-1.817-4.625-4.79-5.45m-76.47-8.093-7.267 3.469-7.267-3.469-1.816-7.762 4.954-6.276h8.093l4.955 6.276zm43.108-17.176a52.1 52.1 0 0 1 1.156 16.68l-25.27-7.266c-2.312-.66-3.633-2.973-3.138-5.285.165-.661.496-1.322.991-1.817l19.985-18.003c2.807 4.625 4.954 9.91 6.276 15.69m-14.204-25.6-21.636 15.36c-1.817 1.156-4.295.825-5.781-.991-.495-.496-.66-1.157-.826-1.817l-1.486-26.922a50.13 50.13 0 0 1 29.729 14.37M116.769 78.12c1.817-.33 3.468-.66 5.285-.99l-1.486 26.425c-.165 2.312-1.982 4.294-4.46 4.294-.66 0-1.486-.165-1.982-.495L92.16 91.665c6.772-6.772 15.195-11.397 24.609-13.544m-32.537 23.453 19.654 17.507c1.817 1.487 1.982 4.294.496 6.111-.496.66-1.156 1.156-1.982 1.322l-25.6 7.432c-.991-11.231 1.486-22.627 7.432-32.372m-4.46 44.759 26.262-4.46c2.147-.165 4.129 1.322 4.624 3.469.165.99.165 1.817-.165 2.643l-10.075 24.278c-9.249-5.946-16.681-15.03-20.645-25.93m60.285 32.867c-3.799.826-7.598 1.321-11.562 1.321-5.78 0-11.396-.99-16.68-2.642l13.047-23.618c1.321-1.487 3.468-2.147 5.285-1.156a7 7 0 0 1 1.982 1.816l12.717 22.958c-1.486.495-3.138.826-4.79 1.321m32.206-22.957c-4.129 6.606-9.58 11.891-15.855 16.02l-10.405-24.94c-.496-1.981.33-4.128 2.312-5.12.66-.33 1.486-.495 2.312-.495l26.426 4.46c-.991 3.633-2.643 6.937-4.79 10.075"})]}),CJe=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 291",...e,children:[y.jsx("path",{fill:"#009639",d:"M2.054 218.187c1.32 2.347 3.227 4.108 5.575 5.428l112.962 65.137c4.695 2.787 10.416 2.787 14.964 0l112.963-65.137c4.695-2.64 7.482-7.629 7.482-13.057V80.284c0-5.428-2.787-10.416-7.482-13.056L135.555 2.09c-4.694-2.788-10.416-2.788-14.964 0L7.63 67.228C2.787 69.868 0 74.856 0 80.284v130.42c0 2.642.587 5.136 2.054 7.483"}),y.jsx("path",{fill:"#FFF",d:"M91.837 195.154a14.463 14.463 0 0 1-14.524 14.524 14.463 14.463 0 0 1-14.523-14.524V95.542c0-7.776 6.895-14.084 16.43-14.084 6.896 0 14.965 2.787 19.806 8.802l4.4 5.282 60.737 72.618V95.835a14.463 14.463 0 0 1 14.524-14.524 14.463 14.463 0 0 1 14.523 14.524v99.613c0 7.775-6.895 14.083-16.43 14.083-6.896 0-14.965-2.787-19.806-8.802l-65.137-77.754z"})]}),$Je=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 264",...e,children:[y.jsx("path",{d:"M255.008 158.086c-1.535-4.649-5.556-7.887-10.756-8.664-2.452-.366-5.26-.21-8.583.475-5.792 1.195-10.089 1.65-13.225 1.738 11.837-19.985 21.462-42.775 27.003-64.228 8.96-34.689 4.172-50.492-1.423-57.64C233.217 10.847 211.614.683 185.552.372c-13.903-.17-26.108 2.575-32.475 4.549-5.928-1.046-12.302-1.63-18.99-1.738-12.537-.2-23.614 2.533-33.079 8.15-5.24-1.772-13.65-4.27-23.362-5.864-22.842-3.75-41.252-.828-54.718 8.685C6.622 25.672-.937 45.684.461 73.634c.444 8.874 5.408 35.874 13.224 61.48 4.492 14.718 9.282 26.94 14.237 36.33 7.027 13.315 14.546 21.156 22.987 23.972 4.731 1.576 13.327 2.68 22.368-4.85 1.146 1.388 2.675 2.767 4.704 4.048 2.577 1.625 5.728 2.953 8.875 3.74 11.341 2.835 21.964 2.126 31.027-1.848.056 1.612.099 3.152.135 4.482.06 2.157.12 4.272.199 6.25.537 13.374 1.447 23.773 4.143 31.049.148.4.347 1.01.557 1.657 1.345 4.118 3.594 11.012 9.316 16.411 5.925 5.593 13.092 7.308 19.656 7.308 3.292 0 6.433-.432 9.188-1.022 9.82-2.105 20.973-5.311 29.041-16.799 7.628-10.86 11.336-27.217 12.007-52.99q.13-1.094.244-2.088l.16-1.362 1.797.158.463.031c10.002.456 22.232-1.665 29.743-5.154 5.935-2.754 24.954-12.795 20.476-26.351"}),y.jsx("path",{fill:"#336791",d:"M237.906 160.722c-29.74 6.135-31.785-3.934-31.785-3.934 31.4-46.593 44.527-105.736 33.2-120.211-30.904-39.485-84.399-20.811-85.292-20.327l-.287.052c-5.876-1.22-12.451-1.946-19.842-2.067-13.456-.22-23.664 3.528-31.41 9.402 0 0-95.43-39.314-90.991 49.444.944 18.882 27.064 142.873 58.218 105.422 11.387-13.695 22.39-25.274 22.39-25.274 5.464 3.63 12.006 5.482 18.864 4.817l.533-.452c-.166 1.7-.09 3.363.213 5.332-8.026 8.967-5.667 10.541-21.711 13.844-16.235 3.346-6.698 9.302-.471 10.86 7.549 1.887 25.013 4.561 36.813-11.958l-.47 1.885c3.144 2.519 5.352 16.383 4.982 28.952-.37 12.568-.617 21.197 1.86 27.937 2.479 6.74 4.948 21.905 26.04 17.386 17.623-3.777 26.756-13.564 28.027-29.89.901-11.606 2.942-9.89 3.07-20.267l1.637-4.912c1.887-15.733.3-20.809 11.157-18.448l2.64.232c7.99.363 18.45-1.286 24.589-4.139 13.218-6.134 21.058-16.377 8.024-13.686z"}),y.jsx("path",{fill:"#FFF",d:"M108.076 81.525c-2.68-.373-5.107-.028-6.335.902-.69.523-.904 1.129-.962 1.546-.154 1.105.62 2.327 1.096 2.957 1.346 1.784 3.312 3.01 5.258 3.28q.423.059.842.058c3.245 0 6.196-2.527 6.456-4.392.325-2.336-3.066-3.893-6.355-4.35M196.86 81.599c-.256-1.831-3.514-2.353-6.606-1.923-3.088.43-6.082 1.824-5.832 3.659.2 1.427 2.777 3.863 5.827 3.863q.387 0 .78-.054c2.036-.282 3.53-1.575 4.24-2.32 1.08-1.136 1.706-2.402 1.591-3.225"}),y.jsx("path",{fill:"#FFF",d:"M247.802 160.025c-1.134-3.429-4.784-4.532-10.848-3.28-18.005 3.716-24.453 1.142-26.57-.417 13.995-21.32 25.508-47.092 31.719-71.137 2.942-11.39 4.567-21.968 4.7-30.59.147-9.463-1.465-16.417-4.789-20.665-13.402-17.125-33.072-26.311-56.882-26.563-16.369-.184-30.199 4.005-32.88 5.183-5.646-1.404-11.801-2.266-18.502-2.376-12.288-.199-22.91 2.743-31.704 8.74-3.82-1.422-13.692-4.811-25.765-6.756-20.872-3.36-37.458-.814-49.294 7.571-14.123 10.006-20.643 27.892-19.38 53.16.425 8.501 5.269 34.653 12.913 59.698 10.062 32.964 21 51.625 32.508 55.464 1.347.449 2.9.763 4.613.763 4.198 0 9.345-1.892 14.7-8.33a530 530 0 0 1 20.261-22.926c4.524 2.428 9.494 3.784 14.577 3.92q.016.2.035.398a118 118 0 0 0-2.57 3.175c-3.522 4.471-4.255 5.402-15.592 7.736-3.225.666-11.79 2.431-11.916 8.435-.136 6.56 10.125 9.315 11.294 9.607 4.074 1.02 7.999 1.523 11.742 1.523 9.103 0 17.114-2.992 23.516-8.781-.197 23.386.778 46.43 3.586 53.451 2.3 5.748 7.918 19.795 25.664 19.794 2.604 0 5.47-.303 8.623-.979 18.521-3.97 26.564-12.156 29.675-30.203 1.665-9.645 4.522-32.676 5.866-45.03 2.836.885 6.487 1.29 10.434 1.289 8.232 0 17.731-1.749 23.688-4.514 6.692-3.108 18.768-10.734 16.578-17.36m-44.106-83.48c-.061 3.647-.563 6.958-1.095 10.414-.573 3.717-1.165 7.56-1.314 12.225-.147 4.54.42 9.26.968 13.825 1.108 9.22 2.245 18.712-2.156 28.078a37 37 0 0 1-1.95-4.009c-.547-1.326-1.735-3.456-3.38-6.404-6.399-11.476-21.384-38.35-13.713-49.316 2.285-3.264 8.084-6.62 22.64-4.813m-17.644-61.787c21.334.471 38.21 8.452 50.158 23.72 9.164 11.711-.927 64.998-30.14 110.969a171 171 0 0 0-.886-1.117l-.37-.462c7.549-12.467 6.073-24.802 4.759-35.738-.54-4.488-1.05-8.727-.92-12.709.134-4.22.692-7.84 1.232-11.34.663-4.313 1.338-8.776 1.152-14.037.139-.552.195-1.204.122-1.978-.475-5.045-6.235-20.144-17.975-33.81-6.422-7.475-15.787-15.84-28.574-21.482 5.5-1.14 13.021-2.203 21.442-2.016M66.674 175.778c-5.9 7.094-9.974 5.734-11.314 5.288-8.73-2.912-18.86-21.364-27.791-50.624-7.728-25.318-12.244-50.777-12.602-57.916-1.128-22.578 4.345-38.313 16.268-46.769 19.404-13.76 51.306-5.524 64.125-1.347-.184.182-.376.352-.558.537-21.036 21.244-20.537 57.54-20.485 59.759-.002.856.07 2.068.168 3.735.362 6.105 1.036 17.467-.764 30.334-1.672 11.957 2.014 23.66 10.111 32.109a36 36 0 0 0 2.617 2.468c-3.604 3.86-11.437 12.396-19.775 22.426m22.479-29.993c-6.526-6.81-9.49-16.282-8.133-25.99 1.9-13.592 1.199-25.43.822-31.79-.053-.89-.1-1.67-.127-2.285 3.073-2.725 17.314-10.355 27.47-8.028 4.634 1.061 7.458 4.217 8.632 9.645 6.076 28.103.804 39.816-3.432 49.229-.873 1.939-1.698 3.772-2.402 5.668l-.546 1.466c-1.382 3.706-2.668 7.152-3.465 10.424-6.938-.02-13.687-2.984-18.819-8.34m1.065 37.9c-2.026-.506-3.848-1.385-4.917-2.114.893-.42 2.482-.992 5.238-1.56 13.337-2.745 15.397-4.683 19.895-10.394 1.031-1.31 2.2-2.794 3.819-4.602l.002-.002c2.411-2.7 3.514-2.242 5.514-1.412 1.621.67 3.2 2.702 3.84 4.938.303 1.056.643 3.06-.47 4.62-9.396 13.156-23.088 12.987-32.921 10.526m69.799 64.952c-16.316 3.496-22.093-4.829-25.9-14.346-2.457-6.144-3.665-33.85-2.808-64.447.011-.407-.047-.8-.159-1.17a15.4 15.4 0 0 0-.456-2.162c-1.274-4.452-4.379-8.176-8.104-9.72-1.48-.613-4.196-1.738-7.46-.903.696-2.868 1.903-6.107 3.212-9.614l.549-1.475c.618-1.663 1.394-3.386 2.214-5.21 4.433-9.848 10.504-23.337 3.915-53.81-2.468-11.414-10.71-16.988-23.204-15.693-7.49.775-14.343 3.797-17.761 5.53-.735.372-1.407.732-2.035 1.082.954-11.5 4.558-32.992 18.04-46.59 8.489-8.56 19.794-12.788 33.568-12.56 27.14.444 44.544 14.372 54.366 25.979 8.464 10.001 13.047 20.076 14.876 25.51-13.755-1.399-23.11 1.316-27.852 8.096-10.317 14.748 5.644 43.372 13.315 57.129 1.407 2.521 2.621 4.7 3.003 5.626 2.498 6.054 5.732 10.096 8.093 13.046.724.904 1.426 1.781 1.96 2.547-4.166 1.201-11.649 3.976-10.967 17.847-.55 6.96-4.461 39.546-6.448 51.059-2.623 15.21-8.22 20.875-23.957 24.25m68.104-77.936c-4.26 1.977-11.389 3.46-18.161 3.779-7.48.35-11.288-.838-12.184-1.569-.42-8.644 2.797-9.547 6.202-10.503.535-.15 1.057-.297 1.561-.473q.469.383 1.032.756c6.012 3.968 16.735 4.396 31.874 1.271l.166-.033c-2.042 1.909-5.536 4.471-10.49 6.772"})]}),zJe=e=>y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 257",...e,children:y.jsx("path",{fill:"#DA4E31",d:"M128.001.667C57.311.667 0 57.971 0 128.664c0 70.69 57.311 127.998 128.001 127.998S256 199.354 256 128.664C256 57.97 198.689.667 128.001.667m0 239.56c-20.112 0-36.419-13.435-36.419-30.004h72.838c0 16.566-16.306 30.004-36.419 30.004m60.153-39.94H67.842V178.47h120.314v21.816zm-.432-33.045H68.185c-.398-.458-.804-.91-1.188-1.375-12.315-14.954-15.216-22.76-18.032-30.716-.048-.262 14.933 3.06 25.556 5.45 0 0 5.466 1.265 13.458 2.722-7.673-8.994-12.23-20.428-12.23-32.116 0-25.658 19.68-48.079 12.58-66.201 6.91.562 14.3 14.583 14.8 36.505 7.346-10.152 10.42-28.69 10.42-40.056 0-11.769 7.755-25.44 15.512-25.907-6.915 11.396 1.79 21.165 9.53 45.4 2.902 9.103 2.532 24.423 4.772 34.138.744-20.178 4.213-49.62 17.014-59.784-5.647 12.8.836 28.818 5.27 36.518 7.154 12.424 11.49 21.836 11.49 39.638 0 11.936-4.407 23.173-11.84 31.958 8.452-1.586 14.289-3.016 14.289-3.016l27.45-5.355c.002-.002-3.987 16.401-19.314 32.197"})}),RJe=e=>y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 228",...e,children:y.jsx("path",{fill:"#00D8FF",d:"M210.483 73.824a172 172 0 0 0-8.24-2.597c.465-1.9.893-3.777 1.273-5.621 6.238-30.281 2.16-54.676-11.769-62.708-13.355-7.7-35.196.329-57.254 19.526a171 171 0 0 0-6.375 5.848 156 156 0 0 0-4.241-3.917C100.759 3.829 77.587-4.822 63.673 3.233 50.33 10.957 46.379 33.89 51.995 62.588a171 171 0 0 0 1.892 8.48c-3.28.932-6.445 1.924-9.474 2.98C17.309 83.498 0 98.307 0 113.668c0 15.865 18.582 31.778 46.812 41.427a146 146 0 0 0 6.921 2.165 168 168 0 0 0-2.01 9.138c-5.354 28.2-1.173 50.591 12.134 58.266 13.744 7.926 36.812-.22 59.273-19.855a146 146 0 0 0 5.342-4.923 168 168 0 0 0 6.92 6.314c21.758 18.722 43.246 26.282 56.54 18.586 13.731-7.949 18.194-32.003 12.4-61.268a145 145 0 0 0-1.535-6.842c1.62-.48 3.21-.974 4.76-1.488 29.348-9.723 48.443-25.443 48.443-41.52 0-15.417-17.868-30.326-45.517-39.844m-6.365 70.984c-1.4.463-2.836.91-4.3 1.345-3.24-10.257-7.612-21.163-12.963-32.432 5.106-11 9.31-21.767 12.459-31.957 2.619.758 5.16 1.557 7.61 2.4 23.69 8.156 38.14 20.213 38.14 29.504 0 9.896-15.606 22.743-40.946 31.14m-10.514 20.834c2.562 12.94 2.927 24.64 1.23 33.787-1.524 8.219-4.59 13.698-8.382 15.893-8.067 4.67-25.32-1.4-43.927-17.412a157 157 0 0 1-6.437-5.87c7.214-7.889 14.423-17.06 21.459-27.246 12.376-1.098 24.068-2.894 34.671-5.345q.785 3.162 1.386 6.193M87.276 214.515c-7.882 2.783-14.16 2.863-17.955.675-8.075-4.657-11.432-22.636-6.853-46.752a157 157 0 0 1 1.869-8.499c10.486 2.32 22.093 3.988 34.498 4.994 7.084 9.967 14.501 19.128 21.976 27.15a135 135 0 0 1-4.877 4.492c-9.933 8.682-19.886 14.842-28.658 17.94M50.35 144.747c-12.483-4.267-22.792-9.812-29.858-15.863-6.35-5.437-9.555-10.836-9.555-15.216 0-9.322 13.897-21.212 37.076-29.293 2.813-.98 5.757-1.905 8.812-2.773 3.204 10.42 7.406 21.315 12.477 32.332-5.137 11.18-9.399 22.249-12.634 32.792a135 135 0 0 1-6.318-1.979m12.378-84.26c-4.811-24.587-1.616-43.134 6.425-47.789 8.564-4.958 27.502 2.111 47.463 19.835a144 144 0 0 1 3.841 3.545c-7.438 7.987-14.787 17.08-21.808 26.988-12.04 1.116-23.565 2.908-34.161 5.309a160 160 0 0 1-1.76-7.887m110.427 27.268a348 348 0 0 0-7.785-12.803c8.168 1.033 15.994 2.404 23.343 4.08-2.206 7.072-4.956 14.465-8.193 22.045a381 381 0 0 0-7.365-13.322m-45.032-43.861c5.044 5.465 10.096 11.566 15.065 18.186a322 322 0 0 0-30.257-.006c4.974-6.559 10.069-12.652 15.192-18.18M82.802 87.83a323 323 0 0 0-7.227 13.238c-3.184-7.553-5.909-14.98-8.134-22.152 7.304-1.634 15.093-2.97 23.209-3.984a322 322 0 0 0-7.848 12.897m8.081 65.352c-8.385-.936-16.291-2.203-23.593-3.793 2.26-7.3 5.045-14.885 8.298-22.6a321 321 0 0 0 7.257 13.246c2.594 4.48 5.28 8.868 8.038 13.147m37.542 31.03c-5.184-5.592-10.354-11.779-15.403-18.433 4.902.192 9.899.29 14.978.29 5.218 0 10.376-.117 15.453-.343-4.985 6.774-10.018 12.97-15.028 18.486m52.198-57.817c3.422 7.8 6.306 15.345 8.596 22.52-7.422 1.694-15.436 3.058-23.88 4.071a382 382 0 0 0 7.859-13.026 347 347 0 0 0 7.425-13.565m-16.898 8.101a359 359 0 0 1-12.281 19.815 329 329 0 0 1-23.444.823c-7.967 0-15.716-.248-23.178-.732a310 310 0 0 1-12.513-19.846h.001a307 307 0 0 1-10.923-20.627 310 310 0 0 1 10.89-20.637l-.001.001a307 307 0 0 1 12.413-19.761c7.613-.576 15.42-.876 23.31-.876H128c7.926 0 15.743.303 23.354.883a329 329 0 0 1 12.335 19.695 359 359 0 0 1 11.036 20.54 330 330 0 0 1-11 20.722m22.56-122.124c8.572 4.944 11.906 24.881 6.52 51.026q-.518 2.504-1.15 5.09c-10.622-2.452-22.155-4.275-34.23-5.408-7.034-10.017-14.323-19.124-21.64-27.008a161 161 0 0 1 5.888-5.4c18.9-16.447 36.564-22.941 44.612-18.3M128 90.808c12.625 0 22.86 10.235 22.86 22.86s-10.235 22.86-22.86 22.86-22.86-10.235-22.86-22.86 10.235-22.86 22.86-22.86"})}),TJe=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 220",...e,children:[y.jsx("path",{fill:"#912626",d:"M245.97 168.943c-13.662 7.121-84.434 36.22-99.501 44.075s-23.437 7.78-35.34 2.09c-11.902-5.69-87.216-36.112-100.783-42.597C3.566 169.271 0 166.535 0 163.951v-25.876s98.05-21.345 113.879-27.024c15.828-5.679 21.32-5.884 34.79-.95 13.472 4.936 94.018 19.468 107.331 24.344l-.006 25.51c.002 2.558-3.07 5.364-10.024 8.988"}),y.jsx("path",{fill:"#C6302B",d:"M245.965 143.22c-13.661 7.118-84.431 36.218-99.498 44.072-15.066 7.857-23.436 7.78-35.338 2.09-11.903-5.686-87.214-36.113-100.78-42.594-13.566-6.485-13.85-10.948-.524-16.166 13.326-5.22 88.224-34.605 104.055-40.284 15.828-5.677 21.319-5.884 34.789-.948 13.471 4.934 83.819 32.935 97.13 37.81 13.316 4.881 13.827 8.9.166 16.02"}),y.jsx("path",{fill:"#912626",d:"M245.97 127.074c-13.662 7.122-84.434 36.22-99.501 44.078-15.067 7.853-23.437 7.777-35.34 2.087-11.903-5.687-87.216-36.112-100.783-42.597C3.566 127.402 0 124.67 0 122.085V96.206s98.05-21.344 113.879-27.023c15.828-5.679 21.32-5.885 34.79-.95C162.142 73.168 242.688 87.697 256 92.574l-.006 25.513c.002 2.557-3.07 5.363-10.024 8.987"}),y.jsx("path",{fill:"#C6302B",d:"M245.965 101.351c-13.661 7.12-84.431 36.218-99.498 44.075-15.066 7.854-23.436 7.777-35.338 2.087-11.903-5.686-87.214-36.112-100.78-42.594-13.566-6.483-13.85-10.947-.524-16.167C23.151 83.535 98.05 54.148 113.88 48.47c15.828-5.678 21.319-5.884 34.789-.949 13.471 4.934 83.819 32.933 97.13 37.81 13.316 4.88 13.827 8.9.166 16.02"}),y.jsx("path",{fill:"#912626",d:"M245.97 83.653c-13.662 7.12-84.434 36.22-99.501 44.078-15.067 7.854-23.437 7.777-35.34 2.087-11.903-5.687-87.216-36.113-100.783-42.595C3.566 83.98 0 81.247 0 78.665v-25.88s98.05-21.343 113.879-27.021c15.828-5.68 21.32-5.884 34.79-.95C162.142 29.749 242.688 44.278 256 49.155l-.006 25.512c.002 2.555-3.07 5.361-10.024 8.986"}),y.jsx("path",{fill:"#C6302B",d:"M245.965 57.93c-13.661 7.12-84.431 36.22-99.498 44.074-15.066 7.854-23.436 7.777-35.338 2.09C99.227 98.404 23.915 67.98 10.35 61.497S-3.5 50.55 9.825 45.331C23.151 40.113 98.05 10.73 113.88 5.05c15.828-5.679 21.319-5.883 34.789-.948s83.819 32.934 97.13 37.811c13.316 4.876 13.827 8.897.166 16.017"}),y.jsx("path",{fill:"#FFF",d:"m159.283 32.757-22.01 2.285-4.927 11.856-7.958-13.23-25.415-2.284 18.964-6.839-5.69-10.498 17.755 6.944 16.738-5.48-4.524 10.855zM131.032 90.275 89.955 73.238l58.86-9.035zM74.082 39.347c17.375 0 31.46 5.46 31.46 12.194 0 6.736-14.085 12.195-31.46 12.195s-31.46-5.46-31.46-12.195c0-6.734 14.085-12.194 31.46-12.194"}),y.jsx("path",{fill:"#621B1C",d:"m185.295 35.998 34.836 13.766-34.806 13.753z"}),y.jsx("path",{fill:"#9A2928",d:"m146.755 51.243 38.54-15.245.03 27.519-3.779 1.478z"})]}),jJe=e=>y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 258",...e,children:y.jsxs("g",{fill:"#FFA64D",children:[y.jsx("path",{d:"M13.222 183.045C30.007 165.978 244.278 4.782 247.936 8.44c2.813 2.813-156.507 219.616-173.387 236.589s-44.26 16.785-61.14-.282c-16.972-17.066-16.972-44.73-.187-61.702",opacity:.5}),y.jsx("path",{d:"M22.693 175.45c20.63-12.098 230.119-95.18 232.65-90.68 1.97 3.47-168.79 154.538-189.514 166.541-20.63 12.003-46.98 4.783-58.89-16.222-11.909-20.818-4.876-47.543 15.754-59.64",opacity:.3}),y.jsx("path",{d:"M82.051 235.276C94.054 214.46 176.387 3.47 171.98.938 168.51-1.032 18.661 171.042 6.658 191.859c-11.91 20.818-4.689 47.356 16.129 59.265C43.51 263.127 70.048 256 82.05 235.276",opacity:.3}),y.jsx("path",{d:"M32.727 171.042c23.068-6.283 216.521-30.195 217.928-25.225 1.031 3.845-172.73 103.431-195.798 109.714s-46.699-7.595-52.794-30.945 7.69-47.261 30.664-53.544",opacity:.2}),y.jsx("path",{d:"M32.727 171.042c23.068-6.283 179.387 29.07 180.7 33.946 1.032 3.844-135.595 44.167-158.664 50.45-23.068 6.282-46.699-7.596-52.794-30.946-6.001-23.255 7.783-47.167 30.758-53.45",opacity:.1}),y.jsx("path",{d:"M86.459 225.055c6.282-23.256-28.882-180.7-33.852-182.013C48.762 42.01 8.815 179.575 2.626 202.83c-6.19 23.255 7.595 47.074 30.757 53.075 23.068 6.19 46.887-7.595 53.076-30.851",opacity:.1}),y.jsx("path",{d:"M86.459 225.055C92.74 201.799 116.372 6.939 111.496 5.626 107.651 4.595 8.908 179.576 2.626 202.925-3.564 226.18 10.22 249.999 33.383 256c23.068 6.189 46.887-7.69 53.076-30.945",opacity:.2})]})}),AJe=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 256",...e,children:[y.jsx("path",{fill:"#85EA2D",d:"M127.999 249.895c-67.215 0-121.9-54.68-121.9-121.896S60.785 6.102 128 6.102c67.214 0 121.899 54.685 121.899 121.9 0 67.214-54.685 121.893-121.9 121.893"}),y.jsx("path",{fill:"#173647",d:"M127.999 12.202c63.954 0 115.797 51.842 115.797 115.797 0 63.952-51.843 115.797-115.797 115.797-63.952 0-115.797-51.845-115.797-115.797S64.047 12.202 127.999 12.202m0-12.202C57.419 0 0 57.42 0 127.999s57.42 127.998 127.999 127.998S256 198.577 256 128C256 57.419 198.578 0 127.999 0"}),y.jsx("path",{fill:"#173647",d:"M80.598 86.619c-.394 4.38.146 8.909-.146 13.338-.345 4.431-.887 8.811-1.773 13.192-1.23 6.25-5.12 10.976-10.482 14.914 10.436 6.793 11.616 17.324 12.304 28.006.345 5.76.197 11.567.788 17.276.443 4.429 2.165 5.562 6.745 5.708 1.87.048 3.786 0 5.956 0v13.683c-13.535 2.313-24.708-1.525-27.467-12.992-.887-4.184-1.478-8.467-1.673-12.798-.297-4.578.195-9.155-.148-13.732-.985-12.553-2.61-16.785-14.618-17.376v-15.602a24 24 0 0 1 2.608-.443c6.596-.345 9.4-2.364 10.828-8.86.69-3.641 1.084-7.333 1.23-11.074.494-7.136.297-14.42 1.525-21.507C67.997 68.163 74.3 63.24 84.785 62.65c2.952-.149 5.955 0 9.35 0v13.98c-1.427.1-2.658.294-3.937.294-8.515-.297-8.96 2.607-9.6 9.695m16.39 32.386h-.196c-4.923-.245-9.155 3.593-9.403 8.515-.246 4.972 3.592 9.206 8.515 9.45h.59c4.875.296 9.056-3.447 9.352-8.319v-.491c.1-4.971-3.886-9.055-8.857-9.155m30.862 0c-4.774-.148-8.763 3.593-8.909 8.318 0 .297 0 .543.051.837 0 5.365 3.641 8.812 9.155 8.812 5.414 0 8.812-3.544 8.812-9.106-.051-5.366-3.646-8.91-9.109-8.86m31.602 0c-5.02-.1-9.206 3.89-9.352 8.91a9.03 9.03 0 0 0 9.055 9.054h.1c4.528.788 9.106-3.592 9.402-8.858.243-4.874-4.186-9.106-9.205-9.106m43.363.737c-5.711-.245-8.567-2.164-9.992-7.581a55 55 0 0 1-1.624-10.582c-.395-6.596-.346-13.241-.789-19.837-1.033-15.651-12.352-21.114-28.794-18.41V76.92c2.607 0 4.626 0 6.645.049 3.495.048 6.153 1.379 6.496 5.268.345 3.543.345 7.136.69 10.73.692 7.139 1.083 14.372 2.314 21.41 1.085 5.809 5.07 10.14 10.04 13.684-8.71 5.857-11.27 14.223-11.714 23.626-.245 6.448-.394 12.944-.736 19.443-.297 5.905-2.362 7.824-8.318 7.972-1.674.05-3.298.198-5.169.297v13.93c3.495 0 6.694.196 9.892 0 9.942-.592 15.947-5.415 17.918-15.063a126 126 0 0 0 1.476-16.045c.343-4.923.297-9.894.788-14.766.737-7.63 4.232-10.78 11.862-11.27.739-.1 1.427-.246 2.118-.492v-15.604c-1.282-.149-2.17-.295-3.103-.346"})]}),DJe=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 512 123",...e,children:[y.jsx("path",{d:"M207.785 45.398c15.276 0 18.696 8.908 18.696 19.188v10.239H199.86v2.457c.102 5.693 2.15 7.945 9.399 7.945a50 50 0 0 0 14.58-2.252l1.863 9.01a51.2 51.2 0 0 1-17.528 3.03c-14.97 0-20.17-6.942-20.17-18.43V63.993c0-10.075 4.504-18.594 19.78-18.594m100.38-.02c14.97 0 19.392 5.283 19.392 17.222l-.04 31.432h-9.789l-.88-3.235a26.06 26.06 0 0 1-14.191 4.218c-8.703 0-12.43-5.98-12.43-14.19 0-9.686 4.218-13.413 13.904-13.413h11.447v-4.997c0-5.283-1.474-7.146-9.113-7.146-4.443.049-8.866.544-13.208 1.474l-1.474-9.112a62.4 62.4 0 0 1 16.382-2.253m79.35 0c16.341 0 20.744 9.01 20.744 18.798v12.041c.02 9.788-4.403 18.798-20.744 18.798-16.382 0-20.743-9.01-20.743-18.798v-12.04c0-9.789 4.402-18.799 20.743-18.799M198.017 28.832v10.874h-18.225v54.326h-12.286l-.041-54.326H149.26V28.832zm157.205-3.911c3.46-.012 6.905.45 10.239 1.372l-1.25 9.194a35 35 0 0 0-6.86-.778c-4.688 0-5.385 2.048-5.385 5.673v5.979h12.143l-.675 9.501h-11.447v38.17h-11.939v-38.17h-7.638v-9.501h7.638v-6.655c0-9.89 4.608-14.785 15.174-14.785M482.04 50.477a46.8 46.8 0 0 1 19.187-5.099c7.925 0 10.772 5.57 10.772 14.089v34.565h-11.939V60.757c0-2.54-1.085-3.81-3.809-3.81a31.6 31.6 0 0 0-12.43 4.096v32.99H471.8V60.756c0-2.54-1.085-3.81-3.808-3.81-4.376.52-8.601 1.913-12.43 4.096v32.99h-11.939V46.36h9.113l1.167 4.095a47.7 47.7 0 0 1 19.126-5.078 9.05 9.05 0 0 1 9.01 5.099m-224.863-5.099 1.229 10.976a94 94 0 0 0-12.676 6.942v30.716h-11.938V46.361h10.075l.778 5.283a53.5 53.5 0 0 1 12.532-6.266m29.201 0 1.188 10.976a94 94 0 0 0-12.635 6.942v30.716h-11.938V46.361h10.075l.778 5.283a53.5 53.5 0 0 1 12.532-6.266m151.43 0 1.188 10.976a94 94 0 0 0-12.634 6.942v30.716h-11.938V46.361h10.074l.779 5.283a53.4 53.4 0 0 1 12.532-6.266m-122.23 30.634h-8.804c-3.912 0-4.997 1.086-4.997 4.69s1.085 4.791 4.792 4.791a18.8 18.8 0 0 0 9.01-2.457zm71.938-20.457c-6.368 0-8.805 2.847-8.805 8.191v12.82c0 5.385 2.457 8.19 8.805 8.19s8.805-2.846 8.805-8.19V63.786c0-5.385-2.436-8.232-8.805-8.232m-179.628-.389c-5.877 0-7.925 3.133-7.925 7.638v2.417h15.174v-2.417c0-4.505-1.372-7.638-7.249-7.638"}),y.jsx("path",{fill:"#4040B2",d:"M74.538 79.821 108.12 60.45V21.645L74.538 41.057z"}),y.jsx("path",{fill:"#5C4EE5",d:"m37.269 21.645 33.583 19.412v38.764L37.269 60.43M0 38.784l33.583 19.392V19.392L0 0m37.269 103.473 33.583 19.392V84.08L37.269 64.688"})]});const MJe={"tech:docker":yJe,"tech:elasticsearch":vJe,"tech:electron":bJe,"tech:git":xJe,"tech:github":wJe,"tech:go":kJe,"tech:grafana":_Je,"tech:java":SJe,"tech:kubernetes":EJe,"tech:nginx":CJe,"tech:postgresql":$Je,"tech:prometheus":zJe,"tech:react":RJe,"tech:redis":TJe,"tech:spark":jJe,"tech:swagger":AJe,"tech:terraform":DJe};function NJe(e){const r=MJe[e.node.icon??""];return r?y.jsx(r,e):null}function PJe(e,r,n){let o=a=>e(a,...r);return n===void 0?o:Object.assign(o,{lazy:n,lazyArgs:r})}function Jre(e,r,n){let o=e.length-r.length;if(o===0)return e(...r);if(o===1)return PJe(e,r,n);throw Error("Wrong number of arguments")}function BJe(...e){return Jre(IJe,e)}function IJe(e,r){let n={};for(let[o,a]of Object.entries(e))n[o]=r(a,o,e);return n}function ene(...e){return Jre(R0,e)}function R0(e,r){if(e===r||Object.is(e,r))return!0;if(typeof e!="object"||typeof r!="object"||e===null||r===null||Object.getPrototypeOf(e)!==Object.getPrototypeOf(r))return!1;if(Array.isArray(e))return OJe(e,r);if(e instanceof Map)return LJe(e,r);if(e instanceof Set)return FJe(e,r);if(e instanceof Date)return e.getTime()===r.getTime();if(e instanceof RegExp)return e.toString()===r.toString();if(Object.keys(e).length!==Object.keys(r).length)return!1;for(let[n,o]of Object.entries(e))if(!(n in r)||!R0(o,r[n]))return!1;return!0}function OJe(e,r){if(e.length!==r.length)return!1;for(let[n,o]of e.entries())if(!R0(o,r[n]))return!1;return!0}function LJe(e,r){if(e.size!==r.size)return!1;for(let[n,o]of e.entries())if(!r.has(n)||!R0(o,r.get(n)))return!1;return!0}function FJe(e,r){if(e.size!==r.size)return!1;let n=[...r];for(let o of e){let a=!1;for(let[i,l]of n.entries())if(R0(o,l)){a=!0,n.splice(i,1);break}if(!a)return!1}return!0}let gl=[],Fd=0;const m4=4;let g4=0;const tne=e=>{let r=[],n={get(){return n.lc||n.listen(()=>{})(),n.value},lc:0,listen(o){return n.lc=r.push(o),()=>{for(let i=Fd+m4;i(e.events=e.events||{},e.events[n+v4]||(e.events[n+v4]=o(a=>{e.events[n].reduceRight((i,l)=>(l(i),i),{shared:{},...a})})),e.events[n]=e.events[n]||[],e.events[n].push(r),()=>{let a=e.events[n],i=a.indexOf(r);a.splice(i,1),a.length||(delete e.events[n],e.events[n+v4](),delete e.events[n+v4])}),HJe=1e3,UJe=(e,r)=>qJe(e,n=>{let o=r(n);o&&e.events[y4].push(o)},VJe,n=>{let o=e.listen;e.listen=(...i)=>(!e.lc&&!e.active&&(e.active=!0,n()),o(...i));let a=e.off;return e.events[y4]=[],e.off=()=>{a(),setTimeout(()=>{if(e.active&&!e.lc){e.active=!1;for(let i of e.events[y4])i();e.events[y4]=[]}},HJe)},()=>{e.listen=o,e.off=a}}),WJe=(e,r,n)=>{Array.isArray(e)||(e=[e]);let o,a,i=()=>{if(a===g4)return;a=g4;let d=e.map(u=>u.get());if(!o||d.some((u,p)=>u!==o[p])){o=d;let u=r(...d);u&&u.then&&u.t?u.then(p=>{o===d&&l.set(p)}):(l.set(u),a=g4)}},l=tne(void 0),s=l.get;l.get=()=>(i(),s());let c=i;return UJe(l,()=>{let d=e.map(u=>u.listen(c));return i(),()=>{for(let u of d)u()}}),l};const rne=(e,r)=>WJe(e,r);function GJe(e,r,n){let o=new Set(r).add(void 0);return e.listen((a,i,l)=>{o.has(l)&&n(a,i,l)})}let CR=(e,r)=>n=>{e.current!==n&&(e.current=n,r())};function nne(e,{keys:r,deps:n=[e,r]}={}){let o=S.useRef();o.current=e.get();let a=S.useCallback(l=>(CR(o,l)(e.value),r?.length>0?GJe(e,r,CR(o,l)):e.listen(CR(o,l))),n),i=()=>o.current;return S.useSyncExternalStore(a,i,i)}const YJe=e=>{const r=rne(e,s=>Fu.create(s));function n(s){const c=e.get();if(ene(c,s))return;const d={...s,views:BJe(s.views,u=>{const p=c.views[u.id];return ene(p,u)?p:u})};e.set(d)}const o=rne(e,s=>Object.values(s.views));function a(){return nne(r)}function i(){return nne(o)}function l(s){const[c,d]=S.useState(e.value?.views[s]??null);return S.useEffect(()=>e.subscribe(u=>{d(u.views[s]??null)}),[s]),c}return{updateModel:n,$likec4model:r,useLikeC4Model:a,useLikeC4Views:i,useLikeC4View:l}},XJe=tne({_stage:"layouted",projectId:"architecture",project:{id:"architecture",title:"architecture"},specification:{tags:{internal:{color:"tomato"}},elements:{actor:{style:{shape:"person",color:"green"}},person:{style:{shape:"person",color:"green"}},component:{style:{}},container:{style:{opacity:20}},internalComponent:{style:{color:"muted",opacity:15}},schema:{style:{}},step:{style:{}},system:{style:{}},workflow:{style:{}},tool:{style:{}},process:{style:{}},repository:{style:{shape:"storage"}}},relationships:{},deployments:{cloud:{style:{}},environment:{style:{}},computeressource:{style:{}},paas:{style:{}},kubernetes:{style:{}},cluster:{style:{}},namespace:{style:{}}},customColors:{}},elements:{edfbuilder_workflow:{style:{},title:"EDFbuilder",kind:"workflow",id:"edfbuilder_workflow"},argocdworkflow:{style:{},title:"EDP ArgoCD Setup Workflow",kind:"workflow",id:"argocdworkflow"},edpworkflow:{style:{},title:"EDP Infrastructure Setup Workflow",kind:"workflow",id:"edpworkflow"},applicationspecification:{style:{},description:{txt:"The application specification describes the application and its components. It is used to generate the application and its components."},title:"application-specification",kind:"component",id:"applicationspecification"},forgejoRunner:{style:{},description:{txt:"A runner is a service that runs jobs triggered by Forgejo. A runner can have different technical implementations like a container or a VM."},title:"Forgejo Runner",kind:"component",id:"forgejoRunner"},forgejoRunnerWorker:{style:{},description:{txt:"A worker is a service that runs a job invoked by a runner. A worker typically is a container."},title:"Forgejo Runner Worker",kind:"component",id:"forgejoRunnerWorker"},promtail:{style:{},description:{txt:"Log shipper agent for Loki"},title:"Promtail",kind:"component",id:"promtail"},edfbuilder:{style:{shape:"rectangle",icon:"tech:go"},technology:"Golang",description:{txt:"EDP Foundry Builder"},title:"edfbuilder",kind:"component",id:"edfbuilder"},edgeConnect:{style:{},description:{txt:"Provides an API to run applications on the edge"},title:"Edge Connect",kind:"component",id:"edgeConnect"},elasticsearch:{style:{opacity:20,icon:"tech:elasticsearch"},technology:"Elasticsearch",description:{txt:`Elasticsearch is a distributed, RESTful search and analytics engine capable of +`.trim()}const Qre=S.forwardRef(({children:e,theme:r=Bre,injectFontCss:n=!0,styleNonce:o,colorScheme:a,keepAspectRatio:i=!1,...l},s)=>{const c=WQe(a),d=DG(),u=fJe(d,i),p=S.useRef(null),f=UQe(n,o),g=S.useCallback(()=>p.current??void 0,[p]),v=it(()=>{if(ri(o)){if(typeof o=="string")return o;if(typeof o=="function")return o()}return""});let w=ri(o)?v():void 0;return y.jsxs(y.Fragment,{children:[y.jsx("style",{type:"text/css",nonce:w,dangerouslySetInnerHTML:{__html:u}}),y.jsx(hJe,{ssr:!1,...l,styleSheets:f,"data-likec4-instance":d,children:y.jsx("div",{ref:$r(p,s),"data-mantine-color-scheme":c,className:"likec4-shadow-root",children:y.jsx(R9,{...a&&{forceColorScheme:a},defaultColorScheme:c,getRootElement:g,...!!w&&{getStyleNonce:v},cssVariablesSelector:".likec4-shadow-root",theme:r,children:y.jsx(wR,{children:e})})})})]})});Qre.displayName="ShadowRoot";const mJe=fe({cursor:"pointer","--mantine-cursor-pointer":"pointer","& :where(.likec4-diagram, .likec4-compound-node, .likec4-element-node)":{cursor:"pointer"}});function gJe({viewId:e,className:r,pannable:n=!1,zoomable:o=!1,keepAspectRatio:a=!0,colorScheme:i,injectFontCss:l=!0,controls:s=!1,background:c="transparent",browser:d=!0,showNavigationButtons:u=!1,enableNotations:p,enableFocusMode:f=!1,enableDynamicViewWalkthrough:g=!1,enableElementDetails:v=!1,enableRelationshipDetails:w=!1,enableRelationshipBrowser:x=w,reduceGraphics:k="auto",mantineTheme:C,styleNonce:_,style:$,reactFlowProps:z,renderNodes:T,children:A,...R}){const j=S.useRef(null),I=gNe(),[P,L]=S.useState("manual"),[H,M]=S.useState(null),V=it(Q=>{Q&&Q!==H&&L("manual"),M(Q)}),B=it(()=>{V(e)});if(!I)return y.jsx(kR,{children:"LikeC4Model not found. Make sure you provided LikeC4ModelProvider."});const F=I.findView(e)?.$layouted;if(!F)return y.jsx(XQe,{viewId:e});if(F._stage!=="layouted")return y.jsxs(kR,{children:['LikeC4 View "$',e,'" is not layouted. Make sure you have LikeC4ModelProvider with layouted model.']});const q=H?I.findView(H):null,G=P==="manual"?q?.$layouted:q?.$view,U=!!p&&(F.notation?.nodes?.length??0)>0,Y=(G?.notation?.nodes?.length??0)>0,Z=d!==!1,O=Pq(d)?{}:d,W=kee(F,R.dynamicViewVariant),K=j.current?{root:j.current}:void 0;return y.jsx(Qre,{ref:j,injectFontCss:l,theme:C,colorScheme:i,styleNonce:_,keepAspectRatio:a?W:!1,className:Ge("likec4-view",r),style:$,children:y.jsxs(wR,{children:[y.jsx(Lre,{view:F,pannable:n,zoomable:o,background:c,fitView:!0,fitViewPadding:y2.default,enableNotations:U,enableDynamicViewWalkthrough:g,showNavigationButtons:u,enableCompareWithLatest:!1,enableFocusMode:f,enableRelationshipDetails:w,enableElementDetails:v,enableRelationshipBrowser:x,enableElementTags:!1,controls:s,reduceGraphics:k,className:Ge("likec4-static-view",Z&&mJe),enableSearch:!1,...Z&&{onCanvasClick:B,onNodeClick:B},reactFlowProps:z,renderNodes:T,children:A,...R}),y.jsx(Cn,{...K,children:G&&y.jsxs(p0,{openDelay:0,onClose:()=>V(null),children:[y.jsx(Lre,{view:G,pannable:!0,zoomable:!0,background:"dots",onNavigateTo:V,showNavigationButtons:!0,enableDynamicViewWalkthrough:!0,enableFocusMode:!0,enableRelationshipBrowser:!0,enableElementDetails:!0,enableRelationshipDetails:!0,enableSearch:!0,enableElementTags:!0,enableCompareWithLatest:!0,controls:!0,fitView:!0,...R,fitViewPadding:y2.withControls,...O,enableNotations:Y&&(O.enableNotations??!0),renderNodes:T,onLayoutTypeChange:L}),y.jsx(hr,{pos:"absolute",top:"4",right:"4",zIndex:"999",children:y.jsx(lr,{variant:"default",color:"gray",onClick:Q=>{Q.stopPropagation(),V(null)},children:y.jsx(fp,{})})})]})})]})})}var yJe=e=>y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 512 131",...e,children:y.jsx("path",{fill:"#2396ED",d:"m140.598 25.715 3.892 2.818c6.77 5.46 10.662 11.625 11.508 18.67 7.277-1.409 16.584-.352 20.646 2.466l3.723 2.29-.677 1.41c-1.185 2.641-1.523 3.346-1.692 3.698-6.6 13.21-19.631 13.386-25.723 13.21-15.4 38.573-48.23 59.885-92.57 59.885-20.476 0-36.045-6.517-46.538-19.375C-.709 93.88-.709 71.862.475 64.817l.339-1.41h122.353c6.43 0 11.339-1.76 13.708-3.17-2.539-3.875-3.385-8.278-3.554-10.744-.508-7.045 1.185-14.443 4.57-19.727zm106.014 8.179q2.048 0 3.468 1.373t1.42 3.467v43.563q0 10.89-7.634 18.43-7.726 7.633-18.43 7.633-10.798 0-18.43-7.633-7.633-7.633-7.633-18.43t7.633-18.43q7.632-7.634 18.43-7.633 9.262 0 16.336 5.724V38.734q0-2.094 1.373-3.467t3.467-1.373m36.49 22.34q10.705 0 18.43 7.632 3.818 3.818 5.702 8.424 1.885 4.608 1.932 10.007 0 10.89-7.633 18.43-7.725 7.633-18.43 7.633-10.798 0-18.43-7.633-7.634-7.633-7.634-18.43t7.633-18.43q7.633-7.634 18.43-7.633m57.574 0q9.82 0 16.988 6.33 1.675 1.488 1.675 3.676 0 2.095-1.373 3.49-1.373 1.397-3.467 1.397a4.93 4.93 0 0 1-3.165-1.117q-2.373-2.002-4.98-3.025t-5.678-1.024q-3.397 0-6.376 1.28a16.7 16.7 0 0 0-5.213 3.49 16.2 16.2 0 0 0-3.514 5.19q-1.28 2.977-1.28 6.376 0 3.397 1.28 6.376a16.2 16.2 0 0 0 3.514 5.19 16.7 16.7 0 0 0 5.213 3.49q2.979 1.28 6.376 1.28 3.072 0 5.678-1 2.607-1.002 4.933-3.003 1.304-.977 3.072-1.024 2.094 0 3.467 1.373t1.373 3.468q0 2.048-1.535 3.583-7.214 6.33-16.988 6.33-10.798 0-18.43-7.633-7.633-7.633-7.633-18.43t7.633-18.43q7.632-7.634 18.43-7.633m29.044-22.34q2.001 0 3.42 1.42 1.42 1.418 1.42 3.467v36.302l27.832-18.105q1.163-.744 2.606-.744 1.024 0 1.908.372.885.372 1.536 1.047t1.047 1.56.396 1.86q0 2.607-1.862 3.864l-19.5 12.66 20.012 22.525q1.35 1.489 1.35 3.398 0 .977-.396 1.861a5.4 5.4 0 0 1-1.047 1.56q-.651.675-1.536 1.046a4.9 4.9 0 0 1-1.908.373q-1.955 0-3.258-1.257l-21.502-24.155-5.678 3.724v16.801q0 2.001-1.42 3.444t-3.42 1.443q-2.048 0-3.468-1.443t-1.42-3.444V38.781q0-2.048 1.42-3.468t3.468-1.42m71.489 22.34q10.704 0 18.43 7.632 3.816 3.77 5.725 8.401 1.908 4.63 1.908 10.03 0 2.094-1.42 3.467t-3.467 1.373h-36.86a15.9 15.9 0 0 0 2.327 4.677 16.3 16.3 0 0 0 3.606 3.63 16.7 16.7 0 0 0 4.562 2.351q2.49.838 5.189.838 3.072 0 5.631-.931 2.56-.93 4.748-2.793a5.1 5.1 0 0 1 3.21-1.21q2.095 0 3.468 1.373t1.373 3.468q0 2.047-1.396 3.49-7.214 6.33-17.034 6.33-10.798 0-18.43-7.633-7.633-7.633-7.633-18.43t7.633-18.43q7.632-7.634 18.43-7.633m57.48 0q2.048 0 4.398.279 2.35.28 4.329 1 1.978.721 3.28 1.978 1.305 1.257 1.304 3.258 0 1.025-.396 1.909a5.4 5.4 0 0 1-1.047 1.559q-.651.675-1.536 1.047a4.9 4.9 0 0 1-1.908.372q-.885 0-2.048-.512-2.932-1.163-6.376-1.163-3.397 0-6.376 1.28-2.978 1.28-5.19 3.49-2.21 2.211-3.49 5.19-1.28 2.977-1.28 6.376v21.223q0 2.001-1.42 3.42t-3.42 1.42q-2.048 0-3.467-1.42t-1.42-3.42V61.074q0-2.002 1.42-3.42 1.42-1.42 3.467-1.42 2.001 0 3.42 1.42 1.42 1.418 1.42 3.42v.93a26.7 26.7 0 0 1 7.586-4.281q4.095-1.49 8.75-1.49M225.436 65.96q-3.444 0-6.423 1.303t-5.166 3.514-3.467 5.19-1.28 6.329 1.28 6.33 3.467 5.189 5.166 3.514q2.979 1.302 6.423 1.303 3.397 0 6.376-1.303a16.6 16.6 0 0 0 5.19-3.538 16.8 16.8 0 0 0 3.49-5.189q1.28-2.955 1.28-6.306t-1.28-6.307a16.8 16.8 0 0 0-3.49-5.189 16.6 16.6 0 0 0-5.19-3.537q-2.978-1.303-6.376-1.303m57.667 0q-3.444 0-6.423 1.303t-5.166 3.514-3.468 5.19-1.28 6.329 1.28 6.33q1.281 2.978 3.468 5.189t5.166 3.514 6.423 1.303q3.397 0 6.376-1.303a16.6 16.6 0 0 0 5.19-3.538 16.8 16.8 0 0 0 3.49-5.189q1.28-2.955 1.28-6.306t-1.28-6.307a16.8 16.8 0 0 0-3.49-5.189 16.6 16.6 0 0 0-5.19-3.537q-2.979-1.303-6.376-1.303m158.106 0q-2.653 0-5.166.837a17 17 0 0 0-4.608 2.35 16.1 16.1 0 0 0-3.63 3.631 15.1 15.1 0 0 0-2.28 4.677h31.368a15.6 15.6 0 0 0-2.35-4.677 16.8 16.8 0 0 0-3.63-3.63 16.7 16.7 0 0 0-4.561-2.35 16 16 0 0 0-5.143-.838M32.629 42.27v17.614H14.014V42.272zm22 0v17.614H36.014V42.272zm22 0v17.614H58.013V42.272zm22 0v17.614H80.013V42.272zm22 0v17.614h-18.616V42.272zm-22-21.135v17.613H80.013V21.136zm-22 0v17.613H58.013V21.136zm-22 0v17.613H36.014V21.136zM98.629 0v17.613H80.013V0z"})}),vJe=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 288",...e,children:[y.jsx("path",{fill:"#343741",d:"M0 143.82c0 12.44 1.744 24.441 4.71 35.956h175.067c19.856 0 35.955-16.1 35.955-35.956 0-19.865-16.1-35.955-35.955-35.955H4.71C1.744 119.371 0 131.38 0 143.82"}),y.jsx("path",{fill:"#FEC514",d:"M242.013 68.863c5.025-4.629 9.7-9.6 13.987-14.93C229.636 21.079 189.213 0 143.82 0 87 0 38.101 33.052 14.775 80.9h196.559c11.38 0 22.319-4.324 30.678-12.037"}),y.jsx("path",{fill:"#00BFB3",d:"M211.334 206.742H14.774c23.336 47.839 72.226 80.9 129.045 80.9 45.393 0 85.816-21.088 112.18-53.933a136.6 136.6 0 0 0-13.987-14.94c-8.36-7.721-19.299-12.027-30.678-12.027"})]}),bJe=e=>y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 278",...e,children:y.jsx("path",{fill:"#47848F",d:"M90.317 59.645c-36.264-6.605-64.936.308-76.364 20.101-8.527 14.77-6.09 34.353 5.912 55.285a3.719 3.719 0 1 0 6.452-3.699c-10.811-18.856-12.915-35.757-5.923-47.867 9.493-16.442 35.068-22.608 68.59-16.503a3.719 3.719 0 1 0 1.333-7.317m53.63-33.684c-2.959 5.723-8.932 9.635-15.819 9.635-9.83 0-17.798-7.969-17.798-17.798C110.33 7.968 118.3 0 128.128 0c9.83 0 17.798 7.968 17.798 17.798q0 .386-.016.767c29.461 15.237 49.933 67.197 49.933 127.226 0 24.69-3.452 48.382-9.879 68.92a3.719 3.719 0 1 1-7.097-2.221c6.196-19.802 9.539-42.747 9.539-66.699 0-56.524-18.789-105.163-44.458-119.83M16.469 193.319a18 18 0 0 1 1.33-.05c9.83 0 17.798 7.97 17.798 17.799s-7.969 17.797-17.798 17.797C7.968 228.865 0 220.897 0 211.068c0-6.692 3.693-12.52 9.151-15.56-2.68-33.265 32.283-77.855 85.12-108.36 21.946-12.671 44.798-21.665 66.267-26.265a3.719 3.719 0 0 1 1.558 7.273c-20.69 4.433-42.817 13.141-64.107 25.433-49.759 28.728-82.66 70.134-81.52 99.73m206.26 26.546a17.7 17.7 0 0 1-2.324-8.797c0-9.83 7.969-17.798 17.798-17.798 9.83 0 17.798 7.968 17.798 17.798s-7.968 17.797-17.798 17.797a17.7 17.7 0 0 1-10.38-3.338c-28.392 16.703-82.625 8.184-133.66-21.282-21.726-12.543-40.776-27.657-55.439-43.77a3.719 3.719 0 0 1 5.5-5.006c14.134 15.532 32.581 30.167 53.657 42.335 48.165 27.808 98.886 36.084 124.847 22.061m-1.166-63.914a3.719 3.719 0 0 1-5.676-4.805c21.946-25.926 29.34-51.086 19.867-67.492-6.876-11.91-22.159-18.52-43.362-18.796a3.719 3.719 0 1 1 .097-7.437c23.575.307 41.315 7.98 49.706 22.514 11.404 19.752 3.113 47.965-20.632 76.016M72.564 221.49a3.719 3.719 0 0 1 7.001-2.507c11.476 32.045 29.591 51.082 48.563 51.082 13.645 0 26.91-9.774 37.71-27.74a3.719 3.719 0 0 1 6.375 3.832c-12.018 19.99-27.428 31.345-44.085 31.345-22.839 0-43.15-21.344-55.564-56.011m175.999-10.423c0-5.722-4.639-10.361-10.36-10.361-5.723 0-10.362 4.639-10.362 10.36 0 5.723 4.64 10.361 10.361 10.361s10.36-4.638 10.36-10.36m-230.765 10.36c5.722 0 10.36-4.638 10.36-10.36s-4.638-10.361-10.36-10.361-10.36 4.639-10.36 10.36c0 5.723 4.638 10.361 10.36 10.361m110.33-193.27c5.722 0 10.36-4.638 10.36-10.36s-4.638-10.36-10.36-10.36-10.36 4.638-10.36 10.36 4.638 10.36 10.36 10.36m2.718 130.22c-6.951 1.502-13.8-2.916-15.305-9.868-1.499-6.952 2.916-13.8 9.868-15.305 6.951-1.502 13.8 2.915 15.305 9.867 1.502 6.952-2.916 13.8-9.868 15.305"})}),xJe=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 108",...e,children:[y.jsx("path",{fill:"#2F2707",d:"M152.984 37.214c-5.597 0-9.765 2.748-9.765 9.362 0 4.983 2.747 8.443 9.463 8.443 5.693 0 9.56-3.355 9.56-8.65 0-6-3.46-9.155-9.258-9.155m-11.19 46.701c-1.325 1.625-2.645 3.353-2.645 5.39 0 4.067 5.186 5.291 12.31 5.291 5.9 0 13.938-.414 13.938-5.9 0-3.261-3.867-3.462-8.753-3.768zm30.113-46.394c1.828 2.34 3.764 5.597 3.764 10.276 0 11.292-8.851 17.904-21.667 17.904-3.259 0-6.209-.406-8.038-.914l-3.359 5.39 9.969.61c17.602 1.122 27.975 1.632 27.975 15.157 0 11.702-10.272 18.311-27.975 18.311-18.413 0-25.433-4.68-25.433-12.716 0-4.578 2.035-7.015 5.596-10.378-3.358-1.419-4.476-3.961-4.476-6.71 0-2.24 1.118-4.273 2.952-6.208 1.83-1.93 3.864-3.865 6.306-6.103-4.984-2.442-8.75-7.732-8.75-15.262 0-11.697 7.733-19.731 23.295-19.731 4.376 0 7.022.402 9.362 1.017h19.84v8.644zM199.166 19.034c-5.8 0-9.157-3.36-9.157-9.161 0-5.793 3.356-8.95 9.157-8.95 5.9 0 9.258 3.157 9.258 8.95 0 5.801-3.357 9.161-9.258 9.161M186.04 80.171v-8.033l5.19-.71c1.425-.205 1.627-.509 1.627-2.038V39.48c0-1.116-.304-1.832-1.325-2.134l-5.492-1.935 1.118-8.238h21.061V69.39c0 1.63.098 1.833 1.629 2.039l5.188.71v8.032zM255.267 76.227c-4.376 2.135-10.785 4.068-16.586 4.068-12.106 0-16.682-4.878-16.682-16.38V37.264c0-.61 0-1.017-.817-1.017h-7.12V27.19c8.955-1.02 12.513-5.496 13.632-16.585h9.666v14.45c0 .71 0 1.017.815 1.017h14.343v10.173H237.36v24.313c0 6.002 1.426 8.34 6.917 8.34 2.852 0 5.799-.71 8.24-1.626z"}),y.jsx("path",{fill:"#DE4C36",d:"M104.529 49.53 58.013 3.017a6.86 6.86 0 0 0-9.703 0l-9.659 9.66 12.253 12.252a8.15 8.15 0 0 1 8.383 1.953 8.16 8.16 0 0 1 1.936 8.434L73.03 47.125c2.857-.984 6.154-.347 8.435 1.938a8.16 8.16 0 0 1 0 11.545 8.164 8.164 0 0 1-13.324-8.88L57.129 40.716l-.001 28.98a8.3 8.3 0 0 1 2.159 1.544 8.164 8.164 0 0 1 0 11.547c-3.19 3.19-8.36 3.19-11.545 0a8.164 8.164 0 0 1 2.672-13.328v-29.25a8.1 8.1 0 0 1-2.672-1.782c-2.416-2.413-2.997-5.958-1.759-8.925l-12.078-12.08L2.011 49.314a6.863 6.863 0 0 0 0 9.706l46.516 46.514a6.86 6.86 0 0 0 9.703 0l46.299-46.297a6.866 6.866 0 0 0 0-9.707"})]}),wJe=e=>y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 512 139",...e,children:y.jsx("path",{fill:"#11110F",d:"M98.696 59.312h-43.06c-1.111 0-2.013.903-2.013 2.014v21.053c0 1.111.902 2.015 2.012 2.015h16.799v26.157s-3.772 1.286-14.2 1.286c-12.303 0-29.49-4.496-29.49-42.288 0-37.8 17.897-42.773 34.698-42.773 14.543 0 20.809 2.56 24.795 3.794 1.253.384 2.412-.863 2.412-1.975l4.803-20.342c0-.52-.176-1.146-.769-1.571C93.064 5.527 83.187 0 58.233 0 29.488 0 0 12.23 0 71.023c0 58.795 33.76 67.556 62.21 67.556 23.555 0 37.844-10.066 37.844-10.066.59-.325.653-1.148.653-1.526V61.326c0-1.11-.9-2.014-2.01-2.014m221.8-51.953c0-1.12-.888-2.024-1.999-2.024h-24.246a2.016 2.016 0 0 0-2.008 2.024l.006 46.856h-37.792V7.36c0-1.12-.892-2.024-2.001-2.024H228.21a2.014 2.014 0 0 0-2.003 2.024v126.872c0 1.12.9 2.03 2.003 2.03h24.245c1.109 0 2-.91 2-2.03V79.964h37.793l-.066 54.267c0 1.12.9 2.03 2.008 2.03h24.304c1.11 0 1.998-.91 2-2.03zM144.37 24.322c0-8.73-7-15.786-15.635-15.786-8.627 0-15.632 7.055-15.632 15.786 0 8.72 7.005 15.795 15.632 15.795 8.635 0 15.635-7.075 15.635-15.795m-1.924 83.212V48.97c0-1.112-.897-2.021-2.006-2.021h-24.169c-1.109 0-2.1 1.144-2.1 2.256v83.905c0 2.466 1.536 3.199 3.525 3.199h21.775c2.39 0 2.975-1.173 2.975-3.239zM413.162 46.95h-24.06c-1.104 0-2.002.909-2.002 2.028v62.21s-6.112 4.472-14.788 4.472-10.977-3.937-10.977-12.431v-54.25c0-1.12-.897-2.03-2.001-2.03h-24.419c-1.102 0-2.005.91-2.005 2.03v58.358c0 25.23 14.063 31.403 33.408 31.403 15.87 0 28.665-8.767 28.665-8.767s.61 4.62.885 5.168c.276.547.994 1.098 1.77 1.098l15.535-.068c1.102 0 2.005-.911 2.005-2.025l-.008-85.168c0-1.119-.9-2.028-2.008-2.028m55.435 68.758c-8.345-.254-14.006-4.041-14.006-4.041V71.488s5.585-3.423 12.436-4.035c8.664-.776 17.013 1.841 17.013 22.51 0 21.795-3.768 26.096-15.443 25.744m9.49-71.483c-13.665 0-22.96 6.097-22.96 6.097V7.359a2.01 2.01 0 0 0-2-2.024h-24.315a2.013 2.013 0 0 0-2.004 2.024v126.872c0 1.12.898 2.03 2.007 2.03h16.87c.76 0 1.335-.39 1.76-1.077.419-.682 1.024-5.85 1.024-5.85s9.942 9.422 28.763 9.422c22.096 0 34.768-11.208 34.768-50.315s-20.238-44.217-33.913-44.217M212.229 46.73h-18.187l-.028-24.027c0-.909-.468-1.364-1.52-1.364H167.71c-.964 0-1.481.424-1.481 1.35v24.83s-12.42 2.998-13.26 3.24a2.01 2.01 0 0 0-1.452 1.934v15.603c0 1.122.896 2.027 2.005 2.027h12.707v37.536c0 27.88 19.556 30.619 32.753 30.619 6.03 0 13.243-1.937 14.434-2.376.72-.265 1.138-1.01 1.138-1.82l.02-17.164c0-1.119-.945-2.025-2.01-2.025-1.06 0-3.77.431-6.562.431-8.933 0-11.96-4.154-11.96-9.53l-.001-35.67h18.188a2.014 2.014 0 0 0 2.006-2.028V48.753c0-1.12-.897-2.022-2.006-2.022"})}),kJe=e=>y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 512 192",...e,children:y.jsx("path",{fill:"#00ACD7",d:"m292.533 13.295 1.124.75c13.212 8.725 22.685 20.691 28.917 35.15 1.496 2.243.499 3.49-2.493 4.237l-5.063 1.296c-11.447 2.949-20.53 5.429-31.827 8.378l-6.443 1.678c-2.32.574-2.96.333-5.428-2.477l-.348-.399c-3.519-3.988-6.155-6.652-10.817-9.03l-.899-.443c-15.705-7.727-30.911-5.484-45.12 3.74-16.952 10.968-25.677 27.172-25.428 47.364.25 19.942 13.96 36.395 33.654 39.137 16.951 2.244 31.16-3.739 42.378-16.452 2.244-2.743 4.238-5.734 6.73-9.224H223.36c-5.235 0-6.481-3.24-4.736-7.478l.864-2.035c3.204-7.454 8.173-18.168 11.4-24.294l.704-1.319c.862-1.494 2.612-3.513 5.977-3.513h80.224c3.603-11.415 9.449-22.201 17.246-32.407 18.198-23.931 40.135-36.396 69.8-41.63 25.427-4.488 49.359-1.995 71.046 12.713 19.694 13.461 31.909 31.66 35.15 55.59 4.237 33.654-5.485 61.075-28.668 84.508-16.453 16.702-36.645 27.172-59.829 31.908-6.73 1.247-13.461 1.496-19.942 2.244-22.685-.499-43.376-6.98-60.826-21.937-12.273-10.61-20.727-23.648-24.928-38.828a105 105 0 0 1-10.47 16.89c-17.949 23.683-41.381 38.39-71.046 42.38-24.43 3.24-47.115-1.497-67.058-16.454-18.447-13.96-28.917-32.407-31.66-55.34-3.24-27.173 4.737-51.603 21.19-73.041 17.7-23.184 41.132-37.891 69.8-43.126 22.999-4.16 45.037-1.595 64.936 11.464M411.12 49.017l-.798.178c-23.183 5.235-38.14 19.942-43.624 43.375-4.488 19.444 4.985 39.138 22.934 47.115 13.71 5.983 27.421 5.235 40.633-1.496 19.694-10.22 30.413-26.175 31.66-47.613-.25-3.24-.25-5.734-.749-8.227-4.436-24.401-26.664-38.324-50.056-33.332M116.416 94.564c.997 0 1.496.748 1.496 1.745l-.499 5.983c0 .997-.997 1.745-1.745 1.745l-54.344-.249c-.997 0-1.246-.748-.748-1.496l3.49-6.232c.499-.748 1.496-1.496 2.493-1.496zM121.9 71.63c.997 0 1.496.748 1.247 1.496l-1.995 5.983c-.249.997-1.246 1.495-2.243 1.495l-117.912.25c-.997 0-1.246-.499-.748-1.247l5.235-6.73c.499-.748 1.745-1.247 2.742-1.247zm12.963-22.934c.997 0 1.246.748.748 1.496l-4.238 6.481c-.499.748-1.745 1.496-2.493 1.496l-90.24-.25c-.998 0-1.247-.498-.749-1.246l5.235-6.73c.499-.748 1.745-1.247 2.742-1.247z"})}),_Je=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 279",...e,children:[y.jsx("defs",{children:y.jsxs("linearGradient",{id:"Grafana_svg__a",x1:"49.995%",x2:"49.995%",y1:"122.45%",y2:"31.139%",children:[y.jsx("stop",{offset:"0%",stopColor:"#FFF100"}),y.jsx("stop",{offset:"100%",stopColor:"#F05A28"})]})}),y.jsx("path",{fill:"url(#Grafana_svg__a)",d:"M255.59 122.775c-.46-4.675-1.226-10.04-2.759-16.017a98 98 0 0 0-7.204-19.16 106.7 106.7 0 0 0-13.412-20.54c-2.222-2.681-4.675-5.287-7.28-7.816 3.908-15.558-4.752-29.046-4.752-29.046-14.945-.92-24.448 4.675-27.973 7.204-.613-.23-1.15-.537-1.763-.767-2.529-.996-5.135-1.992-7.894-2.835a130 130 0 0 0-8.277-2.3c-2.835-.69-5.67-1.226-8.583-1.686-.537-.076-.996-.153-1.533-.23C157.646 8.738 138.946 0 138.946 0c-20.922 13.258-24.831 31.805-24.831 31.805s-.077.383-.23 1.073c-1.15.307-2.299.69-3.449.996-1.609.46-3.218 1.073-4.751 1.686a123 123 0 0 0-4.752 1.916 117 117 0 0 0-9.35 4.599c-2.989 1.686-5.9 3.525-8.737 5.441l-.766-.307c-28.97-11.036-54.643 2.223-54.643 2.223-2.376 30.809 11.572 50.198 14.331 53.724-.69 1.916-1.303 3.832-1.916 5.748-2.146 6.974-3.755 14.101-4.751 21.535-.154 1.073-.307 2.146-.384 3.219C7.894 146.916 0 173.97 0 173.97c22.302 25.674 48.359 27.283 48.359 27.283l.077-.076c3.295 5.9 7.127 11.495 11.419 16.783a112 112 0 0 0 5.671 6.362c-8.124 23.298 1.15 42.61 1.15 42.61 24.83.92 41.155-10.882 44.603-13.564a85 85 0 0 0 7.511 2.222 109.7 109.7 0 0 0 23.298 3.449c1.916.076 3.909.153 5.825.076h2.759l1.226-.076v.076c11.726 16.708 32.265 19.084 32.265 19.084 14.638-15.405 15.48-30.733 15.48-34.028v-1.38c3.066-2.145 5.979-4.445 8.738-6.974 5.824-5.288 10.959-11.342 15.25-17.857l1.15-1.839c16.554.92 28.28-10.27 28.28-10.27-2.759-17.243-12.569-25.673-14.638-27.283 0 0-.077-.076-.23-.153s-.153-.153-.153-.153c-.077-.077-.23-.154-.383-.23.076-1.073.153-2.07.23-3.142.153-1.84.153-3.756.153-5.595v-2.913l-.077-1.149-.076-1.533c0-.536-.077-.996-.154-1.456-.076-.46-.076-.996-.153-1.456l-.153-1.456-.23-1.456c-.307-1.916-.613-3.756-1.073-5.672-1.763-7.433-4.675-14.484-8.43-20.845a70.4 70.4 0 0 0-14.025-16.707c-5.365-4.752-11.42-8.584-17.704-11.42-6.36-2.835-12.952-4.675-19.543-5.518-3.295-.46-6.59-.613-9.886-.536h-2.453l-1.226.077c-.46 0-.92.076-1.303.076a52 52 0 0 0-4.981.69c-6.591 1.226-12.799 3.602-18.24 6.897s-10.193 7.358-14.025 11.956a54.7 54.7 0 0 0-8.89 15.021 52.9 52.9 0 0 0-3.525 16.094c-.077 1.303-.077 2.683-.077 3.986v.996l.077 1.073c.076.613.076 1.303.153 1.916.23 2.682.766 5.288 1.456 7.74 1.456 4.982 3.755 9.503 6.59 13.335s6.285 6.975 9.887 9.504c3.602 2.452 7.51 4.215 11.343 5.364 3.832 1.15 7.664 1.61 11.266 1.61h1.993c.23 0 .46 0 .689-.077.383 0 .766-.077 1.15-.077.076 0 .23 0 .306-.076l.383-.077c.23 0 .46-.076.69-.076.46-.077.843-.154 1.303-.23s.843-.154 1.226-.307c.843-.153 1.61-.46 2.376-.69 1.533-.536 3.066-1.15 4.368-1.839 1.38-.69 2.606-1.533 3.832-2.3.307-.23.69-.459.997-.766 1.226-.996 1.456-2.835.46-4.061-.844-1.073-2.376-1.38-3.603-.69l-.92.46a25 25 0 0 1-3.295 1.38c-1.15.382-2.375.689-3.602.919-.613.076-1.226.153-1.916.23-.306 0-.613.076-.996.076h-1.84c-.383 0-.766 0-1.149-.076h-.46c-.153 0-.383 0-.536-.077-.383-.077-.69-.077-1.073-.153-2.836-.383-5.671-1.226-8.354-2.453a29.3 29.3 0 0 1-7.74-5.058c-2.376-2.146-4.445-4.675-6.055-7.587s-2.759-6.131-3.295-9.503c-.23-1.686-.383-3.449-.307-5.135 0-.46.077-.92.077-1.38v-.613c0-.23.077-.46.077-.69.076-.919.23-1.839.383-2.758 1.303-7.358 4.981-14.562 10.653-20.003 1.456-1.38 2.988-2.606 4.598-3.755a31.7 31.7 0 0 1 5.211-2.99 36 36 0 0 1 5.672-2.068c1.915-.537 3.908-.844 5.977-1.073.997-.077 1.993-.154 3.066-.154h2.376l.843.077c2.222.153 4.368.46 6.514.996 4.292.92 8.507 2.53 12.415 4.675 7.818 4.369 14.485 11.113 18.547 19.237 2.07 4.061 3.525 8.43 4.215 12.951.153 1.15.307 2.3.383 3.45l.077.842.077.843v3.296c0 .536-.077 1.456-.077 1.992-.077 1.227-.23 2.53-.383 3.756s-.383 2.452-.613 3.678a50 50 0 0 1-.843 3.602 64 64 0 0 1-2.3 7.128 62.4 62.4 0 0 1-7.204 13.105c-5.9 8.124-13.948 14.715-23.144 18.93-4.599 2.069-9.427 3.602-14.408 4.368-2.453.46-4.982.69-7.511.766h-3.832a36 36 0 0 1-4.062-.23c-5.365-.383-10.653-1.379-15.864-2.835-5.135-1.456-10.116-3.525-14.868-5.978-9.427-5.058-17.933-11.956-24.524-20.31a79 79 0 0 1-8.584-13.334 79 79 0 0 1-5.671-14.638c-1.38-5.058-2.223-10.193-2.606-15.405l-.077-.996v-6.821c.077-2.529.307-5.211.614-7.817.306-2.606.766-5.288 1.302-7.894.537-2.605 1.15-5.211 1.916-7.817a103 103 0 0 1 5.442-14.791c4.368-9.35 10.04-17.704 16.86-24.371 1.686-1.686 3.449-3.22 5.288-4.752a78 78 0 0 1 5.748-4.138c1.916-1.303 3.985-2.453 6.055-3.526a40 40 0 0 1 3.142-1.533l3.219-1.379c2.146-.92 4.368-1.686 6.667-2.376.537-.153 1.15-.306 1.686-.536.537-.154 1.15-.307 1.686-.46 1.15-.307 2.3-.613 3.45-.843.536-.153 1.149-.23 1.762-.383.613-.154 1.15-.23 1.763-.384.613-.076 1.15-.23 1.762-.306l.843-.153.92-.154c.613-.076 1.15-.153 1.763-.23.69-.076 1.302-.153 1.992-.23.537-.076 1.456-.153 1.993-.23.383-.076.843-.076 1.226-.153l.843-.076.383-.077h.46c.69-.077 1.303-.077 1.993-.153l.996-.077h.767c.536 0 1.149-.076 1.685-.076a99 99 0 0 1 6.745 0c4.445.153 8.813.69 13.028 1.456 8.507 1.61 16.478 4.291 23.758 7.893 7.28 3.526 13.719 7.894 19.39 12.646.383.306.69.613 1.073.92.306.306.69.613.996.92.69.612 1.303 1.225 1.993 1.838.69.614 1.303 1.227 1.916 1.84a44 44 0 0 1 1.839 1.916c2.376 2.529 4.598 5.058 6.59 7.664a99 99 0 0 1 9.734 15.25l.46.92.46.92c.306.613.613 1.226.843 1.84.306.613.536 1.149.843 1.762.23.613.536 1.15.766 1.763.92 2.299 1.84 4.521 2.53 6.59 1.149 3.373 1.992 6.362 2.682 8.967a2.043 2.043 0 0 0 2.299 1.61c1.15-.077 1.992-.996 1.992-2.146.077-2.759 0-6.054-.383-9.81"})]}),SJe=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 346",...e,children:[y.jsx("path",{fill:"#5382A1",d:"M82.554 267.473s-13.198 7.675 9.393 10.272c27.369 3.122 41.356 2.675 71.517-3.034 0 0 7.93 4.972 19.003 9.279-67.611 28.977-153.019-1.679-99.913-16.517M74.292 229.659s-14.803 10.958 7.805 13.296c29.236 3.016 52.324 3.263 92.276-4.43 0 0 5.526 5.602 14.215 8.666-81.747 23.904-172.798 1.885-114.296-17.532"}),y.jsx("path",{fill:"#E76F00",d:"M143.942 165.515c16.66 19.18-4.377 36.44-4.377 36.44s42.301-21.837 22.874-49.183c-18.144-25.5-32.059-38.172 43.268-81.858 0 0-118.238 29.53-61.765 94.6"}),y.jsx("path",{fill:"#5382A1",d:"M233.364 295.442s9.767 8.047-10.757 14.273c-39.026 11.823-162.432 15.393-196.714.471-12.323-5.36 10.787-12.8 18.056-14.362 7.581-1.644 11.914-1.337 11.914-1.337-13.705-9.655-88.583 18.957-38.034 27.15 137.853 22.356 251.292-10.066 215.535-26.195M88.9 190.48s-62.771 14.91-22.228 20.323c17.118 2.292 51.243 1.774 83.03-.89 25.978-2.19 52.063-6.85 52.063-6.85s-9.16 3.923-15.787 8.448c-63.744 16.765-186.886 8.966-151.435-8.183 29.981-14.492 54.358-12.848 54.358-12.848M201.506 253.422c64.8-33.672 34.839-66.03 13.927-61.67-5.126 1.066-7.411 1.99-7.411 1.99s1.903-2.98 5.537-4.27c41.37-14.545 73.187 42.897-13.355 65.647 0 .001 1.003-.895 1.302-1.697"}),y.jsx("path",{fill:"#E76F00",d:"M162.439.371s35.887 35.9-34.037 91.101c-56.071 44.282-12.786 69.53-.023 98.377-32.73-29.53-56.75-55.526-40.635-79.72C111.395 74.612 176.918 57.393 162.439.37"}),y.jsx("path",{fill:"#5382A1",d:"M95.268 344.665c62.199 3.982 157.712-2.209 159.974-31.64 0 0-4.348 11.158-51.404 20.018-53.088 9.99-118.564 8.824-157.399 2.421.001 0 7.95 6.58 48.83 9.201"})]}),EJe=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 249",...e,children:[y.jsx("path",{fill:"#326DE6",d:"M82.085 244.934c-5.946 0-11.561-2.642-15.36-7.432L8.92 165.657c-3.799-4.79-5.285-10.9-3.799-16.847l20.645-89.682c1.321-5.946 5.285-10.736 10.736-13.378l83.571-39.97c2.643-1.32 5.616-1.981 8.589-1.981s5.945.66 8.588 1.982l83.572 39.804c5.45 2.642 9.414 7.432 10.735 13.378l20.645 89.682c1.322 5.946 0 12.057-3.798 16.847l-57.807 71.845c-3.799 4.624-9.414 7.432-15.36 7.432z"}),y.jsx("path",{fill:"#FFF",d:"M128.495 7.928c2.313 0 4.625.495 6.772 1.486l83.572 39.804c4.294 2.147 7.597 6.111 8.588 10.736l20.645 89.682c1.156 4.79 0 9.745-3.138 13.543l-57.806 71.846c-2.973 3.798-7.598 5.945-12.387 5.945H82.085c-4.79 0-9.414-2.147-12.387-5.945l-57.806-71.846c-2.973-3.798-4.13-8.753-3.138-13.543l20.645-89.682c1.156-4.79 4.294-8.754 8.588-10.736L121.56 9.25c2.147-.826 4.624-1.321 6.936-1.321m0-7.763c-3.468 0-6.936.826-10.24 2.312l-83.571 39.97c-6.607 3.138-11.231 8.918-12.883 16.02L1.156 148.15c-1.651 7.102 0 14.369 4.625 20.15l57.806 71.845c4.46 5.615 11.231 8.753 18.333 8.753h92.655c7.102 0 13.874-3.138 18.333-8.753l57.807-71.846c4.624-5.615 6.276-13.047 4.624-20.15l-20.645-89.682c-1.651-7.102-6.276-12.882-12.882-16.02L138.57 2.476C135.432.991 131.964.165 128.495.165"}),y.jsx("path",{fill:"#FFF",d:"M212.232 142.534q-.248 0 0 0h-.165c-.165 0-.33 0-.33-.165-.33 0-.66-.165-.991-.165-1.156-.165-2.147-.33-3.138-.33-.496 0-.991 0-1.652-.166h-.165c-3.468-.33-6.276-.66-8.919-1.486-1.156-.496-1.486-1.156-1.817-1.817 0-.165-.165-.165-.165-.33l-2.147-.66a65.3 65.3 0 0 0-1.156-23.289 68 68 0 0 0-9.249-21.636l1.652-1.486v-.33c0-.826.165-1.652.825-2.478 1.982-1.817 4.46-3.303 7.433-5.12.495-.33.99-.495 1.486-.826.991-.495 1.817-.99 2.808-1.651.165-.165.495-.33.826-.66.165-.166.33-.166.33-.331 2.312-1.982 2.808-5.285 1.156-7.433-.826-1.156-2.312-1.816-3.799-1.816-1.32 0-2.477.495-3.633 1.321l-.33.33c-.33.165-.496.496-.826.661-.826.826-1.487 1.486-2.147 2.312-.33.33-.66.826-1.156 1.156-2.313 2.478-4.46 4.46-6.607 5.946q-.742.495-1.486.496c-.33 0-.661 0-.991-.166h-.33l-1.983 1.322c-2.147-2.312-4.459-4.294-6.771-6.276a65.96 65.96 0 0 0-34.519-13.709l-.165-2.147-.33-.33c-.496-.496-1.156-.991-1.322-2.147-.165-2.643.166-5.616.496-8.919v-.165c0-.496.165-1.156.33-1.652.165-.99.33-1.982.496-3.138v-1.486c0-2.973-2.313-5.45-5.12-5.45-1.322 0-2.643.66-3.634 1.651-.99.991-1.486 2.312-1.486 3.799v1.321c0 1.156.165 2.147.495 3.138.165.496.165.991.33 1.652v.165c.33 3.303.826 6.276.496 8.919-.165 1.156-.826 1.651-1.321 2.147l-.33.33-.166 2.147c-2.973.33-5.946.66-8.919 1.321-12.717 2.808-23.948 9.25-32.701 18.498l-1.652-1.156h-.33c-.33 0-.661.165-.991.165q-.743 0-1.487-.495c-2.147-1.486-4.294-3.634-6.606-6.111-.33-.33-.66-.826-1.156-1.156-.661-.826-1.322-1.487-2.148-2.312-.165-.166-.495-.33-.825-.661-.165-.165-.33-.165-.33-.33a5.77 5.77 0 0 0-3.634-1.322c-1.487 0-2.973.661-3.799 1.817-1.652 2.147-1.156 5.45 1.156 7.432.165 0 .165.166.33.166.33.165.496.495.826.66.991.66 1.817 1.156 2.808 1.652.496.165.991.495 1.487.826 2.972 1.816 5.45 3.303 7.432 5.12.826.825.826 1.651.826 2.477v.33l1.651 1.487c-.33.495-.66.826-.826 1.321-8.258 13.048-11.396 28.408-9.249 43.603l-2.147.66c0 .166-.165.166-.165.33-.33.661-.826 1.322-1.817 1.817-2.477.826-5.45 1.157-8.918 1.487h-.166c-.495 0-1.156 0-1.651.165-.991 0-1.982.165-3.138.33-.33 0-.66.166-.991.166-.165 0-.33 0-.496.165-2.973.66-4.79 3.468-4.294 6.11.496 2.313 2.643 3.8 5.285 3.8.496 0 .826 0 1.322-.166.165 0 .33 0 .33-.165.33 0 .66-.165.99-.165 1.157-.33 1.983-.66 2.974-1.156.495-.165.99-.496 1.486-.66h.165c3.138-1.157 5.946-2.148 8.589-2.478h.33c.991 0 1.652.495 2.147.826.165 0 .165.165.33.165l2.313-.33c3.964 12.221 11.561 23.122 21.636 31.05 2.312 1.816 4.624 3.303 7.102 4.79l-.991 2.146c0 .166.165.166.165.33.33.661.66 1.487.33 2.643-.99 2.478-2.477 4.955-4.294 7.763v.165c-.33.496-.66.826-.99 1.321-.661.826-1.157 1.652-1.818 2.643-.165.165-.33.495-.495.826 0 .165-.165.33-.165.33-1.321 2.808-.33 5.946 2.147 7.102q.99.496 1.982.496c1.982 0 3.964-1.322 4.955-3.139 0-.165.165-.33.165-.33.165-.33.33-.66.495-.826.496-1.156.661-1.982.991-2.973l.496-1.486c1.156-3.303 1.982-5.946 3.468-8.258.66-.991 1.487-1.156 2.147-1.487.165 0 .165 0 .33-.165l1.157-2.147c7.267 2.808 15.195 4.294 23.122 4.294 4.79 0 9.745-.495 14.37-1.651a73 73 0 0 0 8.588-2.478l.99 1.817c.166 0 .166 0 .331.165.826.165 1.486.496 2.147 1.487 1.321 2.312 2.312 5.12 3.468 8.258v.165l.496 1.486c.33.991.495 1.982.99 2.973.166.33.331.496.496.826 0 .165.166.33.166.33.99 1.982 2.972 3.139 4.954 3.139q.992 0 1.982-.496c1.156-.66 2.147-1.652 2.478-2.973.33-1.321.33-2.808-.33-4.129 0-.165-.166-.165-.166-.33-.165-.33-.33-.66-.495-.826-.496-.991-1.156-1.817-1.817-2.643-.33-.495-.66-.825-.99-1.32v-.166c-1.818-2.808-3.47-5.285-4.295-7.763-.33-1.156 0-1.816.165-2.642 0-.165.165-.165.165-.33l-.826-1.982c8.754-5.12 16.186-12.388 21.802-21.306 2.973-4.625 5.285-9.745 6.936-14.865l1.982.33c.166 0 .166-.165.33-.165.661-.33 1.157-.825 2.148-.825h.33c2.643.33 5.45 1.32 8.589 2.477h.165c.495.165.99.495 1.486.66.991.496 1.817.826 2.973 1.157.33 0 .66.165.991.165.165 0 .33 0 .495.165.496.165.826.165 1.322.165 2.477 0 4.624-1.651 5.285-3.798 0-1.982-1.817-4.625-4.79-5.45m-76.47-8.093-7.267 3.469-7.267-3.469-1.816-7.762 4.954-6.276h8.093l4.955 6.276zm43.108-17.176a52.1 52.1 0 0 1 1.156 16.68l-25.27-7.266c-2.312-.66-3.633-2.973-3.138-5.285.165-.661.496-1.322.991-1.817l19.985-18.003c2.807 4.625 4.954 9.91 6.276 15.69m-14.204-25.6-21.636 15.36c-1.817 1.156-4.295.825-5.781-.991-.495-.496-.66-1.157-.826-1.817l-1.486-26.922a50.13 50.13 0 0 1 29.729 14.37M116.769 78.12c1.817-.33 3.468-.66 5.285-.99l-1.486 26.425c-.165 2.312-1.982 4.294-4.46 4.294-.66 0-1.486-.165-1.982-.495L92.16 91.665c6.772-6.772 15.195-11.397 24.609-13.544m-32.537 23.453 19.654 17.507c1.817 1.487 1.982 4.294.496 6.111-.496.66-1.156 1.156-1.982 1.322l-25.6 7.432c-.991-11.231 1.486-22.627 7.432-32.372m-4.46 44.759 26.262-4.46c2.147-.165 4.129 1.322 4.624 3.469.165.99.165 1.817-.165 2.643l-10.075 24.278c-9.249-5.946-16.681-15.03-20.645-25.93m60.285 32.867c-3.799.826-7.598 1.321-11.562 1.321-5.78 0-11.396-.99-16.68-2.642l13.047-23.618c1.321-1.487 3.468-2.147 5.285-1.156a7 7 0 0 1 1.982 1.816l12.717 22.958c-1.486.495-3.138.826-4.79 1.321m32.206-22.957c-4.129 6.606-9.58 11.891-15.855 16.02l-10.405-24.94c-.496-1.981.33-4.128 2.312-5.12.66-.33 1.486-.495 2.312-.495l26.426 4.46c-.991 3.633-2.643 6.937-4.79 10.075"})]}),CJe=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 291",...e,children:[y.jsx("path",{fill:"#009639",d:"M2.054 218.187c1.32 2.347 3.227 4.108 5.575 5.428l112.962 65.137c4.695 2.787 10.416 2.787 14.964 0l112.963-65.137c4.695-2.64 7.482-7.629 7.482-13.057V80.284c0-5.428-2.787-10.416-7.482-13.056L135.555 2.09c-4.694-2.788-10.416-2.788-14.964 0L7.63 67.228C2.787 69.868 0 74.856 0 80.284v130.42c0 2.642.587 5.136 2.054 7.483"}),y.jsx("path",{fill:"#FFF",d:"M91.837 195.154a14.463 14.463 0 0 1-14.524 14.524 14.463 14.463 0 0 1-14.523-14.524V95.542c0-7.776 6.895-14.084 16.43-14.084 6.896 0 14.965 2.787 19.806 8.802l4.4 5.282 60.737 72.618V95.835a14.463 14.463 0 0 1 14.524-14.524 14.463 14.463 0 0 1 14.523 14.524v99.613c0 7.775-6.895 14.083-16.43 14.083-6.896 0-14.965-2.787-19.806-8.802l-65.137-77.754z"})]}),$Je=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 264",...e,children:[y.jsx("path",{d:"M255.008 158.086c-1.535-4.649-5.556-7.887-10.756-8.664-2.452-.366-5.26-.21-8.583.475-5.792 1.195-10.089 1.65-13.225 1.738 11.837-19.985 21.462-42.775 27.003-64.228 8.96-34.689 4.172-50.492-1.423-57.64C233.217 10.847 211.614.683 185.552.372c-13.903-.17-26.108 2.575-32.475 4.549-5.928-1.046-12.302-1.63-18.99-1.738-12.537-.2-23.614 2.533-33.079 8.15-5.24-1.772-13.65-4.27-23.362-5.864-22.842-3.75-41.252-.828-54.718 8.685C6.622 25.672-.937 45.684.461 73.634c.444 8.874 5.408 35.874 13.224 61.48 4.492 14.718 9.282 26.94 14.237 36.33 7.027 13.315 14.546 21.156 22.987 23.972 4.731 1.576 13.327 2.68 22.368-4.85 1.146 1.388 2.675 2.767 4.704 4.048 2.577 1.625 5.728 2.953 8.875 3.74 11.341 2.835 21.964 2.126 31.027-1.848.056 1.612.099 3.152.135 4.482.06 2.157.12 4.272.199 6.25.537 13.374 1.447 23.773 4.143 31.049.148.4.347 1.01.557 1.657 1.345 4.118 3.594 11.012 9.316 16.411 5.925 5.593 13.092 7.308 19.656 7.308 3.292 0 6.433-.432 9.188-1.022 9.82-2.105 20.973-5.311 29.041-16.799 7.628-10.86 11.336-27.217 12.007-52.99q.13-1.094.244-2.088l.16-1.362 1.797.158.463.031c10.002.456 22.232-1.665 29.743-5.154 5.935-2.754 24.954-12.795 20.476-26.351"}),y.jsx("path",{fill:"#336791",d:"M237.906 160.722c-29.74 6.135-31.785-3.934-31.785-3.934 31.4-46.593 44.527-105.736 33.2-120.211-30.904-39.485-84.399-20.811-85.292-20.327l-.287.052c-5.876-1.22-12.451-1.946-19.842-2.067-13.456-.22-23.664 3.528-31.41 9.402 0 0-95.43-39.314-90.991 49.444.944 18.882 27.064 142.873 58.218 105.422 11.387-13.695 22.39-25.274 22.39-25.274 5.464 3.63 12.006 5.482 18.864 4.817l.533-.452c-.166 1.7-.09 3.363.213 5.332-8.026 8.967-5.667 10.541-21.711 13.844-16.235 3.346-6.698 9.302-.471 10.86 7.549 1.887 25.013 4.561 36.813-11.958l-.47 1.885c3.144 2.519 5.352 16.383 4.982 28.952-.37 12.568-.617 21.197 1.86 27.937 2.479 6.74 4.948 21.905 26.04 17.386 17.623-3.777 26.756-13.564 28.027-29.89.901-11.606 2.942-9.89 3.07-20.267l1.637-4.912c1.887-15.733.3-20.809 11.157-18.448l2.64.232c7.99.363 18.45-1.286 24.589-4.139 13.218-6.134 21.058-16.377 8.024-13.686z"}),y.jsx("path",{fill:"#FFF",d:"M108.076 81.525c-2.68-.373-5.107-.028-6.335.902-.69.523-.904 1.129-.962 1.546-.154 1.105.62 2.327 1.096 2.957 1.346 1.784 3.312 3.01 5.258 3.28q.423.059.842.058c3.245 0 6.196-2.527 6.456-4.392.325-2.336-3.066-3.893-6.355-4.35M196.86 81.599c-.256-1.831-3.514-2.353-6.606-1.923-3.088.43-6.082 1.824-5.832 3.659.2 1.427 2.777 3.863 5.827 3.863q.387 0 .78-.054c2.036-.282 3.53-1.575 4.24-2.32 1.08-1.136 1.706-2.402 1.591-3.225"}),y.jsx("path",{fill:"#FFF",d:"M247.802 160.025c-1.134-3.429-4.784-4.532-10.848-3.28-18.005 3.716-24.453 1.142-26.57-.417 13.995-21.32 25.508-47.092 31.719-71.137 2.942-11.39 4.567-21.968 4.7-30.59.147-9.463-1.465-16.417-4.789-20.665-13.402-17.125-33.072-26.311-56.882-26.563-16.369-.184-30.199 4.005-32.88 5.183-5.646-1.404-11.801-2.266-18.502-2.376-12.288-.199-22.91 2.743-31.704 8.74-3.82-1.422-13.692-4.811-25.765-6.756-20.872-3.36-37.458-.814-49.294 7.571-14.123 10.006-20.643 27.892-19.38 53.16.425 8.501 5.269 34.653 12.913 59.698 10.062 32.964 21 51.625 32.508 55.464 1.347.449 2.9.763 4.613.763 4.198 0 9.345-1.892 14.7-8.33a530 530 0 0 1 20.261-22.926c4.524 2.428 9.494 3.784 14.577 3.92q.016.2.035.398a118 118 0 0 0-2.57 3.175c-3.522 4.471-4.255 5.402-15.592 7.736-3.225.666-11.79 2.431-11.916 8.435-.136 6.56 10.125 9.315 11.294 9.607 4.074 1.02 7.999 1.523 11.742 1.523 9.103 0 17.114-2.992 23.516-8.781-.197 23.386.778 46.43 3.586 53.451 2.3 5.748 7.918 19.795 25.664 19.794 2.604 0 5.47-.303 8.623-.979 18.521-3.97 26.564-12.156 29.675-30.203 1.665-9.645 4.522-32.676 5.866-45.03 2.836.885 6.487 1.29 10.434 1.289 8.232 0 17.731-1.749 23.688-4.514 6.692-3.108 18.768-10.734 16.578-17.36m-44.106-83.48c-.061 3.647-.563 6.958-1.095 10.414-.573 3.717-1.165 7.56-1.314 12.225-.147 4.54.42 9.26.968 13.825 1.108 9.22 2.245 18.712-2.156 28.078a37 37 0 0 1-1.95-4.009c-.547-1.326-1.735-3.456-3.38-6.404-6.399-11.476-21.384-38.35-13.713-49.316 2.285-3.264 8.084-6.62 22.64-4.813m-17.644-61.787c21.334.471 38.21 8.452 50.158 23.72 9.164 11.711-.927 64.998-30.14 110.969a171 171 0 0 0-.886-1.117l-.37-.462c7.549-12.467 6.073-24.802 4.759-35.738-.54-4.488-1.05-8.727-.92-12.709.134-4.22.692-7.84 1.232-11.34.663-4.313 1.338-8.776 1.152-14.037.139-.552.195-1.204.122-1.978-.475-5.045-6.235-20.144-17.975-33.81-6.422-7.475-15.787-15.84-28.574-21.482 5.5-1.14 13.021-2.203 21.442-2.016M66.674 175.778c-5.9 7.094-9.974 5.734-11.314 5.288-8.73-2.912-18.86-21.364-27.791-50.624-7.728-25.318-12.244-50.777-12.602-57.916-1.128-22.578 4.345-38.313 16.268-46.769 19.404-13.76 51.306-5.524 64.125-1.347-.184.182-.376.352-.558.537-21.036 21.244-20.537 57.54-20.485 59.759-.002.856.07 2.068.168 3.735.362 6.105 1.036 17.467-.764 30.334-1.672 11.957 2.014 23.66 10.111 32.109a36 36 0 0 0 2.617 2.468c-3.604 3.86-11.437 12.396-19.775 22.426m22.479-29.993c-6.526-6.81-9.49-16.282-8.133-25.99 1.9-13.592 1.199-25.43.822-31.79-.053-.89-.1-1.67-.127-2.285 3.073-2.725 17.314-10.355 27.47-8.028 4.634 1.061 7.458 4.217 8.632 9.645 6.076 28.103.804 39.816-3.432 49.229-.873 1.939-1.698 3.772-2.402 5.668l-.546 1.466c-1.382 3.706-2.668 7.152-3.465 10.424-6.938-.02-13.687-2.984-18.819-8.34m1.065 37.9c-2.026-.506-3.848-1.385-4.917-2.114.893-.42 2.482-.992 5.238-1.56 13.337-2.745 15.397-4.683 19.895-10.394 1.031-1.31 2.2-2.794 3.819-4.602l.002-.002c2.411-2.7 3.514-2.242 5.514-1.412 1.621.67 3.2 2.702 3.84 4.938.303 1.056.643 3.06-.47 4.62-9.396 13.156-23.088 12.987-32.921 10.526m69.799 64.952c-16.316 3.496-22.093-4.829-25.9-14.346-2.457-6.144-3.665-33.85-2.808-64.447.011-.407-.047-.8-.159-1.17a15.4 15.4 0 0 0-.456-2.162c-1.274-4.452-4.379-8.176-8.104-9.72-1.48-.613-4.196-1.738-7.46-.903.696-2.868 1.903-6.107 3.212-9.614l.549-1.475c.618-1.663 1.394-3.386 2.214-5.21 4.433-9.848 10.504-23.337 3.915-53.81-2.468-11.414-10.71-16.988-23.204-15.693-7.49.775-14.343 3.797-17.761 5.53-.735.372-1.407.732-2.035 1.082.954-11.5 4.558-32.992 18.04-46.59 8.489-8.56 19.794-12.788 33.568-12.56 27.14.444 44.544 14.372 54.366 25.979 8.464 10.001 13.047 20.076 14.876 25.51-13.755-1.399-23.11 1.316-27.852 8.096-10.317 14.748 5.644 43.372 13.315 57.129 1.407 2.521 2.621 4.7 3.003 5.626 2.498 6.054 5.732 10.096 8.093 13.046.724.904 1.426 1.781 1.96 2.547-4.166 1.201-11.649 3.976-10.967 17.847-.55 6.96-4.461 39.546-6.448 51.059-2.623 15.21-8.22 20.875-23.957 24.25m68.104-77.936c-4.26 1.977-11.389 3.46-18.161 3.779-7.48.35-11.288-.838-12.184-1.569-.42-8.644 2.797-9.547 6.202-10.503.535-.15 1.057-.297 1.561-.473q.469.383 1.032.756c6.012 3.968 16.735 4.396 31.874 1.271l.166-.033c-2.042 1.909-5.536 4.471-10.49 6.772"})]}),zJe=e=>y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 257",...e,children:y.jsx("path",{fill:"#DA4E31",d:"M128.001.667C57.311.667 0 57.971 0 128.664c0 70.69 57.311 127.998 128.001 127.998S256 199.354 256 128.664C256 57.97 198.689.667 128.001.667m0 239.56c-20.112 0-36.419-13.435-36.419-30.004h72.838c0 16.566-16.306 30.004-36.419 30.004m60.153-39.94H67.842V178.47h120.314v21.816zm-.432-33.045H68.185c-.398-.458-.804-.91-1.188-1.375-12.315-14.954-15.216-22.76-18.032-30.716-.048-.262 14.933 3.06 25.556 5.45 0 0 5.466 1.265 13.458 2.722-7.673-8.994-12.23-20.428-12.23-32.116 0-25.658 19.68-48.079 12.58-66.201 6.91.562 14.3 14.583 14.8 36.505 7.346-10.152 10.42-28.69 10.42-40.056 0-11.769 7.755-25.44 15.512-25.907-6.915 11.396 1.79 21.165 9.53 45.4 2.902 9.103 2.532 24.423 4.772 34.138.744-20.178 4.213-49.62 17.014-59.784-5.647 12.8.836 28.818 5.27 36.518 7.154 12.424 11.49 21.836 11.49 39.638 0 11.936-4.407 23.173-11.84 31.958 8.452-1.586 14.289-3.016 14.289-3.016l27.45-5.355c.002-.002-3.987 16.401-19.314 32.197"})}),RJe=e=>y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 228",...e,children:y.jsx("path",{fill:"#00D8FF",d:"M210.483 73.824a172 172 0 0 0-8.24-2.597c.465-1.9.893-3.777 1.273-5.621 6.238-30.281 2.16-54.676-11.769-62.708-13.355-7.7-35.196.329-57.254 19.526a171 171 0 0 0-6.375 5.848 156 156 0 0 0-4.241-3.917C100.759 3.829 77.587-4.822 63.673 3.233 50.33 10.957 46.379 33.89 51.995 62.588a171 171 0 0 0 1.892 8.48c-3.28.932-6.445 1.924-9.474 2.98C17.309 83.498 0 98.307 0 113.668c0 15.865 18.582 31.778 46.812 41.427a146 146 0 0 0 6.921 2.165 168 168 0 0 0-2.01 9.138c-5.354 28.2-1.173 50.591 12.134 58.266 13.744 7.926 36.812-.22 59.273-19.855a146 146 0 0 0 5.342-4.923 168 168 0 0 0 6.92 6.314c21.758 18.722 43.246 26.282 56.54 18.586 13.731-7.949 18.194-32.003 12.4-61.268a145 145 0 0 0-1.535-6.842c1.62-.48 3.21-.974 4.76-1.488 29.348-9.723 48.443-25.443 48.443-41.52 0-15.417-17.868-30.326-45.517-39.844m-6.365 70.984c-1.4.463-2.836.91-4.3 1.345-3.24-10.257-7.612-21.163-12.963-32.432 5.106-11 9.31-21.767 12.459-31.957 2.619.758 5.16 1.557 7.61 2.4 23.69 8.156 38.14 20.213 38.14 29.504 0 9.896-15.606 22.743-40.946 31.14m-10.514 20.834c2.562 12.94 2.927 24.64 1.23 33.787-1.524 8.219-4.59 13.698-8.382 15.893-8.067 4.67-25.32-1.4-43.927-17.412a157 157 0 0 1-6.437-5.87c7.214-7.889 14.423-17.06 21.459-27.246 12.376-1.098 24.068-2.894 34.671-5.345q.785 3.162 1.386 6.193M87.276 214.515c-7.882 2.783-14.16 2.863-17.955.675-8.075-4.657-11.432-22.636-6.853-46.752a157 157 0 0 1 1.869-8.499c10.486 2.32 22.093 3.988 34.498 4.994 7.084 9.967 14.501 19.128 21.976 27.15a135 135 0 0 1-4.877 4.492c-9.933 8.682-19.886 14.842-28.658 17.94M50.35 144.747c-12.483-4.267-22.792-9.812-29.858-15.863-6.35-5.437-9.555-10.836-9.555-15.216 0-9.322 13.897-21.212 37.076-29.293 2.813-.98 5.757-1.905 8.812-2.773 3.204 10.42 7.406 21.315 12.477 32.332-5.137 11.18-9.399 22.249-12.634 32.792a135 135 0 0 1-6.318-1.979m12.378-84.26c-4.811-24.587-1.616-43.134 6.425-47.789 8.564-4.958 27.502 2.111 47.463 19.835a144 144 0 0 1 3.841 3.545c-7.438 7.987-14.787 17.08-21.808 26.988-12.04 1.116-23.565 2.908-34.161 5.309a160 160 0 0 1-1.76-7.887m110.427 27.268a348 348 0 0 0-7.785-12.803c8.168 1.033 15.994 2.404 23.343 4.08-2.206 7.072-4.956 14.465-8.193 22.045a381 381 0 0 0-7.365-13.322m-45.032-43.861c5.044 5.465 10.096 11.566 15.065 18.186a322 322 0 0 0-30.257-.006c4.974-6.559 10.069-12.652 15.192-18.18M82.802 87.83a323 323 0 0 0-7.227 13.238c-3.184-7.553-5.909-14.98-8.134-22.152 7.304-1.634 15.093-2.97 23.209-3.984a322 322 0 0 0-7.848 12.897m8.081 65.352c-8.385-.936-16.291-2.203-23.593-3.793 2.26-7.3 5.045-14.885 8.298-22.6a321 321 0 0 0 7.257 13.246c2.594 4.48 5.28 8.868 8.038 13.147m37.542 31.03c-5.184-5.592-10.354-11.779-15.403-18.433 4.902.192 9.899.29 14.978.29 5.218 0 10.376-.117 15.453-.343-4.985 6.774-10.018 12.97-15.028 18.486m52.198-57.817c3.422 7.8 6.306 15.345 8.596 22.52-7.422 1.694-15.436 3.058-23.88 4.071a382 382 0 0 0 7.859-13.026 347 347 0 0 0 7.425-13.565m-16.898 8.101a359 359 0 0 1-12.281 19.815 329 329 0 0 1-23.444.823c-7.967 0-15.716-.248-23.178-.732a310 310 0 0 1-12.513-19.846h.001a307 307 0 0 1-10.923-20.627 310 310 0 0 1 10.89-20.637l-.001.001a307 307 0 0 1 12.413-19.761c7.613-.576 15.42-.876 23.31-.876H128c7.926 0 15.743.303 23.354.883a329 329 0 0 1 12.335 19.695 359 359 0 0 1 11.036 20.54 330 330 0 0 1-11 20.722m22.56-122.124c8.572 4.944 11.906 24.881 6.52 51.026q-.518 2.504-1.15 5.09c-10.622-2.452-22.155-4.275-34.23-5.408-7.034-10.017-14.323-19.124-21.64-27.008a161 161 0 0 1 5.888-5.4c18.9-16.447 36.564-22.941 44.612-18.3M128 90.808c12.625 0 22.86 10.235 22.86 22.86s-10.235 22.86-22.86 22.86-22.86-10.235-22.86-22.86 10.235-22.86 22.86-22.86"})}),TJe=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 220",...e,children:[y.jsx("path",{fill:"#912626",d:"M245.97 168.943c-13.662 7.121-84.434 36.22-99.501 44.075s-23.437 7.78-35.34 2.09c-11.902-5.69-87.216-36.112-100.783-42.597C3.566 169.271 0 166.535 0 163.951v-25.876s98.05-21.345 113.879-27.024c15.828-5.679 21.32-5.884 34.79-.95 13.472 4.936 94.018 19.468 107.331 24.344l-.006 25.51c.002 2.558-3.07 5.364-10.024 8.988"}),y.jsx("path",{fill:"#C6302B",d:"M245.965 143.22c-13.661 7.118-84.431 36.218-99.498 44.072-15.066 7.857-23.436 7.78-35.338 2.09-11.903-5.686-87.214-36.113-100.78-42.594-13.566-6.485-13.85-10.948-.524-16.166 13.326-5.22 88.224-34.605 104.055-40.284 15.828-5.677 21.319-5.884 34.789-.948 13.471 4.934 83.819 32.935 97.13 37.81 13.316 4.881 13.827 8.9.166 16.02"}),y.jsx("path",{fill:"#912626",d:"M245.97 127.074c-13.662 7.122-84.434 36.22-99.501 44.078-15.067 7.853-23.437 7.777-35.34 2.087-11.903-5.687-87.216-36.112-100.783-42.597C3.566 127.402 0 124.67 0 122.085V96.206s98.05-21.344 113.879-27.023c15.828-5.679 21.32-5.885 34.79-.95C162.142 73.168 242.688 87.697 256 92.574l-.006 25.513c.002 2.557-3.07 5.363-10.024 8.987"}),y.jsx("path",{fill:"#C6302B",d:"M245.965 101.351c-13.661 7.12-84.431 36.218-99.498 44.075-15.066 7.854-23.436 7.777-35.338 2.087-11.903-5.686-87.214-36.112-100.78-42.594-13.566-6.483-13.85-10.947-.524-16.167C23.151 83.535 98.05 54.148 113.88 48.47c15.828-5.678 21.319-5.884 34.789-.949 13.471 4.934 83.819 32.933 97.13 37.81 13.316 4.88 13.827 8.9.166 16.02"}),y.jsx("path",{fill:"#912626",d:"M245.97 83.653c-13.662 7.12-84.434 36.22-99.501 44.078-15.067 7.854-23.437 7.777-35.34 2.087-11.903-5.687-87.216-36.113-100.783-42.595C3.566 83.98 0 81.247 0 78.665v-25.88s98.05-21.343 113.879-27.021c15.828-5.68 21.32-5.884 34.79-.95C162.142 29.749 242.688 44.278 256 49.155l-.006 25.512c.002 2.555-3.07 5.361-10.024 8.986"}),y.jsx("path",{fill:"#C6302B",d:"M245.965 57.93c-13.661 7.12-84.431 36.22-99.498 44.074-15.066 7.854-23.436 7.777-35.338 2.09C99.227 98.404 23.915 67.98 10.35 61.497S-3.5 50.55 9.825 45.331C23.151 40.113 98.05 10.73 113.88 5.05c15.828-5.679 21.319-5.883 34.789-.948s83.819 32.934 97.13 37.811c13.316 4.876 13.827 8.897.166 16.017"}),y.jsx("path",{fill:"#FFF",d:"m159.283 32.757-22.01 2.285-4.927 11.856-7.958-13.23-25.415-2.284 18.964-6.839-5.69-10.498 17.755 6.944 16.738-5.48-4.524 10.855zM131.032 90.275 89.955 73.238l58.86-9.035zM74.082 39.347c17.375 0 31.46 5.46 31.46 12.194 0 6.736-14.085 12.195-31.46 12.195s-31.46-5.46-31.46-12.195c0-6.734 14.085-12.194 31.46-12.194"}),y.jsx("path",{fill:"#621B1C",d:"m185.295 35.998 34.836 13.766-34.806 13.753z"}),y.jsx("path",{fill:"#9A2928",d:"m146.755 51.243 38.54-15.245.03 27.519-3.779 1.478z"})]}),jJe=e=>y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 258",...e,children:y.jsxs("g",{fill:"#FFA64D",children:[y.jsx("path",{d:"M13.222 183.045C30.007 165.978 244.278 4.782 247.936 8.44c2.813 2.813-156.507 219.616-173.387 236.589s-44.26 16.785-61.14-.282c-16.972-17.066-16.972-44.73-.187-61.702",opacity:.5}),y.jsx("path",{d:"M22.693 175.45c20.63-12.098 230.119-95.18 232.65-90.68 1.97 3.47-168.79 154.538-189.514 166.541-20.63 12.003-46.98 4.783-58.89-16.222-11.909-20.818-4.876-47.543 15.754-59.64",opacity:.3}),y.jsx("path",{d:"M82.051 235.276C94.054 214.46 176.387 3.47 171.98.938 168.51-1.032 18.661 171.042 6.658 191.859c-11.91 20.818-4.689 47.356 16.129 59.265C43.51 263.127 70.048 256 82.05 235.276",opacity:.3}),y.jsx("path",{d:"M32.727 171.042c23.068-6.283 216.521-30.195 217.928-25.225 1.031 3.845-172.73 103.431-195.798 109.714s-46.699-7.595-52.794-30.945 7.69-47.261 30.664-53.544",opacity:.2}),y.jsx("path",{d:"M32.727 171.042c23.068-6.283 179.387 29.07 180.7 33.946 1.032 3.844-135.595 44.167-158.664 50.45-23.068 6.282-46.699-7.596-52.794-30.946-6.001-23.255 7.783-47.167 30.758-53.45",opacity:.1}),y.jsx("path",{d:"M86.459 225.055c6.282-23.256-28.882-180.7-33.852-182.013C48.762 42.01 8.815 179.575 2.626 202.83c-6.19 23.255 7.595 47.074 30.757 53.075 23.068 6.19 46.887-7.595 53.076-30.851",opacity:.1}),y.jsx("path",{d:"M86.459 225.055C92.74 201.799 116.372 6.939 111.496 5.626 107.651 4.595 8.908 179.576 2.626 202.925-3.564 226.18 10.22 249.999 33.383 256c23.068 6.189 46.887-7.69 53.076-30.945",opacity:.2})]})}),AJe=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 256",...e,children:[y.jsx("path",{fill:"#85EA2D",d:"M127.999 249.895c-67.215 0-121.9-54.68-121.9-121.896S60.785 6.102 128 6.102c67.214 0 121.899 54.685 121.899 121.9 0 67.214-54.685 121.893-121.9 121.893"}),y.jsx("path",{fill:"#173647",d:"M127.999 12.202c63.954 0 115.797 51.842 115.797 115.797 0 63.952-51.843 115.797-115.797 115.797-63.952 0-115.797-51.845-115.797-115.797S64.047 12.202 127.999 12.202m0-12.202C57.419 0 0 57.42 0 127.999s57.42 127.998 127.999 127.998S256 198.577 256 128C256 57.419 198.578 0 127.999 0"}),y.jsx("path",{fill:"#173647",d:"M80.598 86.619c-.394 4.38.146 8.909-.146 13.338-.345 4.431-.887 8.811-1.773 13.192-1.23 6.25-5.12 10.976-10.482 14.914 10.436 6.793 11.616 17.324 12.304 28.006.345 5.76.197 11.567.788 17.276.443 4.429 2.165 5.562 6.745 5.708 1.87.048 3.786 0 5.956 0v13.683c-13.535 2.313-24.708-1.525-27.467-12.992-.887-4.184-1.478-8.467-1.673-12.798-.297-4.578.195-9.155-.148-13.732-.985-12.553-2.61-16.785-14.618-17.376v-15.602a24 24 0 0 1 2.608-.443c6.596-.345 9.4-2.364 10.828-8.86.69-3.641 1.084-7.333 1.23-11.074.494-7.136.297-14.42 1.525-21.507C67.997 68.163 74.3 63.24 84.785 62.65c2.952-.149 5.955 0 9.35 0v13.98c-1.427.1-2.658.294-3.937.294-8.515-.297-8.96 2.607-9.6 9.695m16.39 32.386h-.196c-4.923-.245-9.155 3.593-9.403 8.515-.246 4.972 3.592 9.206 8.515 9.45h.59c4.875.296 9.056-3.447 9.352-8.319v-.491c.1-4.971-3.886-9.055-8.857-9.155m30.862 0c-4.774-.148-8.763 3.593-8.909 8.318 0 .297 0 .543.051.837 0 5.365 3.641 8.812 9.155 8.812 5.414 0 8.812-3.544 8.812-9.106-.051-5.366-3.646-8.91-9.109-8.86m31.602 0c-5.02-.1-9.206 3.89-9.352 8.91a9.03 9.03 0 0 0 9.055 9.054h.1c4.528.788 9.106-3.592 9.402-8.858.243-4.874-4.186-9.106-9.205-9.106m43.363.737c-5.711-.245-8.567-2.164-9.992-7.581a55 55 0 0 1-1.624-10.582c-.395-6.596-.346-13.241-.789-19.837-1.033-15.651-12.352-21.114-28.794-18.41V76.92c2.607 0 4.626 0 6.645.049 3.495.048 6.153 1.379 6.496 5.268.345 3.543.345 7.136.69 10.73.692 7.139 1.083 14.372 2.314 21.41 1.085 5.809 5.07 10.14 10.04 13.684-8.71 5.857-11.27 14.223-11.714 23.626-.245 6.448-.394 12.944-.736 19.443-.297 5.905-2.362 7.824-8.318 7.972-1.674.05-3.298.198-5.169.297v13.93c3.495 0 6.694.196 9.892 0 9.942-.592 15.947-5.415 17.918-15.063a126 126 0 0 0 1.476-16.045c.343-4.923.297-9.894.788-14.766.737-7.63 4.232-10.78 11.862-11.27.739-.1 1.427-.246 2.118-.492v-15.604c-1.282-.149-2.17-.295-3.103-.346"})]}),DJe=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 512 123",...e,children:[y.jsx("path",{d:"M207.785 45.398c15.276 0 18.696 8.908 18.696 19.188v10.239H199.86v2.457c.102 5.693 2.15 7.945 9.399 7.945a50 50 0 0 0 14.58-2.252l1.863 9.01a51.2 51.2 0 0 1-17.528 3.03c-14.97 0-20.17-6.942-20.17-18.43V63.993c0-10.075 4.504-18.594 19.78-18.594m100.38-.02c14.97 0 19.392 5.283 19.392 17.222l-.04 31.432h-9.789l-.88-3.235a26.06 26.06 0 0 1-14.191 4.218c-8.703 0-12.43-5.98-12.43-14.19 0-9.686 4.218-13.413 13.904-13.413h11.447v-4.997c0-5.283-1.474-7.146-9.113-7.146-4.443.049-8.866.544-13.208 1.474l-1.474-9.112a62.4 62.4 0 0 1 16.382-2.253m79.35 0c16.341 0 20.744 9.01 20.744 18.798v12.041c.02 9.788-4.403 18.798-20.744 18.798-16.382 0-20.743-9.01-20.743-18.798v-12.04c0-9.789 4.402-18.799 20.743-18.799M198.017 28.832v10.874h-18.225v54.326h-12.286l-.041-54.326H149.26V28.832zm157.205-3.911c3.46-.012 6.905.45 10.239 1.372l-1.25 9.194a35 35 0 0 0-6.86-.778c-4.688 0-5.385 2.048-5.385 5.673v5.979h12.143l-.675 9.501h-11.447v38.17h-11.939v-38.17h-7.638v-9.501h7.638v-6.655c0-9.89 4.608-14.785 15.174-14.785M482.04 50.477a46.8 46.8 0 0 1 19.187-5.099c7.925 0 10.772 5.57 10.772 14.089v34.565h-11.939V60.757c0-2.54-1.085-3.81-3.809-3.81a31.6 31.6 0 0 0-12.43 4.096v32.99H471.8V60.756c0-2.54-1.085-3.81-3.808-3.81-4.376.52-8.601 1.913-12.43 4.096v32.99h-11.939V46.36h9.113l1.167 4.095a47.7 47.7 0 0 1 19.126-5.078 9.05 9.05 0 0 1 9.01 5.099m-224.863-5.099 1.229 10.976a94 94 0 0 0-12.676 6.942v30.716h-11.938V46.361h10.075l.778 5.283a53.5 53.5 0 0 1 12.532-6.266m29.201 0 1.188 10.976a94 94 0 0 0-12.635 6.942v30.716h-11.938V46.361h10.075l.778 5.283a53.5 53.5 0 0 1 12.532-6.266m151.43 0 1.188 10.976a94 94 0 0 0-12.634 6.942v30.716h-11.938V46.361h10.074l.779 5.283a53.4 53.4 0 0 1 12.532-6.266m-122.23 30.634h-8.804c-3.912 0-4.997 1.086-4.997 4.69s1.085 4.791 4.792 4.791a18.8 18.8 0 0 0 9.01-2.457zm71.938-20.457c-6.368 0-8.805 2.847-8.805 8.191v12.82c0 5.385 2.457 8.19 8.805 8.19s8.805-2.846 8.805-8.19V63.786c0-5.385-2.436-8.232-8.805-8.232m-179.628-.389c-5.877 0-7.925 3.133-7.925 7.638v2.417h15.174v-2.417c0-4.505-1.372-7.638-7.249-7.638"}),y.jsx("path",{fill:"#4040B2",d:"M74.538 79.821 108.12 60.45V21.645L74.538 41.057z"}),y.jsx("path",{fill:"#5C4EE5",d:"m37.269 21.645 33.583 19.412v38.764L37.269 60.43M0 38.784l33.583 19.392V19.392L0 0m37.269 103.473 33.583 19.392V84.08L37.269 64.688"})]});const MJe={"tech:docker":yJe,"tech:elasticsearch":vJe,"tech:electron":bJe,"tech:git":xJe,"tech:github":wJe,"tech:go":kJe,"tech:grafana":_Je,"tech:java":SJe,"tech:kubernetes":EJe,"tech:nginx":CJe,"tech:postgresql":$Je,"tech:prometheus":zJe,"tech:react":RJe,"tech:redis":TJe,"tech:spark":jJe,"tech:swagger":AJe,"tech:terraform":DJe};function NJe(e){const r=MJe[e.node.icon??""];return r?y.jsx(r,e):null}function PJe(e,r,n){let o=a=>e(a,...r);return n===void 0?o:Object.assign(o,{lazy:n,lazyArgs:r})}function Jre(e,r,n){let o=e.length-r.length;if(o===0)return e(...r);if(o===1)return PJe(e,r,n);throw Error("Wrong number of arguments")}function BJe(...e){return Jre(IJe,e)}function IJe(e,r){let n={};for(let[o,a]of Object.entries(e))n[o]=r(a,o,e);return n}function ene(...e){return Jre(R0,e)}function R0(e,r){if(e===r||Object.is(e,r))return!0;if(typeof e!="object"||typeof r!="object"||e===null||r===null||Object.getPrototypeOf(e)!==Object.getPrototypeOf(r))return!1;if(Array.isArray(e))return OJe(e,r);if(e instanceof Map)return LJe(e,r);if(e instanceof Set)return FJe(e,r);if(e instanceof Date)return e.getTime()===r.getTime();if(e instanceof RegExp)return e.toString()===r.toString();if(Object.keys(e).length!==Object.keys(r).length)return!1;for(let[n,o]of Object.entries(e))if(!(n in r)||!R0(o,r[n]))return!1;return!0}function OJe(e,r){if(e.length!==r.length)return!1;for(let[n,o]of e.entries())if(!R0(o,r[n]))return!1;return!0}function LJe(e,r){if(e.size!==r.size)return!1;for(let[n,o]of e.entries())if(!r.has(n)||!R0(o,r.get(n)))return!1;return!0}function FJe(e,r){if(e.size!==r.size)return!1;let n=[...r];for(let o of e){let a=!1;for(let[i,l]of n.entries())if(R0(o,l)){a=!0,n.splice(i,1);break}if(!a)return!1}return!0}let gl=[],Fd=0;const m4=4;let g4=0;const tne=e=>{let r=[],n={get(){return n.lc||n.listen(()=>{})(),n.value},lc:0,listen(o){return n.lc=r.push(o),()=>{for(let i=Fd+m4;i(e.events=e.events||{},e.events[n+v4]||(e.events[n+v4]=o(a=>{e.events[n].reduceRight((i,l)=>(l(i),i),{shared:{},...a})})),e.events[n]=e.events[n]||[],e.events[n].push(r),()=>{let a=e.events[n],i=a.indexOf(r);a.splice(i,1),a.length||(delete e.events[n],e.events[n+v4](),delete e.events[n+v4])}),HJe=1e3,UJe=(e,r)=>qJe(e,n=>{let o=r(n);o&&e.events[y4].push(o)},VJe,n=>{let o=e.listen;e.listen=(...i)=>(!e.lc&&!e.active&&(e.active=!0,n()),o(...i));let a=e.off;return e.events[y4]=[],e.off=()=>{a(),setTimeout(()=>{if(e.active&&!e.lc){e.active=!1;for(let i of e.events[y4])i();e.events[y4]=[]}},HJe)},()=>{e.listen=o,e.off=a}}),WJe=(e,r,n)=>{Array.isArray(e)||(e=[e]);let o,a,i=()=>{if(a===g4)return;a=g4;let d=e.map(u=>u.get());if(!o||d.some((u,p)=>u!==o[p])){o=d;let u=r(...d);u&&u.then&&u.t?u.then(p=>{o===d&&l.set(p)}):(l.set(u),a=g4)}},l=tne(void 0),s=l.get;l.get=()=>(i(),s());let c=i;return UJe(l,()=>{let d=e.map(u=>u.listen(c));return i(),()=>{for(let u of d)u()}}),l};const rne=(e,r)=>WJe(e,r);function GJe(e,r,n){let o=new Set(r).add(void 0);return e.listen((a,i,l)=>{o.has(l)&&n(a,i,l)})}let CR=(e,r)=>n=>{e.current!==n&&(e.current=n,r())};function nne(e,{keys:r,deps:n=[e,r]}={}){let o=S.useRef();o.current=e.get();let a=S.useCallback(l=>(CR(o,l)(e.value),r?.length>0?GJe(e,r,CR(o,l)):e.listen(CR(o,l))),n),i=()=>o.current;return S.useSyncExternalStore(a,i,i)}const YJe=e=>{const r=rne(e,s=>Fu.create(s));function n(s){const c=e.get();if(ene(c,s))return;const d={...s,views:BJe(s.views,u=>{const p=c.views[u.id];return ene(p,u)?p:u})};e.set(d)}const o=rne(e,s=>Object.values(s.views));function a(){return nne(r)}function i(){return nne(o)}function l(s){const[c,d]=S.useState(e.value?.views[s]??null);return S.useEffect(()=>e.subscribe(u=>{d(u.views[s]??null)}),[s]),c}return{updateModel:n,$likec4model:r,useLikeC4Model:a,useLikeC4Views:i,useLikeC4View:l}},XJe=tne({_stage:"layouted",projectId:"architecture",project:{id:"architecture",title:"architecture"},specification:{tags:{internal:{color:"tomato"}},elements:{actor:{style:{shape:"person",color:"green"}},person:{style:{shape:"person",color:"green"}},component:{style:{}},container:{style:{opacity:20}},internalComponent:{style:{color:"muted",opacity:15}},schema:{style:{}},step:{style:{}},system:{style:{}},workflow:{style:{}},tool:{style:{}},process:{style:{}},repository:{style:{shape:"storage"}}},relationships:{},deployments:{cloud:{style:{}},environment:{style:{}},computeressource:{style:{}},paas:{style:{}},kubernetes:{style:{}},cluster:{style:{}},namespace:{style:{}}},customColors:{magenta:{elements:{fill:"#b100ff",stroke:"#9e00e4",hiContrast:"#ffffff",loContrast:"#fff2ff"},relationships:{line:"#c137fe",label:"#d064ff",labelBg:"#7a00b3"}}}},elements:{edfbuilder_workflow:{style:{},title:"EDFbuilder",kind:"workflow",id:"edfbuilder_workflow"},argocdworkflow:{style:{},title:"EDP ArgoCD Setup Workflow",kind:"workflow",id:"argocdworkflow"},edpworkflow:{style:{},title:"EDP Infrastructure Setup Workflow",kind:"workflow",id:"edpworkflow"},applicationspecification:{style:{},description:{txt:"The application specification describes the application and its components. It is used to generate the application and its components."},title:"application-specification",kind:"component",id:"applicationspecification"},forgejoRunner:{style:{},description:{txt:"A runner is a service that runs jobs triggered by Forgejo. A runner can have different technical implementations like a container or a VM."},title:"Forgejo Runner",kind:"component",id:"forgejoRunner"},forgejoRunnerWorker:{style:{},description:{txt:"A worker is a service that runs a job invoked by a runner. A worker typically is a container."},title:"Forgejo Runner Worker",kind:"component",id:"forgejoRunnerWorker"},promtail:{style:{},description:{txt:"Log shipper agent for Loki"},title:"Promtail",kind:"component",id:"promtail"},edfbuilder:{style:{shape:"rectangle",icon:"tech:go"},technology:"Golang",description:{txt:"EDP Foundry Builder"},title:"edfbuilder",kind:"component",id:"edfbuilder"},edgeConnect:{style:{},description:{txt:"Provides an API to run applications on the edge"},title:"Edge Connect",kind:"component",id:"edgeConnect"},elasticsearch:{style:{opacity:20,icon:"tech:elasticsearch"},technology:"Elasticsearch",description:{txt:`Elasticsearch is a distributed, RESTful search and analytics engine capable of addressing a growing number of use cases. It centrally stores your data so you can discover the expected and uncover the unexpected.`},title:"Elasticsearch",kind:"container",id:"elasticsearch"},objectstorage:{style:{opacity:20},technology:"S3 Object Storage",description:{txt:"s3 Object Storage"},title:"s3 Object Storage",kind:"container",id:"objectstorage"},postgres:{style:{opacity:20,icon:"tech:postgresql"},technology:"PostgreSQL",description:{txt:`PostgreSQL is a powerful, open source object-relational database system. It has more than 15 years of active development and a proven architecture @@ -214,7 +214,7 @@ and correctness.`},title:"PostgreSQL",kind:"container",id:"postgres"},redis:{sty offering capabilities like code version controling collaboration and ticketing -and security scanning`},title:"Forgejo",kind:"container",id:"edp.forgejo"},"edp.forgejoActions":{style:{icon:"tech:go"},technology:"Golang",description:{txt:"Continuous Integration like Github Actions"},title:"Forgejo Actions",kind:"component",id:"edp.forgejoActions"},"edp.imageregistry":{style:{icon:"tech:go"},technology:"Golang",description:{txt:"Container Image Registry"},title:"Forgejo OCI Image Registry",kind:"component",id:"edp.imageregistry"},"edp.forgejogit":{style:{icon:"tech:git"},title:"ForgejoGit",kind:"component",id:"edp.forgejogit"},"edp.garm":{style:{opacity:20,icon:"tech:docker"},title:"Garm Image",kind:"container",id:"edp.garm"},"edp.grafana":{style:{opacity:20,icon:"tech:grafana"},description:{txt:"Data visualization and monitoring"},title:"Grafana",kind:"container",id:"edp.grafana"},"edp.ingressNginx":{style:{opacity:20},tags:["internal"],description:{txt:"Ingress Controller for incoming http(s) traffic"},title:"Ingress",kind:"container",id:"edp.ingressNginx"},"edp.keycloak":{style:{opacity:20},description:{txt:"Single Sign On for all EDP products"},title:"Keycloak",kind:"container",id:"edp.keycloak"},"edp.kyverno":{style:{opacity:20},tags:["internal"],description:{txt:"Policy-as-Code"},title:"Kyverno",kind:"container",id:"edp.kyverno"},"edp.loki":{style:{opacity:20},description:{txt:"Log aggregation system"},title:"Loki",kind:"container",id:"edp.loki"},"edp.mailhog":{style:{opacity:20},description:{txt:"Web and API based SMTP testing"},title:"Mailhog",kind:"container",id:"edp.mailhog"},"edp.minio":{style:{opacity:20},description:{txt:"S3 compatible blob storage"},title:"Minio",kind:"container",id:"edp.minio"},"edp.monitoring":{style:{opacity:20},description:{txt:"Observability system to monitor deployed components"},title:"Monitoring",kind:"container",id:"edp.monitoring"},"edp.openbao":{style:{opacity:20},description:{txt:"Secure secret storage"},title:"OpenBao",kind:"container",id:"edp.openbao"},"edp.prometheus":{style:{opacity:20,icon:"tech:prometheus"},description:{txt:"Monitoring and alerting toolkit"},title:"Prometheus",kind:"container",id:"edp.prometheus"},"edp.spark":{style:{opacity:20},tags:["internal"],description:{txt:"Allows running Spark applications on K8s"},title:"Spark",kind:"container",id:"edp.spark"},"edp.velero":{style:{opacity:20},tags:["internal"],description:{txt:"Backup Kubernetes resources"},title:"Velero",kind:"container",id:"edp.velero"},"cloud.application":{style:{color:"primary"},technology:"DSL",description:{txt:"An application description"},title:"application",kind:"schema",id:"cloud.application"},"edp.application":{style:{color:"primary"},technology:"DSL",description:{txt:"An application description"},title:"application",kind:"schema",id:"edp.application"},"edp.testApp":{style:{opacity:20},description:{txt:"Testapp to validate deployments"},title:"Fibonacci",kind:"container",id:"edp.testApp"},"localbox.application":{style:{color:"primary"},technology:"DSL",description:{txt:"An application description"},title:"application",kind:"schema",id:"localbox.application"},"localbox.git":{style:{icon:"tech:git"},technology:"Git",description:{txt:"local git"},title:"git",kind:"component",id:"localbox.git"},"edfbuilder_workflow.runEDP.createCrossplaneNS":{style:{},title:"Create Crossplane namespace",kind:"step",id:"edfbuilder_workflow.runEDP.createCrossplaneNS"},"edfbuilder_workflow.runEDP.installCrossplaneHelm":{style:{},title:"Install Crossplane Helm Chart",kind:"step",id:"edfbuilder_workflow.runEDP.installCrossplaneHelm"},"edfbuilder_workflow.runEDP.installCrossplaneFunctionsAndProviders":{style:{},title:"Install Crossplane Functions and Providers",kind:"step",id:"edfbuilder_workflow.runEDP.installCrossplaneFunctionsAndProviders"},"edfbuilder_workflow.runEDP.waitForCrossplaneFunctionsAndProviders":{style:{},title:"Wait for Crossplane Functions and Providers to become available",kind:"step",id:"edfbuilder_workflow.runEDP.waitForCrossplaneFunctionsAndProviders"},"edfbuilder_workflow.runEDP.setupCrossplaneServiceAccount":{style:{},title:"Apply cluster-admin role to crossplane shell provider service account",kind:"step",id:"edfbuilder_workflow.runEDP.setupCrossplaneServiceAccount"},"edfbuilder_workflow.runEDP.createArgoCdNS":{style:{},title:"Create ArgoCD namespace",kind:"step",id:"edfbuilder_workflow.runEDP.createArgoCdNS"},"edfbuilder_workflow.runEDP.createGiteaNS":{style:{},title:"Create Gitea namespace",kind:"step",id:"edfbuilder_workflow.runEDP.createGiteaNS"},"edfbuilder_workflow.runEDP.createArgoCdTlsCert":{style:{},title:"Create TLS Cert for Argo",kind:"step",id:"edfbuilder_workflow.runEDP.createArgoCdTlsCert"},"edfbuilder_workflow.runEDP.createGiteaTlsCert":{style:{},title:"Create TLS Cert for Forgejo",kind:"step",id:"edfbuilder_workflow.runEDP.createGiteaTlsCert"},"edfbuilder_workflow.runEDP.createEDFBuilderDefinition":{style:{},title:"Create EDFbuilder crossplane definition (defines API)",kind:"step",id:"edfbuilder_workflow.runEDP.createEDFBuilderDefinition"},"edfbuilder_workflow.runEDP.createEDFBuilderComposition":{style:{},title:"Create EDFbuilder crossplane composition (defines what happens when EDFbuilder is applied)",kind:"step",id:"edfbuilder_workflow.runEDP.createEDFBuilderComposition"},"edfbuilder_workflow.applyEDFBuilder.setEnvVars":{style:{},title:"Set required environment variables",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.setEnvVars"},"edfbuilder_workflow.applyEDFBuilder.readWriteKubeConf":{style:{},title:"Make kube.conf write/readbale",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.readWriteKubeConf"},"edfbuilder_workflow.applyEDFBuilder.setWorkDir":{style:{},title:"Set workdir to /tmp/rundir",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.setWorkDir"},"edfbuilder_workflow.applyEDFBuilder.cloneStacksRepo":{style:{},title:"Clone steps repo and checkout desired branch",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.cloneStacksRepo"},"edfbuilder_workflow.applyEDFBuilder.hydrateStacksWithValues":{style:{},title:"Hydrate Stacks with values",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.hydrateStacksWithValues"},"edfbuilder_workflow.applyEDFBuilder.createNamespaces":{style:{},title:"Create all required namespaces",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.createNamespaces"},"edfbuilder_workflow.applyEDFBuilder.createGiteaAdminPass":{style:{},title:"Create Admin Password for Forgejo",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.createGiteaAdminPass"},"edfbuilder_workflow.applyEDFBuilder.createGrafanaPass":{style:{},title:"Create Grafana Admin Password",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.createGrafanaPass"},"edfbuilder_workflow.applyEDFBuilder.applyServiceMonitorCRD":{style:{},title:"Apply ServiceMonitor CRDs for Prometheus",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.applyServiceMonitorCRD"},"edfbuilder_workflow.applyEDFBuilder.cloneIngressNginxChart":{style:{},title:"Git clone ingress-nginx helm chart",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.cloneIngressNginxChart"},"edfbuilder_workflow.applyEDFBuilder.isntallIngressNginx":{style:{},title:"Install ingress-nginx from cloned chart",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.isntallIngressNginx"},"edfbuilder_workflow.applyEDFBuilder.waitForIngress":{style:{},title:"Wait till ingress-nginx is ready",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.waitForIngress"},"edfbuilder_workflow.applyEDFBuilder.cloneArgoCDHelm":{style:{},title:"Git clone ArgoCD Helm Chart",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.cloneArgoCDHelm"},"edfbuilder_workflow.applyEDFBuilder.installArgoCD":{style:{},title:"Install ArgoCD Helm Chart",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.installArgoCD"},"edfbuilder_workflow.applyEDFBuilder.installArgoCDIngress":{style:{},title:"Install ingress for ArgoCD",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.installArgoCDIngress"},"edfbuilder_workflow.applyEDFBuilder.cloneForgejoHelmChart":{style:{},title:"Git clone Forgejo Helm Chart",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.cloneForgejoHelmChart"},"edfbuilder_workflow.applyEDFBuilder.installForgejo":{style:{},title:"Install Forgejo Helm Chart",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.installForgejo"},"edfbuilder_workflow.applyEDFBuilder.installForgejoIngress":{style:{},title:"Install ingress for Forgejo",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.installForgejoIngress"},"edfbuilder_workflow.applyEDFBuilder.waitForArgoCD":{style:{},title:"Wait till ArgoCD is available",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.waitForArgoCD"},"edfbuilder_workflow.applyEDFBuilder.waitForForgejo":{style:{},title:"Wait till Forgejo is available",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.waitForForgejo"},"edfbuilder_workflow.applyEDFBuilder.createForgejoUser":{style:{},title:"Create technical user for Forgejo",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.createForgejoUser"},"edfbuilder_workflow.applyEDFBuilder.createForgejoRepo":{style:{},title:"Create repository for EDP state in Forgejo",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.createForgejoRepo"},"edfbuilder_workflow.applyEDFBuilder.installForgejoRunner":{style:{},title:"Install Forgejo Runner deployment",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.installForgejoRunner"},"edfbuilder_workflow.applyEDFBuilder.registerForgejoRunner":{style:{},title:"Create registration token secret for runner",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.registerForgejoRunner"},"edfbuilder_workflow.applyEDFBuilder.configGitIdentity":{style:{},title:"Configure Git identity",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.configGitIdentity"},"edfbuilder_workflow.applyEDFBuilder.configCrossplaneArgoCDProvider":{style:{},title:"Configure Crossplane ArgoCD provider",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.configCrossplaneArgoCDProvider"},"edfbuilder_workflow.applyEDFBuilder.configCrossplaneKindProvider":{style:{},title:"Configure Crossplane Kind provider",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.configCrossplaneKindProvider"},"edfbuilder_workflow.applyEDFBuilder.uploadStacksToForgjo":{style:{},title:"Git push hydrated stacks to Forgejo isntance",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.uploadStacksToForgjo"},"edfbuilder_workflow.applyEDFBuilder.configArgoDockerRegistry":{style:{},title:"Configure Docker Registry for Argo Workflows",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.configArgoDockerRegistry"},"edfbuilder_workflow.applyEDFBuilder.createPackagesForgejoUser":{style:{},title:"Create packages user and token in Forgejo (unused?)",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.createPackagesForgejoUser"},"edfbuilder_workflow.applyEDFBuilder.installArgoCDStacks":{style:{},title:"Apply all selected ArgoCD stacks",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.installArgoCDStacks"},"edfbuilder_workflow.applyEDFBuilder.cleanup":{style:{},title:"Cleanup work folder and unset all env vars",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.cleanup"},"edp.argoCD.argocdServer":{style:{},title:"ArgoCD Server",kind:"component",id:"edp.argoCD.argocdServer"},"edp.argoCD.argocdAppController":{style:{},title:"ApplicationController",kind:"component",id:"edp.argoCD.argocdAppController"},"edp.argoCD.argocdAppSetController":{style:{},title:"ApplicationSeetController",kind:"component",id:"edp.argoCD.argocdAppSetController"},"edp.argoCD.argocdRedis":{style:{icon:"tech:redis"},technology:"Redis",title:"Redis",kind:"component",id:"edp.argoCD.argocdRedis"},"edp.argoCD.argocdRepoServer":{style:{},title:"Repo Server",kind:"component",id:"edp.argoCD.argocdRepoServer"},"edp.ui.backstage":{style:{icon:"tech:react",shape:"browser"},title:"Backstage",kind:"component",id:"edp.ui.backstage"},"edp.ui.database":{style:{shape:"storage",icon:"tech:postgresql"},technology:"Postgresql",title:"Database",kind:"component",id:"edp.ui.database"},"edp.crossplane.crossplane":{style:{},title:"Crossplane",kind:"component",id:"edp.crossplane.crossplane"},"edp.crossplane.crossplaneFunction":{style:{},title:"Function Patch and Transform",kind:"component",id:"edp.crossplane.crossplaneFunction"},"edp.crossplane.crossplaneRbacManager":{style:{},title:"RBAC Manager",kind:"component",id:"edp.crossplane.crossplaneRbacManager"},"edp.crossplane.providerArgoCD":{style:{},title:"ArgoCD Provider",kind:"component",id:"edp.crossplane.providerArgoCD"},"edp.crossplane.providerKind":{style:{},title:"Kind Provider",kind:"component",id:"edp.crossplane.providerKind"},"edp.crossplane.providerShell":{style:{},title:"Shell Provider",kind:"component",id:"edp.crossplane.providerShell"},"edp.externalSecrets.externalSecrets":{style:{},title:"external-secrets controller",kind:"component",id:"edp.externalSecrets.externalSecrets"},"edp.externalSecrets.certController":{style:{},title:"cert-controller",kind:"component",id:"edp.externalSecrets.certController"},"edp.externalSecrets.webhook":{style:{},title:"webhook",kind:"component",id:"edp.externalSecrets.webhook"},"edp.forgejo.forgejocollaboration":{style:{icon:"tech:github"},title:"Collaboration",kind:"component",id:"edp.forgejo.forgejocollaboration"},"edp.forgejo.forgejoproject":{style:{icon:"tech:github"},title:"Project Mgmt",kind:"component",id:"edp.forgejo.forgejoproject"},"edp.garm.garm":{style:{icon:"tech:go"},description:{txt:"Provisions runners for Forgejo"},title:"Garm",kind:"component",id:"edp.garm.garm"},"edp.garm.providerEdgeConnect":{style:{icon:"tech:go"},description:{txt:"Acts as abstraction layer for EdgeConnect"},title:"Garm Provider for EdgeConnect",kind:"component",id:"edp.garm.providerEdgeConnect"},"edp.garm.providerKubernetes":{style:{icon:"tech:go"},description:{txt:"Acts as abstraction layer for Kubernetes"},title:"Garm Provider for Kubernetes",kind:"component",id:"edp.garm.providerKubernetes"},"edp.ingressNginx.ingressNginx":{style:{icon:"tech:nginx"},technology:"Nginx",title:"ingress-nginx",kind:"component",id:"edp.ingressNginx.ingressNginx"},"edp.keycloak.keycloak":{style:{icon:"tech:java"},technology:"Java",title:"Keycloak",kind:"component",id:"edp.keycloak.keycloak"},"edp.keycloak.keycloakDB":{style:{shape:"storage",icon:"tech:postgresql"},technology:"Postgresql",title:"Database",kind:"component",id:"edp.keycloak.keycloakDB"},"edp.mailhog.mailhog":{style:{icon:"tech:go"},technology:"Golang",title:"Mailhog",kind:"component",id:"edp.mailhog.mailhog"},"edp.minio.minio":{style:{shape:"storage"},technology:"Minio",title:"S3 Blob Storage",kind:"component",id:"edp.minio.minio"},"edp.monitoring.alloy":{style:{icon:"tech:grafana",multiple:!0},description:{txt:"Open Telemetry Collector"},title:"Alloy",kind:"component",id:"edp.monitoring.alloy"},"edp.monitoring.loki":{style:{opacity:20,icon:"tech:grafana"},description:{txt:"Log aggregation system"},title:"Loki",kind:"container",id:"edp.monitoring.loki"},"edp.openbao.openbao":{style:{shape:"storage"},technology:"Openbao",title:"Openbao",kind:"component",id:"edp.openbao.openbao"},"edp.openbao.agentInjector":{style:{},title:"Agent Injector",kind:"component",id:"edp.openbao.agentInjector"},"edp.spark.sparkoperator":{style:{icon:"tech:spark"},technology:"Spark",title:"Spark Operator",kind:"component",id:"edp.spark.sparkoperator"},"edp.velero.velero":{style:{},title:"Velero",kind:"component",id:"edp.velero.velero"},"edp.testApp.fibonacci":{style:{icon:"tech:go"},technology:"Golang",title:"Fibonacci",kind:"component",id:"edp.testApp.fibonacci"},"edp.monitoring.loki.queryFrontend":{style:{},title:"Query Frontend",kind:"component",id:"edp.monitoring.loki.queryFrontend"},"edp.monitoring.loki.distributor":{style:{},title:"Distributor",kind:"component",id:"edp.monitoring.loki.distributor"},"edp.monitoring.loki.gateway":{style:{},title:"Gateway",kind:"component",id:"edp.monitoring.loki.gateway"},"edp.monitoring.loki.ingestor":{style:{},title:"Ingestor",kind:"component",id:"edp.monitoring.loki.ingestor"},"edp.monitoring.loki.querier":{style:{},title:"Querier",kind:"component",id:"edp.monitoring.loki.querier"}},relations:{zgprrj:{title:"",source:{model:"edfbuilder_workflow.runEDP.createCrossplaneNS"},target:{model:"edfbuilder_workflow.runEDP.installCrossplaneHelm"},id:"zgprrj"},hkqe1q:{title:"",source:{model:"edfbuilder_workflow.runEDP.installCrossplaneHelm"},target:{model:"edfbuilder_workflow.runEDP.installCrossplaneFunctionsAndProviders"},id:"hkqe1q"},"7hhs3w":{title:"",source:{model:"edfbuilder_workflow.runEDP.installCrossplaneFunctionsAndProviders"},target:{model:"edfbuilder_workflow.runEDP.waitForCrossplaneFunctionsAndProviders"},id:"7hhs3w"},xjeqlb:{title:"",source:{model:"edfbuilder_workflow.runEDP.waitForCrossplaneFunctionsAndProviders"},target:{model:"edfbuilder_workflow.runEDP.setupCrossplaneServiceAccount"},id:"xjeqlb"},"1nhvr49":{title:"",source:{model:"edfbuilder_workflow.runEDP.setupCrossplaneServiceAccount"},target:{model:"edfbuilder_workflow.runEDP.createArgoCdNS"},id:"1nhvr49"},i203to:{title:"",source:{model:"edfbuilder_workflow.runEDP.createArgoCdNS"},target:{model:"edfbuilder_workflow.runEDP.createGiteaNS"},id:"i203to"},"1b9cczp":{title:"",source:{model:"edfbuilder_workflow.runEDP.createGiteaNS"},target:{model:"edfbuilder_workflow.runEDP.createArgoCdTlsCert"},id:"1b9cczp"},i514he:{title:"",source:{model:"edfbuilder_workflow.runEDP.createArgoCdTlsCert"},target:{model:"edfbuilder_workflow.runEDP.createGiteaTlsCert"},id:"i514he"},"13ashxq":{title:"",source:{model:"edfbuilder_workflow.runEDP.createGiteaTlsCert"},target:{model:"edfbuilder_workflow.runEDP.createEDFBuilderDefinition"},id:"13ashxq"},"14kigg4":{title:"",source:{model:"edfbuilder_workflow.runEDP.createEDFBuilderDefinition"},target:{model:"edfbuilder_workflow.runEDP.createEDFBuilderComposition"},id:"14kigg4"},"1y9fees":{title:"",source:{model:"edfbuilder_workflow.runEDP.createEDFBuilderComposition"},target:{model:"edfbuilder_workflow.applyEDFBuilder"},id:"1y9fees"},"1pfgmn3":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.setEnvVars"},target:{model:"edfbuilder_workflow.applyEDFBuilder.readWriteKubeConf"},id:"1pfgmn3"},"11gwuq3":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.readWriteKubeConf"},target:{model:"edfbuilder_workflow.applyEDFBuilder.setWorkDir"},id:"11gwuq3"},"1ddvozk":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.setWorkDir"},target:{model:"edfbuilder_workflow.applyEDFBuilder.cloneStacksRepo"},id:"1ddvozk"},c4bphp:{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.cloneStacksRepo"},target:{model:"edfbuilder_workflow.applyEDFBuilder.hydrateStacksWithValues"},id:"c4bphp"},"22u12c":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.hydrateStacksWithValues"},target:{model:"edfbuilder_workflow.applyEDFBuilder.createNamespaces"},id:"22u12c"},"1veymj5":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.createNamespaces"},target:{model:"edfbuilder_workflow.applyEDFBuilder.createGiteaAdminPass"},id:"1veymj5"},"1bx48yr":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.createGiteaAdminPass"},target:{model:"edfbuilder_workflow.applyEDFBuilder.createGrafanaPass"},id:"1bx48yr"},pbq0ly:{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.createGrafanaPass"},target:{model:"edfbuilder_workflow.applyEDFBuilder.applyServiceMonitorCRD"},id:"pbq0ly"},"1tj029j":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.applyServiceMonitorCRD"},target:{model:"edfbuilder_workflow.applyEDFBuilder.cloneIngressNginxChart"},id:"1tj029j"},ukdpc6:{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.cloneIngressNginxChart"},target:{model:"edfbuilder_workflow.applyEDFBuilder.isntallIngressNginx"},id:"ukdpc6"},tm63b8:{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.isntallIngressNginx"},target:{model:"edfbuilder_workflow.applyEDFBuilder.waitForIngress"},id:"tm63b8"},mnqt5q:{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.waitForIngress"},target:{model:"edfbuilder_workflow.applyEDFBuilder.cloneArgoCDHelm"},id:"mnqt5q"},c3zfur:{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.cloneArgoCDHelm"},target:{model:"edfbuilder_workflow.applyEDFBuilder.installArgoCD"},id:"c3zfur"},"157ptzn":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.installArgoCD"},target:{model:"edfbuilder_workflow.applyEDFBuilder.installArgoCDIngress"},id:"157ptzn"},"8kcuka":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.installArgoCDIngress"},target:{model:"edfbuilder_workflow.applyEDFBuilder.cloneForgejoHelmChart"},id:"8kcuka"},"5sub2k":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.cloneForgejoHelmChart"},target:{model:"edfbuilder_workflow.applyEDFBuilder.installForgejo"},id:"5sub2k"},z8qrfi:{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.installForgejo"},target:{model:"edfbuilder_workflow.applyEDFBuilder.installForgejoIngress"},id:"z8qrfi"},"1dqe9ri":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.installForgejoIngress"},target:{model:"edfbuilder_workflow.applyEDFBuilder.waitForArgoCD"},id:"1dqe9ri"},"12iu5vk":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.waitForArgoCD"},target:{model:"edfbuilder_workflow.applyEDFBuilder.waitForForgejo"},id:"12iu5vk"},"1xhuuis":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.waitForForgejo"},target:{model:"edfbuilder_workflow.applyEDFBuilder.createForgejoUser"},id:"1xhuuis"},vhezff:{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.createForgejoUser"},target:{model:"edfbuilder_workflow.applyEDFBuilder.createForgejoRepo"},id:"vhezff"},"1dow3tq":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.createForgejoRepo"},target:{model:"edfbuilder_workflow.applyEDFBuilder.installForgejoRunner"},id:"1dow3tq"},"1k46mx8":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.installForgejoRunner"},target:{model:"edfbuilder_workflow.applyEDFBuilder.registerForgejoRunner"},id:"1k46mx8"},f5bybq:{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.registerForgejoRunner"},target:{model:"edfbuilder_workflow.applyEDFBuilder.configGitIdentity"},id:"f5bybq"},"8g1uqn":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.configGitIdentity"},target:{model:"edfbuilder_workflow.applyEDFBuilder.configCrossplaneArgoCDProvider"},id:"8g1uqn"},"9c504z":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.configCrossplaneArgoCDProvider"},target:{model:"edfbuilder_workflow.applyEDFBuilder.configCrossplaneKindProvider"},id:"9c504z"},"19gp6kf":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.configCrossplaneKindProvider"},target:{model:"edfbuilder_workflow.applyEDFBuilder.uploadStacksToForgjo"},id:"19gp6kf"},h55zvp:{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.uploadStacksToForgjo"},target:{model:"edfbuilder_workflow.applyEDFBuilder.configArgoDockerRegistry"},id:"h55zvp"},"1b7dj03":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.configArgoDockerRegistry"},target:{model:"edfbuilder_workflow.applyEDFBuilder.createPackagesForgejoUser"},id:"1b7dj03"},"1bk65oi":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.createPackagesForgejoUser"},target:{model:"edfbuilder_workflow.applyEDFBuilder.installArgoCDStacks"},id:"1bk65oi"},rsncrl:{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.installArgoCDStacks"},target:{model:"edfbuilder_workflow.applyEDFBuilder.cleanup"},id:"rsncrl"},"18dtot7":{title:"register",source:{model:"forgejoRunner"},target:{model:"edp.forgejoActions"},id:"18dtot7"},"1oxlsu0":{title:"boots one",source:{model:"edfbuilder"},target:{model:"edf"},id:"1oxlsu0"},s1l7g7:{title:"runs",source:{model:"platformdeveloper"},target:{model:"edfbuilder"},id:"s1l7g7"},yfhhi5:{title:"read/write",source:{model:"edp.argoCD.argocdServer"},target:{model:"edp.argoCD.argocdRedis"},id:"yfhhi5"},iullhy:{title:"read/write",source:{model:"edp.argoCD.argocdRepoServer"},target:{model:"edp.argoCD.argocdRedis"},id:"iullhy"},"10vkxaf":{title:"read/write",source:{model:"edp.argoCD.argocdAppController"},target:{model:"edp.argoCD.argocdRedis"},id:"10vkxaf"},i8z0mi:{title:"read/write",source:{model:"edp.argoCD.argocdAppSetController"},target:{model:"edp.argoCD.argocdRedis"},id:"i8z0mi"},"6mupa0":{title:"Syncs git repo",source:{model:"edp.argoCD.argocdRepoServer"},target:{model:"edp.forgejogit"},id:"6mupa0"},c23sak:{title:"reads/writes",source:{model:"edp.ui.backstage"},target:{model:"edp.ui.database"},id:"c23sak"},"1pbc22f":{title:"runs workflows",source:{model:"edp.forgejoActions"},target:{model:"forgejoRunner"},id:"1pbc22f"},"1olxwwi":{title:"calls binary",source:{model:"edp.garm.garm"},target:{model:"edp.garm.providerEdgeConnect"},id:"1olxwwi"},iu7wve:{title:"calls binary",source:{model:"edp.garm.garm"},target:{model:"edp.garm.providerKubernetes"},id:"iu7wve"},"13uvtiq":{title:"get metrics and alerts",source:{model:"edp.grafana"},target:{model:"edp.prometheus"},id:"13uvtiq"},"1n1utzc":{title:"get logs",source:{model:"edp.grafana"},target:{model:"edp.loki"},id:"1n1utzc"},"123efwn":{title:"https",source:{model:"edp.ingressNginx.ingressNginx"},target:{model:"edp.forgejo"},id:"123efwn"},h3rut2:{title:"https",source:{model:"edp.ingressNginx.ingressNginx"},target:{model:"edp.keycloak.keycloak"},id:"h3rut2"},"1p30hav":{title:"https",source:{model:"edp.ingressNginx.ingressNginx"},target:{model:"edp.openbao.openbao"},id:"1p30hav"},"1yssos5":{title:"https",source:{model:"edp.ingressNginx.ingressNginx"},target:{model:"edp.argoCD.argocdServer"},id:"1yssos5"},v8c8aq:{title:"https",source:{model:"edp.ingressNginx.ingressNginx"},target:{model:"edp.ui.backstage"},id:"v8c8aq"},fe65w2:{title:"https",source:{model:"edp.ingressNginx.ingressNginx"},target:{model:"edp.minio.minio"},id:"fe65w2"},"1jvab2g":{title:"https",source:{model:"edp.ingressNginx.ingressNginx"},target:{model:"edp.monitoring.alloy"},id:"1jvab2g"},fs60l7:{title:"https",source:{model:"edp.ingressNginx.ingressNginx"},target:{model:"edp.monitoring.loki.queryFrontend"},id:"fs60l7"},"1i5f8um":{title:"https",source:{model:"edp.ingressNginx.ingressNginx"},target:{model:"edp.testApp.fibonacci"},id:"1i5f8um"},ofdedh:{title:"https",source:{model:"edp.ingressNginx.ingressNginx"},target:{model:"edp.mailhog.mailhog"},id:"ofdedh"},"18zxrhs":{title:"reads/writes",source:{model:"edp.keycloak.keycloak"},target:{model:"edp.keycloak.keycloakDB"},id:"18zxrhs"},"11ollyi":{title:"pushes logs",source:{model:"edp.monitoring.alloy"},target:{model:"edp.monitoring.loki.distributor"},id:"11ollyi"},"1mazt1x":{title:"store backups",source:{model:"edp.velero.velero"},target:{model:"edp.minio.minio"},id:"1mazt1x"},"5hkplj":{title:"inner loop development",source:{model:"developer"},target:{model:"localbox"},id:"5hkplj"},"1pp73vj":{title:"outer loop development",source:{model:"developer"},target:{model:"edp"},id:"1pp73vj"},yk9zv2:{title:"manages project",source:{model:"developer"},target:{model:"edp.ui"},id:"yk9zv2"},"12036hb":{title:"manages code",source:{model:"developer"},target:{model:"edp.forgejo"},id:"12036hb"},jpl8ll:{title:"authenticates",source:{model:"developer"},target:{model:"edp.keycloak"},id:"jpl8ll"},"1ghp31l":{title:"manages deployments",source:{model:"developer"},target:{model:"edp.argoCD"},id:"1ghp31l"},"1xiorre":{title:"monitors",source:{model:"developer"},target:{model:"edp.grafana"},id:"1xiorre"},"1woleh6":{title:"create and maintain apps",source:{model:"developer"},target:{model:"edp.ui.backstage"},id:"1woleh6"},"177bm2y":{title:"pushes and pull images",source:{model:"developer"},target:{model:"edp.imageregistry"},id:"177bm2y"},"1l9a3pd":{title:"uses API",source:{model:"developer"},target:{model:"edp.api"},id:"1l9a3pd"},"1uzzn9j":{title:"uses git",source:{model:"developer"},target:{model:"edp.forgejogit"},id:"1uzzn9j"},lb4xas:{title:"act according to responibility",source:{model:"otherProductLifecycleRoles"},target:{model:"edp"},id:"lb4xas"},"1g2ebwc":{title:"uses your app",source:{model:"customers"},target:{model:"cloud"},id:"1g2ebwc"},nc44l9:{title:"app specific dependencies",source:{model:"enterprise"},target:{model:"cloud"},id:"nc44l9"},xw0pne:{title:"provides documentation for",source:{model:"documentation"},target:{model:"edp"},id:"xw0pne"},"3sz3k3":{title:"creates and maintains documentation",source:{model:"platformdeveloper"},target:{model:"documentation"},id:"3sz3k3"},wsm3kf:{title:"builds many",source:{model:"edf"},target:{model:"edp"},id:"wsm3kf"},v8v12:{title:"develops EDP and EDF",source:{model:"platformdeveloper"},target:{model:"edf"},id:"v8v12"},"615gvx":{title:"integrates",source:{model:"edp"},target:{model:"enterprise"},id:"615gvx"},gerdx4:{title:"deploys and observes",source:{model:"edp"},target:{model:"cloud"},id:"gerdx4"},wvo8i:{title:"",source:{model:"edp"},target:{model:"localbox"},id:"wvo8i"},"1mp9fps":{title:"inner-outer-loop synchronization",source:{model:"localbox"},target:{model:"edp"},id:"1mp9fps"},"1abvxlh":{title:"company integration",source:{model:"localbox"},target:{model:"enterprise"},id:"1abvxlh"}},globals:{predicates:{},dynamicPredicates:{},styles:{text_large:[{targets:[{wildcard:!0}],style:{size:"xl"}}]}},views:{provider:{_type:"deployment",tags:null,links:null,_stage:"layouted",sourcePath:"views/deployment/edge/provider.c4",description:null,title:"Terraform Edge provider",id:"provider",autoLayout:{direction:"TB"},hash:"9f510e70e35a21871bc85c1a535584598e768d47",bounds:{x:0,y:0,width:1059,height:1265},nodes:[{id:"edgeProvider",parent:null,level:0,children:[],inEdges:[],outEdges:["u9omtf","r4j4sg","1xqlhup"],deploymentRef:"edgeProvider",title:"Terraform Edge provider",kind:"paas",color:"primary",shape:"rectangle",icon:"tech:terraform",description:{txt:"Unlocks the terraform ecosystem"},tags:[],style:{opacity:15,size:"md"},x:242,y:0,width:343,height:180,labelBBox:{x:46,y:63,width:282,height:48}},{id:"edgeSdk",parent:null,level:0,children:[],inEdges:["1xqlhup"],outEdges:["14pfq5a","lw6otg"],deploymentRef:"edgeSdk",title:"Edge Cloud SDK",kind:"paas",technology:"Cloud Services",color:"primary",shape:"rectangle",icon:"tech:go",description:{txt:"Wrapper around API"},tags:[],style:{opacity:15,size:"md"},x:86,y:347,width:320,height:180,labelBBox:{x:68,y:53,width:214,height:67}},{id:"edgeProviderHost",parent:null,level:0,children:["edgeProviderHost.terralist","edgeProviderHost.edp"],inEdges:["14pfq5a","u9omtf","r4j4sg"],outEdges:[],deploymentRef:"edgeProviderHost",title:"OTC",kind:"environment",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:478,y:276,width:466,height:648,labelBBox:{x:6,y:0,width:27,height:15}},{id:"edgeCloud",parent:null,level:0,children:["edgeCloud.edgeApi","edgeCloud.edgeResources"],inEdges:["lw6otg"],outEdges:[],deploymentRef:"edgeCloud",title:"Edge cloud",kind:"environment",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:8,y:623,width:420,height:634,labelBBox:{x:6,y:0,width:77,height:15}},{id:"edgeProviderHost.terralist",parent:"edgeProviderHost",level:1,children:[],inEdges:["r4j4sg"],outEdges:["c8rye7"],deploymentRef:"edgeProviderHost.terralist",title:"Terralist",kind:"paas",technology:"Cloud Services",color:"primary",shape:"rectangle",icon:"tech:terraform",description:{txt:"Terraform provider private hosting"},tags:[],style:{opacity:15,size:"md"},x:536,y:347,width:350,height:180,labelBBox:{x:46,y:53,width:288,height:67}},{id:"edgeCloud.edgeApi",parent:"edgeCloud",level:1,children:[],inEdges:["lw6otg"],outEdges:["1toht4t"],deploymentRef:"edgeCloud.edgeApi",title:"Edge Cloud API",kind:"paas",technology:"Edge Cloud (managed)",links:[{url:"https://swagger.edge.platform.mg3.mdb.osc.live",title:"Documentation"}],color:"primary",shape:"rectangle",icon:"tech:swagger",tags:[],style:{opacity:15,size:"md"},x:58,y:694,width:320,height:180,labelBBox:{x:73,y:64,width:204,height:46}},{id:"edgeProviderHost.edp",parent:"edgeProviderHost",level:1,children:[],inEdges:["c8rye7","14pfq5a","u9omtf"],outEdges:[],deploymentRef:"edgeProviderHost.edp",title:"Forgejo for all EDP-tenants",kind:"cluster",color:"primary",shape:"rectangle",modelRef:"edp.forgejo",icon:"tech:git",tags:[],style:{opacity:15,size:"md"},description:{txt:"edp.buildth.ing"},technology:"Golang",navigateTo:"forgejo",x:528,y:694,width:365,height:180,labelBBox:{x:46,y:53,width:304,height:67}},{id:"edgeCloud.edgeResources",parent:"edgeCloud",level:1,children:[],inEdges:["1toht4t"],outEdges:[],deploymentRef:"edgeCloud.edgeResources",title:"Edge Cloud Resources",kind:"paas",technology:"Edge Cloud (managed)",color:"primary",shape:"rectangle",description:{txt:"App, AppInstance, etc."},tags:[],style:{opacity:15,size:"md"},x:58,y:1027,width:320,height:180,labelBBox:{x:55,y:53,width:210,height:67}}],edges:[{id:"1toht4t",source:"edgeCloud.edgeApi",target:"edgeCloud.edgeResources",label:"creates/destroys",points:[[218,874],[218,918],[218,971],[218,1016]],labelBBox:{x:219,y:939,width:107,height:18},parent:"edgeCloud",relations:["rr0lcz"],color:"gray",line:"dashed",head:"normal"},{id:"c8rye7",source:"edgeProviderHost.terralist",target:"edgeProviderHost.edp",label:"authenticates via",points:[[711,527],[711,575],[711,634],[711,684]],labelBBox:{x:712,y:592,width:109,height:18},parent:"edgeProviderHost",relations:["1q6ftvm"],color:"gray",line:"dashed",head:"normal"},{id:"14pfq5a",source:"edgeSdk",target:"edgeProviderHost.edp",label:"hosted on",points:[[366,527],[432,576],[515,638],[583,688]],labelBBox:{x:480,y:592,width:66,height:18},parent:null,relations:["1sm6ifh"],color:"gray",line:"dashed",head:"normal"},{id:"lw6otg",source:"edgeSdk",target:"edgeCloud.edgeApi",label:"calls",points:[[239,527],[235,575],[230,634],[226,684]],labelBBox:{x:234,y:592,width:32,height:18},parent:null,relations:["vfhcba"],color:"gray",line:"dashed",head:"normal"},{id:"u9omtf",source:"edgeProvider",target:"edgeProviderHost.edp",label:"hosted on",points:[[585,100],[709,116],[869,160],[951,276],[1016,367],[992,423],[951,527],[927,588],[880,644],[834,687]],labelBBox:{x:992,y:425,width:66,height:18},parent:null,relations:["12ssq9"],color:"gray",line:"dashed",head:"normal"},{id:"r4j4sg",source:"edgeProvider",target:"edgeProviderHost.terralist",label:"published to",points:[[490,180],[532,229],[585,289],[628,339]],labelBBox:{x:564,y:245,width:80,height:18},parent:null,relations:["1mpjz5d"],color:"gray",line:"dashed",head:"normal"},{id:"1xqlhup",source:"edgeProvider",target:"edgeSdk",label:"built using",points:[[371,180],[347,228],[318,288],[294,338]],labelBBox:{x:336,y:245,width:67,height:18},parent:null,relations:["1wlvsb5"],color:"gray",line:"dashed",head:"normal"}]},index:{_type:"deployment",tags:null,links:null,_stage:"layouted",sourcePath:"views/deployment/kind/kind.c4",description:null,title:"Local Kind Deployment",id:"index",autoLayout:{direction:"TB"},hash:"09f216bdb503c31a28c16dff8a1c12da0a0c4cf1",bounds:{x:0,y:0,width:19320,height:1791},nodes:[{id:"otc-faas",parent:null,level:0,children:[],inEdges:[],outEdges:[],deploymentRef:"otc-faas",title:"OTC prototype FaaS",kind:"cloud",technology:"OTC",color:"primary",shape:"rectangle",description:{txt:"OTC environments for Prototype FaaS."},tags:[],style:{opacity:15,size:"md"},x:0,y:150,width:320,height:180,labelBBox:{x:28,y:54,width:264,height:67}},{id:"edge",parent:null,level:0,children:[],inEdges:[],outEdges:[],deploymentRef:"edge",title:"Edge Cloud",kind:"cloud",technology:"Edge",color:"primary",shape:"rectangle",description:{txt:"Edge environments for distributed workloads."},tags:[],style:{opacity:15,size:"md"},x:450,y:150,width:340,height:180,labelBBox:{x:18,y:54,width:304,height:67}},{id:"edgeProvider",parent:null,level:0,children:[],inEdges:[],outEdges:["1xqlhup","u9omtf","r4j4sg"],deploymentRef:"edgeProvider",title:"Terraform Edge provider",kind:"paas",color:"primary",shape:"rectangle",icon:"tech:terraform",description:{txt:"Unlocks the terraform ecosystem"},tags:[],style:{opacity:15,size:"md"},x:920,y:150,width:343,height:180,labelBBox:{x:46,y:63,width:282,height:48}},{id:"edgeConnectEnv",parent:null,level:0,children:[],inEdges:["i6v3n"],outEdges:["1ogkmfn"],deploymentRef:"edgeConnectEnv",title:"Edge Connect",kind:"environment",technology:"Edge Connect Platform",color:"primary",shape:"rectangle",modelRef:"forgejoRunner",icon:"tech:docker",description:{txt:"Edge infrastructure for ephemeral runner deployment"},tags:[],style:{opacity:15,size:"md"},x:5425,y:150,width:347,height:180,labelBBox:{x:46,y:45,width:286,height:85}},{id:"otc-edpFoundry",parent:null,level:0,children:["otc-edpFoundry.forgejoRunnerInfrastructure","otc-edpFoundry.cce","otc-edpFoundry.workflowSetupEDPInfrastructure","otc-edpFoundry.workflowSetupArgoCDInfrastructure"],inEdges:["c2grk6","1ean8sr","l1c2z3"],outEdges:["r3wxut","1sng0q0","e3benz","9r557q","rivecr","1lrp92n"],deploymentRef:"otc-edpFoundry",title:"OTC EDP Foundry Central Service clusters",kind:"cloud",technology:"OTC",color:"primary",shape:"rectangle",description:{txt:`OTC environments for the central EDP Foundry services. This is kubernetes clusters and other infrastructure like nodes and vms, and optionally platform services. All is set up by IaC terraform and edpbuilder. +and security scanning`},title:"Forgejo",kind:"container",id:"edp.forgejo"},"edp.forgejoActions":{style:{icon:"tech:go"},technology:"Golang",description:{txt:"Continuous Integration like Github Actions"},title:"Forgejo Actions",kind:"component",id:"edp.forgejoActions"},"edp.imageregistry":{style:{icon:"tech:go"},technology:"Golang",description:{txt:"Container Image Registry"},title:"Forgejo OCI Image Registry",kind:"component",id:"edp.imageregistry"},"edp.forgejogit":{style:{icon:"tech:git"},title:"ForgejoGit",kind:"component",id:"edp.forgejogit"},"edp.garm":{style:{opacity:20,icon:"tech:docker"},title:"Garm Image",kind:"container",id:"edp.garm"},"edp.grafana":{style:{opacity:20,icon:"tech:grafana"},description:{txt:"Data visualization and monitoring"},title:"Grafana",kind:"container",id:"edp.grafana"},"edp.ingressNginx":{style:{opacity:20},tags:["internal"],description:{txt:"Ingress Controller for incoming http(s) traffic"},title:"Ingress",kind:"container",id:"edp.ingressNginx"},"edp.keycloak":{style:{opacity:20},description:{txt:"Single Sign On for all EDP products"},title:"Keycloak",kind:"container",id:"edp.keycloak"},"edp.kyverno":{style:{opacity:20},tags:["internal"],description:{txt:"Policy-as-Code"},title:"Kyverno",kind:"container",id:"edp.kyverno"},"edp.loki":{style:{opacity:20},description:{txt:"Log aggregation system"},title:"Loki",kind:"container",id:"edp.loki"},"edp.mailhog":{style:{opacity:20},description:{txt:"Web and API based SMTP testing"},title:"Mailhog",kind:"container",id:"edp.mailhog"},"edp.minio":{style:{opacity:20},description:{txt:"S3 compatible blob storage"},title:"Minio",kind:"container",id:"edp.minio"},"edp.monitoring":{style:{opacity:20},description:{txt:"Observability system to monitor deployed components"},title:"Monitoring",kind:"container",id:"edp.monitoring"},"edp.openbao":{style:{opacity:20},description:{txt:"Secure secret storage"},title:"OpenBao",kind:"container",id:"edp.openbao"},"edp.prometheus":{style:{opacity:20,icon:"tech:prometheus"},description:{txt:"Monitoring and alerting toolkit"},title:"Prometheus",kind:"container",id:"edp.prometheus"},"edp.spark":{style:{opacity:20},tags:["internal"],description:{txt:"Allows running Spark applications on K8s"},title:"Spark",kind:"container",id:"edp.spark"},"edp.velero":{style:{opacity:20},tags:["internal"],description:{txt:"Backup Kubernetes resources"},title:"Velero",kind:"container",id:"edp.velero"},"cloud.application":{style:{color:"primary"},technology:"DSL",description:{txt:"An application description"},title:"application",kind:"schema",id:"cloud.application"},"edp.application":{style:{color:"primary"},technology:"DSL",description:{txt:"An application description"},title:"application",kind:"schema",id:"edp.application"},"edp.testApp":{style:{opacity:20},description:{txt:"Testapp to validate deployments"},title:"Fibonacci",kind:"container",id:"edp.testApp"},"localbox.application":{style:{color:"primary"},technology:"DSL",description:{txt:"An application description"},title:"application",kind:"schema",id:"localbox.application"},"localbox.git":{style:{icon:"tech:git"},technology:"Git",description:{txt:"local git"},title:"git",kind:"component",id:"localbox.git"},"edfbuilder_workflow.runEDP.createCrossplaneNS":{style:{},title:"Create Crossplane namespace",kind:"step",id:"edfbuilder_workflow.runEDP.createCrossplaneNS"},"edfbuilder_workflow.runEDP.installCrossplaneHelm":{style:{},title:"Install Crossplane Helm Chart",kind:"step",id:"edfbuilder_workflow.runEDP.installCrossplaneHelm"},"edfbuilder_workflow.runEDP.installCrossplaneFunctionsAndProviders":{style:{},title:"Install Crossplane Functions and Providers",kind:"step",id:"edfbuilder_workflow.runEDP.installCrossplaneFunctionsAndProviders"},"edfbuilder_workflow.runEDP.waitForCrossplaneFunctionsAndProviders":{style:{},title:"Wait for Crossplane Functions and Providers to become available",kind:"step",id:"edfbuilder_workflow.runEDP.waitForCrossplaneFunctionsAndProviders"},"edfbuilder_workflow.runEDP.setupCrossplaneServiceAccount":{style:{},title:"Apply cluster-admin role to crossplane shell provider service account",kind:"step",id:"edfbuilder_workflow.runEDP.setupCrossplaneServiceAccount"},"edfbuilder_workflow.runEDP.createArgoCdNS":{style:{},title:"Create ArgoCD namespace",kind:"step",id:"edfbuilder_workflow.runEDP.createArgoCdNS"},"edfbuilder_workflow.runEDP.createGiteaNS":{style:{},title:"Create Gitea namespace",kind:"step",id:"edfbuilder_workflow.runEDP.createGiteaNS"},"edfbuilder_workflow.runEDP.createArgoCdTlsCert":{style:{},title:"Create TLS Cert for Argo",kind:"step",id:"edfbuilder_workflow.runEDP.createArgoCdTlsCert"},"edfbuilder_workflow.runEDP.createGiteaTlsCert":{style:{},title:"Create TLS Cert for Forgejo",kind:"step",id:"edfbuilder_workflow.runEDP.createGiteaTlsCert"},"edfbuilder_workflow.runEDP.createEDFBuilderDefinition":{style:{},title:"Create EDFbuilder crossplane definition (defines API)",kind:"step",id:"edfbuilder_workflow.runEDP.createEDFBuilderDefinition"},"edfbuilder_workflow.runEDP.createEDFBuilderComposition":{style:{},title:"Create EDFbuilder crossplane composition (defines what happens when EDFbuilder is applied)",kind:"step",id:"edfbuilder_workflow.runEDP.createEDFBuilderComposition"},"edfbuilder_workflow.applyEDFBuilder.setEnvVars":{style:{},title:"Set required environment variables",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.setEnvVars"},"edfbuilder_workflow.applyEDFBuilder.readWriteKubeConf":{style:{},title:"Make kube.conf write/readbale",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.readWriteKubeConf"},"edfbuilder_workflow.applyEDFBuilder.setWorkDir":{style:{},title:"Set workdir to /tmp/rundir",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.setWorkDir"},"edfbuilder_workflow.applyEDFBuilder.cloneStacksRepo":{style:{},title:"Clone steps repo and checkout desired branch",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.cloneStacksRepo"},"edfbuilder_workflow.applyEDFBuilder.hydrateStacksWithValues":{style:{},title:"Hydrate Stacks with values",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.hydrateStacksWithValues"},"edfbuilder_workflow.applyEDFBuilder.createNamespaces":{style:{},title:"Create all required namespaces",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.createNamespaces"},"edfbuilder_workflow.applyEDFBuilder.createGiteaAdminPass":{style:{},title:"Create Admin Password for Forgejo",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.createGiteaAdminPass"},"edfbuilder_workflow.applyEDFBuilder.createGrafanaPass":{style:{},title:"Create Grafana Admin Password",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.createGrafanaPass"},"edfbuilder_workflow.applyEDFBuilder.applyServiceMonitorCRD":{style:{},title:"Apply ServiceMonitor CRDs for Prometheus",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.applyServiceMonitorCRD"},"edfbuilder_workflow.applyEDFBuilder.cloneIngressNginxChart":{style:{},title:"Git clone ingress-nginx helm chart",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.cloneIngressNginxChart"},"edfbuilder_workflow.applyEDFBuilder.isntallIngressNginx":{style:{},title:"Install ingress-nginx from cloned chart",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.isntallIngressNginx"},"edfbuilder_workflow.applyEDFBuilder.waitForIngress":{style:{},title:"Wait till ingress-nginx is ready",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.waitForIngress"},"edfbuilder_workflow.applyEDFBuilder.cloneArgoCDHelm":{style:{},title:"Git clone ArgoCD Helm Chart",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.cloneArgoCDHelm"},"edfbuilder_workflow.applyEDFBuilder.installArgoCD":{style:{},title:"Install ArgoCD Helm Chart",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.installArgoCD"},"edfbuilder_workflow.applyEDFBuilder.installArgoCDIngress":{style:{},title:"Install ingress for ArgoCD",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.installArgoCDIngress"},"edfbuilder_workflow.applyEDFBuilder.cloneForgejoHelmChart":{style:{},title:"Git clone Forgejo Helm Chart",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.cloneForgejoHelmChart"},"edfbuilder_workflow.applyEDFBuilder.installForgejo":{style:{},title:"Install Forgejo Helm Chart",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.installForgejo"},"edfbuilder_workflow.applyEDFBuilder.installForgejoIngress":{style:{},title:"Install ingress for Forgejo",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.installForgejoIngress"},"edfbuilder_workflow.applyEDFBuilder.waitForArgoCD":{style:{},title:"Wait till ArgoCD is available",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.waitForArgoCD"},"edfbuilder_workflow.applyEDFBuilder.waitForForgejo":{style:{},title:"Wait till Forgejo is available",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.waitForForgejo"},"edfbuilder_workflow.applyEDFBuilder.createForgejoUser":{style:{},title:"Create technical user for Forgejo",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.createForgejoUser"},"edfbuilder_workflow.applyEDFBuilder.createForgejoRepo":{style:{},title:"Create repository for EDP state in Forgejo",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.createForgejoRepo"},"edfbuilder_workflow.applyEDFBuilder.installForgejoRunner":{style:{},title:"Install Forgejo Runner deployment",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.installForgejoRunner"},"edfbuilder_workflow.applyEDFBuilder.registerForgejoRunner":{style:{},title:"Create registration token secret for runner",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.registerForgejoRunner"},"edfbuilder_workflow.applyEDFBuilder.configGitIdentity":{style:{},title:"Configure Git identity",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.configGitIdentity"},"edfbuilder_workflow.applyEDFBuilder.configCrossplaneArgoCDProvider":{style:{},title:"Configure Crossplane ArgoCD provider",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.configCrossplaneArgoCDProvider"},"edfbuilder_workflow.applyEDFBuilder.configCrossplaneKindProvider":{style:{},title:"Configure Crossplane Kind provider",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.configCrossplaneKindProvider"},"edfbuilder_workflow.applyEDFBuilder.uploadStacksToForgjo":{style:{},title:"Git push hydrated stacks to Forgejo isntance",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.uploadStacksToForgjo"},"edfbuilder_workflow.applyEDFBuilder.configArgoDockerRegistry":{style:{},title:"Configure Docker Registry for Argo Workflows",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.configArgoDockerRegistry"},"edfbuilder_workflow.applyEDFBuilder.createPackagesForgejoUser":{style:{},title:"Create packages user and token in Forgejo (unused?)",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.createPackagesForgejoUser"},"edfbuilder_workflow.applyEDFBuilder.installArgoCDStacks":{style:{},title:"Apply all selected ArgoCD stacks",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.installArgoCDStacks"},"edfbuilder_workflow.applyEDFBuilder.cleanup":{style:{},title:"Cleanup work folder and unset all env vars",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.cleanup"},"edp.argoCD.argocdServer":{style:{},title:"ArgoCD Server",kind:"component",id:"edp.argoCD.argocdServer"},"edp.argoCD.argocdAppController":{style:{},title:"ApplicationController",kind:"component",id:"edp.argoCD.argocdAppController"},"edp.argoCD.argocdAppSetController":{style:{},title:"ApplicationSeetController",kind:"component",id:"edp.argoCD.argocdAppSetController"},"edp.argoCD.argocdRedis":{style:{icon:"tech:redis"},technology:"Redis",title:"Redis",kind:"component",id:"edp.argoCD.argocdRedis"},"edp.argoCD.argocdRepoServer":{style:{},title:"Repo Server",kind:"component",id:"edp.argoCD.argocdRepoServer"},"edp.ui.backstage":{style:{icon:"tech:react",shape:"browser"},title:"Backstage",kind:"component",id:"edp.ui.backstage"},"edp.ui.database":{style:{shape:"storage",icon:"tech:postgresql"},technology:"Postgresql",title:"Database",kind:"component",id:"edp.ui.database"},"edp.crossplane.crossplane":{style:{},title:"Crossplane",kind:"component",id:"edp.crossplane.crossplane"},"edp.crossplane.crossplaneFunction":{style:{},title:"Function Patch and Transform",kind:"component",id:"edp.crossplane.crossplaneFunction"},"edp.crossplane.crossplaneRbacManager":{style:{},title:"RBAC Manager",kind:"component",id:"edp.crossplane.crossplaneRbacManager"},"edp.crossplane.providerArgoCD":{style:{},title:"ArgoCD Provider",kind:"component",id:"edp.crossplane.providerArgoCD"},"edp.crossplane.providerKind":{style:{},title:"Kind Provider",kind:"component",id:"edp.crossplane.providerKind"},"edp.crossplane.providerShell":{style:{},title:"Shell Provider",kind:"component",id:"edp.crossplane.providerShell"},"edp.externalSecrets.externalSecrets":{style:{},title:"external-secrets controller",kind:"component",id:"edp.externalSecrets.externalSecrets"},"edp.externalSecrets.certController":{style:{},title:"cert-controller",kind:"component",id:"edp.externalSecrets.certController"},"edp.externalSecrets.webhook":{style:{},title:"webhook",kind:"component",id:"edp.externalSecrets.webhook"},"edp.forgejo.forgejocollaboration":{style:{icon:"tech:github"},title:"Collaboration",kind:"component",id:"edp.forgejo.forgejocollaboration"},"edp.forgejo.forgejoproject":{style:{icon:"tech:github"},title:"Project Mgmt",kind:"component",id:"edp.forgejo.forgejoproject"},"edp.garm.garm":{style:{icon:"tech:go"},description:{txt:"Provisions runners for Forgejo"},title:"Garm",kind:"component",id:"edp.garm.garm"},"edp.garm.providerEdgeConnect":{style:{icon:"tech:go"},description:{txt:"Acts as abstraction layer for EdgeConnect"},title:"Garm Provider for EdgeConnect",kind:"component",id:"edp.garm.providerEdgeConnect"},"edp.garm.providerKubernetes":{style:{icon:"tech:go"},description:{txt:"Acts as abstraction layer for Kubernetes"},title:"Garm Provider for Kubernetes",kind:"component",id:"edp.garm.providerKubernetes"},"edp.ingressNginx.ingressNginx":{style:{icon:"tech:nginx"},technology:"Nginx",title:"ingress-nginx",kind:"component",id:"edp.ingressNginx.ingressNginx"},"edp.keycloak.keycloak":{style:{icon:"tech:java"},technology:"Java",title:"Keycloak",kind:"component",id:"edp.keycloak.keycloak"},"edp.keycloak.keycloakDB":{style:{shape:"storage",icon:"tech:postgresql"},technology:"Postgresql",title:"Database",kind:"component",id:"edp.keycloak.keycloakDB"},"edp.mailhog.mailhog":{style:{icon:"tech:go"},technology:"Golang",title:"Mailhog",kind:"component",id:"edp.mailhog.mailhog"},"edp.minio.minio":{style:{shape:"storage"},technology:"Minio",title:"S3 Blob Storage",kind:"component",id:"edp.minio.minio"},"edp.monitoring.alloy":{style:{icon:"tech:grafana",multiple:!0},description:{txt:"Open Telemetry Collector"},title:"Alloy",kind:"component",id:"edp.monitoring.alloy"},"edp.monitoring.loki":{style:{opacity:20,icon:"tech:grafana"},description:{txt:"Log aggregation system"},title:"Loki",kind:"container",id:"edp.monitoring.loki"},"edp.openbao.openbao":{style:{shape:"storage"},technology:"Openbao",title:"Openbao",kind:"component",id:"edp.openbao.openbao"},"edp.openbao.agentInjector":{style:{},title:"Agent Injector",kind:"component",id:"edp.openbao.agentInjector"},"edp.spark.sparkoperator":{style:{icon:"tech:spark"},technology:"Spark",title:"Spark Operator",kind:"component",id:"edp.spark.sparkoperator"},"edp.velero.velero":{style:{},title:"Velero",kind:"component",id:"edp.velero.velero"},"edp.testApp.fibonacci":{style:{icon:"tech:go"},technology:"Golang",title:"Fibonacci",kind:"component",id:"edp.testApp.fibonacci"},"edp.monitoring.loki.queryFrontend":{style:{},title:"Query Frontend",kind:"component",id:"edp.monitoring.loki.queryFrontend"},"edp.monitoring.loki.distributor":{style:{},title:"Distributor",kind:"component",id:"edp.monitoring.loki.distributor"},"edp.monitoring.loki.gateway":{style:{},title:"Gateway",kind:"component",id:"edp.monitoring.loki.gateway"},"edp.monitoring.loki.ingestor":{style:{},title:"Ingestor",kind:"component",id:"edp.monitoring.loki.ingestor"},"edp.monitoring.loki.querier":{style:{},title:"Querier",kind:"component",id:"edp.monitoring.loki.querier"}},relations:{zgprrj:{title:"",source:{model:"edfbuilder_workflow.runEDP.createCrossplaneNS"},target:{model:"edfbuilder_workflow.runEDP.installCrossplaneHelm"},id:"zgprrj"},hkqe1q:{title:"",source:{model:"edfbuilder_workflow.runEDP.installCrossplaneHelm"},target:{model:"edfbuilder_workflow.runEDP.installCrossplaneFunctionsAndProviders"},id:"hkqe1q"},"7hhs3w":{title:"",source:{model:"edfbuilder_workflow.runEDP.installCrossplaneFunctionsAndProviders"},target:{model:"edfbuilder_workflow.runEDP.waitForCrossplaneFunctionsAndProviders"},id:"7hhs3w"},xjeqlb:{title:"",source:{model:"edfbuilder_workflow.runEDP.waitForCrossplaneFunctionsAndProviders"},target:{model:"edfbuilder_workflow.runEDP.setupCrossplaneServiceAccount"},id:"xjeqlb"},"1nhvr49":{title:"",source:{model:"edfbuilder_workflow.runEDP.setupCrossplaneServiceAccount"},target:{model:"edfbuilder_workflow.runEDP.createArgoCdNS"},id:"1nhvr49"},i203to:{title:"",source:{model:"edfbuilder_workflow.runEDP.createArgoCdNS"},target:{model:"edfbuilder_workflow.runEDP.createGiteaNS"},id:"i203to"},"1b9cczp":{title:"",source:{model:"edfbuilder_workflow.runEDP.createGiteaNS"},target:{model:"edfbuilder_workflow.runEDP.createArgoCdTlsCert"},id:"1b9cczp"},i514he:{title:"",source:{model:"edfbuilder_workflow.runEDP.createArgoCdTlsCert"},target:{model:"edfbuilder_workflow.runEDP.createGiteaTlsCert"},id:"i514he"},"13ashxq":{title:"",source:{model:"edfbuilder_workflow.runEDP.createGiteaTlsCert"},target:{model:"edfbuilder_workflow.runEDP.createEDFBuilderDefinition"},id:"13ashxq"},"14kigg4":{title:"",source:{model:"edfbuilder_workflow.runEDP.createEDFBuilderDefinition"},target:{model:"edfbuilder_workflow.runEDP.createEDFBuilderComposition"},id:"14kigg4"},"1y9fees":{title:"",source:{model:"edfbuilder_workflow.runEDP.createEDFBuilderComposition"},target:{model:"edfbuilder_workflow.applyEDFBuilder"},id:"1y9fees"},"1pfgmn3":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.setEnvVars"},target:{model:"edfbuilder_workflow.applyEDFBuilder.readWriteKubeConf"},id:"1pfgmn3"},"11gwuq3":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.readWriteKubeConf"},target:{model:"edfbuilder_workflow.applyEDFBuilder.setWorkDir"},id:"11gwuq3"},"1ddvozk":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.setWorkDir"},target:{model:"edfbuilder_workflow.applyEDFBuilder.cloneStacksRepo"},id:"1ddvozk"},c4bphp:{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.cloneStacksRepo"},target:{model:"edfbuilder_workflow.applyEDFBuilder.hydrateStacksWithValues"},id:"c4bphp"},"22u12c":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.hydrateStacksWithValues"},target:{model:"edfbuilder_workflow.applyEDFBuilder.createNamespaces"},id:"22u12c"},"1veymj5":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.createNamespaces"},target:{model:"edfbuilder_workflow.applyEDFBuilder.createGiteaAdminPass"},id:"1veymj5"},"1bx48yr":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.createGiteaAdminPass"},target:{model:"edfbuilder_workflow.applyEDFBuilder.createGrafanaPass"},id:"1bx48yr"},pbq0ly:{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.createGrafanaPass"},target:{model:"edfbuilder_workflow.applyEDFBuilder.applyServiceMonitorCRD"},id:"pbq0ly"},"1tj029j":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.applyServiceMonitorCRD"},target:{model:"edfbuilder_workflow.applyEDFBuilder.cloneIngressNginxChart"},id:"1tj029j"},ukdpc6:{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.cloneIngressNginxChart"},target:{model:"edfbuilder_workflow.applyEDFBuilder.isntallIngressNginx"},id:"ukdpc6"},tm63b8:{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.isntallIngressNginx"},target:{model:"edfbuilder_workflow.applyEDFBuilder.waitForIngress"},id:"tm63b8"},mnqt5q:{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.waitForIngress"},target:{model:"edfbuilder_workflow.applyEDFBuilder.cloneArgoCDHelm"},id:"mnqt5q"},c3zfur:{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.cloneArgoCDHelm"},target:{model:"edfbuilder_workflow.applyEDFBuilder.installArgoCD"},id:"c3zfur"},"157ptzn":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.installArgoCD"},target:{model:"edfbuilder_workflow.applyEDFBuilder.installArgoCDIngress"},id:"157ptzn"},"8kcuka":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.installArgoCDIngress"},target:{model:"edfbuilder_workflow.applyEDFBuilder.cloneForgejoHelmChart"},id:"8kcuka"},"5sub2k":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.cloneForgejoHelmChart"},target:{model:"edfbuilder_workflow.applyEDFBuilder.installForgejo"},id:"5sub2k"},z8qrfi:{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.installForgejo"},target:{model:"edfbuilder_workflow.applyEDFBuilder.installForgejoIngress"},id:"z8qrfi"},"1dqe9ri":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.installForgejoIngress"},target:{model:"edfbuilder_workflow.applyEDFBuilder.waitForArgoCD"},id:"1dqe9ri"},"12iu5vk":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.waitForArgoCD"},target:{model:"edfbuilder_workflow.applyEDFBuilder.waitForForgejo"},id:"12iu5vk"},"1xhuuis":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.waitForForgejo"},target:{model:"edfbuilder_workflow.applyEDFBuilder.createForgejoUser"},id:"1xhuuis"},vhezff:{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.createForgejoUser"},target:{model:"edfbuilder_workflow.applyEDFBuilder.createForgejoRepo"},id:"vhezff"},"1dow3tq":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.createForgejoRepo"},target:{model:"edfbuilder_workflow.applyEDFBuilder.installForgejoRunner"},id:"1dow3tq"},"1k46mx8":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.installForgejoRunner"},target:{model:"edfbuilder_workflow.applyEDFBuilder.registerForgejoRunner"},id:"1k46mx8"},f5bybq:{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.registerForgejoRunner"},target:{model:"edfbuilder_workflow.applyEDFBuilder.configGitIdentity"},id:"f5bybq"},"8g1uqn":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.configGitIdentity"},target:{model:"edfbuilder_workflow.applyEDFBuilder.configCrossplaneArgoCDProvider"},id:"8g1uqn"},"9c504z":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.configCrossplaneArgoCDProvider"},target:{model:"edfbuilder_workflow.applyEDFBuilder.configCrossplaneKindProvider"},id:"9c504z"},"19gp6kf":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.configCrossplaneKindProvider"},target:{model:"edfbuilder_workflow.applyEDFBuilder.uploadStacksToForgjo"},id:"19gp6kf"},h55zvp:{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.uploadStacksToForgjo"},target:{model:"edfbuilder_workflow.applyEDFBuilder.configArgoDockerRegistry"},id:"h55zvp"},"1b7dj03":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.configArgoDockerRegistry"},target:{model:"edfbuilder_workflow.applyEDFBuilder.createPackagesForgejoUser"},id:"1b7dj03"},"1bk65oi":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.createPackagesForgejoUser"},target:{model:"edfbuilder_workflow.applyEDFBuilder.installArgoCDStacks"},id:"1bk65oi"},rsncrl:{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.installArgoCDStacks"},target:{model:"edfbuilder_workflow.applyEDFBuilder.cleanup"},id:"rsncrl"},"18dtot7":{title:"register",source:{model:"forgejoRunner"},target:{model:"edp.forgejoActions"},id:"18dtot7"},"1oxlsu0":{title:"boots one",source:{model:"edfbuilder"},target:{model:"edf"},id:"1oxlsu0"},s1l7g7:{title:"runs",source:{model:"platformdeveloper"},target:{model:"edfbuilder"},id:"s1l7g7"},yfhhi5:{title:"read/write",source:{model:"edp.argoCD.argocdServer"},target:{model:"edp.argoCD.argocdRedis"},id:"yfhhi5"},iullhy:{title:"read/write",source:{model:"edp.argoCD.argocdRepoServer"},target:{model:"edp.argoCD.argocdRedis"},id:"iullhy"},"10vkxaf":{title:"read/write",source:{model:"edp.argoCD.argocdAppController"},target:{model:"edp.argoCD.argocdRedis"},id:"10vkxaf"},i8z0mi:{title:"read/write",source:{model:"edp.argoCD.argocdAppSetController"},target:{model:"edp.argoCD.argocdRedis"},id:"i8z0mi"},"6mupa0":{title:"Syncs git repo",source:{model:"edp.argoCD.argocdRepoServer"},target:{model:"edp.forgejogit"},id:"6mupa0"},c23sak:{title:"reads/writes",source:{model:"edp.ui.backstage"},target:{model:"edp.ui.database"},id:"c23sak"},"1pbc22f":{title:"runs workflows",source:{model:"edp.forgejoActions"},target:{model:"forgejoRunner"},id:"1pbc22f"},"1olxwwi":{title:"calls binary",source:{model:"edp.garm.garm"},target:{model:"edp.garm.providerEdgeConnect"},id:"1olxwwi"},iu7wve:{title:"calls binary",source:{model:"edp.garm.garm"},target:{model:"edp.garm.providerKubernetes"},id:"iu7wve"},"13uvtiq":{title:"get metrics and alerts",source:{model:"edp.grafana"},target:{model:"edp.prometheus"},id:"13uvtiq"},"1n1utzc":{title:"get logs",source:{model:"edp.grafana"},target:{model:"edp.loki"},id:"1n1utzc"},"123efwn":{title:"https",source:{model:"edp.ingressNginx.ingressNginx"},target:{model:"edp.forgejo"},id:"123efwn"},h3rut2:{title:"https",source:{model:"edp.ingressNginx.ingressNginx"},target:{model:"edp.keycloak.keycloak"},id:"h3rut2"},"1p30hav":{title:"https",source:{model:"edp.ingressNginx.ingressNginx"},target:{model:"edp.openbao.openbao"},id:"1p30hav"},"1yssos5":{title:"https",source:{model:"edp.ingressNginx.ingressNginx"},target:{model:"edp.argoCD.argocdServer"},id:"1yssos5"},v8c8aq:{title:"https",source:{model:"edp.ingressNginx.ingressNginx"},target:{model:"edp.ui.backstage"},id:"v8c8aq"},fe65w2:{title:"https",source:{model:"edp.ingressNginx.ingressNginx"},target:{model:"edp.minio.minio"},id:"fe65w2"},"1jvab2g":{title:"https",source:{model:"edp.ingressNginx.ingressNginx"},target:{model:"edp.monitoring.alloy"},id:"1jvab2g"},fs60l7:{title:"https",source:{model:"edp.ingressNginx.ingressNginx"},target:{model:"edp.monitoring.loki.queryFrontend"},id:"fs60l7"},"1i5f8um":{title:"https",source:{model:"edp.ingressNginx.ingressNginx"},target:{model:"edp.testApp.fibonacci"},id:"1i5f8um"},ofdedh:{title:"https",source:{model:"edp.ingressNginx.ingressNginx"},target:{model:"edp.mailhog.mailhog"},id:"ofdedh"},"18zxrhs":{title:"reads/writes",source:{model:"edp.keycloak.keycloak"},target:{model:"edp.keycloak.keycloakDB"},id:"18zxrhs"},"11ollyi":{title:"pushes logs",source:{model:"edp.monitoring.alloy"},target:{model:"edp.monitoring.loki.distributor"},id:"11ollyi"},"1mazt1x":{title:"store backups",source:{model:"edp.velero.velero"},target:{model:"edp.minio.minio"},id:"1mazt1x"},"5hkplj":{title:"inner loop",source:{model:"developer"},target:{model:"localbox"},id:"5hkplj"},"1pp73vj":{title:"outer loop",source:{model:"developer"},target:{model:"edp"},id:"1pp73vj"},yk9zv2:{title:"manages project",source:{model:"developer"},target:{model:"edp.ui"},id:"yk9zv2"},"12036hb":{title:"manages code",source:{model:"developer"},target:{model:"edp.forgejo"},id:"12036hb"},jpl8ll:{title:"authenticates",source:{model:"developer"},target:{model:"edp.keycloak"},id:"jpl8ll"},"1ghp31l":{title:"manages deployments",source:{model:"developer"},target:{model:"edp.argoCD"},id:"1ghp31l"},"1xiorre":{title:"monitors",source:{model:"developer"},target:{model:"edp.grafana"},id:"1xiorre"},"1woleh6":{title:"create and maintain apps",source:{model:"developer"},target:{model:"edp.ui.backstage"},id:"1woleh6"},"177bm2y":{title:"pushes and pull images",source:{model:"developer"},target:{model:"edp.imageregistry"},id:"177bm2y"},"1l9a3pd":{title:"uses API",source:{model:"developer"},target:{model:"edp.api"},id:"1l9a3pd"},"1uzzn9j":{title:"uses git",source:{model:"developer"},target:{model:"edp.forgejogit"},id:"1uzzn9j"},lb4xas:{title:"review / operate",source:{model:"otherProductLifecycleRoles"},target:{model:"edp"},id:"lb4xas"},"1g2ebwc":{title:"uses your app",source:{model:"customers"},target:{model:"cloud"},id:"1g2ebwc"},nc44l9:{title:"app specific dependencies",source:{model:"enterprise"},target:{model:"cloud"},id:"nc44l9"},xw0pne:{title:"provides documentation for",source:{model:"documentation"},target:{model:"edp"},id:"xw0pne"},"3sz3k3":{title:"creates and maintains documentation",source:{model:"platformdeveloper"},target:{model:"documentation"},id:"3sz3k3"},wsm3kf:{title:"builds many",source:{model:"edf"},target:{model:"edp"},id:"wsm3kf"},v8v12:{title:"develops EDP and EDF",source:{model:"platformdeveloper"},target:{model:"edf"},id:"v8v12"},"615gvx":{title:"integrates",source:{model:"edp"},target:{model:"enterprise"},id:"615gvx"},gerdx4:{title:"deploy & observe",source:{model:"edp"},target:{model:"cloud"},id:"gerdx4"},wvo8i:{title:"",source:{model:"edp"},target:{model:"localbox"},id:"wvo8i"},"1mp9fps":{title:"sync",source:{model:"localbox"},target:{model:"edp"},id:"1mp9fps"},"1abvxlh":{title:"company integration",source:{model:"localbox"},target:{model:"enterprise"},id:"1abvxlh"}},globals:{predicates:{},dynamicPredicates:{},styles:{text_large:[{targets:[{wildcard:!0}],style:{size:"xl"}}]}},views:{provider:{_type:"deployment",tags:null,links:null,_stage:"layouted",sourcePath:"views/deployment/edge/provider.c4",description:null,title:"Terraform Edge provider",id:"provider",autoLayout:{direction:"TB"},hash:"9f510e70e35a21871bc85c1a535584598e768d47",bounds:{x:0,y:0,width:1059,height:1265},nodes:[{id:"edgeProvider",parent:null,level:0,children:[],inEdges:[],outEdges:["u9omtf","r4j4sg","1xqlhup"],deploymentRef:"edgeProvider",title:"Terraform Edge provider",kind:"paas",color:"primary",shape:"rectangle",icon:"tech:terraform",description:{txt:"Unlocks the terraform ecosystem"},tags:[],style:{opacity:15,size:"md"},x:242,y:0,width:343,height:180,labelBBox:{x:46,y:63,width:282,height:48}},{id:"edgeSdk",parent:null,level:0,children:[],inEdges:["1xqlhup"],outEdges:["14pfq5a","lw6otg"],deploymentRef:"edgeSdk",title:"Edge Cloud SDK",kind:"paas",technology:"Cloud Services",color:"primary",shape:"rectangle",icon:"tech:go",description:{txt:"Wrapper around API"},tags:[],style:{opacity:15,size:"md"},x:86,y:347,width:320,height:180,labelBBox:{x:68,y:53,width:214,height:67}},{id:"edgeProviderHost",parent:null,level:0,children:["edgeProviderHost.terralist","edgeProviderHost.edp"],inEdges:["14pfq5a","u9omtf","r4j4sg"],outEdges:[],deploymentRef:"edgeProviderHost",title:"OTC",kind:"environment",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:478,y:276,width:466,height:648,labelBBox:{x:6,y:0,width:27,height:15}},{id:"edgeCloud",parent:null,level:0,children:["edgeCloud.edgeApi","edgeCloud.edgeResources"],inEdges:["lw6otg"],outEdges:[],deploymentRef:"edgeCloud",title:"Edge cloud",kind:"environment",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:8,y:623,width:420,height:634,labelBBox:{x:6,y:0,width:77,height:15}},{id:"edgeProviderHost.terralist",parent:"edgeProviderHost",level:1,children:[],inEdges:["r4j4sg"],outEdges:["c8rye7"],deploymentRef:"edgeProviderHost.terralist",title:"Terralist",kind:"paas",technology:"Cloud Services",color:"primary",shape:"rectangle",icon:"tech:terraform",description:{txt:"Terraform provider private hosting"},tags:[],style:{opacity:15,size:"md"},x:536,y:347,width:350,height:180,labelBBox:{x:46,y:53,width:288,height:67}},{id:"edgeCloud.edgeApi",parent:"edgeCloud",level:1,children:[],inEdges:["lw6otg"],outEdges:["1toht4t"],deploymentRef:"edgeCloud.edgeApi",title:"Edge Cloud API",kind:"paas",technology:"Edge Cloud (managed)",links:[{url:"https://swagger.edge.platform.mg3.mdb.osc.live",title:"Documentation"}],color:"primary",shape:"rectangle",icon:"tech:swagger",tags:[],style:{opacity:15,size:"md"},x:58,y:694,width:320,height:180,labelBBox:{x:73,y:64,width:204,height:46}},{id:"edgeProviderHost.edp",parent:"edgeProviderHost",level:1,children:[],inEdges:["c8rye7","14pfq5a","u9omtf"],outEdges:[],deploymentRef:"edgeProviderHost.edp",title:"Forgejo for all EDP-tenants",kind:"cluster",color:"primary",shape:"rectangle",modelRef:"edp.forgejo",icon:"tech:git",tags:[],style:{opacity:15,size:"md"},description:{txt:"edp.buildth.ing"},technology:"Golang",navigateTo:"forgejo",x:528,y:694,width:365,height:180,labelBBox:{x:46,y:53,width:304,height:67}},{id:"edgeCloud.edgeResources",parent:"edgeCloud",level:1,children:[],inEdges:["1toht4t"],outEdges:[],deploymentRef:"edgeCloud.edgeResources",title:"Edge Cloud Resources",kind:"paas",technology:"Edge Cloud (managed)",color:"primary",shape:"rectangle",description:{txt:"App, AppInstance, etc."},tags:[],style:{opacity:15,size:"md"},x:58,y:1027,width:320,height:180,labelBBox:{x:55,y:53,width:210,height:67}}],edges:[{id:"1toht4t",source:"edgeCloud.edgeApi",target:"edgeCloud.edgeResources",label:"creates/destroys",points:[[218,874],[218,918],[218,971],[218,1016]],labelBBox:{x:219,y:939,width:107,height:18},parent:"edgeCloud",relations:["rr0lcz"],color:"gray",line:"dashed",head:"normal"},{id:"c8rye7",source:"edgeProviderHost.terralist",target:"edgeProviderHost.edp",label:"authenticates via",points:[[711,527],[711,575],[711,634],[711,684]],labelBBox:{x:712,y:592,width:109,height:18},parent:"edgeProviderHost",relations:["1q6ftvm"],color:"gray",line:"dashed",head:"normal"},{id:"14pfq5a",source:"edgeSdk",target:"edgeProviderHost.edp",label:"hosted on",points:[[366,527],[432,576],[515,638],[583,688]],labelBBox:{x:480,y:592,width:66,height:18},parent:null,relations:["1sm6ifh"],color:"gray",line:"dashed",head:"normal"},{id:"lw6otg",source:"edgeSdk",target:"edgeCloud.edgeApi",label:"calls",points:[[239,527],[235,575],[230,634],[226,684]],labelBBox:{x:234,y:592,width:32,height:18},parent:null,relations:["vfhcba"],color:"gray",line:"dashed",head:"normal"},{id:"u9omtf",source:"edgeProvider",target:"edgeProviderHost.edp",label:"hosted on",points:[[585,100],[709,116],[869,160],[951,276],[1016,367],[992,423],[951,527],[927,588],[880,644],[834,687]],labelBBox:{x:992,y:425,width:66,height:18},parent:null,relations:["12ssq9"],color:"gray",line:"dashed",head:"normal"},{id:"r4j4sg",source:"edgeProvider",target:"edgeProviderHost.terralist",label:"published to",points:[[490,180],[532,229],[585,289],[628,339]],labelBBox:{x:564,y:245,width:80,height:18},parent:null,relations:["1mpjz5d"],color:"gray",line:"dashed",head:"normal"},{id:"1xqlhup",source:"edgeProvider",target:"edgeSdk",label:"built using",points:[[371,180],[347,228],[318,288],[294,338]],labelBBox:{x:336,y:245,width:67,height:18},parent:null,relations:["1wlvsb5"],color:"gray",line:"dashed",head:"normal"}]},index:{_type:"deployment",tags:null,links:null,_stage:"layouted",sourcePath:"views/deployment/kind/kind.c4",description:null,title:"Local Kind Deployment",id:"index",autoLayout:{direction:"TB"},hash:"09f216bdb503c31a28c16dff8a1c12da0a0c4cf1",bounds:{x:0,y:0,width:19320,height:1791},nodes:[{id:"otc-faas",parent:null,level:0,children:[],inEdges:[],outEdges:[],deploymentRef:"otc-faas",title:"OTC prototype FaaS",kind:"cloud",technology:"OTC",color:"primary",shape:"rectangle",description:{txt:"OTC environments for Prototype FaaS."},tags:[],style:{opacity:15,size:"md"},x:0,y:150,width:320,height:180,labelBBox:{x:28,y:54,width:264,height:67}},{id:"edge",parent:null,level:0,children:[],inEdges:[],outEdges:[],deploymentRef:"edge",title:"Edge Cloud",kind:"cloud",technology:"Edge",color:"primary",shape:"rectangle",description:{txt:"Edge environments for distributed workloads."},tags:[],style:{opacity:15,size:"md"},x:450,y:150,width:340,height:180,labelBBox:{x:18,y:54,width:304,height:67}},{id:"edgeProvider",parent:null,level:0,children:[],inEdges:[],outEdges:["1xqlhup","u9omtf","r4j4sg"],deploymentRef:"edgeProvider",title:"Terraform Edge provider",kind:"paas",color:"primary",shape:"rectangle",icon:"tech:terraform",description:{txt:"Unlocks the terraform ecosystem"},tags:[],style:{opacity:15,size:"md"},x:920,y:150,width:343,height:180,labelBBox:{x:46,y:63,width:282,height:48}},{id:"edgeConnectEnv",parent:null,level:0,children:[],inEdges:["i6v3n"],outEdges:["1ogkmfn"],deploymentRef:"edgeConnectEnv",title:"Edge Connect",kind:"environment",technology:"Edge Connect Platform",color:"primary",shape:"rectangle",modelRef:"forgejoRunner",icon:"tech:docker",description:{txt:"Edge infrastructure for ephemeral runner deployment"},tags:[],style:{opacity:15,size:"md"},x:5425,y:150,width:347,height:180,labelBBox:{x:46,y:45,width:286,height:85}},{id:"otc-edpFoundry",parent:null,level:0,children:["otc-edpFoundry.forgejoRunnerInfrastructure","otc-edpFoundry.cce","otc-edpFoundry.workflowSetupEDPInfrastructure","otc-edpFoundry.workflowSetupArgoCDInfrastructure"],inEdges:["c2grk6","1ean8sr","l1c2z3"],outEdges:["r3wxut","1sng0q0","e3benz","9r557q","rivecr","1lrp92n"],deploymentRef:"otc-edpFoundry",title:"OTC EDP Foundry Central Service clusters",kind:"cloud",technology:"OTC",color:"primary",shape:"rectangle",description:{txt:`OTC environments for the central EDP Foundry services. This is kubernetes clusters and other infrastructure like nodes and vms, and optionally platform services. All is set up by IaC terraform and edpbuilder. A tenant is a folder in Foundry-Config-Forgejo. On merge triggers reconciliation to EDP. Optionally we will have a WebUI/API/CLI`},tags:[],style:{opacity:15,size:"md"},depth:1,x:3577,y:79,width:870,height:995,labelBBox:{x:6,y:0,width:280,height:15}},{id:"otcTenantProd",parent:null,level:0,children:["otcTenantProd.otcTenantEdpBuildthing","otcTenantProd.otcTenantObservability","otcTenantProd.otcTenantCustomerA"],inEdges:[],outEdges:["1ypat9q","1oiku86"],deploymentRef:"otcTenantProd",title:"Prod - builth.ing",kind:"environment",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:17522,y:79,width:870,height:648,labelBBox:{x:6,y:0,width:108,height:15}},{id:"local",parent:null,level:0,children:["local.ingressNginx","local.velero","local.crossplane","local.externalSecrets","local.monitoring","local.backstage","local.argocd","local.keycloak","local.openbao","local.fibonacci","local.mailhog","local.minio","local.gitea","local.spark.sparkoperator"],inEdges:["1m1lj8s"],outEdges:["se5brg"],deploymentRef:"local",title:"Local kind-cluster",kind:"environment",technology:"Kind",color:"primary",shape:"rectangle",icon:"tech:kubernetes",description:{txt:"Local kind-cluster environment for EDP, typically run by edpbuilder"},tags:[],style:{opacity:15,size:"md"},depth:2,x:6508,y:8,width:10964,height:1449,labelBBox:{x:6,y:0,width:127,height:15}},{id:"local.ingressNginx",parent:"local",level:1,children:["local.ingressNginx.ingressNginx"],inEdges:[],outEdges:["15juth8","p2br4p","o229dq","2vnvvg","4ix58c","1hr2s5j","1nksp5g","m2japo","4drflo","ihlgsc"],deploymentRef:"local.ingressNginx",title:"ingress-nginx",kind:"namespace",color:"primary",shape:"rectangle",modelRef:"edp.ingressNginx.ingressNginx",tags:[],style:{opacity:15,size:"md"},depth:1,x:10434,y:444,width:384,height:265,labelBBox:{x:6,y:0,width:92,height:15}},{id:"local.velero",parent:"local",level:1,children:["local.velero.velero"],inEdges:[],outEdges:["3znaik"],deploymentRef:"local.velero",title:"velero",kind:"namespace",color:"primary",shape:"rectangle",modelRef:"edp.velero.velero",tags:[],style:{opacity:15,size:"md"},depth:1,x:12058,y:444,width:384,height:265,labelBBox:{x:6,y:0,width:49,height:15}},{id:"edgeSdk",parent:null,level:0,children:[],inEdges:["1xqlhup"],outEdges:["14pfq5a","lw6otg"],deploymentRef:"edgeSdk",title:"Edge Cloud SDK",kind:"paas",technology:"Cloud Services",color:"primary",shape:"rectangle",icon:"tech:go",description:{txt:"Wrapper around API"},tags:[],style:{opacity:15,size:"md"},x:731,y:497,width:320,height:180,labelBBox:{x:68,y:54,width:214,height:67}},{id:"otc-edpFoundry.forgejoRunnerInfrastructure",parent:"otc-edpFoundry",level:1,children:[],inEdges:["l1c2z3"],outEdges:["109g3jm","1lrp92n"],deploymentRef:"otc-edpFoundry.forgejoRunnerInfrastructure",title:"EDP ForgejoRunner infrastructure",kind:"computeressource",color:"primary",shape:"rectangle",modelRef:"forgejoRunner",description:{txt:"Infrastructure for Forgejo runners like pods, vms, lxds, etc"},tags:[],style:{opacity:15,size:"md"},technology:null,x:4055,y:150,width:342,height:180,labelBBox:{x:18,y:54,width:306,height:66}},{id:"otcTenantProd.otcTenantEdpBuildthing",parent:"otcTenantProd",level:1,children:[],inEdges:[],outEdges:["rj56uy","u7ohgi","1ypat9q","1oiku86"],deploymentRef:"otcTenantProd.otcTenantEdpBuildthing",title:"edp.builth.ing",kind:"cluster",color:"primary",shape:"rectangle",icon:"tech:git",description:{txt:"Primary Instance"},tags:[],style:{opacity:15,size:"md"},x:18022,y:150,width:320,height:180,labelBBox:{x:85,y:63,width:181,height:48}},{id:"local.crossplane",parent:"local",level:1,children:["local.crossplane.crossplane","local.crossplane.crossplaneFunction","local.crossplane.crossplaneRbacManager","local.crossplane.providerArgoCD","local.crossplane.providerKind","local.crossplane.providerShell"],inEdges:[],outEdges:[],deploymentRef:"local.crossplane",title:"crossplane-system",kind:"namespace",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:12982,y:79,width:2670,height:301,labelBBox:{x:6,y:0,width:129,height:15}},{id:"local.crossplane.crossplane",parent:"local.crossplane",level:2,children:[],inEdges:[],outEdges:[],kind:"instance",title:"Crossplane",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.crossplane.crossplane",modelRef:"edp.crossplane.crossplane",x:13032,y:150,width:320,height:180,labelBBox:{x:107,y:74,width:105,height:24}},{id:"local.crossplane.crossplaneFunction",parent:"local.crossplane",level:2,children:[],inEdges:[],outEdges:[],kind:"instance",title:"Function Patch and Transform",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.crossplane.crossplaneFunction",modelRef:"edp.crossplane.crossplaneFunction",x:13482,y:150,width:320,height:180,labelBBox:{x:24,y:74,width:273,height:24}},{id:"local.crossplane.crossplaneRbacManager",parent:"local.crossplane",level:2,children:[],inEdges:[],outEdges:[],kind:"instance",title:"RBAC Manager",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.crossplane.crossplaneRbacManager",modelRef:"edp.crossplane.crossplaneRbacManager",x:13932,y:150,width:320,height:180,labelBBox:{x:88,y:74,width:144,height:24}},{id:"local.crossplane.providerArgoCD",parent:"local.crossplane",level:2,children:[],inEdges:[],outEdges:[],kind:"instance",title:"ArgoCD Provider",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.crossplane.providerArgoCD",modelRef:"edp.crossplane.providerArgoCD",x:14382,y:150,width:320,height:180,labelBBox:{x:82,y:74,width:155,height:24}},{id:"local.crossplane.providerKind",parent:"local.crossplane",level:2,children:[],inEdges:[],outEdges:[],kind:"instance",title:"Kind Provider",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.crossplane.providerKind",modelRef:"edp.crossplane.providerKind",x:14832,y:150,width:320,height:180,labelBBox:{x:98,y:74,width:124,height:24}},{id:"local.crossplane.providerShell",parent:"local.crossplane",level:2,children:[],inEdges:[],outEdges:[],kind:"instance",title:"Shell Provider",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.crossplane.providerShell",modelRef:"edp.crossplane.providerShell",x:15282,y:150,width:320,height:180,labelBBox:{x:96,y:74,width:129,height:24}},{id:"local.externalSecrets",parent:"local",level:1,children:["local.externalSecrets.certController","local.externalSecrets.externalSecrets","local.externalSecrets.webhook"],inEdges:[],outEdges:[],deploymentRef:"local.externalSecrets",title:"external-secrets",kind:"namespace",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:15702,y:79,width:1320,height:301,labelBBox:{x:6,y:0,width:119,height:15}},{id:"local.externalSecrets.certController",parent:"local.externalSecrets",level:2,children:[],inEdges:[],outEdges:[],kind:"instance",title:"cert-controller",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.externalSecrets.certController",modelRef:"edp.externalSecrets.certController",x:15752,y:150,width:320,height:180,labelBBox:{x:97,y:74,width:126,height:24}},{id:"local.externalSecrets.externalSecrets",parent:"local.externalSecrets",level:2,children:[],inEdges:[],outEdges:[],kind:"instance",title:"external-secrets controller",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.externalSecrets.externalSecrets",modelRef:"edp.externalSecrets.externalSecrets",x:16202,y:150,width:320,height:180,labelBBox:{x:43,y:74,width:234,height:24}},{id:"local.externalSecrets.webhook",parent:"local.externalSecrets",level:2,children:[],inEdges:[],outEdges:[],kind:"instance",title:"webhook",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.externalSecrets.webhook",modelRef:"edp.externalSecrets.webhook",x:16652,y:150,width:320,height:180,labelBBox:{x:118,y:74,width:84,height:24}},{id:"local.monitoring",parent:"local",level:1,children:["local.monitoring.gateway","local.monitoring.ingestor","local.monitoring.querier","local.monitoring.alloy","local.monitoring.queryFrontend","local.monitoring.distributor"],inEdges:["1hr2s5j","1nksp5g"],outEdges:[],deploymentRef:"local.monitoring",title:"monitoring",kind:"namespace",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:7028,y:79,width:1320,height:1328,labelBBox:{x:6,y:0,width:75,height:15}},{id:"local.monitoring.gateway",parent:"local.monitoring",level:2,children:[],inEdges:[],outEdges:[],kind:"instance",title:"Gateway",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.monitoring.gateway",modelRef:"edp.monitoring.loki.gateway",x:7078,y:150,width:320,height:180,labelBBox:{x:119,y:74,width:83,height:24}},{id:"local.monitoring.ingestor",parent:"local.monitoring",level:2,children:[],inEdges:[],outEdges:[],kind:"instance",title:"Ingestor",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.monitoring.ingestor",modelRef:"edp.monitoring.loki.ingestor",x:7528,y:150,width:320,height:180,labelBBox:{x:122,y:74,width:76,height:24}},{id:"local.monitoring.querier",parent:"local.monitoring",level:2,children:[],inEdges:[],outEdges:[],kind:"instance",title:"Querier",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.monitoring.querier",modelRef:"edp.monitoring.loki.querier",x:7978,y:150,width:320,height:180,labelBBox:{x:125,y:74,width:71,height:24}},{id:"local.ingressNginx.ingressNginx",parent:"local.ingressNginx",level:2,children:[],inEdges:[],outEdges:["15juth8","p2br4p","o229dq","2vnvvg","4ix58c","1hr2s5j","1nksp5g","m2japo","4drflo","ihlgsc"],kind:"instance",title:"ingress-nginx",technology:"Nginx",tags:[],icon:"tech:nginx",color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.ingressNginx.ingressNginx",modelRef:"edp.ingressNginx.ingressNginx",x:10466,y:497,width:320,height:180,labelBBox:{x:85,y:65,width:181,height:45}},{id:"local.velero.velero",parent:"local.velero",level:2,children:[],inEdges:[],outEdges:["3znaik"],kind:"instance",title:"Velero",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.velero.velero",modelRef:"edp.velero.velero",x:12090,y:497,width:320,height:180,labelBBox:{x:129,y:74,width:62,height:24}},{id:"edgeProviderHost",parent:null,level:0,children:["edgeProviderHost.terralist","edgeProviderHost.edp"],inEdges:["u9omtf","r4j4sg","14pfq5a"],outEdges:[],deploymentRef:"edgeProviderHost",title:"OTC",kind:"environment",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:1123,y:426,width:466,height:648,labelBBox:{x:6,y:0,width:27,height:15}},{id:"edgeCloud",parent:null,level:0,children:["edgeCloud.edgeApi","edgeCloud.edgeResources"],inEdges:["lw6otg"],outEdges:[],deploymentRef:"edgeCloud",title:"Edge cloud",kind:"environment",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:653,y:773,width:420,height:634,labelBBox:{x:6,y:0,width:77,height:15}},{id:"otc-edpFoundry.cce",parent:"otc-edpFoundry",level:1,children:[],inEdges:["109g3jm"],outEdges:["llfvob","fil3na"],deploymentRef:"otc-edpFoundry.cce",title:"OTC CCE",kind:"kubernetes",technology:"Kubernetes",color:"primary",shape:"rectangle",icon:"tech:kubernetes",description:{txt:"OTC Container Cluster Engine"},tags:[],style:{opacity:15,size:"md"},x:4062,y:497,width:327,height:180,labelBBox:{x:46,y:54,width:266,height:67}},{id:"otcTenantProd.otcTenantObservability",parent:"otcTenantProd",level:1,children:[],inEdges:["rj56uy"],outEdges:[],deploymentRef:"otcTenantProd.otcTenantObservability",title:"observability.builth.ing",kind:"cluster",color:"primary",shape:"rectangle",icon:"tech:git",description:{txt:"Observability Instance"},tags:[],style:{opacity:15,size:"md"},x:17572,y:497,width:320,height:180,labelBBox:{x:46,y:63,width:258,height:48}},{id:"otcTenantProd.otcTenantCustomerA",parent:"otcTenantProd",level:1,children:[],inEdges:["u7ohgi"],outEdges:[],deploymentRef:"otcTenantProd.otcTenantCustomerA",title:"customer-a.builth.ing",kind:"cluster",color:"primary",shape:"rectangle",icon:"tech:git",description:{txt:"Customer Instance"},tags:[],style:{opacity:15,size:"md"},x:18022,y:497,width:320,height:180,labelBBox:{x:51,y:63,width:248,height:48}},{id:"otcTenantNonProd",parent:null,level:0,children:["otcTenantNonProd.otcTenantDev1","otcTenantNonProd.otcTenantTestX"],inEdges:["1ypat9q","1oiku86"],outEdges:[],deploymentRef:"otcTenantNonProd",title:"Non-Prod - t09.de",kind:"environment",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:18442,y:426,width:870,height:301,labelBBox:{x:6,y:0,width:111,height:15}},{id:"local.backstage",parent:"local",level:1,children:["local.backstage.backstage","local.backstage.database"],inEdges:["15juth8"],outEdges:[],deploymentRef:"local.backstage",title:"backstage",kind:"namespace",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:8398,y:773,width:420,height:634,labelBBox:{x:6,y:0,width:74,height:15}},{id:"local.argocd",parent:"local",level:1,children:["local.argocd.argocdAppController","local.argocd.argocdAppSetController","local.argocd.argocdRepoServer","local.argocd.argocdServer","local.argocd.argocdRedis"],inEdges:["p2br4p"],outEdges:[],deploymentRef:"local.argocd",title:"argocd",kind:"namespace",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:8868,y:773,width:1770,height:634,labelBBox:{x:6,y:0,width:53,height:15}},{id:"local.keycloak",parent:"local",level:1,children:["local.keycloak.keycloak","local.keycloak.keycloakDB"],inEdges:["2vnvvg"],outEdges:[],deploymentRef:"local.keycloak",title:"keycloak",kind:"namespace",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:10688,y:773,width:420,height:634,labelBBox:{x:6,y:0,width:66,height:15}},{id:"local.openbao",parent:"local",level:1,children:["local.openbao.openbao","local.openbao.agentInjector"],inEdges:["m2japo"],outEdges:[],deploymentRef:"local.openbao",title:"openbao",kind:"namespace",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:6558,y:79,width:420,height:995,labelBBox:{x:6,y:0,width:60,height:15}},{id:"local.fibonacci",parent:"local",level:1,children:["local.fibonacci.fibonacci"],inEdges:["4drflo"],outEdges:[],deploymentRef:"local.fibonacci",title:"fibonacci-app",kind:"namespace",color:"primary",shape:"rectangle",modelRef:"edp.testApp.fibonacci",tags:[],style:{opacity:15,size:"md"},depth:1,x:11158,y:791,width:384,height:265,labelBBox:{x:6,y:0,width:91,height:15}},{id:"local.mailhog",parent:"local",level:1,children:["local.mailhog.mailhog"],inEdges:["ihlgsc"],outEdges:[],deploymentRef:"local.mailhog",title:"mailhog",kind:"namespace",color:"primary",shape:"rectangle",modelRef:"edp.mailhog.mailhog",tags:[],style:{opacity:15,size:"md"},depth:1,x:11608,y:791,width:384,height:265,labelBBox:{x:6,y:0,width:56,height:15}},{id:"local.minio",parent:"local",level:1,children:["local.minio.minio"],inEdges:["3znaik","4ix58c"],outEdges:[],deploymentRef:"local.minio",title:"minio-backup",kind:"namespace",color:"primary",shape:"rectangle",modelRef:"edp.minio.minio",tags:[],style:{opacity:15,size:"md"},depth:1,x:12058,y:791,width:384,height:265,labelBBox:{x:6,y:0,width:86,height:15}},{id:"edgeProviderHost.terralist",parent:"edgeProviderHost",level:1,children:[],inEdges:["r4j4sg"],outEdges:["c8rye7"],deploymentRef:"edgeProviderHost.terralist",title:"Terralist",kind:"paas",technology:"Cloud Services",color:"primary",shape:"rectangle",icon:"tech:terraform",description:{txt:"Terraform provider private hosting"},tags:[],style:{opacity:15,size:"md"},x:1181,y:497,width:350,height:180,labelBBox:{x:46,y:54,width:288,height:67}},{id:"edgeCloud.edgeApi",parent:"edgeCloud",level:1,children:[],inEdges:["lw6otg"],outEdges:["1toht4t"],deploymentRef:"edgeCloud.edgeApi",title:"Edge Cloud API",kind:"paas",technology:"Edge Cloud (managed)",links:[{url:"https://swagger.edge.platform.mg3.mdb.osc.live",title:"Documentation"}],color:"primary",shape:"rectangle",icon:"tech:swagger",tags:[],style:{opacity:15,size:"md"},x:703,y:844,width:320,height:180,labelBBox:{x:73,y:65,width:204,height:45}},{id:"otc-edpFoundry.workflowSetupEDPInfrastructure",parent:"otc-edpFoundry",level:1,children:[],inEdges:["llfvob","c2grk6"],outEdges:["r3wxut","e3benz","9r557q"],deploymentRef:"otc-edpFoundry.workflowSetupEDPInfrastructure",title:"EDP infrastructure Workflow",kind:"computeressource",color:"primary",shape:"rectangle",description:{txt:"EDP infrastructure Workflow"},tags:[],style:{opacity:15,size:"md"},x:3627,y:844,width:320,height:180,labelBBox:{x:32,y:63,width:255,height:48}},{id:"otc-edpFoundry.workflowSetupArgoCDInfrastructure",parent:"otc-edpFoundry",level:1,children:[],inEdges:["fil3na","1ean8sr"],outEdges:["1sng0q0","rivecr"],deploymentRef:"otc-edpFoundry.workflowSetupArgoCDInfrastructure",title:"EDP ArgoCD Workflow",kind:"computeressource",color:"primary",shape:"rectangle",description:{txt:"EDP Setup ArgoCD Workflow"},tags:[],style:{opacity:15,size:"md"},x:4077,y:844,width:320,height:180,labelBBox:{x:55,y:63,width:210,height:48}},{id:"otcTenantNonProd.otcTenantDev1",parent:"otcTenantNonProd",level:1,children:[],inEdges:["1ypat9q"],outEdges:[],deploymentRef:"otcTenantNonProd.otcTenantDev1",title:"dev1.t09.de",kind:"cluster",color:"primary",shape:"rectangle",icon:"tech:git",description:{txt:"Development Instance"},tags:[],style:{opacity:15,size:"md"},x:18492,y:497,width:320,height:180,labelBBox:{x:69,y:63,width:212,height:48}},{id:"otcTenantNonProd.otcTenantTestX",parent:"otcTenantNonProd",level:1,children:[],inEdges:["1oiku86"],outEdges:[],deploymentRef:"otcTenantNonProd.otcTenantTestX",title:"test-x.t09.de",kind:"cluster",color:"primary",shape:"rectangle",icon:"tech:git",description:{txt:"Testing Instance"},tags:[],style:{opacity:15,size:"md"},x:18942,y:497,width:320,height:180,labelBBox:{x:89,y:63,width:172,height:48}},{id:"local.backstage.backstage",parent:"local.backstage",level:2,children:[],inEdges:["15juth8"],outEdges:["19kg5y"],kind:"instance",title:"Backstage",tags:[],icon:"tech:react",color:"primary",shape:"browser",style:{opacity:15,size:"md"},deploymentRef:"local.backstage.backstage",modelRef:"edp.ui.backstage",x:8448,y:844,width:320,height:180,labelBBox:{x:97,y:74,width:156,height:24}},{id:"local.argocd.argocdAppController",parent:"local.argocd",level:2,children:[],inEdges:[],outEdges:["1gfgfhk"],kind:"instance",title:"ApplicationController",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.argocd.argocdAppController",modelRef:"edp.argoCD.argocdAppController",x:8918,y:844,width:320,height:180,labelBBox:{x:66,y:74,width:189,height:24}},{id:"local.argocd.argocdAppSetController",parent:"local.argocd",level:2,children:[],inEdges:[],outEdges:["qfu5xm"],kind:"instance",title:"ApplicationSeetController",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.argocd.argocdAppSetController",modelRef:"edp.argoCD.argocdAppSetController",x:9368,y:844,width:320,height:180,labelBBox:{x:45,y:74,width:230,height:24}},{id:"local.argocd.argocdRepoServer",parent:"local.argocd",level:2,children:[],inEdges:[],outEdges:["g7xnzs"],kind:"instance",title:"Repo Server",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.argocd.argocdRepoServer",modelRef:"edp.argoCD.argocdRepoServer",x:9818,y:844,width:320,height:180,labelBBox:{x:102,y:74,width:116,height:24}},{id:"local.argocd.argocdServer",parent:"local.argocd",level:2,children:[],inEdges:["p2br4p"],outEdges:["fon3rk"],kind:"instance",title:"ArgoCD Server",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.argocd.argocdServer",modelRef:"edp.argoCD.argocdServer",x:10268,y:844,width:320,height:180,labelBBox:{x:90,y:74,width:140,height:24}},{id:"local.keycloak.keycloak",parent:"local.keycloak",level:2,children:[],inEdges:["2vnvvg"],outEdges:["4zwy1m"],kind:"instance",title:"Keycloak",technology:"Java",tags:[],icon:"tech:java",color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.keycloak.keycloak",modelRef:"edp.keycloak.keycloak",x:10738,y:844,width:320,height:180,labelBBox:{x:104,y:65,width:143,height:45}},{id:"local.monitoring.alloy",parent:"local.monitoring",level:2,children:[],inEdges:["1hr2s5j"],outEdges:["sb2j38"],kind:"instance",title:"Alloy",description:{txt:"Open Telemetry Collector"},tags:[],icon:"tech:grafana",color:"primary",shape:"rectangle",style:{opacity:15,size:"md",multiple:!0},deploymentRef:"local.monitoring.alloy",modelRef:"edp.monitoring.alloy",x:7528,y:844,width:320,height:180,labelBBox:{x:59,y:63,width:233,height:48}},{id:"local.monitoring.queryFrontend",parent:"local.monitoring",level:2,children:[],inEdges:["1nksp5g"],outEdges:[],kind:"instance",title:"Query Frontend",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.monitoring.queryFrontend",modelRef:"edp.monitoring.loki.queryFrontend",x:7978,y:844,width:320,height:180,labelBBox:{x:88,y:74,width:144,height:24}},{id:"local.openbao.openbao",parent:"local.openbao",level:2,children:[],inEdges:["m2japo"],outEdges:[],kind:"instance",title:"Openbao",technology:"Openbao",tags:[],color:"primary",shape:"storage",style:{opacity:15,size:"md"},deploymentRef:"local.openbao.openbao",modelRef:"edp.openbao.openbao",x:6608,y:844,width:320,height:180,labelBBox:{x:117,y:65,width:86,height:45}},{id:"local.openbao.agentInjector",parent:"local.openbao",level:2,children:[],inEdges:[],outEdges:[],kind:"instance",title:"Agent Injector",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.openbao.agentInjector",modelRef:"edp.openbao.agentInjector",x:6608,y:150,width:320,height:180,labelBBox:{x:96,y:74,width:127,height:24}},{id:"local.fibonacci.fibonacci",parent:"local.fibonacci",level:2,children:[],inEdges:["4drflo"],outEdges:[],kind:"instance",title:"Fibonacci",technology:"Golang",tags:[],icon:"tech:go",color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.fibonacci.fibonacci",modelRef:"edp.testApp.fibonacci",x:11190,y:844,width:320,height:180,labelBBox:{x:101,y:65,width:148,height:45}},{id:"local.mailhog.mailhog",parent:"local.mailhog",level:2,children:[],inEdges:["ihlgsc"],outEdges:[],kind:"instance",title:"Mailhog",technology:"Golang",tags:[],icon:"tech:go",color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.mailhog.mailhog",modelRef:"edp.mailhog.mailhog",x:11640,y:844,width:320,height:180,labelBBox:{x:109,y:65,width:132,height:45}},{id:"local.minio.minio",parent:"local.minio",level:2,children:[],inEdges:["3znaik","4ix58c"],outEdges:[],kind:"instance",title:"S3 Blob Storage",technology:"Minio",tags:[],color:"primary",shape:"storage",style:{opacity:15,size:"md"},deploymentRef:"local.minio.minio",modelRef:"edp.minio.minio",x:12090,y:844,width:320,height:180,labelBBox:{x:85,y:65,width:150,height:45}},{id:"edgeProviderHost.edp",parent:"edgeProviderHost",level:1,children:[],inEdges:["u9omtf","14pfq5a","c8rye7"],outEdges:[],deploymentRef:"edgeProviderHost.edp",title:"Forgejo for all EDP-tenants",kind:"cluster",color:"primary",shape:"rectangle",modelRef:"edp.forgejo",icon:"tech:git",tags:[],style:{opacity:15,size:"md"},description:{txt:"edp.buildth.ing"},technology:"Golang",navigateTo:"forgejo",x:1173,y:844,width:365,height:180,labelBBox:{x:46,y:54,width:304,height:67}},{id:"edgeCloud.edgeResources",parent:"edgeCloud",level:1,children:[],inEdges:["1toht4t"],outEdges:[],deploymentRef:"edgeCloud.edgeResources",title:"Edge Cloud Resources",kind:"paas",technology:"Edge Cloud (managed)",color:"primary",shape:"rectangle",description:{txt:"App, AppInstance, etc."},tags:[],style:{opacity:15,size:"md"},x:703,y:1177,width:320,height:180,labelBBox:{x:55,y:53,width:210,height:68}},{id:"otc-edp-per-tenant",parent:null,level:0,children:["otc-edp-per-tenant.forgejoRunnerInfrastructure","otc-edp-per-tenant.cce","otc-edp-per-tenant.cloudServices"],inEdges:["r3wxut","1sng0q0","p2umm7","e3benz","126mt75"],outEdges:["b27cdb","1mbuxdd"],deploymentRef:"otc-edp-per-tenant",title:"OTC EDP per tenant cluster",kind:"cloud",technology:"OTC",color:"primary",shape:"rectangle",description:{txt:`OTC environment for EDP. EDP is the environment a customer gets from us. @@ -279,17 +279,17 @@ and security scanning`},tags:[],technology:"Golang",kind:"container",depth:1,x:8 offering capabilities like code version controling collaboration and ticketing -and security scanning`},tags:[],technology:"Golang",kind:"container",navigateTo:"forgejo",x:860,y:384,width:340,height:180,labelBBox:{x:46,y:17,width:278,height:139}},{id:"edp.keycloak",parent:null,level:0,children:[],inEdges:["dh7ut5"],outEdges:[],title:"Keycloak",modelRef:"edp.keycloak",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Single Sign On for all EDP products"},tags:[],kind:"container",navigateTo:"keycloak",x:1310,y:384,width:320,height:180,labelBBox:{x:39,y:63,width:242,height:48}},{id:"edp.mailhog",parent:null,level:0,children:[],inEdges:["1bv0wod"],outEdges:[],title:"Mailhog",modelRef:"edp.mailhog",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Web and API based SMTP testing"},tags:[],kind:"container",navigateTo:"mailhog",x:1740,y:384,width:320,height:180,labelBBox:{x:44,y:63,width:232,height:48}},{id:"edp.minio",parent:null,level:0,children:[],inEdges:["68hu20"],outEdges:[],title:"Minio",modelRef:"edp.minio",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"S3 compatible blob storage"},tags:[],kind:"container",navigateTo:"minio",x:2170,y:384,width:320,height:180,labelBBox:{x:67,y:63,width:186,height:48}},{id:"edp.monitoring",parent:null,level:0,children:[],inEdges:["nx2xew"],outEdges:[],title:"Monitoring",modelRef:"edp.monitoring",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Observability system to monitor deployed components"},tags:[],kind:"container",navigateTo:"monitoring",x:2600,y:384,width:320,height:180,labelBBox:{x:21,y:54,width:278,height:66}},{id:"edp.openbao",parent:null,level:0,children:[],inEdges:["momp7g"],outEdges:[],title:"OpenBao",modelRef:"edp.openbao",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Secure secret storage"},tags:[],kind:"container",x:3030,y:384,width:320,height:180,labelBBox:{x:85,y:63,width:151,height:48}},{id:"edp.testApp",parent:null,level:0,children:[],inEdges:["8cmkj7"],outEdges:[],title:"Fibonacci",modelRef:"edp.testApp",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Testapp to validate deployments"},tags:[],kind:"container",navigateTo:"testapp",x:3460,y:384,width:320,height:180,labelBBox:{x:50,y:63,width:220,height:48}}],edges:[{id:"1poylyw",source:"edp.ingressNginx.ingressNginx",target:"edp.argoCD",label:"https",points:[[1740,164],[1459,187],[862,248],[375,384],[360,388],[345,393],[329,398]],labelBBox:{x:704,y:301,width:34,height:18},parent:null,relations:["1yssos5"],color:"gray",line:"dashed",head:"normal"},{id:"llqgvs",source:"edp.ingressNginx.ingressNginx",target:"edp.ui",label:"https",points:[[1740,177],[1525,211],[1131,283],[805,384],[790,389],[775,394],[759,400]],labelBBox:{x:1102,y:301,width:34,height:18},parent:null,relations:["v8c8aq"],color:"gray",line:"dashed",head:"normal"},{id:"75xltk",source:"edp.ingressNginx.ingressNginx",target:"edp.forgejo",label:"https",points:[[1740,208],[1609,254],[1420,322],[1255,384],[1240,390],[1225,395],[1210,401]],labelBBox:{x:1468,y:301,width:34,height:18},parent:null,relations:["123efwn"],color:"gray",line:"dashed",head:"normal"},{id:"dh7ut5",source:"edp.ingressNginx.ingressNginx",target:"edp.keycloak",label:"https",points:[[1781,241],[1724,284],[1655,335],[1597,378]],labelBBox:{x:1699,y:301,width:34,height:18},parent:null,relations:["h3rut2"],color:"gray",line:"dashed",head:"normal"},{id:"1bv0wod",source:"edp.ingressNginx.ingressNginx",target:"edp.mailhog",label:"https",points:[[1900,241],[1900,282],[1900,331],[1900,374]],labelBBox:{x:1901,y:301,width:34,height:18},parent:null,relations:["ofdedh"],color:"gray",line:"dashed",head:"normal"},{id:"68hu20",source:"edp.ingressNginx.ingressNginx",target:"edp.minio",label:"https",points:[[2019,241],[2076,284],[2145,335],[2203,378]],labelBBox:{x:2129,y:301,width:34,height:18},parent:null,relations:["fe65w2"],color:"gray",line:"dashed",head:"normal"},{id:"nx2xew",source:"edp.ingressNginx.ingressNginx",target:"edp.monitoring",label:"https",points:[[2060,207],[2191,253],[2381,321],[2545,384],[2560,390],[2575,396],[2591,402]],labelBBox:{x:2370,y:301,width:34,height:18},parent:null,relations:["1jvab2g","fs60l7"],color:"gray",line:"dashed",head:"normal"},{id:"momp7g",source:"edp.ingressNginx.ingressNginx",target:"edp.openbao",label:"https",points:[[2060,177],[2272,213],[2657,285],[2975,384],[2990,389],[3005,394],[3021,400]],labelBBox:{x:2744,y:301,width:34,height:18},parent:null,relations:["1p30hav"],color:"gray",line:"dashed",head:"normal"},{id:"8cmkj7",source:"edp.ingressNginx.ingressNginx",target:"edp.testApp",label:"https",points:[[2060,164],[2338,188],[2926,250],[3405,384],[3420,388],[3435,393],[3451,399]],labelBBox:{x:3165,y:301,width:34,height:18},parent:null,relations:["1i5f8um"],color:"gray",line:"dashed",head:"normal"}]},testapp:{_type:"element",tags:null,links:null,viewOf:"edp.testApp",_stage:"layouted",sourcePath:"views/edp/edp.c4",description:null,title:"Fibonacci",id:"testapp",autoLayout:{direction:"TB"},hash:"d8f40f5cfab10e6e91c79feeef6be3240922c723",bounds:{x:0,y:0,width:400,height:544},nodes:[{id:"edp.ingressNginx",parent:null,level:0,children:[],inEdges:[],outEdges:["1tefjx2"],title:"Ingress",modelRef:"edp.ingressNginx",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Ingress Controller for incoming http(s) traffic"},tags:["internal"],kind:"container",navigateTo:"ingressNginx",x:40,y:0,width:320,height:180,labelBBox:{x:33,y:54,width:255,height:66}},{id:"edp.testApp",parent:null,level:0,children:["edp.testApp.fibonacci"],inEdges:["1tefjx2"],outEdges:[],title:"Fibonacci",modelRef:"edp.testApp",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Testapp to validate deployments"},tags:[],kind:"container",depth:1,x:8,y:271,width:384,height:265,labelBBox:{x:6,y:0,width:65,height:15}},{id:"edp.testApp.fibonacci",parent:"edp.testApp",level:1,children:[],inEdges:["1tefjx2"],outEdges:[],title:"Fibonacci",modelRef:"edp.testApp.fibonacci",shape:"rectangle",color:"primary",icon:"tech:go",style:{opacity:15,size:"md"},tags:[],technology:"Golang",kind:"component",x:40,y:324,width:320,height:180,labelBBox:{x:101,y:64,width:148,height:46}}],edges:[{id:"1tefjx2",source:"edp.ingressNginx",target:"edp.testApp.fibonacci",label:"https",points:[[200,180],[200,221],[200,271],[200,314]],labelBBox:{x:201,y:240,width:34,height:18},parent:null,relations:["1i5f8um"],color:"gray",line:"dashed",head:"normal"}]},mailhog:{_type:"element",tags:null,links:null,viewOf:"edp.mailhog",_stage:"layouted",sourcePath:"views/edp/edp.c4",description:null,title:"Mailhog",id:"mailhog",autoLayout:{direction:"TB"},hash:"b9e703c2ceb2b2a400194d90ac7caa94525ac068",bounds:{x:0,y:0,width:400,height:544},nodes:[{id:"edp.ingressNginx",parent:null,level:0,children:[],inEdges:[],outEdges:["axipfp"],title:"Ingress",modelRef:"edp.ingressNginx",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Ingress Controller for incoming http(s) traffic"},tags:["internal"],kind:"container",navigateTo:"ingressNginx",x:40,y:0,width:320,height:180,labelBBox:{x:33,y:54,width:255,height:66}},{id:"edp.mailhog",parent:null,level:0,children:["edp.mailhog.mailhog"],inEdges:["axipfp"],outEdges:[],title:"Mailhog",modelRef:"edp.mailhog",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Web and API based SMTP testing"},tags:[],kind:"container",depth:1,x:8,y:271,width:384,height:265,labelBBox:{x:6,y:0,width:56,height:15}},{id:"edp.mailhog.mailhog",parent:"edp.mailhog",level:1,children:[],inEdges:["axipfp"],outEdges:[],title:"Mailhog",modelRef:"edp.mailhog.mailhog",shape:"rectangle",color:"primary",icon:"tech:go",style:{opacity:15,size:"md"},tags:[],technology:"Golang",kind:"component",x:40,y:324,width:320,height:180,labelBBox:{x:109,y:64,width:132,height:46}}],edges:[{id:"axipfp",source:"edp.ingressNginx",target:"edp.mailhog.mailhog",label:"https",points:[[200,180],[200,221],[200,271],[200,314]],labelBBox:{x:201,y:240,width:34,height:18},parent:null,relations:["ofdedh"],color:"gray",line:"dashed",head:"normal"}]},spark:{_type:"element",tags:null,links:null,viewOf:"edp.spark",_stage:"layouted",sourcePath:"views/edp/edp.c4",description:null,title:"Spark",id:"spark",autoLayout:{direction:"TB"},hash:"1ec41779bad408405a96c4063aa06b24ec2aace8",bounds:{x:0,y:0,width:400,height:281},nodes:[{id:"edp.spark",parent:null,level:0,children:["edp.spark.sparkoperator"],inEdges:[],outEdges:[],title:"Spark",modelRef:"edp.spark",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Allows running Spark applications on K8s"},tags:["internal"],kind:"container",depth:1,x:8,y:8,width:384,height:265,labelBBox:{x:6,y:0,width:43,height:15}},{id:"edp.spark.sparkoperator",parent:"edp.spark",level:1,children:[],inEdges:[],outEdges:[],title:"Spark Operator",modelRef:"edp.spark.sparkoperator",shape:"rectangle",color:"primary",icon:"tech:spark",style:{opacity:15,size:"md"},tags:[],technology:"Spark",kind:"component",x:40,y:61,width:320,height:180,labelBBox:{x:76,y:64,width:198,height:46}}],edges:[]},argoCD:{_type:"element",tags:null,links:null,viewOf:"edp.argoCD",_stage:"layouted",sourcePath:"views/edp/edp.c4",description:null,title:"ArgoCD",id:"argoCD",autoLayout:{direction:"TB"},hash:"53d798ca0a34dbe3ebf9b43318a151943ecaec33",bounds:{x:0,y:0,width:2058,height:883},nodes:[{id:"edp.ingressNginx",parent:null,level:0,children:[],inEdges:[],outEdges:["ce0h9c"],title:"Ingress",modelRef:"edp.ingressNginx",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Ingress Controller for incoming http(s) traffic"},tags:["internal"],kind:"container",navigateTo:"ingressNginx",x:48,y:0,width:320,height:180,labelBBox:{x:33,y:54,width:255,height:66}},{id:"edp.argoCD",parent:null,level:0,children:["edp.argoCD.argocdServer","edp.argoCD.argocdAppController","edp.argoCD.argocdAppSetController","edp.argoCD.argocdRepoServer","edp.argoCD.argocdRedis"],inEdges:["ce0h9c"],outEdges:["1e5s57z"],title:"ArgoCD",modelRef:"edp.argoCD",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"GitOps Service"},tags:[],kind:"container",depth:1,x:8,y:271,width:1690,height:604,labelBBox:{x:6,y:0,width:53,height:15}},{id:"edp.argoCD.argocdServer",parent:"edp.argoCD",level:1,children:[],inEdges:["ce0h9c"],outEdges:["124uc06"],title:"ArgoCD Server",modelRef:"edp.argoCD.argocdServer",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},tags:[],kind:"component",x:48,y:332,width:320,height:180,labelBBox:{x:90,y:74,width:140,height:24}},{id:"edp.argoCD.argocdAppController",parent:"edp.argoCD",level:1,children:[],inEdges:[],outEdges:["doh0se"],title:"ApplicationController",modelRef:"edp.argoCD.argocdAppController",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},tags:[],kind:"component",x:478,y:332,width:320,height:180,labelBBox:{x:66,y:74,width:189,height:24}},{id:"edp.argoCD.argocdAppSetController",parent:"edp.argoCD",level:1,children:[],inEdges:[],outEdges:["ekc7mk"],title:"ApplicationSeetController",modelRef:"edp.argoCD.argocdAppSetController",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},tags:[],kind:"component",x:908,y:332,width:320,height:180,labelBBox:{x:45,y:74,width:230,height:24}},{id:"edp.argoCD.argocdRepoServer",parent:"edp.argoCD",level:1,children:[],inEdges:[],outEdges:["173l3xq","1e5s57z"],title:"Repo Server",modelRef:"edp.argoCD.argocdRepoServer",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},tags:[],kind:"component",x:1338,y:332,width:320,height:180,labelBBox:{x:102,y:74,width:116,height:24}},{id:"edp.argoCD.argocdRedis",parent:"edp.argoCD",level:1,children:[],inEdges:["124uc06","doh0se","ekc7mk","173l3xq"],outEdges:[],title:"Redis",modelRef:"edp.argoCD.argocdRedis",shape:"rectangle",color:"primary",icon:"tech:redis",style:{opacity:15,size:"md"},tags:[],technology:"Redis",kind:"component",x:693,y:655,width:320,height:180,labelBBox:{x:118,y:64,width:114,height:46}},{id:"edp.forgejogit",parent:null,level:0,children:[],inEdges:["1e5s57z"],outEdges:[],title:"ForgejoGit",modelRef:"edp.forgejogit",shape:"rectangle",color:"primary",icon:"tech:git",style:{opacity:15,size:"md"},tags:[],kind:"component",x:1738,y:655,width:320,height:180,labelBBox:{x:97,y:74,width:156,height:24}}],edges:[{id:"ce0h9c",source:"edp.ingressNginx",target:"edp.argoCD.argocdServer",label:"https",points:[[208,180],[208,224],[208,277],[208,322]],labelBBox:{x:209,y:240,width:34,height:18},parent:null,relations:["1yssos5"],color:"gray",line:"dashed",head:"normal"},{id:"124uc06",source:"edp.argoCD.argocdServer",target:"edp.argoCD.argocdRedis",label:"read/write",points:[[368,503],[464,550],[586,611],[684,660]],labelBBox:{x:551,y:572,width:65,height:18},parent:"edp.argoCD",relations:["yfhhi5"],color:"gray",line:"dashed",head:"normal"},{id:"doh0se",source:"edp.argoCD.argocdAppController",target:"edp.argoCD.argocdRedis",label:"read/write",points:[[688,512],[704,539],[722,568],[740,595],[751,612],[764,630],[776,647]],labelBBox:{x:741,y:572,width:65,height:18},parent:"edp.argoCD",relations:["10vkxaf"],color:"gray",line:"dashed",head:"normal"},{id:"ekc7mk",source:"edp.argoCD.argocdAppSetController",target:"edp.argoCD.argocdRedis",label:"read/write",points:[[1008,512],[980,554],[947,603],[918,646]],labelBBox:{x:968,y:572,width:65,height:18},parent:"edp.argoCD",relations:["i8z0mi"],color:"gray",line:"dashed",head:"normal"},{id:"173l3xq",source:"edp.argoCD.argocdRepoServer",target:"edp.argoCD.argocdRedis",label:"read/write",points:[[1338,503],[1242,550],[1120,611],[1022,660]],labelBBox:{x:1196,y:572,width:65,height:18},parent:"edp.argoCD",relations:["iullhy"],color:"gray",line:"dashed",head:"normal"},{id:"1e5s57z",source:"edp.argoCD.argocdRepoServer",target:"edp.forgejogit",label:"Syncs git repo",points:[[1609,512],[1662,554],[1725,605],[1779,649]],labelBBox:{x:1711,y:572,width:93,height:18},parent:null,relations:["6mupa0"],color:"gray",line:"dashed",head:"normal"}]},idp:{_type:"element",tags:null,links:null,viewOf:"edp",_stage:"layouted",sourcePath:"views/edp/edp-as-idp.c4",description:null,title:"EDP as IDP",id:"idp",autoLayout:{direction:"TB"},hash:"d1e4c998ee263bce5b2572834b6a9a7b6d6391f5",bounds:{x:0,y:0,width:6408,height:1862},nodes:[{id:"developer",parent:null,level:0,children:[],inEdges:[],outEdges:["1w9cpb2","1y3lcyj","1agven9","1nv0w41","3nxrq7","bfgapq"],title:"Developer",modelRef:"developer",shape:"person",color:"green",style:{opacity:25,size:"xl"},description:{txt:"The regular user of the platform"},tags:[],kind:"actor",x:5888,y:192,width:520,height:290,labelBBox:{x:111,y:108,width:298,height:64}},{id:"@gr1",parent:null,kind:"@group",title:"EDP",color:"primary",shape:"rectangle",children:["@gr2","@gr5","@gr6","@gr7"],inEdges:["1w9cpb2","1y3lcyj","1agven9","1nv0w41","3nxrq7","bfgapq"],outEdges:[],level:0,depth:3,tags:[],style:{border:"dashed",opacity:15},x:8,y:8,width:5840,height:1846,labelBBox:{x:6,y:0,width:27,height:15}},{id:"@gr2",parent:"@gr1",kind:"@group",title:"Developer Control Plane",color:"primary",shape:"rectangle",children:["@gr3","@gr4"],inEdges:["1w9cpb2","1y3lcyj","1agven9"],outEdges:[],level:0,depth:2,tags:[],style:{border:"dashed",opacity:15},x:48,y:69,width:2580,height:935,labelBBox:{x:6,y:0,width:170,height:15}},{id:"@gr3",parent:"@gr2",kind:"@group",title:"Frontend",color:"primary",shape:"rectangle",children:["edp.ui.backstage","edp.api"],inEdges:["1w9cpb2","1y3lcyj"],outEdges:[],level:0,depth:1,tags:[],style:{border:"dashed",opacity:15},x:1358,y:572,width:1230,height:392,labelBBox:{x:6,y:0,width:65,height:15}},{id:"@gr4",parent:"@gr2",kind:"@group",title:"Version Control",color:"primary",shape:"rectangle",children:["applicationspecification.application_gitrepo","applicationspecification.applicationspec_gitrepo","edp.forgejogit"],inEdges:["1agven9"],outEdges:[],level:0,depth:1,tags:[],style:{border:"dashed",opacity:15},x:88,y:130,width:1230,height:834,labelBBox:{x:6,y:0,width:111,height:15}},{id:"@gr5",parent:"@gr1",kind:"@group",title:"Integration & Delivery Plane",color:"primary",shape:"rectangle",children:["forgejoRunner","edp.imageregistry","edp.argoCD"],inEdges:["1nv0w41"],outEdges:[],level:0,depth:1,tags:[],style:{border:"dashed",opacity:15},x:3308,y:572,width:600,height:1242,labelBBox:{x:6,y:0,width:189,height:15}},{id:"@gr6",parent:"@gr1",kind:"@group",title:"Monitoring Plane",color:"primary",shape:"rectangle",children:["edp.monitoring","edp.grafana"],inEdges:["3nxrq7"],outEdges:[],level:0,depth:1,tags:[],style:{border:"dashed",opacity:15},x:2668,y:130,width:600,height:834,labelBBox:{x:6,y:0,width:116,height:15}},{id:"@gr7",parent:"@gr1",kind:"@group",title:"Security Plane",color:"primary",shape:"rectangle",children:["edp.keycloak","edp.kyverno","edp.externalSecrets","edp.openbao"],inEdges:["bfgapq"],outEdges:[],level:0,depth:1,tags:[],style:{border:"dashed",opacity:15},x:3948,y:572,width:1860,height:831,labelBBox:{x:6,y:0,width:100,height:15}},{id:"edp.ui.backstage",parent:"@gr3",level:1,children:[],inEdges:["1w9cpb2"],outEdges:[],title:"Backstage",modelRef:"edp.ui.backstage",shape:"browser",color:"primary",icon:"tech:react",style:{opacity:25,size:"xl"},tags:[],kind:"component",x:1398,y:634,width:520,height:290,labelBBox:{x:179,y:123,width:192,height:32}},{id:"edp.api",parent:"@gr3",level:1,children:[],inEdges:["1y3lcyj"],outEdges:[],title:"API",modelRef:"edp.api",shape:"rectangle",color:"primary",icon:"tech:swagger",style:{opacity:25,size:"xl"},description:{txt:"API for the EDP platform"},tags:[],kind:"container",x:2028,y:634,width:520,height:290,labelBBox:{x:129,y:108,width:292,height:64}},{id:"applicationspecification.application_gitrepo",parent:"@gr4",level:1,children:[],inEdges:[],outEdges:[],title:"Git App Repo",modelRef:"applicationspecification.application_gitrepo",shape:"rectangle",color:"primary",icon:"tech:git",style:{opacity:25,size:"xl"},description:{txt:"Git Application Repository"},tags:[],technology:"Git",kind:"component",x:128,y:192,width:520,height:290,labelBBox:{x:123,y:96,width:304,height:89}},{id:"applicationspecification.applicationspec_gitrepo",parent:"@gr4",level:1,children:[],inEdges:[],outEdges:[],title:"Git AppSpec Repo",modelRef:"applicationspecification.applicationspec_gitrepo",shape:"rectangle",color:"primary",icon:"tech:git",style:{opacity:25,size:"xl"},description:{txt:"Git Application Specification Repository"},tags:[],technology:"Git",kind:"component",x:128,y:634,width:520,height:290,labelBBox:{x:114,y:83,width:322,height:114}},{id:"edp.forgejogit",parent:"@gr4",level:1,children:[],inEdges:["1agven9"],outEdges:[],title:"ForgejoGit",modelRef:"edp.forgejogit",shape:"rectangle",color:"primary",icon:"tech:git",style:{opacity:25,size:"xl"},tags:[],kind:"component",x:758,y:634,width:520,height:290,labelBBox:{x:179,y:123,width:192,height:32}},{id:"forgejoRunner",parent:"@gr5",level:1,children:[],inEdges:[],outEdges:[],title:"Forgejo Runner",modelRef:"forgejoRunner",shape:"rectangle",color:"primary",style:{opacity:25,size:"xl"},description:{txt:"A runner is a service that runs jobs triggered by Forgejo. A runner can have different technical implementations like a container or a VM."},tags:[],kind:"component",x:3348,y:1073,width:520,height:290,labelBBox:{x:69,y:71,width:382,height:139}},{id:"edp.imageregistry",parent:"@gr5",level:1,children:[],inEdges:["1nv0w41"],outEdges:[],title:"Forgejo OCI Image Registry",modelRef:"edp.imageregistry",shape:"rectangle",color:"primary",icon:"tech:go",style:{opacity:25,size:"xl"},description:{txt:"Container Image Registry"},tags:[],technology:"Golang",kind:"component",x:3348,y:634,width:520,height:290,labelBBox:{x:70,y:96,width:410,height:89}},{id:"edp.argoCD",parent:"@gr5",level:1,children:[],inEdges:[],outEdges:[],title:"ArgoCD",modelRef:"edp.argoCD",shape:"rectangle",color:"primary",style:{opacity:25,size:"xl"},description:{txt:"GitOps Service"},tags:[],kind:"container",navigateTo:"argoCD",x:3348,y:1484,width:520,height:290,labelBBox:{x:187,y:108,width:145,height:64}},{id:"edp.monitoring",parent:"@gr6",level:1,children:[],inEdges:[],outEdges:[],title:"Monitoring",modelRef:"edp.monitoring",shape:"rectangle",color:"primary",style:{opacity:25,size:"xl"},description:{txt:"Observability system to monitor deployed components"},tags:[],kind:"container",navigateTo:"monitoring",x:2708,y:192,width:520,height:290,labelBBox:{x:66,y:96,width:388,height:88}},{id:"edp.grafana",parent:"@gr6",level:1,children:[],inEdges:["3nxrq7"],outEdges:[],title:"Grafana",modelRef:"edp.grafana",shape:"rectangle",color:"primary",icon:"tech:grafana",style:{opacity:25,size:"xl"},description:{txt:"Data visualization and monitoring"},tags:[],kind:"container",x:2708,y:634,width:520,height:290,labelBBox:{x:89,y:108,width:372,height:64}},{id:"edp.keycloak",parent:"@gr7",level:1,children:[],inEdges:["bfgapq"],outEdges:[],title:"Keycloak",modelRef:"edp.keycloak",shape:"rectangle",color:"primary",style:{opacity:25,size:"xl"},description:{txt:"Single Sign On for all EDP products"},tags:[],kind:"container",navigateTo:"keycloak",x:5248,y:634,width:520,height:290,labelBBox:{x:92,y:108,width:337,height:64}},{id:"edp.kyverno",parent:"@gr7",level:1,children:[],inEdges:[],outEdges:[],title:"Kyverno",modelRef:"edp.kyverno",shape:"rectangle",color:"primary",style:{opacity:25,size:"xl"},description:{txt:"Policy-as-Code"},tags:["internal"],kind:"container",x:3988,y:634,width:520,height:290,labelBBox:{x:187,y:108,width:146,height:64}},{id:"edp.externalSecrets",parent:"@gr7",level:1,children:[],inEdges:[],outEdges:[],title:"external-secrets",modelRef:"edp.externalSecrets",shape:"rectangle",color:"primary",style:{opacity:25,size:"xl"},description:{txt:"Provider to access externally stored Kubernetes secrets"},tags:["internal"],kind:"container",navigateTo:"externalSecrets",x:4618,y:634,width:520,height:290,labelBBox:{x:92,y:96,width:337,height:88}},{id:"edp.openbao",parent:"@gr7",level:1,children:[],inEdges:[],outEdges:[],title:"OpenBao",modelRef:"edp.openbao",shape:"rectangle",color:"primary",style:{opacity:25,size:"xl"},description:{txt:"Secure secret storage"},tags:[],kind:"container",x:3988,y:1073,width:520,height:290,labelBBox:{x:155,y:108,width:209,height:64}}],edges:[{id:"1w9cpb2",source:"developer",target:"edp.ui.backstage",label:"create and maintain apps",points:[[5888,380],[5537,435],[4891,529],[4336,564],[4303,567],[2004,563],[1973,572],[1931,585],[1888,605],[1850,629]],labelBBox:{x:4585,y:541,width:161,height:18},parent:null,relations:["1woleh6"],color:"gray",line:"dashed",head:"normal"},{id:"1y3lcyj",source:"developer",target:"edp.api",label:"uses API",points:[[5888,397],[5631,453],[5226,532],[4870,564],[4839,567],[2671,564],[2641,572],[2594,585],[2548,606],[2504,629]],labelBBox:{x:5046,y:541,width:60,height:18},parent:null,relations:["1l9a3pd"],color:"gray",line:"dashed",head:"normal"},{id:"1agven9",source:"developer",target:"edp.forgejogit",label:"uses git",points:[[5888,369],[5436,421],[4473,526],[3656,564],[3624,566],[1362,563],[1331,572],[1289,585],[1247,605],[1209,628]],labelBBox:{x:3997,y:541,width:52,height:18},parent:null,relations:["1uzzn9j"],color:"gray",line:"dashed",head:"normal"},{id:"1nv0w41",source:"developer",target:"edp.imageregistry",label:"pushes and pull images",points:[[5888,438],[5750,487],[5575,540],[5414,564],[5373,571],[3961,560],[3921,572],[3879,585],[3837,605],[3799,628]],labelBBox:{x:5518,y:541,width:151,height:18},parent:null,relations:["177bm2y"],color:"gray",line:"dashed",head:"normal"},{id:"3nxrq7",source:"developer",target:"edp.grafana",label:"monitors",points:[[5888,415],[5694,469],[5420,536],[5175,564],[5123,571],[3331,557],[3281,572],[3239,585],[3197,605],[3159,628]],labelBBox:{x:5310,y:541,width:58,height:18},parent:null,relations:["1xiorre"],color:"gray",line:"dashed",head:"normal"},{id:"bfgapq",source:"developer",target:"edp.keycloak",label:"authenticates",points:[[5939,481],[5871,528],[5795,581],[5726,628]],labelBBox:{x:5848,y:541,width:87,height:18},parent:null,relations:["jpl8ll"],color:"gray",line:"dashed",head:"normal"}]},edporchestrator:{_type:"element",tags:null,links:null,viewOf:"edp",_stage:"layouted",sourcePath:"views/edp/edp-as-orchestrator.c4",description:null,title:"EDP as Orchestrator",id:"edporchestrator",autoLayout:{direction:"TB"},hash:"3b527fd6f99efa02fc730d4569c0a0ccc75b4ef3",bounds:{x:0,y:0,width:846,height:1457},nodes:[{id:"@gr1",parent:null,kind:"@group",title:"EDP",color:"primary",shape:"rectangle",children:["@gr2","@gr3","@gr4","@gr5","@gr6"],inEdges:[],outEdges:[],level:0,depth:2,tags:[],style:{border:"dashed",opacity:15},x:8,y:8,width:830,height:1441,labelBBox:{x:6,y:0,width:27,height:15}},{id:"@gr2",parent:"@gr1",kind:"@group",title:"Developer Control Plane",color:"primary",shape:"rectangle",children:[],inEdges:[],outEdges:[],level:0,depth:0,tags:[],style:{border:"dashed",opacity:15},x:48,y:69,width:320,height:180,labelBBox:{x:49,y:74,width:222,height:24}},{id:"@gr3",parent:"@gr1",kind:"@group",title:"Integration & Delivery Plane",color:"primary",shape:"rectangle",children:[],inEdges:[],outEdges:[],level:0,depth:0,tags:[],style:{border:"dashed",opacity:15},x:478,y:69,width:320,height:180,labelBBox:{x:34,y:74,width:252,height:24}},{id:"@gr4",parent:"@gr1",kind:"@group",title:"Monitoring Plane",color:"primary",shape:"rectangle",children:[],inEdges:[],outEdges:[],level:0,depth:0,tags:[],style:{border:"dashed",opacity:15},x:48,y:369,width:320,height:180,labelBBox:{x:83,y:74,width:154,height:24}},{id:"@gr5",parent:"@gr1",kind:"@group",title:"Security Plane",color:"primary",shape:"rectangle",children:[],inEdges:[],outEdges:[],level:0,depth:0,tags:[],style:{border:"dashed",opacity:15},x:478,y:369,width:320,height:180,labelBBox:{x:94,y:74,width:133,height:24}},{id:"@gr6",parent:"@gr1",kind:"@group",title:"Backend",color:"primary",shape:"rectangle",children:["edp.argoCD","edp.crossplane"],inEdges:[],outEdges:[],level:0,depth:1,tags:[],style:{border:"dashed",opacity:15},x:198,y:608,width:600,height:801,labelBBox:{x:6,y:0,width:59,height:15}},{id:"edp.argoCD",parent:"@gr6",level:1,children:[],inEdges:[],outEdges:[],title:"ArgoCD",modelRef:"edp.argoCD",shape:"rectangle",color:"primary",style:{opacity:25,size:"xl"},description:{txt:"Declarative management of platform tools"},tags:[],kind:"container",isCustomized:!0,navigateTo:"argoCD",x:238,y:669,width:520,height:290,labelBBox:{x:64,y:109,width:393,height:63}},{id:"edp.crossplane",parent:"@gr6",level:1,children:[],inEdges:[],outEdges:[],title:"Crossplane",modelRef:"edp.crossplane",shape:"rectangle",color:"primary",style:{opacity:25,size:"xl"},description:{txt:"Declarative management of ressources"},tags:["internal"],kind:"container",navigateTo:"crossplane",x:238,y:1079,width:520,height:290,labelBBox:{x:75,y:109,width:369,height:63}}],edges:[]},"application-transition":{_type:"element",tags:null,links:null,_stage:"layouted",sourcePath:"views/high-level-concept/application-transition.c4",description:null,title:"application-transistion",id:"application-transition",autoLayout:{direction:"TB"},hash:"024761d9274cbfc35558ae3606770e2c3e3afd0f",bounds:{x:0,y:0,width:1032,height:934},nodes:[{id:"@gr1",parent:null,kind:"@group",title:"developer-scope",color:"green",shape:"rectangle",children:["@gr2","@gr3","developer","otherProductLifecycleRoles"],inEdges:[],outEdges:["17brhnu"],level:0,depth:3,tags:[],style:{border:"none",opacity:20},x:8,y:8,width:1016,height:645,labelBBox:{x:6,y:0,width:114,height:15}},{id:"@gr2",parent:"@gr1",kind:"@group",title:"Devops inner-loop",color:"gray",shape:"rectangle",children:["localbox"],inEdges:["zjg544","6szgsj"],outEdges:["1uo6k6b"],level:0,depth:2,tags:[],style:{border:"none",opacity:30},x:48,y:263,width:448,height:350,labelBBox:{x:6,y:0,width:122,height:15}},{id:"@gr3",parent:"@gr1",kind:"@group",title:"Devops outer-loop",color:"gray",shape:"rectangle",children:["edp"],inEdges:["1okgiq5","1wupl5x","1uo6k6b"],outEdges:["17brhnu","6szgsj"],level:0,depth:2,tags:[],style:{border:"none",opacity:30},x:536,y:263,width:448,height:350,labelBBox:{x:6,y:0,width:126,height:15}},{id:"cloud",parent:null,level:0,children:["cloud.application"],inEdges:["17brhnu"],outEdges:[],title:"Cloud",modelRef:"cloud",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"Cloud environments"},tags:[],technology:"IaaS/PaaS",kind:"system",depth:1,x:568,y:661,width:384,height:265,labelBBox:{x:6,y:0,width:43,height:15}},{id:"cloud.application",parent:"cloud",level:1,children:[],inEdges:[],outEdges:[],title:"application",modelRef:"cloud.application",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"An application description"},tags:[],technology:"DSL",kind:"schema",x:600,y:714,width:320,height:180,labelBBox:{x:73,y:54,width:175,height:67}},{id:"developer",parent:"@gr1",level:1,children:[],inEdges:[],outEdges:["zjg544","1okgiq5"],title:"Developer",modelRef:"developer",shape:"person",color:"green",style:{opacity:15,size:"md"},description:{txt:"The regular user of the platform"},tags:[],kind:"actor",x:127,y:69,width:320,height:180,labelBBox:{x:53,y:63,width:214,height:48}},{id:"otherProductLifecycleRoles",parent:"@gr1",level:1,children:[],inEdges:[],outEdges:["1wupl5x"],title:"Reviewer, Tester, Auditors, Operators",modelRef:"otherProductLifecycleRoles",shape:"person",color:"green",style:{opacity:15,size:"md"},description:{txt:"Coworking roles in the outer loop"},tags:[],kind:"actor",x:572,y:69,width:375,height:180,labelBBox:{x:18,y:63,width:340,height:48}},{id:"localbox",parent:"@gr2",level:1,children:["localbox.application"],inEdges:["zjg544","6szgsj"],outEdges:["1uo6k6b"],title:"localbox",modelRef:"localbox",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"A local development system"},tags:[],technology:"Linux/Windows/Mac",kind:"system",depth:1,x:80,y:316,width:384,height:265,labelBBox:{x:6,y:0,width:66,height:15}},{id:"localbox.application",parent:"localbox",level:2,children:[],inEdges:[],outEdges:[],title:"application",modelRef:"localbox.application",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"An application description"},tags:[],technology:"DSL",kind:"schema",x:112,y:369,width:320,height:180,labelBBox:{x:73,y:53,width:175,height:68}},{id:"edp",parent:"@gr3",level:1,children:["edp.application"],inEdges:["1okgiq5","1wupl5x","1uo6k6b"],outEdges:["17brhnu","6szgsj"],title:"EDP",modelRef:"edp",shape:"rectangle",color:"primary",icon:"tech:kubernetes",style:{opacity:15,size:"md"},description:{txt:"EDP Edge Development Platform"},tags:[],technology:"Kubernetes",kind:"system",depth:1,navigateTo:"edp",x:568,y:316,width:384,height:265,labelBBox:{x:6,y:0,width:27,height:15}},{id:"edp.application",parent:"edp",level:2,children:[],inEdges:[],outEdges:[],title:"application",modelRef:"edp.application",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"An application description"},tags:[],technology:"DSL",kind:"schema",x:600,y:369,width:320,height:180,labelBBox:{x:73,y:53,width:175,height:68}}],edges:[{id:"zjg544",source:"developer",target:"localbox",label:"inner loop development",points:[[283,249],[282,267],[281,286],[280,306]],labelBBox:{x:130,y:282,width:150,height:18},parent:"@gr1",relations:["5hkplj"],color:"gray",line:"dashed",head:"normal"},{id:"1okgiq5",source:"developer",target:"edp",label:"outer loop development",points:[[447,237],[462,246],[477,254],[491,263],[515,277],[540,294],[564,310]],labelBBox:{x:360,y:252,width:150,height:18},parent:"@gr1",relations:["1pp73vj","yk9zv2","12036hb","jpl8ll","1ghp31l","1xiorre","1woleh6","177bm2y","1l9a3pd","1uzzn9j"],color:"gray",line:"dashed",head:"normal"},{id:"1wupl5x",source:"otherProductLifecycleRoles",target:"edp",label:"act according to responibility",points:[[760,249],[760,267],[760,286],[760,306]],labelBBox:{x:578,y:282,width:181,height:18},parent:"@gr1",relations:["lb4xas"],color:"gray",line:"dashed",head:"normal"},{id:"1uo6k6b",source:"localbox",target:"edp",label:"inner-outer-loop synchronization",points:[[464,459],[495,459],[526,459],[558,459]],labelBBox:{x:414,y:459,width:204,height:18},parent:"@gr1",relations:["1mp9fps"],color:"gray",line:"dashed",head:"normal"},{id:"17brhnu",source:"edp",target:"cloud",label:"deploys and observes",points:[[760,581],[760,604],[760,628],[760,651]],labelBBox:{x:619,y:598,width:140,height:18},parent:null,relations:["gerdx4"],color:"gray",line:"dashed",head:"normal"},{id:"6szgsj",source:"edp",target:"localbox",label:null,points:[[568,459],[537,459],[506,459],[474,459]],labelBBox:null,parent:"@gr1",relations:["wvo8i"],color:"gray",line:"dashed",head:"normal"}]},landscape:{_type:"element",tags:null,links:null,_stage:"layouted",sourcePath:"views/high-level-concept/platform-context/developer-landscape.c4",description:null,title:"Developer Landscape View",id:"landscape",autoLayout:{direction:"LR",nodeSep:100,rankSep:100},hash:"2cefeeed62913b128bbc82ba88883c8c64231dae",bounds:{x:0,y:0,width:3445,height:1756},nodes:[{id:"applicationspecification",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"application-specification",modelRef:"applicationspecification",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"The application specification describes the application and its components. It is used to generate the application and its components."},tags:[],kind:"component",x:16,y:280,width:338,height:180,labelBBox:{x:18,y:45,width:303,height:84}},{id:"forgejoRunnerWorker",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"Forgejo Runner Worker",modelRef:"forgejoRunnerWorker",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"A worker is a service that runs a job invoked by a runner. A worker typically is a container."},tags:[],kind:"component",x:734,y:280,width:333,height:180,labelBBox:{x:18,y:45,width:297,height:84}},{id:"promtail",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"Promtail",modelRef:"promtail",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"Log shipper agent for Loki"},tags:[],kind:"component",x:1288,y:280,width:320,height:180,labelBBox:{x:72,y:63,width:177,height:48}},{id:"edgeConnect",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"Edge Connect",modelRef:"edgeConnect",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"Provides an API to run applications on the edge"},tags:[],kind:"component",x:1939,y:280,width:320,height:180,labelBBox:{x:18,y:54,width:283,height:66}},{id:"elasticsearch",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"Elasticsearch",modelRef:"elasticsearch",shape:"rectangle",color:"primary",icon:"tech:elasticsearch",style:{opacity:20,size:"md"},description:{txt:`Elasticsearch is a distributed, RESTful search and analytics engine capable of +and security scanning`},tags:[],technology:"Golang",kind:"container",navigateTo:"forgejo",x:860,y:384,width:340,height:180,labelBBox:{x:46,y:17,width:278,height:139}},{id:"edp.keycloak",parent:null,level:0,children:[],inEdges:["dh7ut5"],outEdges:[],title:"Keycloak",modelRef:"edp.keycloak",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Single Sign On for all EDP products"},tags:[],kind:"container",navigateTo:"keycloak",x:1310,y:384,width:320,height:180,labelBBox:{x:39,y:63,width:242,height:48}},{id:"edp.mailhog",parent:null,level:0,children:[],inEdges:["1bv0wod"],outEdges:[],title:"Mailhog",modelRef:"edp.mailhog",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Web and API based SMTP testing"},tags:[],kind:"container",navigateTo:"mailhog",x:1740,y:384,width:320,height:180,labelBBox:{x:44,y:63,width:232,height:48}},{id:"edp.minio",parent:null,level:0,children:[],inEdges:["68hu20"],outEdges:[],title:"Minio",modelRef:"edp.minio",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"S3 compatible blob storage"},tags:[],kind:"container",navigateTo:"minio",x:2170,y:384,width:320,height:180,labelBBox:{x:67,y:63,width:186,height:48}},{id:"edp.monitoring",parent:null,level:0,children:[],inEdges:["nx2xew"],outEdges:[],title:"Monitoring",modelRef:"edp.monitoring",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Observability system to monitor deployed components"},tags:[],kind:"container",navigateTo:"monitoring",x:2600,y:384,width:320,height:180,labelBBox:{x:21,y:54,width:278,height:66}},{id:"edp.openbao",parent:null,level:0,children:[],inEdges:["momp7g"],outEdges:[],title:"OpenBao",modelRef:"edp.openbao",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Secure secret storage"},tags:[],kind:"container",x:3030,y:384,width:320,height:180,labelBBox:{x:85,y:63,width:151,height:48}},{id:"edp.testApp",parent:null,level:0,children:[],inEdges:["8cmkj7"],outEdges:[],title:"Fibonacci",modelRef:"edp.testApp",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Testapp to validate deployments"},tags:[],kind:"container",navigateTo:"testapp",x:3460,y:384,width:320,height:180,labelBBox:{x:50,y:63,width:220,height:48}}],edges:[{id:"1poylyw",source:"edp.ingressNginx.ingressNginx",target:"edp.argoCD",label:"https",points:[[1740,164],[1459,187],[862,248],[375,384],[360,388],[345,393],[329,398]],labelBBox:{x:704,y:301,width:34,height:18},parent:null,relations:["1yssos5"],color:"gray",line:"dashed",head:"normal"},{id:"llqgvs",source:"edp.ingressNginx.ingressNginx",target:"edp.ui",label:"https",points:[[1740,177],[1525,211],[1131,283],[805,384],[790,389],[775,394],[759,400]],labelBBox:{x:1102,y:301,width:34,height:18},parent:null,relations:["v8c8aq"],color:"gray",line:"dashed",head:"normal"},{id:"75xltk",source:"edp.ingressNginx.ingressNginx",target:"edp.forgejo",label:"https",points:[[1740,208],[1609,254],[1420,322],[1255,384],[1240,390],[1225,395],[1210,401]],labelBBox:{x:1468,y:301,width:34,height:18},parent:null,relations:["123efwn"],color:"gray",line:"dashed",head:"normal"},{id:"dh7ut5",source:"edp.ingressNginx.ingressNginx",target:"edp.keycloak",label:"https",points:[[1781,241],[1724,284],[1655,335],[1597,378]],labelBBox:{x:1699,y:301,width:34,height:18},parent:null,relations:["h3rut2"],color:"gray",line:"dashed",head:"normal"},{id:"1bv0wod",source:"edp.ingressNginx.ingressNginx",target:"edp.mailhog",label:"https",points:[[1900,241],[1900,282],[1900,331],[1900,374]],labelBBox:{x:1901,y:301,width:34,height:18},parent:null,relations:["ofdedh"],color:"gray",line:"dashed",head:"normal"},{id:"68hu20",source:"edp.ingressNginx.ingressNginx",target:"edp.minio",label:"https",points:[[2019,241],[2076,284],[2145,335],[2203,378]],labelBBox:{x:2129,y:301,width:34,height:18},parent:null,relations:["fe65w2"],color:"gray",line:"dashed",head:"normal"},{id:"nx2xew",source:"edp.ingressNginx.ingressNginx",target:"edp.monitoring",label:"https",points:[[2060,207],[2191,253],[2381,321],[2545,384],[2560,390],[2575,396],[2591,402]],labelBBox:{x:2370,y:301,width:34,height:18},parent:null,relations:["1jvab2g","fs60l7"],color:"gray",line:"dashed",head:"normal"},{id:"momp7g",source:"edp.ingressNginx.ingressNginx",target:"edp.openbao",label:"https",points:[[2060,177],[2272,213],[2657,285],[2975,384],[2990,389],[3005,394],[3021,400]],labelBBox:{x:2744,y:301,width:34,height:18},parent:null,relations:["1p30hav"],color:"gray",line:"dashed",head:"normal"},{id:"8cmkj7",source:"edp.ingressNginx.ingressNginx",target:"edp.testApp",label:"https",points:[[2060,164],[2338,188],[2926,250],[3405,384],[3420,388],[3435,393],[3451,399]],labelBBox:{x:3165,y:301,width:34,height:18},parent:null,relations:["1i5f8um"],color:"gray",line:"dashed",head:"normal"}]},testapp:{_type:"element",tags:null,links:null,viewOf:"edp.testApp",_stage:"layouted",sourcePath:"views/edp/edp.c4",description:null,title:"Fibonacci",id:"testapp",autoLayout:{direction:"TB"},hash:"d8f40f5cfab10e6e91c79feeef6be3240922c723",bounds:{x:0,y:0,width:400,height:544},nodes:[{id:"edp.ingressNginx",parent:null,level:0,children:[],inEdges:[],outEdges:["1tefjx2"],title:"Ingress",modelRef:"edp.ingressNginx",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Ingress Controller for incoming http(s) traffic"},tags:["internal"],kind:"container",navigateTo:"ingressNginx",x:40,y:0,width:320,height:180,labelBBox:{x:33,y:54,width:255,height:66}},{id:"edp.testApp",parent:null,level:0,children:["edp.testApp.fibonacci"],inEdges:["1tefjx2"],outEdges:[],title:"Fibonacci",modelRef:"edp.testApp",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Testapp to validate deployments"},tags:[],kind:"container",depth:1,x:8,y:271,width:384,height:265,labelBBox:{x:6,y:0,width:65,height:15}},{id:"edp.testApp.fibonacci",parent:"edp.testApp",level:1,children:[],inEdges:["1tefjx2"],outEdges:[],title:"Fibonacci",modelRef:"edp.testApp.fibonacci",shape:"rectangle",color:"primary",icon:"tech:go",style:{opacity:15,size:"md"},tags:[],technology:"Golang",kind:"component",x:40,y:324,width:320,height:180,labelBBox:{x:101,y:64,width:148,height:46}}],edges:[{id:"1tefjx2",source:"edp.ingressNginx",target:"edp.testApp.fibonacci",label:"https",points:[[200,180],[200,221],[200,271],[200,314]],labelBBox:{x:201,y:240,width:34,height:18},parent:null,relations:["1i5f8um"],color:"gray",line:"dashed",head:"normal"}]},mailhog:{_type:"element",tags:null,links:null,viewOf:"edp.mailhog",_stage:"layouted",sourcePath:"views/edp/edp.c4",description:null,title:"Mailhog",id:"mailhog",autoLayout:{direction:"TB"},hash:"b9e703c2ceb2b2a400194d90ac7caa94525ac068",bounds:{x:0,y:0,width:400,height:544},nodes:[{id:"edp.ingressNginx",parent:null,level:0,children:[],inEdges:[],outEdges:["axipfp"],title:"Ingress",modelRef:"edp.ingressNginx",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Ingress Controller for incoming http(s) traffic"},tags:["internal"],kind:"container",navigateTo:"ingressNginx",x:40,y:0,width:320,height:180,labelBBox:{x:33,y:54,width:255,height:66}},{id:"edp.mailhog",parent:null,level:0,children:["edp.mailhog.mailhog"],inEdges:["axipfp"],outEdges:[],title:"Mailhog",modelRef:"edp.mailhog",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Web and API based SMTP testing"},tags:[],kind:"container",depth:1,x:8,y:271,width:384,height:265,labelBBox:{x:6,y:0,width:56,height:15}},{id:"edp.mailhog.mailhog",parent:"edp.mailhog",level:1,children:[],inEdges:["axipfp"],outEdges:[],title:"Mailhog",modelRef:"edp.mailhog.mailhog",shape:"rectangle",color:"primary",icon:"tech:go",style:{opacity:15,size:"md"},tags:[],technology:"Golang",kind:"component",x:40,y:324,width:320,height:180,labelBBox:{x:109,y:64,width:132,height:46}}],edges:[{id:"axipfp",source:"edp.ingressNginx",target:"edp.mailhog.mailhog",label:"https",points:[[200,180],[200,221],[200,271],[200,314]],labelBBox:{x:201,y:240,width:34,height:18},parent:null,relations:["ofdedh"],color:"gray",line:"dashed",head:"normal"}]},spark:{_type:"element",tags:null,links:null,viewOf:"edp.spark",_stage:"layouted",sourcePath:"views/edp/edp.c4",description:null,title:"Spark",id:"spark",autoLayout:{direction:"TB"},hash:"1ec41779bad408405a96c4063aa06b24ec2aace8",bounds:{x:0,y:0,width:400,height:281},nodes:[{id:"edp.spark",parent:null,level:0,children:["edp.spark.sparkoperator"],inEdges:[],outEdges:[],title:"Spark",modelRef:"edp.spark",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Allows running Spark applications on K8s"},tags:["internal"],kind:"container",depth:1,x:8,y:8,width:384,height:265,labelBBox:{x:6,y:0,width:43,height:15}},{id:"edp.spark.sparkoperator",parent:"edp.spark",level:1,children:[],inEdges:[],outEdges:[],title:"Spark Operator",modelRef:"edp.spark.sparkoperator",shape:"rectangle",color:"primary",icon:"tech:spark",style:{opacity:15,size:"md"},tags:[],technology:"Spark",kind:"component",x:40,y:61,width:320,height:180,labelBBox:{x:76,y:64,width:198,height:46}}],edges:[]},argoCD:{_type:"element",tags:null,links:null,viewOf:"edp.argoCD",_stage:"layouted",sourcePath:"views/edp/edp.c4",description:null,title:"ArgoCD",id:"argoCD",autoLayout:{direction:"TB"},hash:"53d798ca0a34dbe3ebf9b43318a151943ecaec33",bounds:{x:0,y:0,width:2058,height:883},nodes:[{id:"edp.ingressNginx",parent:null,level:0,children:[],inEdges:[],outEdges:["ce0h9c"],title:"Ingress",modelRef:"edp.ingressNginx",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Ingress Controller for incoming http(s) traffic"},tags:["internal"],kind:"container",navigateTo:"ingressNginx",x:48,y:0,width:320,height:180,labelBBox:{x:33,y:54,width:255,height:66}},{id:"edp.argoCD",parent:null,level:0,children:["edp.argoCD.argocdServer","edp.argoCD.argocdAppController","edp.argoCD.argocdAppSetController","edp.argoCD.argocdRepoServer","edp.argoCD.argocdRedis"],inEdges:["ce0h9c"],outEdges:["1e5s57z"],title:"ArgoCD",modelRef:"edp.argoCD",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"GitOps Service"},tags:[],kind:"container",depth:1,x:8,y:271,width:1690,height:604,labelBBox:{x:6,y:0,width:53,height:15}},{id:"edp.argoCD.argocdServer",parent:"edp.argoCD",level:1,children:[],inEdges:["ce0h9c"],outEdges:["124uc06"],title:"ArgoCD Server",modelRef:"edp.argoCD.argocdServer",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},tags:[],kind:"component",x:48,y:332,width:320,height:180,labelBBox:{x:90,y:74,width:140,height:24}},{id:"edp.argoCD.argocdAppController",parent:"edp.argoCD",level:1,children:[],inEdges:[],outEdges:["doh0se"],title:"ApplicationController",modelRef:"edp.argoCD.argocdAppController",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},tags:[],kind:"component",x:478,y:332,width:320,height:180,labelBBox:{x:66,y:74,width:189,height:24}},{id:"edp.argoCD.argocdAppSetController",parent:"edp.argoCD",level:1,children:[],inEdges:[],outEdges:["ekc7mk"],title:"ApplicationSeetController",modelRef:"edp.argoCD.argocdAppSetController",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},tags:[],kind:"component",x:908,y:332,width:320,height:180,labelBBox:{x:45,y:74,width:230,height:24}},{id:"edp.argoCD.argocdRepoServer",parent:"edp.argoCD",level:1,children:[],inEdges:[],outEdges:["173l3xq","1e5s57z"],title:"Repo Server",modelRef:"edp.argoCD.argocdRepoServer",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},tags:[],kind:"component",x:1338,y:332,width:320,height:180,labelBBox:{x:102,y:74,width:116,height:24}},{id:"edp.argoCD.argocdRedis",parent:"edp.argoCD",level:1,children:[],inEdges:["124uc06","doh0se","ekc7mk","173l3xq"],outEdges:[],title:"Redis",modelRef:"edp.argoCD.argocdRedis",shape:"rectangle",color:"primary",icon:"tech:redis",style:{opacity:15,size:"md"},tags:[],technology:"Redis",kind:"component",x:693,y:655,width:320,height:180,labelBBox:{x:118,y:64,width:114,height:46}},{id:"edp.forgejogit",parent:null,level:0,children:[],inEdges:["1e5s57z"],outEdges:[],title:"ForgejoGit",modelRef:"edp.forgejogit",shape:"rectangle",color:"primary",icon:"tech:git",style:{opacity:15,size:"md"},tags:[],kind:"component",x:1738,y:655,width:320,height:180,labelBBox:{x:97,y:74,width:156,height:24}}],edges:[{id:"ce0h9c",source:"edp.ingressNginx",target:"edp.argoCD.argocdServer",label:"https",points:[[208,180],[208,224],[208,277],[208,322]],labelBBox:{x:209,y:240,width:34,height:18},parent:null,relations:["1yssos5"],color:"gray",line:"dashed",head:"normal"},{id:"124uc06",source:"edp.argoCD.argocdServer",target:"edp.argoCD.argocdRedis",label:"read/write",points:[[368,503],[464,550],[586,611],[684,660]],labelBBox:{x:551,y:572,width:65,height:18},parent:"edp.argoCD",relations:["yfhhi5"],color:"gray",line:"dashed",head:"normal"},{id:"doh0se",source:"edp.argoCD.argocdAppController",target:"edp.argoCD.argocdRedis",label:"read/write",points:[[688,512],[704,539],[722,568],[740,595],[751,612],[764,630],[776,647]],labelBBox:{x:741,y:572,width:65,height:18},parent:"edp.argoCD",relations:["10vkxaf"],color:"gray",line:"dashed",head:"normal"},{id:"ekc7mk",source:"edp.argoCD.argocdAppSetController",target:"edp.argoCD.argocdRedis",label:"read/write",points:[[1008,512],[980,554],[947,603],[918,646]],labelBBox:{x:968,y:572,width:65,height:18},parent:"edp.argoCD",relations:["i8z0mi"],color:"gray",line:"dashed",head:"normal"},{id:"173l3xq",source:"edp.argoCD.argocdRepoServer",target:"edp.argoCD.argocdRedis",label:"read/write",points:[[1338,503],[1242,550],[1120,611],[1022,660]],labelBBox:{x:1196,y:572,width:65,height:18},parent:"edp.argoCD",relations:["iullhy"],color:"gray",line:"dashed",head:"normal"},{id:"1e5s57z",source:"edp.argoCD.argocdRepoServer",target:"edp.forgejogit",label:"Syncs git repo",points:[[1609,512],[1662,554],[1725,605],[1779,649]],labelBBox:{x:1711,y:572,width:93,height:18},parent:null,relations:["6mupa0"],color:"gray",line:"dashed",head:"normal"}]},idp:{_type:"element",tags:null,links:null,viewOf:"edp",_stage:"layouted",sourcePath:"views/edp/edp-as-idp.c4",description:null,title:"EDP as IDP",id:"idp",autoLayout:{direction:"TB"},hash:"d1e4c998ee263bce5b2572834b6a9a7b6d6391f5",bounds:{x:0,y:0,width:6408,height:1862},nodes:[{id:"developer",parent:null,level:0,children:[],inEdges:[],outEdges:["1w9cpb2","1y3lcyj","1agven9","1nv0w41","3nxrq7","bfgapq"],title:"Developer",modelRef:"developer",shape:"person",color:"green",style:{opacity:25,size:"xl"},description:{txt:"The regular user of the platform"},tags:[],kind:"actor",x:5888,y:192,width:520,height:290,labelBBox:{x:111,y:108,width:298,height:64}},{id:"@gr1",parent:null,kind:"@group",title:"EDP",color:"primary",shape:"rectangle",children:["@gr2","@gr5","@gr6","@gr7"],inEdges:["1w9cpb2","1y3lcyj","1agven9","1nv0w41","3nxrq7","bfgapq"],outEdges:[],level:0,depth:3,tags:[],style:{border:"dashed",opacity:15},x:8,y:8,width:5840,height:1846,labelBBox:{x:6,y:0,width:27,height:15}},{id:"@gr2",parent:"@gr1",kind:"@group",title:"Developer Control Plane",color:"primary",shape:"rectangle",children:["@gr3","@gr4"],inEdges:["1w9cpb2","1y3lcyj","1agven9"],outEdges:[],level:0,depth:2,tags:[],style:{border:"dashed",opacity:15},x:48,y:69,width:2580,height:935,labelBBox:{x:6,y:0,width:170,height:15}},{id:"@gr3",parent:"@gr2",kind:"@group",title:"Frontend",color:"primary",shape:"rectangle",children:["edp.ui.backstage","edp.api"],inEdges:["1w9cpb2","1y3lcyj"],outEdges:[],level:0,depth:1,tags:[],style:{border:"dashed",opacity:15},x:1358,y:572,width:1230,height:392,labelBBox:{x:6,y:0,width:65,height:15}},{id:"@gr4",parent:"@gr2",kind:"@group",title:"Version Control",color:"primary",shape:"rectangle",children:["applicationspecification.application_gitrepo","applicationspecification.applicationspec_gitrepo","edp.forgejogit"],inEdges:["1agven9"],outEdges:[],level:0,depth:1,tags:[],style:{border:"dashed",opacity:15},x:88,y:130,width:1230,height:834,labelBBox:{x:6,y:0,width:111,height:15}},{id:"@gr5",parent:"@gr1",kind:"@group",title:"Integration & Delivery Plane",color:"primary",shape:"rectangle",children:["forgejoRunner","edp.imageregistry","edp.argoCD"],inEdges:["1nv0w41"],outEdges:[],level:0,depth:1,tags:[],style:{border:"dashed",opacity:15},x:3308,y:572,width:600,height:1242,labelBBox:{x:6,y:0,width:189,height:15}},{id:"@gr6",parent:"@gr1",kind:"@group",title:"Monitoring Plane",color:"primary",shape:"rectangle",children:["edp.monitoring","edp.grafana"],inEdges:["3nxrq7"],outEdges:[],level:0,depth:1,tags:[],style:{border:"dashed",opacity:15},x:2668,y:130,width:600,height:834,labelBBox:{x:6,y:0,width:116,height:15}},{id:"@gr7",parent:"@gr1",kind:"@group",title:"Security Plane",color:"primary",shape:"rectangle",children:["edp.keycloak","edp.kyverno","edp.externalSecrets","edp.openbao"],inEdges:["bfgapq"],outEdges:[],level:0,depth:1,tags:[],style:{border:"dashed",opacity:15},x:3948,y:572,width:1860,height:831,labelBBox:{x:6,y:0,width:100,height:15}},{id:"edp.ui.backstage",parent:"@gr3",level:1,children:[],inEdges:["1w9cpb2"],outEdges:[],title:"Backstage",modelRef:"edp.ui.backstage",shape:"browser",color:"primary",icon:"tech:react",style:{opacity:25,size:"xl"},tags:[],kind:"component",x:1398,y:634,width:520,height:290,labelBBox:{x:179,y:123,width:192,height:32}},{id:"edp.api",parent:"@gr3",level:1,children:[],inEdges:["1y3lcyj"],outEdges:[],title:"API",modelRef:"edp.api",shape:"rectangle",color:"primary",icon:"tech:swagger",style:{opacity:25,size:"xl"},description:{txt:"API for the EDP platform"},tags:[],kind:"container",x:2028,y:634,width:520,height:290,labelBBox:{x:129,y:108,width:292,height:64}},{id:"applicationspecification.application_gitrepo",parent:"@gr4",level:1,children:[],inEdges:[],outEdges:[],title:"Git App Repo",modelRef:"applicationspecification.application_gitrepo",shape:"rectangle",color:"primary",icon:"tech:git",style:{opacity:25,size:"xl"},description:{txt:"Git Application Repository"},tags:[],technology:"Git",kind:"component",x:128,y:192,width:520,height:290,labelBBox:{x:123,y:96,width:304,height:89}},{id:"applicationspecification.applicationspec_gitrepo",parent:"@gr4",level:1,children:[],inEdges:[],outEdges:[],title:"Git AppSpec Repo",modelRef:"applicationspecification.applicationspec_gitrepo",shape:"rectangle",color:"primary",icon:"tech:git",style:{opacity:25,size:"xl"},description:{txt:"Git Application Specification Repository"},tags:[],technology:"Git",kind:"component",x:128,y:634,width:520,height:290,labelBBox:{x:114,y:83,width:322,height:114}},{id:"edp.forgejogit",parent:"@gr4",level:1,children:[],inEdges:["1agven9"],outEdges:[],title:"ForgejoGit",modelRef:"edp.forgejogit",shape:"rectangle",color:"primary",icon:"tech:git",style:{opacity:25,size:"xl"},tags:[],kind:"component",x:758,y:634,width:520,height:290,labelBBox:{x:179,y:123,width:192,height:32}},{id:"forgejoRunner",parent:"@gr5",level:1,children:[],inEdges:[],outEdges:[],title:"Forgejo Runner",modelRef:"forgejoRunner",shape:"rectangle",color:"primary",style:{opacity:25,size:"xl"},description:{txt:"A runner is a service that runs jobs triggered by Forgejo. A runner can have different technical implementations like a container or a VM."},tags:[],kind:"component",x:3348,y:1073,width:520,height:290,labelBBox:{x:69,y:71,width:382,height:139}},{id:"edp.imageregistry",parent:"@gr5",level:1,children:[],inEdges:["1nv0w41"],outEdges:[],title:"Forgejo OCI Image Registry",modelRef:"edp.imageregistry",shape:"rectangle",color:"primary",icon:"tech:go",style:{opacity:25,size:"xl"},description:{txt:"Container Image Registry"},tags:[],technology:"Golang",kind:"component",x:3348,y:634,width:520,height:290,labelBBox:{x:70,y:96,width:410,height:89}},{id:"edp.argoCD",parent:"@gr5",level:1,children:[],inEdges:[],outEdges:[],title:"ArgoCD",modelRef:"edp.argoCD",shape:"rectangle",color:"primary",style:{opacity:25,size:"xl"},description:{txt:"GitOps Service"},tags:[],kind:"container",navigateTo:"argoCD",x:3348,y:1484,width:520,height:290,labelBBox:{x:187,y:108,width:145,height:64}},{id:"edp.monitoring",parent:"@gr6",level:1,children:[],inEdges:[],outEdges:[],title:"Monitoring",modelRef:"edp.monitoring",shape:"rectangle",color:"primary",style:{opacity:25,size:"xl"},description:{txt:"Observability system to monitor deployed components"},tags:[],kind:"container",navigateTo:"monitoring",x:2708,y:192,width:520,height:290,labelBBox:{x:66,y:96,width:388,height:88}},{id:"edp.grafana",parent:"@gr6",level:1,children:[],inEdges:["3nxrq7"],outEdges:[],title:"Grafana",modelRef:"edp.grafana",shape:"rectangle",color:"primary",icon:"tech:grafana",style:{opacity:25,size:"xl"},description:{txt:"Data visualization and monitoring"},tags:[],kind:"container",x:2708,y:634,width:520,height:290,labelBBox:{x:89,y:108,width:372,height:64}},{id:"edp.keycloak",parent:"@gr7",level:1,children:[],inEdges:["bfgapq"],outEdges:[],title:"Keycloak",modelRef:"edp.keycloak",shape:"rectangle",color:"primary",style:{opacity:25,size:"xl"},description:{txt:"Single Sign On for all EDP products"},tags:[],kind:"container",navigateTo:"keycloak",x:5248,y:634,width:520,height:290,labelBBox:{x:92,y:108,width:337,height:64}},{id:"edp.kyverno",parent:"@gr7",level:1,children:[],inEdges:[],outEdges:[],title:"Kyverno",modelRef:"edp.kyverno",shape:"rectangle",color:"primary",style:{opacity:25,size:"xl"},description:{txt:"Policy-as-Code"},tags:["internal"],kind:"container",x:3988,y:634,width:520,height:290,labelBBox:{x:187,y:108,width:146,height:64}},{id:"edp.externalSecrets",parent:"@gr7",level:1,children:[],inEdges:[],outEdges:[],title:"external-secrets",modelRef:"edp.externalSecrets",shape:"rectangle",color:"primary",style:{opacity:25,size:"xl"},description:{txt:"Provider to access externally stored Kubernetes secrets"},tags:["internal"],kind:"container",navigateTo:"externalSecrets",x:4618,y:634,width:520,height:290,labelBBox:{x:92,y:96,width:337,height:88}},{id:"edp.openbao",parent:"@gr7",level:1,children:[],inEdges:[],outEdges:[],title:"OpenBao",modelRef:"edp.openbao",shape:"rectangle",color:"primary",style:{opacity:25,size:"xl"},description:{txt:"Secure secret storage"},tags:[],kind:"container",x:3988,y:1073,width:520,height:290,labelBBox:{x:155,y:108,width:209,height:64}}],edges:[{id:"1w9cpb2",source:"developer",target:"edp.ui.backstage",label:"create and maintain apps",points:[[5888,380],[5537,435],[4891,529],[4336,564],[4303,567],[2004,563],[1973,572],[1931,585],[1888,605],[1850,629]],labelBBox:{x:4585,y:541,width:161,height:18},parent:null,relations:["1woleh6"],color:"gray",line:"dashed",head:"normal"},{id:"1y3lcyj",source:"developer",target:"edp.api",label:"uses API",points:[[5888,397],[5631,453],[5226,532],[4870,564],[4839,567],[2671,564],[2641,572],[2594,585],[2548,606],[2504,629]],labelBBox:{x:5046,y:541,width:60,height:18},parent:null,relations:["1l9a3pd"],color:"gray",line:"dashed",head:"normal"},{id:"1agven9",source:"developer",target:"edp.forgejogit",label:"uses git",points:[[5888,369],[5436,421],[4473,526],[3656,564],[3624,566],[1362,563],[1331,572],[1289,585],[1247,605],[1209,628]],labelBBox:{x:3997,y:541,width:52,height:18},parent:null,relations:["1uzzn9j"],color:"gray",line:"dashed",head:"normal"},{id:"1nv0w41",source:"developer",target:"edp.imageregistry",label:"pushes and pull images",points:[[5888,438],[5750,487],[5575,540],[5414,564],[5373,571],[3961,560],[3921,572],[3879,585],[3837,605],[3799,628]],labelBBox:{x:5518,y:541,width:151,height:18},parent:null,relations:["177bm2y"],color:"gray",line:"dashed",head:"normal"},{id:"3nxrq7",source:"developer",target:"edp.grafana",label:"monitors",points:[[5888,415],[5694,469],[5420,536],[5175,564],[5123,571],[3331,557],[3281,572],[3239,585],[3197,605],[3159,628]],labelBBox:{x:5310,y:541,width:58,height:18},parent:null,relations:["1xiorre"],color:"gray",line:"dashed",head:"normal"},{id:"bfgapq",source:"developer",target:"edp.keycloak",label:"authenticates",points:[[5939,481],[5871,528],[5795,581],[5726,628]],labelBBox:{x:5848,y:541,width:87,height:18},parent:null,relations:["jpl8ll"],color:"gray",line:"dashed",head:"normal"}]},edporchestrator:{_type:"element",tags:null,links:null,viewOf:"edp",_stage:"layouted",sourcePath:"views/edp/edp-as-orchestrator.c4",description:null,title:"EDP as Orchestrator",id:"edporchestrator",autoLayout:{direction:"TB"},hash:"3b527fd6f99efa02fc730d4569c0a0ccc75b4ef3",bounds:{x:0,y:0,width:846,height:1457},nodes:[{id:"@gr1",parent:null,kind:"@group",title:"EDP",color:"primary",shape:"rectangle",children:["@gr2","@gr3","@gr4","@gr5","@gr6"],inEdges:[],outEdges:[],level:0,depth:2,tags:[],style:{border:"dashed",opacity:15},x:8,y:8,width:830,height:1441,labelBBox:{x:6,y:0,width:27,height:15}},{id:"@gr2",parent:"@gr1",kind:"@group",title:"Developer Control Plane",color:"primary",shape:"rectangle",children:[],inEdges:[],outEdges:[],level:0,depth:0,tags:[],style:{border:"dashed",opacity:15},x:48,y:69,width:320,height:180,labelBBox:{x:49,y:74,width:222,height:24}},{id:"@gr3",parent:"@gr1",kind:"@group",title:"Integration & Delivery Plane",color:"primary",shape:"rectangle",children:[],inEdges:[],outEdges:[],level:0,depth:0,tags:[],style:{border:"dashed",opacity:15},x:478,y:69,width:320,height:180,labelBBox:{x:34,y:74,width:252,height:24}},{id:"@gr4",parent:"@gr1",kind:"@group",title:"Monitoring Plane",color:"primary",shape:"rectangle",children:[],inEdges:[],outEdges:[],level:0,depth:0,tags:[],style:{border:"dashed",opacity:15},x:48,y:369,width:320,height:180,labelBBox:{x:83,y:74,width:154,height:24}},{id:"@gr5",parent:"@gr1",kind:"@group",title:"Security Plane",color:"primary",shape:"rectangle",children:[],inEdges:[],outEdges:[],level:0,depth:0,tags:[],style:{border:"dashed",opacity:15},x:478,y:369,width:320,height:180,labelBBox:{x:94,y:74,width:133,height:24}},{id:"@gr6",parent:"@gr1",kind:"@group",title:"Backend",color:"primary",shape:"rectangle",children:["edp.argoCD","edp.crossplane"],inEdges:[],outEdges:[],level:0,depth:1,tags:[],style:{border:"dashed",opacity:15},x:198,y:608,width:600,height:801,labelBBox:{x:6,y:0,width:59,height:15}},{id:"edp.argoCD",parent:"@gr6",level:1,children:[],inEdges:[],outEdges:[],title:"ArgoCD",modelRef:"edp.argoCD",shape:"rectangle",color:"primary",style:{opacity:25,size:"xl"},description:{txt:"Declarative management of platform tools"},tags:[],kind:"container",isCustomized:!0,navigateTo:"argoCD",x:238,y:669,width:520,height:290,labelBBox:{x:64,y:109,width:393,height:63}},{id:"edp.crossplane",parent:"@gr6",level:1,children:[],inEdges:[],outEdges:[],title:"Crossplane",modelRef:"edp.crossplane",shape:"rectangle",color:"primary",style:{opacity:25,size:"xl"},description:{txt:"Declarative management of ressources"},tags:["internal"],kind:"container",navigateTo:"crossplane",x:238,y:1079,width:520,height:290,labelBBox:{x:75,y:109,width:369,height:63}}],edges:[]},"application-transition":{_type:"element",tags:null,links:null,_stage:"layouted",sourcePath:"views/high-level-concept/application-transition.c4",description:null,title:"application-transistion",id:"application-transition",autoLayout:{direction:"LR",nodeSep:140,rankSep:180},hash:"273e521fc8ecb88776ebeada66d26bce21c3c2e5",bounds:{x:0,y:0,width:1297,height:857},nodes:[{id:"@gr1",parent:null,kind:"@group",title:"developer-scope",color:"green",shape:"rectangle",children:["@gr2","@gr3","developer","otherProductLifecycleRoles"],inEdges:[],outEdges:["17brhnu"],level:0,depth:3,tags:[],style:{border:"none",opacity:20},x:8,y:8,width:853,height:841,labelBBox:{x:6,y:0,width:114,height:15}},{id:"@gr2",parent:"@gr1",kind:"@group",title:"Devops inner-loop",color:"gray",shape:"rectangle",children:["localbox"],inEdges:["zjg544","6szgsj"],outEdges:["1uo6k6b"],level:0,depth:2,tags:[],style:{border:"none",opacity:30},x:373,y:459,width:448,height:350,labelBBox:{x:6,y:0,width:122,height:15}},{id:"@gr3",parent:"@gr1",kind:"@group",title:"Devops outer-loop",color:"gray",shape:"rectangle",children:["edp"],inEdges:["1okgiq5","1wupl5x","1uo6k6b"],outEdges:["17brhnu","6szgsj"],level:0,depth:2,tags:[],style:{border:"none",opacity:30},x:373,y:69,width:448,height:350,labelBBox:{x:6,y:0,width:126,height:15}},{id:"cloud",parent:null,level:0,children:["cloud.application"],inEdges:["17brhnu"],outEdges:[],title:"EdgeConnect Cloud",modelRef:"cloud",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"Cloud environments"},tags:[],technology:"IaaS/PaaS",kind:"system",depth:1,isCustomized:!0,x:905,y:122,width:384,height:265,labelBBox:{x:6,y:0,width:132,height:15}},{id:"cloud.application",parent:"cloud",level:1,children:[],inEdges:[],outEdges:[],title:"application",modelRef:"cloud.application",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"An application description"},tags:[],technology:"DSL",kind:"schema",x:937,y:175,width:320,height:180,labelBBox:{x:73,y:53,width:175,height:67}},{id:"developer",parent:"@gr1",level:1,children:[],inEdges:[],outEdges:["zjg544","1okgiq5"],title:"Developer",modelRef:"developer",shape:"person",color:"green",style:{opacity:15,size:"xs",textSize:"sm"},description:{txt:"The regular user of the platform"},tags:[],kind:"actor",x:63,y:530,width:180,height:100,labelBBox:{x:51,y:37,width:77,height:20}},{id:"otherProductLifecycleRoles",parent:"@gr1",level:1,children:[],inEdges:[],outEdges:["1wupl5x"],title:"Reviewer, Tester, Auditors, Operators",modelRef:"otherProductLifecycleRoles",shape:"person",color:"green",style:{opacity:15,size:"xs",textSize:"sm"},description:{txt:"Coworking roles in the outer loop"},tags:[],kind:"actor",x:48,y:215,width:209,height:100,labelBBox:{x:6,y:37,width:197,height:20}},{id:"localbox",parent:"@gr2",level:1,children:["localbox.application"],inEdges:["zjg544","6szgsj"],outEdges:["1uo6k6b"],title:"localbox",modelRef:"localbox",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"A local development system"},tags:[],technology:"Linux/Windows/Mac",kind:"system",depth:1,x:405,y:512,width:384,height:265,labelBBox:{x:6,y:0,width:66,height:15}},{id:"localbox.application",parent:"localbox",level:2,children:[],inEdges:[],outEdges:[],title:"application",modelRef:"localbox.application",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"An application description"},tags:[],technology:"DSL",kind:"schema",x:437,y:565,width:320,height:180,labelBBox:{x:73,y:53,width:175,height:67}},{id:"edp",parent:"@gr3",level:1,children:["edp.application"],inEdges:["1okgiq5","1wupl5x","1uo6k6b"],outEdges:["17brhnu","6szgsj"],title:"EDP",modelRef:"edp",shape:"rectangle",color:"magenta",icon:"tech:kubernetes",style:{opacity:15,size:"md"},description:{txt:"EDP Edge Development Platform"},tags:[],technology:"Kubernetes",kind:"system",depth:1,navigateTo:"edp",x:405,y:122,width:384,height:265,labelBBox:{x:6,y:0,width:27,height:15}},{id:"edp.application",parent:"edp",level:2,children:[],inEdges:[],outEdges:[],title:"application",modelRef:"edp.application",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"An application description"},tags:[],technology:"DSL",kind:"schema",x:437,y:175,width:320,height:180,labelBBox:{x:73,y:53,width:175,height:67}}],edges:[{id:"zjg544",source:"developer",target:"localbox",label:"inner loop",points:[[242,595],[286,602],[341,612],[395,621]],labelBBox:{x:257,y:608,width:65,height:18},parent:"@gr1",relations:["5hkplj"],color:"gray",line:"dashed",head:"normal"},{id:"1okgiq5",source:"developer",target:"edp",label:"outer loop",points:[[224,530],[276,493],[349,441],[416,393]],labelBBox:{x:257,y:458,width:66,height:18},parent:"@gr1",relations:["1pp73vj","yk9zv2","12036hb","jpl8ll","1ghp31l","1xiorre","1woleh6","177bm2y","1l9a3pd","1uzzn9j"],color:"gray",line:"dashed",head:"normal"},{id:"1wupl5x",source:"otherProductLifecycleRoles",target:"edp",label:"review / operate",points:[[257,265],[298,265],[347,265],[395,265]],labelBBox:{x:332,y:265,width:104,height:18},parent:"@gr1",relations:["lb4xas"],color:"gray",line:"dashed",head:"normal"},{id:"1uo6k6b",source:"localbox",target:"edp",label:"sync",points:[[597,512],[597,474],[597,436],[597,397]],labelBBox:{x:563,y:449,width:33,height:18},parent:"@gr1",relations:["1mp9fps"],color:"gray",line:"dashed",head:"normal"},{id:"17brhnu",source:"edp",target:"cloud",label:"deploy & observe",points:[[789,265],[824,265],[860,265],[895,265]],labelBBox:{x:848,y:253,width:112,height:18},parent:null,relations:["gerdx4"],color:"gray",line:"dashed",head:"normal"},{id:"6szgsj",source:"edp",target:"localbox",label:null,points:[[597,387],[597,425],[597,463],[597,502]],labelBBox:null,parent:"@gr1",relations:["wvo8i"],color:"gray",line:"dashed",head:"normal"}]},landscape:{_type:"element",tags:null,links:null,_stage:"layouted",sourcePath:"views/high-level-concept/platform-context/developer-landscape.c4",description:null,title:"Developer Landscape View",id:"landscape",autoLayout:{direction:"LR",nodeSep:100,rankSep:100},hash:"2200052af6e85b31e932fe8da7e72109bde5a2c2",bounds:{x:0,y:0,width:3368,height:1756},nodes:[{id:"applicationspecification",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"application-specification",modelRef:"applicationspecification",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"The application specification describes the application and its components. It is used to generate the application and its components."},tags:[],kind:"component",x:16,y:280,width:338,height:180,labelBBox:{x:18,y:45,width:303,height:84}},{id:"forgejoRunnerWorker",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"Forgejo Runner Worker",modelRef:"forgejoRunnerWorker",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"A worker is a service that runs a job invoked by a runner. A worker typically is a container."},tags:[],kind:"component",x:734,y:280,width:333,height:180,labelBBox:{x:18,y:45,width:297,height:84}},{id:"promtail",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"Promtail",modelRef:"promtail",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"Log shipper agent for Loki"},tags:[],kind:"component",x:1288,y:280,width:320,height:180,labelBBox:{x:72,y:63,width:177,height:48}},{id:"edgeConnect",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"Edge Connect",modelRef:"edgeConnect",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"Provides an API to run applications on the edge"},tags:[],kind:"component",x:1862,y:280,width:320,height:180,labelBBox:{x:18,y:54,width:283,height:66}},{id:"elasticsearch",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"Elasticsearch",modelRef:"elasticsearch",shape:"rectangle",color:"primary",icon:"tech:elasticsearch",style:{opacity:20,size:"md"},description:{txt:`Elasticsearch is a distributed, RESTful search and analytics engine capable of addressing a growing number of use cases. It centrally stores your data so you can discover the expected and uncover the unexpected.`},tags:[],technology:"Elasticsearch",kind:"container",x:0,y:0,width:370,height:180,labelBBox:{x:46,y:17,width:308,height:139}},{id:"objectstorage",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"s3 Object Storage",modelRef:"objectstorage",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"s3 Object Storage"},tags:[],technology:"S3 Object Storage",kind:"container",x:741,y:0,width:320,height:180,labelBBox:{x:78,y:53,width:164,height:67}},{id:"postgres",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"PostgreSQL",modelRef:"postgres",shape:"rectangle",color:"primary",icon:"tech:postgresql",style:{opacity:20,size:"md"},description:{txt:`PostgreSQL is a powerful, open source object-relational database system. It has more than 15 years of active development and a proven architecture that has earned it a strong reputation for reliability, data integrity, -and correctness.`},tags:[],technology:"PostgreSQL",kind:"container",x:1271,y:0,width:354,height:180,labelBBox:{x:46,y:17,width:293,height:139}},{id:"redis",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"Redis",modelRef:"redis",shape:"rectangle",color:"primary",icon:"tech:redis",style:{opacity:20,size:"md"},description:{txt:"Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker."},tags:[],technology:"Redis",kind:"container",x:1919,y:0,width:359,height:180,labelBBox:{x:46,y:26,width:297,height:121}},{id:"platformdeveloper",parent:null,level:0,children:[],inEdges:[],outEdges:["mox1r9","1kjl8ep","x7to90"],title:"Platform Developer",modelRef:"platformdeveloper",shape:"person",color:"gray",style:{opacity:15,size:"md"},description:{txt:"The EDP engineer"},tags:[],kind:"actor",x:25,y:1286,width:320,height:180,labelBBox:{x:72,y:63,width:175,height:48}},{id:"customers",parent:null,level:0,children:[],inEdges:[],outEdges:["8fboq4"],title:"End Customers",modelRef:"customers",shape:"person",color:"amber",style:{opacity:15,size:"md"},description:{txt:"Consumers of your Application"},tags:[],kind:"actor",x:2534,y:405,width:320,height:180,labelBBox:{x:56,y:63,width:208,height:48}},{id:"forgejoRunner",parent:null,level:0,children:[],inEdges:["5mpoyf"],outEdges:["1lyfj4n"],title:"Forgejo Runner",modelRef:"forgejoRunner",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"A runner is a service that runs jobs triggered by Forgejo. A runner can have different technical implementations like a container or a VM."},tags:[],kind:"component",x:2534,y:1188,width:320,height:180,labelBBox:{x:23,y:36,width:274,height:102}},{id:"edfbuilder",parent:null,level:0,children:[],inEdges:["mox1r9"],outEdges:["lnq8uj"],title:"edfbuilder",modelRef:"edfbuilder",shape:"rectangle",color:"primary",icon:"tech:go",style:{opacity:15,size:"md"},description:{txt:"EDP Foundry Builder"},tags:[],technology:"Golang",kind:"component",navigateTo:"edpbuilderworkflow",x:741,y:1073,width:320,height:180,labelBBox:{x:74,y:53,width:202,height:67}},{id:"documentation",parent:null,level:0,children:[],inEdges:["1kjl8ep"],outEdges:["14bjpe1"],title:"Documentation",modelRef:"documentation",shape:"rectangle",color:"primary",icon:"tech:electron",style:{opacity:15,size:"md"},description:{txt:"Documentation system for EDP LikeC4 platform."},tags:[],technology:"Static Site Generator",kind:"system",navigateTo:"components-template-documentation",x:709,y:1576,width:384,height:180,labelBBox:{x:46,y:44,width:322,height:85}},{id:"edf",parent:null,level:0,children:[],inEdges:["lnq8uj","x7to90"],outEdges:["109bf6k"],title:"EDF",modelRef:"edf",shape:"rectangle",color:"primary",icon:"tech:kubernetes",style:{opacity:15,size:"md"},description:{txt:"EDP Foundry is a platform for building and deploying EDPs tenantwise."},tags:[],technology:"Kubernetes",kind:"system",x:1287,y:1286,width:321,height:180,labelBBox:{x:47,y:35,width:259,height:103}},{id:"@gr1",parent:null,kind:"@group",title:"developer-scope",color:"green",shape:"rectangle",children:["developer","otherProductLifecycleRoles","@gr2","@gr3"],inEdges:["1lyfj4n","14bjpe1","109bf6k"],outEdges:["1tbee2v","5mpoyf","17brhnu","35ru8e"],level:0,depth:2,tags:[],style:{border:"none",opacity:20},x:1221,y:500,width:1123,height:746,labelBBox:{x:6,y:0,width:114,height:15}},{id:"developer",parent:"@gr1",level:1,children:[],inEdges:[],outEdges:["zjg544","1okgiq5"],title:"Developer",modelRef:"developer",shape:"person",color:"green",style:{opacity:15,size:"md"},description:{txt:"The regular user of the platform"},tags:[],kind:"actor",x:1288,y:664,width:320,height:180,labelBBox:{x:53,y:63,width:214,height:48}},{id:"otherProductLifecycleRoles",parent:"@gr1",level:1,children:[],inEdges:[],outEdges:["1wupl5x"],title:"Reviewer, Tester, Auditors, Operators",modelRef:"otherProductLifecycleRoles",shape:"person",color:"green",style:{opacity:15,size:"md"},description:{txt:"Coworking roles in the outer loop"},tags:[],kind:"actor",x:1260,y:994,width:375,height:180,labelBBox:{x:19,y:63,width:340,height:48}},{id:"@gr2",parent:"@gr1",kind:"@group",title:"Devops inner-loop",color:"gray",shape:"rectangle",children:["localbox"],inEdges:["zjg544","6szgsj"],outEdges:["1tbee2v","1uo6k6b"],level:0,depth:1,tags:[],style:{border:"none",opacity:30},x:1907,y:561,width:384,height:265,labelBBox:{x:6,y:0,width:122,height:15}},{id:"localbox",parent:"@gr2",level:1,children:[],inEdges:["zjg544","6szgsj"],outEdges:["1tbee2v","1uo6k6b"],title:"localbox",modelRef:"localbox",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"A local development system"},tags:[],technology:"Linux/Windows/Mac",kind:"system",x:1939,y:614,width:320,height:180,labelBBox:{x:64,y:53,width:191,height:67}},{id:"@gr3",parent:"@gr1",kind:"@group",title:"Devops outer-loop",color:"gray",shape:"rectangle",children:["edp"],inEdges:["1lyfj4n","14bjpe1","109bf6k","1okgiq5","1wupl5x","1uo6k6b"],outEdges:["5mpoyf","17brhnu","35ru8e","6szgsj"],level:0,depth:1,tags:[],style:{border:"none",opacity:30},x:1893,y:941,width:411,height:265,labelBBox:{x:6,y:0,width:126,height:15}},{id:"edp",parent:"@gr3",level:1,children:[],inEdges:["1lyfj4n","14bjpe1","109bf6k","1okgiq5","1wupl5x","1uo6k6b"],outEdges:["5mpoyf","17brhnu","35ru8e","6szgsj"],title:"EDP",modelRef:"edp",shape:"rectangle",color:"primary",icon:"tech:kubernetes",style:{opacity:15,size:"md"},description:{txt:"EDP Edge Development Platform"},tags:[],technology:"Kubernetes",kind:"system",navigateTo:"edp",x:1926,y:994,width:346,height:180,labelBBox:{x:45,y:53,width:285,height:67}},{id:"enterprise",parent:null,level:0,children:[],inEdges:["1tbee2v","35ru8e"],outEdges:["iwd51q"],title:"Customers' Enterprise Systems",modelRef:"enterprise",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"The customers' enterprise systems"},tags:[],kind:"system",x:2534,y:685,width:320,height:180,labelBBox:{x:18,y:63,width:283,height:48}},{id:"cloud",parent:null,level:0,children:[],inEdges:["8fboq4","iwd51q","17brhnu"],outEdges:[],title:"Cloud",modelRef:"cloud",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"Cloud environments"},tags:[],technology:"IaaS/PaaS",kind:"system",x:3125,y:685,width:320,height:180,labelBBox:{x:91,y:53,width:137,height:67}}],edges:[{id:"lnq8uj",source:"edfbuilder",target:"edf",label:"boots one",points:[[1061,1225],[1129,1252],[1209,1283],[1278,1310]],labelBBox:{x:1144,y:1237,width:66,height:18},parent:null,relations:["1oxlsu0"],color:"gray",line:"dashed",head:"normal"},{id:"mox1r9",source:"platformdeveloper",target:"edfbuilder",label:"runs",points:[[345,1324],[370,1316],[396,1307],[420,1300],[523,1269],[639,1235],[731,1210]],labelBBox:{x:524,y:1208,width:31,height:18},parent:null,relations:["s1l7g7"],color:"gray",line:"dashed",head:"normal"},{id:"1kjl8ep",source:"platformdeveloper",target:"documentation",label:"creates and maintains documentation",points:[[345,1444],[370,1454],[396,1465],[420,1475],[512,1512],[613,1553],[699,1587]],labelBBox:{x:421,y:1452,width:237,height:18},parent:null,relations:["3sz3k3"],color:"gray",line:"dashed",head:"normal"},{id:"x7to90",source:"platformdeveloper",target:"edf",label:"develops EDP and EDF",points:[[345,1376],[583,1376],[1032,1376],[1277,1376]],labelBBox:{x:825,y:1353,width:152,height:18},parent:null,relations:["v8v12"],color:"gray",line:"dashed",head:"normal"},{id:"8fboq4",source:"customers",target:"cloud",label:"uses your app",points:[[2854,571],[2935,609],[3033,656],[3116,695]],labelBBox:{x:2944,y:578,width:92,height:18},parent:null,relations:["1g2ebwc"],color:"gray",line:"dashed",head:"normal"},{id:"iwd51q",source:"enterprise",target:"cloud",label:"app specific dependencies",points:[[2854,775],[2935,775],[3033,775],[3115,775]],labelBBox:{x:2905,y:752,width:169,height:18},parent:null,relations:["nc44l9"],color:"gray",line:"dashed",head:"normal"},{id:"zjg544",source:"developer",target:"localbox",label:"inner loop development",points:[[1608,742],[1705,734],[1829,725],[1928,717]],labelBBox:{x:1703,y:700,width:150,height:18},parent:"@gr1",relations:["5hkplj"],color:"gray",line:"dashed",head:"normal"},{id:"1tbee2v",source:"localbox",target:"enterprise",label:"company integration",points:[[2258,723],[2340,733],[2440,745],[2524,755]],labelBBox:{x:2353,y:711,width:130,height:18},parent:null,relations:["1abvxlh"],color:"gray",line:"dashed",head:"normal"},{id:"1lyfj4n",source:"forgejoRunner",target:"edp",label:"register",points:[[2534,1280],[2476,1276],[2410,1268],[2352,1248],[2306,1232],[2260,1206],[2220,1179]],labelBBox:{x:2393,y:1225,width:51,height:18},parent:null,relations:["18dtot7"],color:"gray",line:"dashed",head:"normal"},{id:"14bjpe1",source:"documentation",target:"edp",label:"provides documentation for",points:[[1093,1656],[1245,1642],[1461,1611],[1636,1539],[1811,1467],[1956,1293],[2034,1182]],labelBBox:{x:1362,y:1516,width:173,height:18},parent:null,relations:["xw0pne"],color:"gray",line:"dashed",head:"normal"},{id:"109bf6k",source:"edf",target:"edp",label:"builds many",points:[[1609,1365],[1690,1355],[1789,1334],[1869,1294],[1923,1266],[1975,1222],[2015,1181]],labelBBox:{x:1738,y:1271,width:79,height:18},parent:null,relations:["wsm3kf"],color:"gray",line:"dashed",head:"normal"},{id:"1okgiq5",source:"developer",target:"edp",label:"outer loop development",points:[[1608,835],[1701,882],[1819,942],[1916,992]],labelBBox:{x:1702,y:857,width:150,height:18},parent:"@gr1",relations:["1pp73vj","yk9zv2","12036hb","jpl8ll","1ghp31l","1xiorre","1woleh6","177bm2y","1l9a3pd","1uzzn9j"],color:"gray",line:"dashed",head:"normal"},{id:"1wupl5x",source:"otherProductLifecycleRoles",target:"edp",label:"act according to responibility",points:[[1636,1084],[1724,1084],[1828,1084],[1915,1084]],labelBBox:{x:1687,y:1061,width:181,height:18},parent:"@gr1",relations:["lb4xas"],color:"gray",line:"dashed",head:"normal"},{id:"1uo6k6b",source:"localbox",target:"edp",label:"inner-outer-loop synchronization",points:[[2099,794],[2099,851],[2099,925],[2099,984]],labelBBox:{x:1982,y:882,width:204,height:18},parent:"@gr1",relations:["1mp9fps"],color:"gray",line:"dashed",head:"normal"},{id:"5mpoyf",source:"edp",target:"forgejoRunner",label:"runs workflows",points:[[2272,1136],[2338,1157],[2415,1181],[2484,1204],[2497,1208],[2511,1213],[2524,1218]],labelBBox:{x:2370,y:1140,width:97,height:18},parent:null,relations:["1pbc22f"],color:"gray",line:"dashed",head:"normal"},{id:"17brhnu",source:"edp",target:"cloud",label:"deploys and observes",points:[[2272,1059],[2426,1035],[2657,994],[2854,938],[2942,913],[3037,878],[3116,846]],labelBBox:{x:2624,y:915,width:140,height:18},parent:null,relations:["gerdx4"],color:"gray",line:"dashed",head:"normal"},{id:"35ru8e",source:"edp",target:"enterprise",label:"integrates",points:[[2248,994],[2282,974],[2318,954],[2352,936],[2407,907],[2469,877],[2525,851]],labelBBox:{x:2385,y:848,width:65,height:18},parent:null,relations:["615gvx"],color:"gray",line:"dashed",head:"normal"},{id:"6szgsj",source:"edp",target:"localbox",label:null,points:[[2099,994],[2099,931],[2099,867],[2099,804]],labelBBox:null,parent:"@gr1",relations:["wvo8i"],color:"gray",line:"dashed",head:"normal"}]},"developer-landscape-with-foundry":{_type:"element",tags:null,links:null,_stage:"layouted",sourcePath:"views/high-level-concept/platform-context/developer-landscape-with-foundry.c4",description:null,title:"Developer Landscape View (with Foundry)",id:"developer-landscape-with-foundry",autoLayout:{direction:"LR",nodeSep:100,rankSep:100},hash:"3739dcefcf5775aaa97027f0848c1443a231b7a1",bounds:{x:0,y:0,width:4464,height:2361},nodes:[{id:"applicationspecification",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"application-specification",modelRef:"applicationspecification",shape:"rectangle",color:"primary",style:{opacity:15,size:"xl"},description:{txt:"The application specification describes the application and its components. It is used to generate the application and its components."},tags:[],kind:"component",x:0,y:390,width:520,height:290,labelBBox:{x:49,y:84,width:422,height:113}},{id:"forgejoRunnerWorker",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"Forgejo Runner Worker",modelRef:"forgejoRunnerWorker",shape:"rectangle",color:"primary",style:{opacity:15,size:"xl"},description:{txt:"A worker is a service that runs a job invoked by a runner. A worker typically is a container."},tags:[],kind:"component",x:859,y:390,width:520,height:290,labelBBox:{x:52,y:84,width:415,height:113}},{id:"promtail",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"Promtail",modelRef:"promtail",shape:"rectangle",color:"primary",style:{opacity:15,size:"xl"},description:{txt:"Log shipper agent for Loki"},tags:[],kind:"component",x:1557,y:390,width:520,height:290,labelBBox:{x:137,y:109,width:247,height:63}},{id:"edgeConnect",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"Edge Connect",modelRef:"edgeConnect",shape:"rectangle",color:"primary",style:{opacity:15,size:"xl"},description:{txt:"Provides an API to run applications on the edge"},tags:[],kind:"component",x:2371,y:390,width:520,height:290,labelBBox:{x:62,y:96,width:395,height:89}},{id:"elasticsearch",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"Elasticsearch",modelRef:"elasticsearch",shape:"rectangle",color:"primary",icon:"tech:elasticsearch",style:{opacity:20,size:"xl"},description:{txt:`Elasticsearch is a distributed, RESTful search and analytics engine capable of +and correctness.`},tags:[],technology:"PostgreSQL",kind:"container",x:1271,y:0,width:354,height:180,labelBBox:{x:46,y:17,width:293,height:139}},{id:"redis",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"Redis",modelRef:"redis",shape:"rectangle",color:"primary",icon:"tech:redis",style:{opacity:20,size:"md"},description:{txt:"Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker."},tags:[],technology:"Redis",kind:"container",x:1842,y:0,width:359,height:180,labelBBox:{x:46,y:26,width:297,height:121}},{id:"platformdeveloper",parent:null,level:0,children:[],inEdges:[],outEdges:["mox1r9","1kjl8ep","x7to90"],title:"Platform Developer",modelRef:"platformdeveloper",shape:"person",color:"gray",style:{opacity:15,size:"md"},description:{txt:"The EDP engineer"},tags:[],kind:"actor",x:25,y:1286,width:320,height:180,labelBBox:{x:72,y:63,width:175,height:48}},{id:"customers",parent:null,level:0,children:[],inEdges:[],outEdges:["8fboq4"],title:"End Customers",modelRef:"customers",shape:"person",color:"amber",style:{opacity:15,size:"md"},description:{txt:"Consumers of your Application"},tags:[],kind:"actor",x:2457,y:405,width:320,height:180,labelBBox:{x:56,y:63,width:208,height:48}},{id:"forgejoRunner",parent:null,level:0,children:[],inEdges:["5mpoyf"],outEdges:["1lyfj4n"],title:"Forgejo Runner",modelRef:"forgejoRunner",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"A runner is a service that runs jobs triggered by Forgejo. A runner can have different technical implementations like a container or a VM."},tags:[],kind:"component",x:2457,y:1188,width:320,height:180,labelBBox:{x:23,y:36,width:274,height:102}},{id:"edfbuilder",parent:null,level:0,children:[],inEdges:["mox1r9"],outEdges:["lnq8uj"],title:"edfbuilder",modelRef:"edfbuilder",shape:"rectangle",color:"primary",icon:"tech:go",style:{opacity:15,size:"md"},description:{txt:"EDP Foundry Builder"},tags:[],technology:"Golang",kind:"component",navigateTo:"edpbuilderworkflow",x:741,y:1073,width:320,height:180,labelBBox:{x:74,y:53,width:202,height:67}},{id:"documentation",parent:null,level:0,children:[],inEdges:["1kjl8ep"],outEdges:["14bjpe1"],title:"Documentation",modelRef:"documentation",shape:"rectangle",color:"primary",icon:"tech:electron",style:{opacity:15,size:"md"},description:{txt:"Documentation system for EDP LikeC4 platform."},tags:[],technology:"Static Site Generator",kind:"system",navigateTo:"components-template-documentation",x:709,y:1576,width:384,height:180,labelBBox:{x:46,y:44,width:322,height:85}},{id:"edf",parent:null,level:0,children:[],inEdges:["lnq8uj","x7to90"],outEdges:["109bf6k"],title:"EDF",modelRef:"edf",shape:"rectangle",color:"primary",icon:"tech:kubernetes",style:{opacity:15,size:"md"},description:{txt:"EDP Foundry is a platform for building and deploying EDPs tenantwise."},tags:[],technology:"Kubernetes",kind:"system",x:1287,y:1286,width:321,height:180,labelBBox:{x:47,y:35,width:259,height:103}},{id:"@gr1",parent:null,kind:"@group",title:"developer-scope",color:"green",shape:"rectangle",children:["developer","otherProductLifecycleRoles","@gr2","@gr3"],inEdges:["1lyfj4n","14bjpe1","109bf6k"],outEdges:["1tbee2v","5mpoyf","17brhnu","35ru8e"],level:0,depth:2,tags:[],style:{border:"none",opacity:20},x:1221,y:500,width:1046,height:746,labelBBox:{x:6,y:0,width:114,height:15}},{id:"developer",parent:"@gr1",level:1,children:[],inEdges:[],outEdges:["zjg544","1okgiq5"],title:"Developer",modelRef:"developer",shape:"person",color:"green",style:{opacity:15,size:"md"},description:{txt:"The regular user of the platform"},tags:[],kind:"actor",x:1288,y:664,width:320,height:180,labelBBox:{x:53,y:63,width:214,height:48}},{id:"otherProductLifecycleRoles",parent:"@gr1",level:1,children:[],inEdges:[],outEdges:["1wupl5x"],title:"Reviewer, Tester, Auditors, Operators",modelRef:"otherProductLifecycleRoles",shape:"person",color:"green",style:{opacity:15,size:"md"},description:{txt:"Coworking roles in the outer loop"},tags:[],kind:"actor",x:1260,y:994,width:375,height:180,labelBBox:{x:19,y:63,width:340,height:48}},{id:"@gr2",parent:"@gr1",kind:"@group",title:"Devops inner-loop",color:"gray",shape:"rectangle",children:["localbox"],inEdges:["zjg544","6szgsj"],outEdges:["1tbee2v","1uo6k6b"],level:0,depth:1,tags:[],style:{border:"none",opacity:30},x:1830,y:561,width:384,height:265,labelBBox:{x:6,y:0,width:122,height:15}},{id:"localbox",parent:"@gr2",level:1,children:[],inEdges:["zjg544","6szgsj"],outEdges:["1tbee2v","1uo6k6b"],title:"localbox",modelRef:"localbox",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"A local development system"},tags:[],technology:"Linux/Windows/Mac",kind:"system",x:1862,y:614,width:320,height:180,labelBBox:{x:64,y:53,width:191,height:67}},{id:"@gr3",parent:"@gr1",kind:"@group",title:"Devops outer-loop",color:"gray",shape:"rectangle",children:["edp"],inEdges:["1lyfj4n","14bjpe1","109bf6k","1okgiq5","1wupl5x","1uo6k6b"],outEdges:["5mpoyf","17brhnu","35ru8e","6szgsj"],level:0,depth:1,tags:[],style:{border:"none",opacity:30},x:1816,y:941,width:411,height:265,labelBBox:{x:6,y:0,width:126,height:15}},{id:"edp",parent:"@gr3",level:1,children:[],inEdges:["1lyfj4n","14bjpe1","109bf6k","1okgiq5","1wupl5x","1uo6k6b"],outEdges:["5mpoyf","17brhnu","35ru8e","6szgsj"],title:"EDP",modelRef:"edp",shape:"rectangle",color:"primary",icon:"tech:kubernetes",style:{opacity:15,size:"md"},description:{txt:"EDP Edge Development Platform"},tags:[],technology:"Kubernetes",kind:"system",navigateTo:"edp",x:1849,y:994,width:346,height:180,labelBBox:{x:45,y:53,width:285,height:67}},{id:"enterprise",parent:null,level:0,children:[],inEdges:["1tbee2v","35ru8e"],outEdges:["iwd51q"],title:"Customers' Enterprise Systems",modelRef:"enterprise",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"The customers' enterprise systems"},tags:[],kind:"system",x:2457,y:685,width:320,height:180,labelBBox:{x:18,y:63,width:283,height:48}},{id:"cloud",parent:null,level:0,children:[],inEdges:["8fboq4","iwd51q","17brhnu"],outEdges:[],title:"Cloud",modelRef:"cloud",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"Cloud environments"},tags:[],technology:"IaaS/PaaS",kind:"system",x:3048,y:685,width:320,height:180,labelBBox:{x:91,y:53,width:137,height:67}}],edges:[{id:"lnq8uj",source:"edfbuilder",target:"edf",label:"boots one",points:[[1061,1225],[1129,1252],[1209,1283],[1278,1310]],labelBBox:{x:1144,y:1237,width:66,height:18},parent:null,relations:["1oxlsu0"],color:"gray",line:"dashed",head:"normal"},{id:"mox1r9",source:"platformdeveloper",target:"edfbuilder",label:"runs",points:[[345,1324],[370,1316],[396,1307],[420,1300],[523,1269],[639,1235],[731,1210]],labelBBox:{x:524,y:1208,width:31,height:18},parent:null,relations:["s1l7g7"],color:"gray",line:"dashed",head:"normal"},{id:"1kjl8ep",source:"platformdeveloper",target:"documentation",label:"creates and maintains documentation",points:[[345,1444],[370,1454],[396,1465],[420,1475],[512,1512],[613,1553],[699,1587]],labelBBox:{x:421,y:1452,width:237,height:18},parent:null,relations:["3sz3k3"],color:"gray",line:"dashed",head:"normal"},{id:"x7to90",source:"platformdeveloper",target:"edf",label:"develops EDP and EDF",points:[[345,1376],[583,1376],[1032,1376],[1277,1376]],labelBBox:{x:825,y:1353,width:152,height:18},parent:null,relations:["v8v12"],color:"gray",line:"dashed",head:"normal"},{id:"8fboq4",source:"customers",target:"cloud",label:"uses your app",points:[[2777,571],[2858,609],[2956,656],[3039,695]],labelBBox:{x:2867,y:578,width:92,height:18},parent:null,relations:["1g2ebwc"],color:"gray",line:"dashed",head:"normal"},{id:"iwd51q",source:"enterprise",target:"cloud",label:"app specific dependencies",points:[[2777,775],[2858,775],[2956,775],[3038,775]],labelBBox:{x:2828,y:752,width:169,height:18},parent:null,relations:["nc44l9"],color:"gray",line:"dashed",head:"normal"},{id:"zjg544",source:"developer",target:"localbox",label:"inner loop",points:[[1608,740],[1684,733],[1774,726],[1851,719]],labelBBox:{x:1706,y:701,width:65,height:18},parent:"@gr1",relations:["5hkplj"],color:"gray",line:"dashed",head:"normal"},{id:"1tbee2v",source:"localbox",target:"enterprise",label:"company integration",points:[[2181,723],[2263,733],[2363,745],[2447,755]],labelBBox:{x:2276,y:711,width:130,height:18},parent:null,relations:["1abvxlh"],color:"gray",line:"dashed",head:"normal"},{id:"1lyfj4n",source:"forgejoRunner",target:"edp",label:"register",points:[[2457,1280],[2399,1276],[2333,1268],[2275,1248],[2229,1232],[2183,1206],[2143,1179]],labelBBox:{x:2316,y:1225,width:51,height:18},parent:null,relations:["18dtot7"],color:"gray",line:"dashed",head:"normal"},{id:"14bjpe1",source:"documentation",target:"edp",label:"provides documentation for",points:[[1093,1668],[1248,1661],[1469,1633],[1636,1539],[1785,1455],[1902,1289],[1966,1183]],labelBBox:{x:1362,y:1516,width:173,height:18},parent:null,relations:["xw0pne"],color:"gray",line:"dashed",head:"normal"},{id:"109bf6k",source:"edf",target:"edp",label:"builds many",points:[[1609,1355],[1669,1343],[1736,1324],[1792,1294],[1845,1265],[1896,1222],[1936,1181]],labelBBox:{x:1700,y:1271,width:79,height:18},parent:null,relations:["wsm3kf"],color:"gray",line:"dashed",head:"normal"},{id:"1okgiq5",source:"developer",target:"edp",label:"outer loop",points:[[1605,844],[1683,889],[1777,943],[1856,989]],labelBBox:{x:1706,y:876,width:66,height:18},parent:"@gr1",relations:["1pp73vj","yk9zv2","12036hb","jpl8ll","1ghp31l","1xiorre","1woleh6","177bm2y","1l9a3pd","1uzzn9j"],color:"gray",line:"dashed",head:"normal"},{id:"1wupl5x",source:"otherProductLifecycleRoles",target:"edp",label:"review / operate",points:[[1636,1084],[1701,1084],[1774,1084],[1838,1084]],labelBBox:{x:1687,y:1061,width:104,height:18},parent:"@gr1",relations:["lb4xas"],color:"gray",line:"dashed",head:"normal"},{id:"1uo6k6b",source:"localbox",target:"edp",label:"sync",points:[[2022,794],[2022,851],[2022,925],[2022,984]],labelBBox:{x:1991,y:882,width:33,height:18},parent:"@gr1",relations:["1mp9fps"],color:"gray",line:"dashed",head:"normal"},{id:"5mpoyf",source:"edp",target:"forgejoRunner",label:"runs workflows",points:[[2195,1136],[2261,1157],[2338,1181],[2407,1204],[2420,1208],[2434,1213],[2447,1218]],labelBBox:{x:2293,y:1140,width:97,height:18},parent:null,relations:["1pbc22f"],color:"gray",line:"dashed",head:"normal"},{id:"17brhnu",source:"edp",target:"cloud",label:"deploy & observe",points:[[2195,1059],[2349,1035],[2580,994],[2777,938],[2865,913],[2960,878],[3039,846]],labelBBox:{x:2561,y:915,width:112,height:18},parent:null,relations:["gerdx4"],color:"gray",line:"dashed",head:"normal"},{id:"35ru8e",source:"edp",target:"enterprise",label:"integrates",points:[[2171,994],[2205,974],[2241,954],[2275,936],[2330,907],[2392,877],[2448,851]],labelBBox:{x:2308,y:848,width:65,height:18},parent:null,relations:["615gvx"],color:"gray",line:"dashed",head:"normal"},{id:"6szgsj",source:"edp",target:"localbox",label:null,points:[[2022,994],[2022,931],[2022,867],[2022,804]],labelBBox:null,parent:"@gr1",relations:["wvo8i"],color:"gray",line:"dashed",head:"normal"}]},"developer-landscape-with-foundry":{_type:"element",tags:null,links:null,_stage:"layouted",sourcePath:"views/high-level-concept/platform-context/developer-landscape-with-foundry.c4",description:null,title:"Developer Landscape View (with Foundry)",id:"developer-landscape-with-foundry",autoLayout:{direction:"LR",nodeSep:100,rankSep:100},hash:"cda46e810ddf2dde6325776d78a91ec404b72312",bounds:{x:0,y:0,width:4387,height:2361},nodes:[{id:"applicationspecification",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"application-specification",modelRef:"applicationspecification",shape:"rectangle",color:"primary",style:{opacity:15,size:"xl"},description:{txt:"The application specification describes the application and its components. It is used to generate the application and its components."},tags:[],kind:"component",x:0,y:390,width:520,height:290,labelBBox:{x:49,y:84,width:422,height:113}},{id:"forgejoRunnerWorker",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"Forgejo Runner Worker",modelRef:"forgejoRunnerWorker",shape:"rectangle",color:"primary",style:{opacity:15,size:"xl"},description:{txt:"A worker is a service that runs a job invoked by a runner. A worker typically is a container."},tags:[],kind:"component",x:859,y:390,width:520,height:290,labelBBox:{x:52,y:84,width:415,height:113}},{id:"promtail",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"Promtail",modelRef:"promtail",shape:"rectangle",color:"primary",style:{opacity:15,size:"xl"},description:{txt:"Log shipper agent for Loki"},tags:[],kind:"component",x:1557,y:390,width:520,height:290,labelBBox:{x:137,y:109,width:247,height:63}},{id:"edgeConnect",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"Edge Connect",modelRef:"edgeConnect",shape:"rectangle",color:"primary",style:{opacity:15,size:"xl"},description:{txt:"Provides an API to run applications on the edge"},tags:[],kind:"component",x:2294,y:390,width:520,height:290,labelBBox:{x:62,y:96,width:395,height:89}},{id:"elasticsearch",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"Elasticsearch",modelRef:"elasticsearch",shape:"rectangle",color:"primary",icon:"tech:elasticsearch",style:{opacity:20,size:"xl"},description:{txt:`Elasticsearch is a distributed, RESTful search and analytics engine capable of addressing a growing number of use cases. It centrally stores your data so you can discover the expected and uncover the unexpected.`},tags:[],technology:"Elasticsearch",kind:"container",x:0,y:0,width:520,height:290,labelBBox:{x:72,y:46,width:406,height:189}},{id:"objectstorage",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"s3 Object Storage",modelRef:"objectstorage",shape:"rectangle",color:"primary",style:{opacity:20,size:"xl"},description:{txt:"s3 Object Storage"},tags:[],technology:"S3 Object Storage",kind:"container",x:859,y:0,width:520,height:290,labelBBox:{x:146,y:96,width:228,height:89}},{id:"postgres",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"PostgreSQL",modelRef:"postgres",shape:"rectangle",color:"primary",icon:"tech:postgresql",style:{opacity:20,size:"xl"},description:{txt:`PostgreSQL is a powerful, open source object-relational database system. It has more than 15 years of active development and a proven architecture that has earned it a strong reputation for reliability, data integrity, -and correctness.`},tags:[],technology:"PostgreSQL",kind:"container",x:1557,y:0,width:520,height:290,labelBBox:{x:83,y:46,width:384,height:189}},{id:"redis",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"Redis",modelRef:"redis",shape:"rectangle",color:"primary",icon:"tech:redis",style:{opacity:20,size:"xl"},description:{txt:"Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker."},tags:[],technology:"Redis",kind:"container",x:2371,y:0,width:520,height:290,labelBBox:{x:80,y:58,width:391,height:165}},{id:"platformdeveloper",parent:null,level:0,children:[],inEdges:[],outEdges:["mox1r9","1kjl8ep","x7to90"],title:"Platform Developer",modelRef:"platformdeveloper",shape:"person",color:"gray",style:{opacity:15,size:"xl"},description:{txt:"The EDP engineer"},tags:[],kind:"actor",x:0,y:1726,width:520,height:290,labelBBox:{x:138,y:109,width:244,height:63}},{id:"customers",parent:null,level:0,children:[],inEdges:[],outEdges:["8fboq4"],title:"End Customers",modelRef:"customers",shape:"person",color:"amber",style:{opacity:15,size:"xl"},description:{txt:"Consumers of your Application"},tags:[],kind:"actor",x:3153,y:460,width:520,height:290,labelBBox:{x:115,y:109,width:290,height:63}},{id:"forgejoRunner",parent:null,level:0,children:[],inEdges:["5mpoyf"],outEdges:["1lyfj4n"],title:"Forgejo Runner",modelRef:"forgejoRunner",shape:"rectangle",color:"primary",style:{opacity:15,size:"xl"},description:{txt:"A runner is a service that runs jobs triggered by Forgejo. A runner can have different technical implementations like a container or a VM."},tags:[],kind:"component",x:3153,y:1463,width:520,height:290,labelBBox:{x:69,y:71,width:382,height:139}},{id:"edfbuilder",parent:null,level:0,children:[],inEdges:["mox1r9"],outEdges:["lnq8uj"],title:"edfbuilder",modelRef:"edfbuilder",shape:"rectangle",color:"primary",icon:"tech:go",style:{opacity:15,size:"xl"},description:{txt:"EDP Foundry Builder"},tags:[],technology:"Golang",kind:"component",navigateTo:"edpbuilderworkflow",x:859,y:1458,width:520,height:290,labelBBox:{x:145,y:96,width:259,height:89}},{id:"documentation",parent:null,level:0,children:[],inEdges:["1kjl8ep"],outEdges:["14bjpe1"],title:"Documentation",modelRef:"documentation",shape:"rectangle",color:"primary",icon:"tech:electron",style:{opacity:15,size:"xl"},description:{txt:"Documentation system for EDP LikeC4 platform."},tags:[],technology:"Static Site Generator",kind:"system",navigateTo:"components-template-documentation",x:859,y:2071,width:520,height:290,labelBBox:{x:62,y:83,width:426,height:115}},{id:"edf",parent:null,level:0,children:[],inEdges:["lnq8uj","x7to90"],outEdges:["109bf6k"],title:"EDF",modelRef:"edf",shape:"rectangle",color:"primary",icon:"tech:kubernetes",style:{opacity:15,size:"xl"},description:{txt:"EDP Foundry is a platform for building and deploying EDPs tenantwise."},tags:[],technology:"Kubernetes",kind:"system",x:1557,y:1726,width:520,height:290,labelBBox:{x:106,y:71,width:339,height:139}},{id:"@gr1",parent:null,kind:"@group",title:"developer-scope",color:"green",shape:"rectangle",children:["developer","otherProductLifecycleRoles","@gr2","@gr3"],inEdges:["1lyfj4n","14bjpe1","109bf6k"],outEdges:["1tbee2v","5mpoyf","17brhnu","35ru8e"],level:0,depth:2,tags:[],style:{border:"none",opacity:20},x:1506,y:720,width:1457,height:966,labelBBox:{x:6,y:0,width:114,height:15}},{id:"developer",parent:"@gr1",level:1,children:[],inEdges:[],outEdges:["zjg544","1okgiq5"],title:"Developer",modelRef:"developer",shape:"person",color:"green",style:{opacity:15,size:"xl"},description:{txt:"The regular user of the platform"},tags:[],kind:"actor",x:1557,y:884,width:520,height:290,labelBBox:{x:111,y:109,width:298,height:63}},{id:"otherProductLifecycleRoles",parent:"@gr1",level:1,children:[],inEdges:[],outEdges:["1wupl5x"],title:"Reviewer, Tester, Auditors, Operators",modelRef:"otherProductLifecycleRoles",shape:"person",color:"green",style:{opacity:15,size:"xl"},description:{txt:"Coworking roles in the outer loop"},tags:[],kind:"actor",x:1546,y:1324,width:542,height:290,labelBBox:{x:34,y:109,width:474,height:63}},{id:"@gr2",parent:"@gr1",kind:"@group",title:"Devops inner-loop",color:"gray",shape:"rectangle",children:["localbox"],inEdges:["zjg544","6szgsj"],outEdges:["1tbee2v","1uo6k6b"],level:0,depth:1,tags:[],style:{border:"none",opacity:30},x:2339,y:781,width:584,height:375,labelBBox:{x:6,y:0,width:122,height:15}},{id:"localbox",parent:"@gr2",level:1,children:[],inEdges:["zjg544","6szgsj"],outEdges:["1tbee2v","1uo6k6b"],title:"localbox",modelRef:"localbox",shape:"rectangle",color:"primary",style:{opacity:15,size:"xl"},description:{txt:"A local development system"},tags:[],technology:"Linux/Windows/Mac",kind:"system",x:2371,y:834,width:520,height:290,labelBBox:{x:127,y:96,width:265,height:89}},{id:"@gr3",parent:"@gr1",kind:"@group",title:"Devops outer-loop",color:"gray",shape:"rectangle",children:["edp"],inEdges:["1lyfj4n","14bjpe1","109bf6k","1okgiq5","1wupl5x","1uo6k6b"],outEdges:["5mpoyf","17brhnu","35ru8e","6szgsj"],level:0,depth:1,tags:[],style:{border:"none",opacity:30},x:2339,y:1271,width:584,height:375,labelBBox:{x:6,y:0,width:126,height:15}},{id:"edp",parent:"@gr3",level:1,children:[],inEdges:["1lyfj4n","14bjpe1","109bf6k","1okgiq5","1wupl5x","1uo6k6b"],outEdges:["5mpoyf","17brhnu","35ru8e","6szgsj"],title:"EDP",modelRef:"edp",shape:"rectangle",color:"primary",icon:"tech:kubernetes",style:{opacity:15,size:"xl"},description:{txt:"EDP Edge Development Platform"},tags:[],technology:"Kubernetes",kind:"system",navigateTo:"edp",x:2371,y:1324,width:520,height:290,labelBBox:{x:88,y:96,width:374,height:89}},{id:"enterprise",parent:null,level:0,children:[],inEdges:["1tbee2v","35ru8e"],outEdges:["iwd51q"],title:"Customers' Enterprise Systems",modelRef:"enterprise",shape:"rectangle",color:"primary",style:{opacity:15,size:"xl"},description:{txt:"The customers' enterprise systems"},tags:[],kind:"system",x:3153,y:850,width:520,height:290,labelBBox:{x:63,y:109,width:395,height:63}},{id:"cloud",parent:null,level:0,children:[],inEdges:["8fboq4","iwd51q","17brhnu"],outEdges:[],title:"Cloud",modelRef:"cloud",shape:"rectangle",color:"primary",style:{opacity:15,size:"xl"},description:{txt:"Cloud environments"},tags:[],technology:"IaaS/PaaS",kind:"system",x:3944,y:850,width:520,height:290,labelBBox:{x:165,y:96,width:191,height:89}}],edges:[{id:"lnq8uj",source:"edfbuilder",target:"edf",label:"boots one",points:[[1379,1703],[1434,1724],[1492,1746],[1548,1768]],labelBBox:{x:1430,y:1702,width:66,height:18},parent:null,relations:["1oxlsu0"],color:"gray",line:"dashed",head:"normal"},{id:"mox1r9",source:"platformdeveloper",target:"edfbuilder",label:"runs",points:[[520,1790],[624,1757],[744,1720],[849,1687]],labelBBox:{x:674,y:1682,width:31,height:18},parent:null,relations:["s1l7g7"],color:"gray",line:"dashed",head:"normal"},{id:"1kjl8ep",source:"platformdeveloper",target:"documentation",label:"creates and maintains documentation",points:[[520,1975],[624,2017],[744,2066],[849,2108]],labelBBox:{x:571,y:1979,width:237,height:18},parent:null,relations:["3sz3k3"],color:"gray",line:"dashed",head:"normal"},{id:"x7to90",source:"platformdeveloper",target:"edf",label:"develops EDP and EDF",points:[[520,1871],[804,1871],[1259,1871],[1547,1871]],labelBBox:{x:1043,y:1848,width:152,height:18},parent:null,relations:["v8v12"],color:"gray",line:"dashed",head:"normal"},{id:"8fboq4",source:"customers",target:"cloud",label:"uses your app",points:[[3673,733],[3757,774],[3850,821],[3935,862]],labelBBox:{x:3763,y:742,width:92,height:18},parent:null,relations:["1g2ebwc"],color:"gray",line:"dashed",head:"normal"},{id:"iwd51q",source:"enterprise",target:"cloud",label:"app specific dependencies",points:[[3673,995],[3757,995],[3849,995],[3934,995]],labelBBox:{x:3724,y:972,width:169,height:18},parent:null,relations:["nc44l9"],color:"gray",line:"dashed",head:"normal"},{id:"zjg544",source:"developer",target:"localbox",label:"inner loop development",points:[[2077,1013],[2168,1007],[2270,1001],[2361,996]],labelBBox:{x:2155,y:975,width:150,height:18},parent:"@gr1",relations:["5hkplj"],color:"gray",line:"dashed",head:"normal"},{id:"1tbee2v",source:"localbox",target:"enterprise",label:"company integration",points:[[2891,984],[2972,986],[3061,988],[3143,989]],labelBBox:{x:2972,y:963,width:130,height:18},parent:null,relations:["1abvxlh"],color:"gray",line:"dashed",head:"normal"},{id:"1lyfj4n",source:"forgejoRunner",target:"edp",label:"register",points:[[3153,1633],[3093,1634],[3029,1630],[2971,1618],[2948,1613],[2924,1606],[2900,1599]],labelBBox:{x:3012,y:1595,width:51,height:18},parent:null,relations:["18dtot7"],color:"gray",line:"dashed",head:"normal"},{id:"14bjpe1",source:"documentation",target:"edp",label:"provides documentation for",points:[[1379,2230],[1583,2230],[1869,2205],[2088,2089],[2289,1983],[2450,1769],[2542,1623]],labelBBox:{x:1731,y:2066,width:173,height:18},parent:null,relations:["xw0pne"],color:"gray",line:"dashed",head:"normal"},{id:"109bf6k",source:"edf",target:"edp",label:"builds many",points:[[2077,1824],[2158,1803],[2246,1774],[2321,1734],[2377,1704],[2432,1662],[2480,1621]],labelBBox:{x:2190,y:1711,width:79,height:18},parent:null,relations:["wsm3kf"],color:"gray",line:"dashed",head:"normal"},{id:"1okgiq5",source:"developer",target:"edp",label:"outer loop development",points:[[2077,1169],[2168,1219],[2270,1274],[2362,1324]],labelBBox:{x:2154,y:1180,width:150,height:18},parent:"@gr1",relations:["1pp73vj","yk9zv2","12036hb","jpl8ll","1ghp31l","1xiorre","1woleh6","177bm2y","1l9a3pd","1uzzn9j"],color:"gray",line:"dashed",head:"normal"},{id:"1wupl5x",source:"otherProductLifecycleRoles",target:"edp",label:"act according to responibility",points:[[2088,1469],[2176,1469],[2273,1469],[2361,1469]],labelBBox:{x:2139,y:1446,width:181,height:18},parent:"@gr1",relations:["lb4xas"],color:"gray",line:"dashed",head:"normal"},{id:"1uo6k6b",source:"localbox",target:"edp",label:"inner-outer-loop synchronization",points:[[2631,1124],[2631,1184],[2631,1253],[2631,1314]],labelBBox:{x:2515,y:1212,width:204,height:18},parent:"@gr1",relations:["1mp9fps"],color:"gray",line:"dashed",head:"normal"},{id:"5mpoyf",source:"edp",target:"forgejoRunner",label:"runs workflows",points:[[2891,1515],[2972,1530],[3062,1546],[3143,1560]],labelBBox:{x:2989,y:1507,width:97,height:18},parent:null,relations:["1pbc22f"],color:"gray",line:"dashed",head:"normal"},{id:"17brhnu",source:"edp",target:"cloud",label:"deploys and observes",points:[[2891,1417],[3103,1371],[3411,1298],[3673,1213],[3760,1185],[3852,1149],[3935,1114]],labelBBox:{x:3343,y:1190,width:140,height:18},parent:null,relations:["gerdx4"],color:"gray",line:"dashed",head:"normal"},{id:"35ru8e",source:"edp",target:"enterprise",label:"integrates",points:[[2809,1324],[2860,1285],[2916,1245],[2971,1211],[3025,1177],[3086,1145],[3144,1116]],labelBBox:{x:3004,y:1115,width:65,height:18},parent:null,relations:["615gvx"],color:"gray",line:"dashed",head:"normal"},{id:"6szgsj",source:"edp",target:"localbox",label:null,points:[[2631,1324],[2631,1261],[2631,1197],[2631,1134]],labelBBox:null,parent:"@gr1",relations:["wvo8i"],color:"gray",line:"dashed",head:"normal"}]}},deployments:{elements:{local:{style:{icon:"tech:kubernetes"},kind:"environment",description:{txt:"Local kind-cluster environment for EDP, typically run by edpbuilder"},technology:"Kind",title:"Local kind-cluster",id:"local"},"otc-edp-per-tenant":{style:{},kind:"cloud",description:{txt:`OTC environment for EDP. EDP is the environment a customer gets from us. +and correctness.`},tags:[],technology:"PostgreSQL",kind:"container",x:1557,y:0,width:520,height:290,labelBBox:{x:83,y:46,width:384,height:189}},{id:"redis",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"Redis",modelRef:"redis",shape:"rectangle",color:"primary",icon:"tech:redis",style:{opacity:20,size:"xl"},description:{txt:"Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker."},tags:[],technology:"Redis",kind:"container",x:2294,y:0,width:520,height:290,labelBBox:{x:79,y:58,width:392,height:165}},{id:"platformdeveloper",parent:null,level:0,children:[],inEdges:[],outEdges:["mox1r9","1kjl8ep","x7to90"],title:"Platform Developer",modelRef:"platformdeveloper",shape:"person",color:"gray",style:{opacity:15,size:"xl"},description:{txt:"The EDP engineer"},tags:[],kind:"actor",x:0,y:1726,width:520,height:290,labelBBox:{x:138,y:109,width:244,height:63}},{id:"customers",parent:null,level:0,children:[],inEdges:[],outEdges:["8fboq4"],title:"End Customers",modelRef:"customers",shape:"person",color:"amber",style:{opacity:15,size:"xl"},description:{txt:"Consumers of your Application"},tags:[],kind:"actor",x:3076,y:460,width:520,height:290,labelBBox:{x:115,y:109,width:290,height:63}},{id:"forgejoRunner",parent:null,level:0,children:[],inEdges:["5mpoyf"],outEdges:["1lyfj4n"],title:"Forgejo Runner",modelRef:"forgejoRunner",shape:"rectangle",color:"primary",style:{opacity:15,size:"xl"},description:{txt:"A runner is a service that runs jobs triggered by Forgejo. A runner can have different technical implementations like a container or a VM."},tags:[],kind:"component",x:3076,y:1463,width:520,height:290,labelBBox:{x:69,y:71,width:382,height:139}},{id:"edfbuilder",parent:null,level:0,children:[],inEdges:["mox1r9"],outEdges:["lnq8uj"],title:"edfbuilder",modelRef:"edfbuilder",shape:"rectangle",color:"primary",icon:"tech:go",style:{opacity:15,size:"xl"},description:{txt:"EDP Foundry Builder"},tags:[],technology:"Golang",kind:"component",navigateTo:"edpbuilderworkflow",x:859,y:1458,width:520,height:290,labelBBox:{x:145,y:96,width:259,height:89}},{id:"documentation",parent:null,level:0,children:[],inEdges:["1kjl8ep"],outEdges:["14bjpe1"],title:"Documentation",modelRef:"documentation",shape:"rectangle",color:"primary",icon:"tech:electron",style:{opacity:15,size:"xl"},description:{txt:"Documentation system for EDP LikeC4 platform."},tags:[],technology:"Static Site Generator",kind:"system",navigateTo:"components-template-documentation",x:859,y:2071,width:520,height:290,labelBBox:{x:62,y:83,width:426,height:115}},{id:"edf",parent:null,level:0,children:[],inEdges:["lnq8uj","x7to90"],outEdges:["109bf6k"],title:"EDF",modelRef:"edf",shape:"rectangle",color:"primary",icon:"tech:kubernetes",style:{opacity:15,size:"xl"},description:{txt:"EDP Foundry is a platform for building and deploying EDPs tenantwise."},tags:[],technology:"Kubernetes",kind:"system",x:1557,y:1726,width:520,height:290,labelBBox:{x:106,y:71,width:339,height:139}},{id:"@gr1",parent:null,kind:"@group",title:"developer-scope",color:"green",shape:"rectangle",children:["developer","otherProductLifecycleRoles","@gr2","@gr3"],inEdges:["1lyfj4n","14bjpe1","109bf6k"],outEdges:["1tbee2v","5mpoyf","17brhnu","35ru8e"],level:0,depth:2,tags:[],style:{border:"none",opacity:20},x:1506,y:720,width:1380,height:966,labelBBox:{x:6,y:0,width:114,height:15}},{id:"developer",parent:"@gr1",level:1,children:[],inEdges:[],outEdges:["zjg544","1okgiq5"],title:"Developer",modelRef:"developer",shape:"person",color:"green",style:{opacity:15,size:"xl"},description:{txt:"The regular user of the platform"},tags:[],kind:"actor",x:1557,y:884,width:520,height:290,labelBBox:{x:111,y:109,width:298,height:63}},{id:"otherProductLifecycleRoles",parent:"@gr1",level:1,children:[],inEdges:[],outEdges:["1wupl5x"],title:"Reviewer, Tester, Auditors, Operators",modelRef:"otherProductLifecycleRoles",shape:"person",color:"green",style:{opacity:15,size:"xl"},description:{txt:"Coworking roles in the outer loop"},tags:[],kind:"actor",x:1546,y:1324,width:542,height:290,labelBBox:{x:34,y:109,width:474,height:63}},{id:"@gr2",parent:"@gr1",kind:"@group",title:"Devops inner-loop",color:"gray",shape:"rectangle",children:["localbox"],inEdges:["zjg544","6szgsj"],outEdges:["1tbee2v","1uo6k6b"],level:0,depth:1,tags:[],style:{border:"none",opacity:30},x:2262,y:781,width:584,height:375,labelBBox:{x:6,y:0,width:122,height:15}},{id:"localbox",parent:"@gr2",level:1,children:[],inEdges:["zjg544","6szgsj"],outEdges:["1tbee2v","1uo6k6b"],title:"localbox",modelRef:"localbox",shape:"rectangle",color:"primary",style:{opacity:15,size:"xl"},description:{txt:"A local development system"},tags:[],technology:"Linux/Windows/Mac",kind:"system",x:2294,y:834,width:520,height:290,labelBBox:{x:127,y:96,width:265,height:89}},{id:"@gr3",parent:"@gr1",kind:"@group",title:"Devops outer-loop",color:"gray",shape:"rectangle",children:["edp"],inEdges:["1lyfj4n","14bjpe1","109bf6k","1okgiq5","1wupl5x","1uo6k6b"],outEdges:["5mpoyf","17brhnu","35ru8e","6szgsj"],level:0,depth:1,tags:[],style:{border:"none",opacity:30},x:2262,y:1271,width:584,height:375,labelBBox:{x:6,y:0,width:126,height:15}},{id:"edp",parent:"@gr3",level:1,children:[],inEdges:["1lyfj4n","14bjpe1","109bf6k","1okgiq5","1wupl5x","1uo6k6b"],outEdges:["5mpoyf","17brhnu","35ru8e","6szgsj"],title:"EDP",modelRef:"edp",shape:"rectangle",color:"primary",icon:"tech:kubernetes",style:{opacity:15,size:"xl"},description:{txt:"EDP Edge Development Platform"},tags:[],technology:"Kubernetes",kind:"system",navigateTo:"edp",x:2294,y:1324,width:520,height:290,labelBBox:{x:88,y:96,width:374,height:89}},{id:"enterprise",parent:null,level:0,children:[],inEdges:["1tbee2v","35ru8e"],outEdges:["iwd51q"],title:"Customers' Enterprise Systems",modelRef:"enterprise",shape:"rectangle",color:"primary",style:{opacity:15,size:"xl"},description:{txt:"The customers' enterprise systems"},tags:[],kind:"system",x:3076,y:850,width:520,height:290,labelBBox:{x:62,y:109,width:395,height:63}},{id:"cloud",parent:null,level:0,children:[],inEdges:["8fboq4","iwd51q","17brhnu"],outEdges:[],title:"Cloud",modelRef:"cloud",shape:"rectangle",color:"primary",style:{opacity:15,size:"xl"},description:{txt:"Cloud environments"},tags:[],technology:"IaaS/PaaS",kind:"system",x:3867,y:850,width:520,height:290,labelBBox:{x:165,y:96,width:191,height:89}}],edges:[{id:"lnq8uj",source:"edfbuilder",target:"edf",label:"boots one",points:[[1379,1703],[1434,1724],[1492,1746],[1548,1768]],labelBBox:{x:1430,y:1702,width:66,height:18},parent:null,relations:["1oxlsu0"],color:"gray",line:"dashed",head:"normal"},{id:"mox1r9",source:"platformdeveloper",target:"edfbuilder",label:"runs",points:[[520,1790],[624,1757],[744,1720],[849,1687]],labelBBox:{x:674,y:1682,width:31,height:18},parent:null,relations:["s1l7g7"],color:"gray",line:"dashed",head:"normal"},{id:"1kjl8ep",source:"platformdeveloper",target:"documentation",label:"creates and maintains documentation",points:[[520,1975],[624,2017],[744,2066],[849,2108]],labelBBox:{x:571,y:1979,width:237,height:18},parent:null,relations:["3sz3k3"],color:"gray",line:"dashed",head:"normal"},{id:"x7to90",source:"platformdeveloper",target:"edf",label:"develops EDP and EDF",points:[[520,1871],[804,1871],[1259,1871],[1547,1871]],labelBBox:{x:1043,y:1848,width:152,height:18},parent:null,relations:["v8v12"],color:"gray",line:"dashed",head:"normal"},{id:"8fboq4",source:"customers",target:"cloud",label:"uses your app",points:[[3596,733],[3680,774],[3773,821],[3858,862]],labelBBox:{x:3686,y:742,width:92,height:18},parent:null,relations:["1g2ebwc"],color:"gray",line:"dashed",head:"normal"},{id:"iwd51q",source:"enterprise",target:"cloud",label:"app specific dependencies",points:[[3596,995],[3680,995],[3772,995],[3857,995]],labelBBox:{x:3647,y:972,width:169,height:18},parent:null,relations:["nc44l9"],color:"gray",line:"dashed",head:"normal"},{id:"zjg544",source:"developer",target:"localbox",label:"inner loop",points:[[2077,1011],[2144,1007],[2216,1002],[2284,997]],labelBBox:{x:2158,y:978,width:65,height:18},parent:"@gr1",relations:["5hkplj"],color:"gray",line:"dashed",head:"normal"},{id:"1tbee2v",source:"localbox",target:"enterprise",label:"company integration",points:[[2814,984],[2895,986],[2984,988],[3066,989]],labelBBox:{x:2895,y:963,width:130,height:18},parent:null,relations:["1abvxlh"],color:"gray",line:"dashed",head:"normal"},{id:"1lyfj4n",source:"forgejoRunner",target:"edp",label:"register",points:[[3076,1633],[3016,1634],[2952,1630],[2894,1618],[2871,1613],[2847,1606],[2823,1599]],labelBBox:{x:2935,y:1595,width:51,height:18},parent:null,relations:["18dtot7"],color:"gray",line:"dashed",head:"normal"},{id:"14bjpe1",source:"documentation",target:"edp",label:"provides documentation for",points:[[1379,2235],[1584,2238],[1873,2215],[2088,2089],[2273,1981],[2407,1769],[2482,1623]],labelBBox:{x:1731,y:2066,width:173,height:18},parent:null,relations:["xw0pne"],color:"gray",line:"dashed",head:"normal"},{id:"109bf6k",source:"edf",target:"edp",label:"builds many",points:[[2077,1806],[2134,1786],[2192,1763],[2244,1734],[2299,1703],[2353,1662],[2400,1621]],labelBBox:{x:2152,y:1711,width:79,height:18},parent:null,relations:["wsm3kf"],color:"gray",line:"dashed",head:"normal"},{id:"1okgiq5",source:"developer",target:"edp",label:"outer loop",points:[[2060,1174],[2138,1220],[2224,1272],[2302,1319]],labelBBox:{x:2158,y:1199,width:66,height:18},parent:"@gr1",relations:["1pp73vj","yk9zv2","12036hb","jpl8ll","1ghp31l","1xiorre","1woleh6","177bm2y","1l9a3pd","1uzzn9j"],color:"gray",line:"dashed",head:"normal"},{id:"1wupl5x",source:"otherProductLifecycleRoles",target:"edp",label:"review / operate",points:[[2088,1469],[2152,1469],[2220,1469],[2284,1469]],labelBBox:{x:2139,y:1446,width:104,height:18},parent:"@gr1",relations:["lb4xas"],color:"gray",line:"dashed",head:"normal"},{id:"1uo6k6b",source:"localbox",target:"edp",label:"sync",points:[[2554,1124],[2554,1184],[2554,1253],[2554,1314]],labelBBox:{x:2523,y:1212,width:33,height:18},parent:"@gr1",relations:["1mp9fps"],color:"gray",line:"dashed",head:"normal"},{id:"5mpoyf",source:"edp",target:"forgejoRunner",label:"runs workflows",points:[[2814,1515],[2895,1530],[2985,1546],[3066,1560]],labelBBox:{x:2912,y:1507,width:97,height:18},parent:null,relations:["1pbc22f"],color:"gray",line:"dashed",head:"normal"},{id:"17brhnu",source:"edp",target:"cloud",label:"deploy & observe",points:[[2814,1417],[3026,1371],[3334,1298],[3596,1213],[3683,1185],[3775,1149],[3858,1114]],labelBBox:{x:3280,y:1190,width:112,height:18},parent:null,relations:["gerdx4"],color:"gray",line:"dashed",head:"normal"},{id:"35ru8e",source:"edp",target:"enterprise",label:"integrates",points:[[2732,1324],[2783,1285],[2839,1245],[2894,1211],[2948,1177],[3009,1145],[3067,1116]],labelBBox:{x:2927,y:1115,width:65,height:18},parent:null,relations:["615gvx"],color:"gray",line:"dashed",head:"normal"},{id:"6szgsj",source:"edp",target:"localbox",label:null,points:[[2554,1324],[2554,1261],[2554,1197],[2554,1134]],labelBBox:null,parent:"@gr1",relations:["wvo8i"],color:"gray",line:"dashed",head:"normal"}]}},deployments:{elements:{local:{style:{icon:"tech:kubernetes"},kind:"environment",description:{txt:"Local kind-cluster environment for EDP, typically run by edpbuilder"},technology:"Kind",title:"Local kind-cluster",id:"local"},"otc-edp-per-tenant":{style:{},kind:"cloud",description:{txt:`OTC environment for EDP. EDP is the environment a customer gets from us. This is kubernetes clusters and other infrastructure like nodes and vms, and platform services. All is set up by IaC-pipelines in the Foundry.`},technology:"OTC",title:"OTC EDP per tenant cluster",id:"otc-edp-per-tenant"},"otc-faas":{style:{},kind:"cloud",description:{txt:"OTC environments for Prototype FaaS."},technology:"OTC",title:"OTC prototype FaaS",id:"otc-faas"},edge:{style:{},kind:"cloud",description:{txt:"Edge environments for distributed workloads."},technology:"Edge",title:"Edge Cloud",id:"edge"},"otc-edpFoundry":{style:{},kind:"cloud",description:{txt:`OTC environments for the central EDP Foundry services. This is kubernetes clusters and other infrastructure like nodes and vms, and optionally platform services. All is set up by IaC terraform and edpbuilder.