Files
metrics/.github/architecture.svg
2021-04-18 19:15:05 +02:00

3 lines
35 KiB
XML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="761px" height="1011px" viewBox="-0.5 -0.5 761 1011" content="&lt;mxfile host=&quot;app.diagrams.net&quot; modified=&quot;2021-04-18T17:14:15.742Z&quot; agent=&quot;5.0 (Windows)&quot; etag=&quot;DH6gxuMicbAfsTDIoN7w&quot; version=&quot;14.6.1&quot; type=&quot;device&quot;&gt;&lt;diagram id=&quot;F_d4ybccOfaPER7UC6s8&quot; name=&quot;Page-1&quot;&gt;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&lt;/diagram&gt;&lt;/mxfile&gt;"><defs/><g><rect x="260" y="0" width="240" height="1010" rx="36" ry="36" fill="#fad7ac" stroke="#b46504" pointer-events="all"/><rect x="510" y="0" width="240" height="1010" rx="36" ry="36" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><rect x="10" y="0" width="240" height="1010" rx="36" ry="36" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><rect x="0" y="530" width="760" height="350" rx="52.5" ry="52.5" fill="#bac8d3" stroke="#23445d" pointer-events="all"/><rect x="280" y="180" width="200" height="80" rx="7" ry="7" fill="#ffffff" stroke="#000000" stroke-width="2" pointer-events="all"/><rect x="280" y="180" width="200" height="80" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 220px; margin-left: 281px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><div align="left"><font style="font-size: 18px"><b>🏗️ Setup</b></font></div><div>Load templates and plugins</div><div align="left">Load metadata<br /></div></div></div></div></foreignObject><text x="380" y="224" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">🏗️ Setup...</text></switch></g><rect x="530" y="360" width="200" height="80" rx="7" ry="7" fill="#ffffff" stroke="#000000" stroke-width="2" pointer-events="all"/><rect x="530" y="360" width="200" height="80" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 400px; margin-left: 531px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><div align="left"><font style="font-size: 18px"><b>📮 Serve requests<br /></b></font></div><div align="left">Waiting for web requests<br /></div></div></div></div></foreignObject><text x="630" y="404" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">📮 Serve requests...</text></switch></g><rect x="30" y="180" width="200" height="40" rx="7" ry="7" fill="#ffffff" stroke="#000000" stroke-width="2" pointer-events="all"/><rect x="30" y="180" width="200" height="40" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 200px; margin-left: 31px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">📕 Clone community templates</div></div></div></foreignObject><text x="130" y="204" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">📕 Clone community templates</text></switch></g><rect x="530" y="180" width="200" height="40" rx="7" ry="7" fill="#ffffff" stroke="#000000" stroke-width="2" pointer-events="all"/><rect x="530" y="180" width="200" height="40" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 200px; margin-left: 531px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">🔧 Load <b>settings.json<br /></b></div></div></div></foreignObject><text x="630" y="204" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">🔧 Load settings.json&#xa;</text></switch></g><rect x="30" y="80" width="200" height="80" rx="7" ry="7" fill="#ffffff" stroke="#000000" stroke-width="2" pointer-events="all"/><rect x="30" y="80" width="200" height="80" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 120px; margin-left: 31px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><div align="left"><font style="font-size: 18px"><b>⚒️ Action setup<br /></b></font></div><div>Pull or rebuild docker image<br /></div><div align="left">Load user inputs and setup<br /></div></div></div></div></foreignObject><text x="130" y="124" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">⚒️ Action setup...</text></switch></g><rect x="530" y="260" width="200" height="80" rx="7" ry="7" fill="#ffffff" stroke="#000000" stroke-width="2" pointer-events="all"/><rect x="530" y="260" width="200" height="80" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 300px; margin-left: 531px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><div align="left"><font style="font-size: 18px"><b>🛠️ Web setup<br /></b></font></div><div>Setup server and middlewares<br /></div></div></div></div></foreignObject><text x="630" y="304" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">🛠️ Web setup...</text></switch></g><rect x="280" y="420" width="200" height="80" rx="7" ry="7" fill="#ffffff" stroke="#000000" stroke-width="2" pointer-events="all"/><rect x="280" y="420" width="200" height="80" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 460px; margin-left: 281px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><div align="left"><font style="font-size: 18px"><b>🎨 Pre-rendering</b></font></div><div>Parse user inputs                  <br /></div></div></div></div></foreignObject><text x="380" y="464" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">🎨 Pre-rendering...</text></switch></g><path d="M 230 120 L 320 120 Q 330 120 330 130 L 330 173.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 330 178.88 L 326.5 171.88 L 330 173.63 L 333.5 171.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 480 200 L 523.63 200" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 528.88 200 L 521.88 203.5 L 523.63 200 L 521.88 196.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 280 200 L 236.37 200" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 231.12 200 L 238.12 196.5 L 236.37 200 L 238.12 203.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 480 240 L 620 240 Q 630 240 630 246.82 L 630 253.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 630 258.88 L 626.5 251.88 L 630 253.63 L 633.5 251.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 630 340 L 630 353.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 630 358.88 L 626.5 351.88 L 630 353.63 L 633.5 351.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 630 440 L 630 450 Q 630 460 620 460 L 486.37 460" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 481.12 460 L 488.12 456.5 L 486.37 460 L 488.12 463.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 130 43 L 130 73.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><ellipse cx="130" cy="40" rx="3" ry="3" fill="#000000" stroke="#000000" pointer-events="all"/><path d="M 130 78.88 L 126.5 71.88 L 130 73.63 L 133.5 71.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 630 43 L 630 110 Q 630 120 620 120 L 440 120 Q 430 120 430 130 L 430 173.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><ellipse cx="630" cy="40" rx="3" ry="3" fill="#000000" stroke="#000000" pointer-events="all"/><path d="M 430 178.88 L 426.5 171.88 L 430 173.63 L 433.5 171.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 280 240 L 140 240 Q 130 240 130 250 L 130 450 Q 130 460 140 460 L 273.63 460" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 278.88 460 L 271.88 463.5 L 273.63 460 L 271.88 456.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="280" y="790" width="200" height="80" rx="7" ry="7" fill="#ffffff" stroke="#000000" stroke-width="2" pointer-events="all"/><rect x="280" y="790" width="200" height="80" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 830px; margin-left: 281px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><div align="left"><font style="font-size: 18px"><b>🖨️ Partials rendering<br /></b></font></div><div align="left">Template partials rendering with</div><div align="left">computed data<br /></div></div></div></div></foreignObject><text x="380" y="834" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">🖨️ Partials rendering...</text></switch></g><rect x="530" y="950" width="200" height="40" rx="7" ry="7" fill="#ffffff" stroke="#000000" stroke-width="2" pointer-events="all"/><rect x="530" y="950" width="200" height="40" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 970px; margin-left: 531px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">📊 Serve rendering to client<b><br /></b></div></div></div></foreignObject><text x="630" y="974" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">📊 Serve rendering to client</text></switch></g><path d="M 480 970 L 523.63 970" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 528.88 970 L 521.88 973.5 L 523.63 970 L 521.88 966.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="30" y="950" width="200" height="40" rx="7" ry="7" fill="#ffffff" stroke="#000000" stroke-width="2" pointer-events="all"/><rect x="30" y="950" width="200" height="40" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 970px; margin-left: 31px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">📊 Publish rendering to GitHub</div></div></div></foreignObject><text x="130" y="974" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">📊 Publish rendering to GitHub</text></switch></g><path d="M 280 970 L 236.37 970" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 231.12 970 L 238.12 966.5 L 236.37 970 L 238.12 973.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="535" y="10" width="190" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 188px; height: 1px; padding-top: 20px; margin-left: 536px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><b><font style="font-size: 18px">🌐 Web server<br /></font></b></div></div></div></foreignObject><text x="630" y="24" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">🌐 Web server&#xa;</text></switch></g><rect x="35" y="10" width="190" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 188px; height: 1px; padding-top: 20px; margin-left: 36px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><b><font style="font-size: 18px">⚙️ GitHub Action</font></b></div></div></div></foreignObject><text x="130" y="24" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">⚙️ GitHub Action</text></switch></g><rect x="285" y="10" width="190" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 188px; height: 1px; padding-top: 20px; margin-left: 286px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><b><font style="font-size: 18px">🤝 Common<br /></font></b></div></div></div></foreignObject><text x="380" y="24" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">🤝 Common&#xa;</text></switch></g><path d="M 380 870 L 380 903.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 380 908.88 L 376.5 901.88 L 380 903.63 L 383.5 901.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="10" y="560" width="240" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 238px; height: 1px; padding-top: 570px; margin-left: 11px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><b><font style="font-size: 18px">📊 Metrics embed<br /></font></b></div></div></div></foreignObject><text x="130" y="574" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">📊 Metrics embed&#xa;</text></switch></g><rect x="250" y="550" width="490" height="220" rx="33" ry="33" fill="#e1d5e7" stroke="#9673a6" stroke-dasharray="3 3" pointer-events="all"/><rect x="530" y="670" width="200" height="80" rx="7" ry="7" fill="#ffffff" stroke="#000000" stroke-width="2" pointer-events="all"/><rect x="530" y="670" width="200" height="80" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 710px; margin-left: 531px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><div align="left"><font style="font-size: 18px"><b>🧩 Metrics plugins<br /></b></font></div><div>Enabled plugins are executed<br /></div></div></div></div></foreignObject><text x="630" y="714" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">🧩 Metrics plugins...</text></switch></g><rect x="30" y="670" width="200" height="80" rx="7" ry="7" fill="#ffffff" stroke="#000000" stroke-width="2" pointer-events="all"/><rect x="30" y="670" width="200" height="80" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 710px; margin-left: 31px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><div align="left"><font style="font-size: 18px"><b>🖼️ Template entry<br /></b></font></div><div align="left">Handles core plugin execution</div><div align="left">Format data specific to template<br /></div></div></div></div></foreignObject><text x="130" y="714" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">🖼️ Template entry...</text></switch></g><rect x="30" y="670" width="200" height="80" rx="7" ry="7" fill="#ffffff" stroke="#000000" stroke-width="2" pointer-events="all"/><rect x="30" y="670" width="200" height="80" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 710px; margin-left: 31px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><div align="left"><font style="font-size: 18px"><b>🖼️ Template entry<br /></b></font></div><div align="left">Handles core plugin execution</div><div align="left">Format data specific to template<br /></div></div></div></div></foreignObject><text x="130" y="714" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">🖼️ Template entry...</text></switch></g><path d="M 480 730 L 523.63 730" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 528.88 730 L 521.88 733.5 L 523.63 730 L 521.88 726.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 230 710 L 273.63 710" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 278.88 710 L 271.88 713.5 L 273.63 710 L 271.88 706.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 480 710 L 523.63 710" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 528.88 710 L 521.88 713.5 L 523.63 710 L 521.88 706.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 480 690 L 523.63 690" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 528.88 690 L 521.88 693.5 L 523.63 690 L 521.88 686.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="280" y="670" width="200" height="80" rx="7" ry="7" fill="#ffffff" stroke="#000000" stroke-width="2" pointer-events="all"/><rect x="280" y="670" width="200" height="80" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 710px; margin-left: 281px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><div align="left"><font style="font-size: 18px"><b>🧱 Core plugin<br /></b></font></div><div>Handles other plugin execution<br /></div><div align="left">Format base plugin data</div></div></div></div></foreignObject><text x="380" y="714" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">🧱 Core plugin...</text></switch></g><path d="M 630 750 L 630 820 Q 630 830 620 830 L 486.37 830" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 481.12 830 L 488.12 826.5 L 486.37 830 L 488.12 833.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="280" y="570" width="200" height="80" rx="7" ry="7" fill="#ffffff" stroke="#000000" stroke-width="2" pointer-events="all"/><rect x="280" y="570" width="200" height="80" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 610px; margin-left: 281px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><div align="left"><font style="font-size: 18px"><b>🗃️ Base plugin<br /></b></font></div><div>Base GitHub data is fetched <br /></div></div></div></div></foreignObject><text x="380" y="614" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">🗃️ Base plugin...</text></switch></g><path d="M 380 500 L 380 563.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 380 568.88 L 376.5 561.88 L 380 563.63 L 383.5 561.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 280 610 L 140 610 Q 130 610 130 620 L 130 663.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 130 668.88 L 126.5 661.88 L 130 663.63 L 133.5 661.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="490" y="560" width="240" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 238px; height: 1px; padding-top: 570px; margin-left: 491px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><b><font style="font-size: 18px"><code></code> Metrics insights<br /></font></b></div></div></div></foreignObject><text x="610" y="574" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">✨ Metrics insights&#xa;</text></switch></g><rect x="280" y="910" width="200" height="80" rx="7" ry="7" fill="#ffffff" stroke="#000000" stroke-width="2" pointer-events="all"/><rect x="275" y="910" width="200" height="80" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 950px; margin-left: 276px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><div align="left"><font style="font-size: 18px"><b>🖌️ Post-rendering</b></font></div><div align="left">Apply config parameters</div><div align="left">Resizing with puppeteer<br /></div></div></div></div></foreignObject><text x="375" y="954" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">🖌️ Post-rendering...</text></switch></g><rect x="530" y="900" width="200" height="40" rx="7" ry="7" fill="#ffffff" stroke="#000000" stroke-width="2" pointer-events="all"/><rect x="530" y="900" width="200" height="40" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 920px; margin-left: 531px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><code></code> Serve insights to client<b><br /></b></div></div></div></foreignObject><text x="630" y="924" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">✨ Serve insights to client</text></switch></g><path d="M 630 750 L 630 893.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 630 898.88 L 626.5 891.88 L 630 893.63 L 633.5 891.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Viewer does not support full SVG 1.1</text></a></switch></svg>