You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
barretthousen/doc/bh_design_overview.svg

4 lines
36 KiB

<?xml version="1.0" encoding="UTF-8"?>
<!-- Do not edit this file with editors other than diagrams.net -->
<!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" style="background-color: rgb(255, 255, 255);" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1001px" height="624px" viewBox="-0.5 -0.5 1001 624" content="&lt;mxfile host=&quot;app.diagrams.net&quot; modified=&quot;2023-06-12T21:53:14.096Z&quot; agent=&quot;Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/112.0&quot; etag=&quot;UYZ-gMGGBU-3IRnnNiW5&quot; version=&quot;21.1.7&quot; type=&quot;device&quot;&gt;&lt;diagram name=&quot;High level&quot; id=&quot;BL8KaFisCtBiJRqkGTb9&quot;&gt;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&lt;/diagram&gt;&lt;/mxfile&gt;"><defs/><g><rect x="520" y="13" width="80" height="80" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" 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: 78px; height: 1px; padding-top: 53px; margin-left: 521px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div>Web Client</div></div></div></div></foreignObject><text x="560" y="57" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Web Client</text></switch></g><path d="M 120 93 L 193.13 93" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 198.38 93 L 191.38 96.5 L 193.13 93 L 191.38 89.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 30 73 C 6 73 0 93 19.2 97 C 0 105.8 21.6 125 37.2 117 C 48 133 84 133 96 117 C 120 117 120 101 105 93 C 120 77 96 61 75 69 C 60 57 36 57 30 73 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" 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: 118px; height: 1px; padding-top: 93px; margin-left: 1px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div>Users</div></div></div></div></foreignObject><text x="60" y="97" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Users</text></switch></g><path d="M 920 15.5 C 920 7.22 937.91 0.5 960 0.5 C 970.61 0.5 980.78 2.08 988.28 4.89 C 995.79 7.71 1000 11.52 1000 15.5 L 1000 90.5 C 1000 98.78 982.09 105.5 960 105.5 C 937.91 105.5 920 98.78 920 90.5 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 1000 15.5 C 1000 23.78 982.09 30.5 960 30.5 C 937.91 30.5 920 23.78 920 15.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" 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: 78px; height: 1px; padding-top: 66px; margin-left: 921px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div>catalog-db</div></div></div></div></foreignObject><text x="960" y="69" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">catalog-db</text></switch></g><path d="M 860 423 L 913.63 423" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 918.88 423 L 911.88 426.5 L 913.63 423 L 911.88 419.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="780" y="383" width="80" height="80" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" 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: 78px; height: 1px; padding-top: 423px; margin-left: 781px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div>Runner</div></div></div></div></foreignObject><text x="820" y="427" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Runner</text></switch></g><path d="M 130 383 L 203.13 383" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 208.38 383 L 201.38 386.5 L 203.13 383 L 201.38 379.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 40 363 C 16 363 10 383 29.2 387 C 10 395.8 31.6 415 47.2 407 C 58 423 94 423 106 407 C 130 407 130 391 115 383 C 130 367 106 351 85 359 C 70 347 46 347 40 363 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" 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: 118px; height: 1px; padding-top: 383px; margin-left: 11px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Admin</div></div></div></foreignObject><text x="70" y="387" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Admin</text></switch></g><path d="M 359.5 93 L 439.8 93 L 439.8 53 L 513.63 53" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 518.88 53 L 511.88 56.5 L 513.63 53 L 511.88 49.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" 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: 1px; height: 1px; padding-top: 56px; margin-left: 467px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); "><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><div>Path: /</div></div></div></div></foreignObject><text x="467" y="59" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">Path: /</text></switch></g><path d="M 359.5 93 L 439.8 93 L 439.8 143 L 513.63 143" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 518.88 143 L 511.88 146.5 L 513.63 143 L 511.88 139.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" 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: 1px; height: 1px; padding-top: 144px; margin-left: 453px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); "><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">Path: /api</div></div></div></foreignObject><text x="453" y="147" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">Path: /api</text></switch></g><path d="M 214.19 63 L 344.81 63 C 352.92 63 359.5 76.43 359.5 93 C 359.5 109.57 352.92 123 344.81 123 L 214.19 123 C 206.08 123 199.5 109.57 199.5 93 C 199.5 76.43 206.08 63 214.19 63 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 344.81 63 C 336.69 63 330.11 76.43 330.11 93 C 330.11 109.57 336.69 123 344.81 123" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" 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: 158px; height: 1px; padding-top: 93px; margin-left: 201px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">bh.com</div></div></div></foreignObject><text x="280" y="97" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">bh.com</text></switch></g><rect x="261" y="13" width="37" height="50" fill="none" stroke="none" pointer-events="all"/><path d="M 263.5 63 C 262.24 62.81 261.24 61.85 261 60.59 L 261 36.53 C 261.18 35.22 262.2 34.19 263.5 33.98 L 288.8 33.98 L 288.8 26.01 C 288.38 20.84 284.25 16.99 279.5 17.34 C 276.98 17.26 274.54 18.37 272.83 20.39 C 271.11 22.4 270.28 25.13 270.55 27.86 L 265.8 27.86 C 265.44 24.03 266.73 20.22 269.35 17.4 C 271.97 14.57 275.66 13 279.5 13.08 C 283.09 13.04 286.55 14.43 289.11 16.95 C 291.67 19.47 293.12 22.91 293.15 26.51 L 293.15 33.98 L 295.85 33.98 C 297.02 34.31 297.87 35.32 298 36.53 L 298 60.59 C 297.77 61.82 296.82 62.77 295.6 63 Z M 281.35 58.29 L 281.35 48.26 C 283.09 47.42 284.03 45.48 283.6 43.59 C 283.17 41.7 281.49 40.35 279.55 40.35 C 277.61 40.35 275.93 41.7 275.5 43.59 C 275.07 45.48 276.01 47.42 277.75 48.26 L 277.75 58.29 Z" fill="#00188d" stroke="none" pointer-events="all"/><path d="M 370 383 L 445 383 L 445 333 L 513.63 333" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 518.88 333 L 511.88 336.5 L 513.63 333 L 511.88 329.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" 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: 1px; height: 1px; padding-top: 336px; margin-left: 464px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); "><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><div>Path:/</div></div></div></div></foreignObject><text x="464" y="339" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">Path:/</text></switch></g><path d="M 370 383 L 445 383 L 445 423 L 513.63 423" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 518.88 423 L 511.88 426.5 L 513.63 423 L 511.88 419.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" 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: 1px; height: 1px; padding-top: 425px; margin-left: 457px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); "><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">Path:/api</div></div></div></foreignObject><text x="457" y="428" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">Path:/api</text></switch></g><path d="M 224.24 353 L 355.26 353 C 363.4 353 370 366.43 370 383 C 370 399.57 363.4 413 355.26 413 L 224.24 413 C 216.1 413 209.5 399.57 209.5 383 C 209.5 366.43 216.1 353 224.24 353 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 355.26 353 C 347.12 353 340.52 366.43 340.52 383 C 340.52 399.57 347.12 413 355.26 413" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" 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: 159px; height: 1px; padding-top: 383px; margin-left: 211px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div>admin.bh.com</div></div></div></div></foreignObject><text x="290" y="387" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">admin.bh.com</text></switch></g><rect x="270" y="303" width="39" height="50" fill="none" stroke="none" pointer-events="all"/><path d="M 272.32 353 C 271.19 352.64 270.32 351.74 270 350.61 L 270 325.51 C 270.27 324.32 271.15 323.36 272.32 322.97 L 275.2 322.97 L 275.2 316.31 C 275.22 312.79 276.7 309.42 279.3 307 C 281.9 304.58 285.4 303.31 288.97 303.49 C 292.72 303 296.5 304.13 299.34 306.59 C 302.18 309.04 303.81 312.59 303.8 316.31 L 303.8 322.97 L 306.28 322.97 C 307.6 323.24 308.66 324.22 309 325.51 L 309 350.61 C 308.66 351.78 307.72 352.68 306.53 353 Z M 291.44 348.08 L 291.44 337.69 C 293.29 336.82 294.28 334.8 293.83 332.83 C 293.38 330.86 291.6 329.46 289.55 329.46 C 287.5 329.46 285.72 330.86 285.27 332.83 C 284.82 334.8 285.81 336.82 287.66 337.69 L 287.66 348.08 Z M 299.11 322.97 L 299.11 316.06 C 298.71 311.2 294.42 307.55 289.47 307.86 C 284.57 307.6 280.34 311.24 279.94 316.06 L 279.94 322.97 Z" fill="#00188d" stroke="none" pointer-events="all"/><rect x="520" y="293" width="80" height="80" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" 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: 78px; height: 1px; padding-top: 333px; margin-left: 521px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Admin Client</div></div></div></foreignObject><text x="560" y="337" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Admin Client</text></switch></g><path d="M 600 423 L 773.63 423" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 778.88 423 L 771.88 426.5 L 773.63 423 L 771.88 419.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" 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: 1px; height: 1px; padding-top: 414px; margin-left: 718px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); "><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><div>/v1/sync</div></div></div></div></foreignObject><text x="718" y="417" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">/v1/sync</text></switch></g><path d="M 600 423 L 650 423 L 650 233 L 773.63 233" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 778.88 233 L 771.88 236.5 L 773.63 233 L 771.88 229.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" 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: 1px; height: 1px; padding-top: 244px; margin-left: 721px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); "><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><div>/v1/notify</div></div></div></div></foreignObject><text x="721" y="247" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">/v1/notify</text></switch></g><rect x="520" y="383" width="80" height="80" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" 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: 78px; height: 1px; padding-top: 423px; margin-left: 521px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div>Proxy Admin</div></div></div></div></foreignObject><text x="560" y="427" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Proxy Admin</text></switch></g><path d="M 600 143 L 650 143 L 650 53 L 763.63 53" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 768.88 53 L 761.88 56.5 L 763.63 53 L 761.88 49.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" 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: 1px; height: 1px; padding-top: 39px; margin-left: 711px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); "><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><div>/v1/upcoming</div></div></div></div></foreignObject><text x="711" y="42" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">/v1/upcoming</text></switch></g><path d="M 600 143 L 650 143 L 650 233 L 773.63 233" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 778.88 233 L 771.88 236.5 L 773.63 233 L 771.88 229.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" 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: 1px; height: 1px; padding-top: 204px; margin-left: 721px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); "><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><div>/v1/register</div><div>/v1/verify</div><div>/v1/unsubscribe<br /></div></div></div></div></foreignObject><text x="721" y="207" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">/v1/register...</text></switch></g><rect x="520" y="103" width="80" height="80" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" 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: 78px; height: 1px; padding-top: 143px; margin-left: 521px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Proxy Web</div></div></div></foreignObject><text x="560" y="147" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Proxy Web</text></switch></g><path d="M 850 53 L 913.63 53" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 918.88 53 L 911.88 56.5 L 913.63 53 L 911.88 49.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="770" y="13" width="80" height="80" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" 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: 78px; height: 1px; padding-top: 53px; margin-left: 771px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div>Catalog</div></div></div></div></foreignObject><text x="810" y="57" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Catalog</text></switch></g><path d="M 860 233 L 913.63 233" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 918.88 233 L 911.88 236.5 L 913.63 233 L 911.88 229.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="780" y="193" width="80" height="80" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" 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: 78px; height: 1px; padding-top: 233px; margin-left: 781px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div>Ringman</div></div></div></div></foreignObject><text x="820" y="237" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Ringman</text></switch></g><path d="M 920 195.5 C 920 187.22 937.91 180.5 960 180.5 C 970.61 180.5 980.78 182.08 988.28 184.89 C 995.79 187.71 1000 191.52 1000 195.5 L 1000 270.5 C 1000 278.78 982.09 285.5 960 285.5 C 937.91 285.5 920 278.78 920 270.5 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 1000 195.5 C 1000 203.78 982.09 210.5 960 210.5 C 937.91 210.5 920 203.78 920 195.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" 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: 78px; height: 1px; padding-top: 246px; margin-left: 921px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ringman-db</div></div></div></foreignObject><text x="960" y="249" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">ringman-db</text></switch></g><path d="M 920 385.5 C 920 377.22 937.91 370.5 960 370.5 C 970.61 370.5 980.78 372.08 988.28 374.89 C 995.79 377.71 1000 381.52 1000 385.5 L 1000 460.5 C 1000 468.78 982.09 475.5 960 475.5 C 937.91 475.5 920 468.78 920 460.5 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 1000 385.5 C 1000 393.78 982.09 400.5 960 400.5 C 937.91 400.5 920 393.78 920 385.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" 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: 78px; height: 1px; padding-top: 436px; margin-left: 921px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">runner-db</div></div></div></foreignObject><text x="960" y="439" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">runner-db</text></switch></g><path d="M 560 543 L 560 469.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 560 464.12 L 563.5 471.12 L 560 469.37 L 556.5 471.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" 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: 1px; height: 1px; padding-top: 534px; margin-left: 621px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); "><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">curl /api/v1/sync</div></div></div></foreignObject><text x="621" y="537" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">curl /api/v1/sync</text></switch></g><rect x="520" y="543" width="80" height="80" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" 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: 78px; height: 1px; padding-top: 583px; margin-left: 521px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div>sync-cronjob</div></div></div></div></foreignObject><text x="560" y="587" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">sync-cronjob</text></switch></g><path d="M 720 543 L 720 503 L 560 503 L 560 469.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 560 464.12 L 563.5 471.12 L 560 469.37 L 556.5 471.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="680" y="543" width="80" height="80" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" 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: 78px; height: 1px; padding-top: 583px; margin-left: 681px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div>notify-cronjob</div></div></div></div></foreignObject><text x="720" y="587" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">notify-cronjob</text></switch></g><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: 1px; height: 1px; padding-top: 524px; margin-left: 771px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); "><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">curl /api/v1/notify</div></div></div></foreignObject><text x="771" y="527" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">curl /api/v1/notify</text></switch></g></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%">Text is not SVG - cannot display</text></a></switch></svg>