j40-cejst-2/docs/architecture/architecture-mmd.svg
Nat Hillard 54fa016af1
Architecture Diagram and Process (#33)
* Use compile mermaid extension

* initial Mermaid arch diagram

* updating mmd extension

* small mmd update

* Adding git add step

* Expanding acronym

* adding branch spec

* Add changes

* outputting SVG instead as PNG is too small

* Add changes

* updating readme

* Backlog->Roadmap

* Add changes

* Updating casing for consistency

* Updating documentation to specify 'update' section applies just to diagram

Co-authored-by: GitHub Action <action@github.com>
2021-05-10 16:15:42 -04:00

1 line
No EOL
26 KiB
XML

<svg id="mermaid-1620672700833" width="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="326.3297119140625" style="max-width: 2583px;" viewBox="0 0 2583 326.3297119140625"><style>#mermaid-1620672700833{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-1620672700833 .error-icon{fill:#552222;}#mermaid-1620672700833 .error-text{fill:#552222;stroke:#552222;}#mermaid-1620672700833 .edge-thickness-normal{stroke-width:2px;}#mermaid-1620672700833 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-1620672700833 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-1620672700833 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-1620672700833 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-1620672700833 .marker{fill:#333333;stroke:#333333;}#mermaid-1620672700833 .marker.cross{stroke:#333333;}#mermaid-1620672700833 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-1620672700833 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-1620672700833 .cluster-label text{fill:#333;}#mermaid-1620672700833 .cluster-label span{color:#333;}#mermaid-1620672700833 .label text,#mermaid-1620672700833 span{fill:#333;color:#333;}#mermaid-1620672700833 .node rect,#mermaid-1620672700833 .node circle,#mermaid-1620672700833 .node ellipse,#mermaid-1620672700833 .node polygon,#mermaid-1620672700833 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-1620672700833 .node .label{text-align:center;}#mermaid-1620672700833 .node.clickable{cursor:pointer;}#mermaid-1620672700833 .arrowheadPath{fill:#333333;}#mermaid-1620672700833 .edgePath .path{stroke:#333333;stroke-width:1.5px;}#mermaid-1620672700833 .flowchart-link{stroke:#333333;fill:none;}#mermaid-1620672700833 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-1620672700833 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-1620672700833 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-1620672700833 .cluster text{fill:#333;}#mermaid-1620672700833 .cluster span{color:#333;}#mermaid-1620672700833 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80,100%,96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-1620672700833:root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}#mermaid-1620672700833 flowchart{fill:apa;}</style><g><g class="output"><g class="clusters"><g class="cluster" id="flowchart-oc-62" transform="translate(2124.5,96)" style="opacity: 1;"><rect width="287" height="108" x="-143.5" y="-54"></rect><g class="label" transform="translate(0, -40)" id="mermaid-1620672700833Text"><g transform="translate(-46.5,-9)"><foreignObject width="93" height="18"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">Other Clients</div></foreignObject></g></g></g><g class="cluster" id="flowchart-j40-63" transform="translate(2178.5,259.3296699523926)" style="opacity: 1;"><rect width="793" height="118" x="-396.5" y="-59"></rect><g class="label" transform="translate(0, -45)" id="mermaid-1620672700833Text"><g transform="translate(-57,-9)"><foreignObject width="114" height="18"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">Justice40 Client</div></foreignObject></g></g></g><g class="cluster" id="flowchart-s-64" transform="translate(1420.5,106)" style="opacity: 1;"><rect width="1021" height="148.65933990478516" x="-510.5" y="-74.32966995239258"></rect><g class="label" transform="translate(0, -60.32966613769531)" id="mermaid-1620672700833Text"><g transform="translate(-32.5,-9)"><foreignObject width="65" height="18"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">Server(s)</div></foreignObject></g></g></g><g class="cluster" id="flowchart-dp-65" transform="translate(643,106)" style="opacity: 1;"><rect width="434" height="196" x="-217" y="-98"></rect><g class="label" transform="translate(0, -84)" id="mermaid-1620672700833Text"><g transform="translate(-48.5,-9)"><foreignObject width="97" height="18"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">Data Pipeline</div></foreignObject></g></g></g><g class="cluster" id="flowchart-ds-66" transform="translate(192,106)" style="opacity: 1;"><rect width="368" height="108" x="-184" y="-54"></rect><g class="label" transform="translate(0, -40)" id="mermaid-1620672700833Text"><g transform="translate(-52.5,-9)"><foreignObject width="105" height="18"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">Data Selection</div></foreignObject></g></g></g></g><g class="edgePaths"><g class="edgePath LS-Intake LE-Roadmap" id="L-Intake-Roadmap" style="opacity: 1;"><path class="path" d="M96,106L121,106L146,106" marker-end="url(#arrowhead186)" style="fill:none"></path><defs><marker id="arrowhead186" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath LS-Roadmap LE-Voting" id="L-Roadmap-Voting" style="opacity: 1;"><path class="path" d="M236,106L261,106L286,106" marker-end="url(#arrowhead187)" style="fill:none"></path><defs><marker id="arrowhead187" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath LS-Voting LE-Approved" id="L-Voting-Approved" style="opacity: 1;"><path class="path" d="M351,106L376,106L401,106L426,106L451,106" marker-end="url(#arrowhead188)" style="fill:none"></path><defs><marker id="arrowhead188" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath LS-Approved LE-Properties" id="L-Approved-Properties" style="opacity: 1;"><path class="path" d="M525.5113636363636,87L565,62L594.5,62" marker-end="url(#arrowhead189)" style="fill:none"></path><defs><marker id="arrowhead189" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath LS-Approved LE-Geometries" id="L-Approved-Geometries" style="opacity: 1;"><path class="path" d="M525.5113636363636,125L565,150L590,150" marker-end="url(#arrowhead190)" style="fill:none"></path><defs><marker id="arrowhead190" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath LS-Properties LE-GeoJSON" id="L-Properties-GeoJSON" style="opacity: 1;"><path class="path" d="M687.5,62L717,62L757.625,87" marker-end="url(#arrowhead191)" style="fill:none"></path><defs><marker id="arrowhead191" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath LS-Geometries LE-GeoJSON" id="L-Geometries-GeoJSON" style="opacity: 1;"><path class="path" d="M692,150L717,150L757.625,125" marker-end="url(#arrowhead192)" style="fill:none"></path><defs><marker id="arrowhead192" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath LS-GeoJSON LE-db" id="L-GeoJSON-db" style="opacity: 1;"><path class="path" d="M835,106L860,106L885,106L910,106L935,106" marker-end="url(#arrowhead193)" style="fill:none"></path><defs><marker id="arrowhead193" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath LS-db LE-tileserv" id="L-db-tileserv" style="opacity: 1;"><path class="path" d="M1083,106L1108,106L1133,106" marker-end="url(#arrowhead194)" style="fill:none"></path><defs><marker id="arrowhead194" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath LS-tileserv LE-lb" id="L-tileserv-lb" style="opacity: 1;"><path class="path" d="M1230,106L1255,106L1280,106" marker-end="url(#arrowhead195)" style="fill:none"></path><defs><marker id="arrowhead195" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath LS-lb LE-auth" id="L-lb-auth" style="opacity: 1;"><path class="path" d="M1404,106L1429,106L1454,106" marker-end="url(#arrowhead196)" style="fill:none"></path><defs><marker id="arrowhead196" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath LS-auth LE-api" id="L-auth-api" style="opacity: 1;"><path class="path" d="M1732,106L1757,106L1782,106L1835.5,106" marker-end="url(#arrowhead197)" style="fill:none"></path><defs><marker id="arrowhead197" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath LS-api LE-vl" id="L-api-vl" style="opacity: 1;"><path class="path" d="M1877.5,113.65720180537076L1931,133.1648349761963L1956,237.32966995239258L1981,237.32966995239258L2006,240.29134242626017" marker-end="url(#arrowhead198)" style="fill:none"></path><defs><marker id="arrowhead198" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath LS-ts LE-vl" id="L-ts-vl" style="opacity: 1;"><path class="path" d="M1906,264.3296699523926L1931,264.3296699523926L1956,264.3296699523926L1981,264.3296699523926L2006,262.58750967364693" marker-end="url(#arrowhead199)" style="fill:none"></path><defs><marker id="arrowhead199" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath LS-vl LE-fe" id="L-vl-fe" style="opacity: 1;"><path class="path" d="M2243,254.32966995239258L2268,254.32966995239258L2293,254.32966995239258L2318,254.32966995239258" marker-end="url(#arrowhead200)" style="fill:none"></path><defs><marker id="arrowhead200" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath LS-api LE-3p" id="L-api-3p" style="opacity: 1;"><path class="path" d="M1877.5,103.18120805369128L1931,96L1956,96L1981,96L2055,96" marker-end="url(#arrowhead201)" style="fill:none"></path><defs><marker id="arrowhead201" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g></g><g class="edgeLabels"><g class="edgeLabel" transform="" style="opacity: 1;"><g transform="translate(0,0)" class="label"><rect rx="0" ry="0" width="0" height="0"></rect><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-Intake-Roadmap" class="edgeLabel L-LS-Intake' L-LE-Roadmap"></span></div></foreignObject></g></g><g class="edgeLabel" transform="" style="opacity: 1;"><g transform="translate(0,0)" class="label"><rect rx="0" ry="0" width="0" height="0"></rect><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-Roadmap-Voting" class="edgeLabel L-LS-Roadmap' L-LE-Voting"></span></div></foreignObject></g></g><g class="edgeLabel" transform="" style="opacity: 1;"><g transform="translate(0,0)" class="label"><rect rx="0" ry="0" width="0" height="0"></rect><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-Voting-Approved" class="edgeLabel L-LS-Voting' L-LE-Approved"></span></div></foreignObject></g></g><g class="edgeLabel" transform="" style="opacity: 1;"><g transform="translate(0,0)" class="label"><rect rx="0" ry="0" width="0" height="0"></rect><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-Approved-Properties" class="edgeLabel L-LS-Approved' L-LE-Properties"></span></div></foreignObject></g></g><g class="edgeLabel" transform="" style="opacity: 1;"><g transform="translate(0,0)" class="label"><rect rx="0" ry="0" width="0" height="0"></rect><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-Approved-Geometries" class="edgeLabel L-LS-Approved' L-LE-Geometries"></span></div></foreignObject></g></g><g class="edgeLabel" transform="" style="opacity: 1;"><g transform="translate(0,0)" class="label"><rect rx="0" ry="0" width="0" height="0"></rect><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-Properties-GeoJSON" class="edgeLabel L-LS-Properties' L-LE-GeoJSON"></span></div></foreignObject></g></g><g class="edgeLabel" transform="" style="opacity: 1;"><g transform="translate(0,0)" class="label"><rect rx="0" ry="0" width="0" height="0"></rect><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-Geometries-GeoJSON" class="edgeLabel L-LS-Geometries' L-LE-GeoJSON"></span></div></foreignObject></g></g><g class="edgeLabel" transform="" style="opacity: 1;"><g transform="translate(0,0)" class="label"><rect rx="0" ry="0" width="0" height="0"></rect><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-GeoJSON-db" class="edgeLabel L-LS-GeoJSON' L-LE-db"></span></div></foreignObject></g></g><g class="edgeLabel" transform="" style="opacity: 1;"><g transform="translate(0,0)" class="label"><rect rx="0" ry="0" width="0" height="0"></rect><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-db-tileserv" class="edgeLabel L-LS-db' L-LE-tileserv"></span></div></foreignObject></g></g><g class="edgeLabel" transform="" style="opacity: 1;"><g transform="translate(0,0)" class="label"><rect rx="0" ry="0" width="0" height="0"></rect><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-tileserv-lb" class="edgeLabel L-LS-tileserv' L-LE-lb"></span></div></foreignObject></g></g><g class="edgeLabel" transform="" style="opacity: 1;"><g transform="translate(0,0)" class="label"><rect rx="0" ry="0" width="0" height="0"></rect><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-lb-auth" class="edgeLabel L-LS-lb' L-LE-auth"></span></div></foreignObject></g></g><g class="edgeLabel" transform="" style="opacity: 1;"><g transform="translate(0,0)" class="label"><rect rx="0" ry="0" width="0" height="0"></rect><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-auth-api" class="edgeLabel L-LS-auth' L-LE-api"></span></div></foreignObject></g></g><g class="edgeLabel" transform="" style="opacity: 1;"><g transform="translate(0,0)" class="label"><rect rx="0" ry="0" width="0" height="0"></rect><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-api-vl" class="edgeLabel L-LS-api' L-LE-vl"></span></div></foreignObject></g></g><g class="edgeLabel" transform="" style="opacity: 1;"><g transform="translate(0,0)" class="label"><rect rx="0" ry="0" width="0" height="0"></rect><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-ts-vl" class="edgeLabel L-LS-ts' L-LE-vl"></span></div></foreignObject></g></g><g class="edgeLabel" transform="" style="opacity: 1;"><g transform="translate(0,0)" class="label"><rect rx="0" ry="0" width="0" height="0"></rect><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-vl-fe" class="edgeLabel L-LS-vl' L-LE-fe"></span></div></foreignObject></g></g><g class="edgeLabel" transform="" style="opacity: 1;"><g transform="translate(0,0)" class="label"><rect rx="0" ry="0" width="0" height="0"></rect><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-api-3p" class="edgeLabel L-LS-api' L-LE-3p"></span></div></foreignObject></g></g></g><g class="nodes"><g class="node default" id="flowchart-3p-61" transform="translate(2124.5,96)" style="opacity: 1;"><rect rx="0" ry="0" x="-69.5" y="-19" width="139" height="38" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-59.5,-9)"><foreignObject width="119" height="18"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">Third Party Apps</div></foreignObject></g></g></g><g class="node default" id="flowchart-vl-55" transform="translate(2124.5,254.32966995239258)" style="opacity: 1;"><rect rx="0" ry="0" x="-118.5" y="-19" width="237" height="38" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-108.5,-9)"><foreignObject width="217" height="18"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">Justice40 Visualization Library</div></foreignObject></g></g></g><g class="node default" id="flowchart-ts-56" transform="translate(1856.5,264.3296699523926)" style="opacity: 1;"><rect rx="0" ry="0" x="-49.5" y="-19" width="99" height="38" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-39.5,-9)"><foreignObject width="79" height="18"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">Tile Styling</div></foreignObject></g></g></g><g class="node default" id="flowchart-fe-59" transform="translate(2434,254.32966995239258)" style="opacity: 1;"><rect rx="0" ry="0" x="-116" y="-19" width="232" height="38" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-106,-9)"><foreignObject width="212" height="18"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">Justice40 Static Site Frontend</div></foreignObject></g></g></g><g class="node default" id="flowchart-db-45" label-offset-y="13.553113553113553" transform="translate(1009,106)" style="opacity: 1;"><path d="M 0,13.553113553113553 a 74,13.553113553113553 0,0,0 148 0 a 74,13.553113553113553 0,0,0 -148 0 l 0,51.553113553113555 a 74,13.553113553113553 0,0,0 148 0 l 0,-51.553113553113555" transform="translate(-74,-39.32967032967033)" class="label-container"></path><g class="label" transform="translate(0,0)"><g transform="translate(-64,-9)"><foreignObject width="128" height="18"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">Feature Database</div></foreignObject></g></g></g><g class="node default" id="flowchart-tileserv-47" transform="translate(1181.5,106)" style="opacity: 1;"><rect rx="0" ry="0" x="-48.5" y="-19" width="97" height="38" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-38.5,-9)"><foreignObject width="77" height="18"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">Tile Server</div></foreignObject></g></g></g><g class="node default" id="flowchart-lb-49" transform="translate(1342,106)" style="opacity: 1;"><rect rx="0" ry="0" x="-62" y="-19" width="124" height="38" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-52,-9)"><foreignObject width="104" height="18"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">Load Balancer</div></foreignObject></g></g></g><g class="node default" id="flowchart-auth-51" transform="translate(1593,106)" style="opacity: 1;"><rect rx="0" ry="0" x="-139" y="-19" width="278" height="38" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-129,-9)"><foreignObject width="258" height="18"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">Auth, IP Allowlist, API Key, OpenAPI</div></foreignObject></g></g></g><g class="node default" id="flowchart-api-53" transform="translate(1856.5,106)" style="opacity: 1;"><rect rx="0" ry="0" x="-21" y="-19" width="42" height="38" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-11,-9)"><foreignObject width="22" height="18"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">api</div></foreignObject></g></g></g><g class="node default" id="flowchart-Approved-35" transform="translate(495.5,106)" style="opacity: 1;"><rect rx="0" ry="0" x="-44.5" y="-19" width="89" height="38" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-34.5,-9)"><foreignObject width="69" height="18"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">Approved</div></foreignObject></g></g></g><g class="node default" id="flowchart-Properties-37" transform="translate(641,62)" style="opacity: 1;"><rect rx="0" ry="0" x="-46.5" y="-19" width="93" height="38" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-36.5,-9)"><foreignObject width="73" height="18"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">Properties</div></foreignObject></g></g></g><g class="node default" id="flowchart-Geometries-39" transform="translate(641,150)" style="opacity: 1;"><rect rx="0" ry="0" x="-51" y="-19" width="102" height="38" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-41,-9)"><foreignObject width="82" height="18"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">Geometries</div></foreignObject></g></g></g><g class="node default" id="flowchart-GeoJSON-41" transform="translate(788.5,106)" style="opacity: 1;"><rect rx="0" ry="0" x="-46.5" y="-19" width="93" height="38" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-36.5,-9)"><foreignObject width="73" height="18"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">GeoJSON</div></foreignObject></g></g></g><g class="node default" id="flowchart-Voting-33" transform="translate(318.5,106)" style="opacity: 1;"><rect rx="0" ry="0" x="-32.5" y="-19" width="65" height="38" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-22.5,-9)"><foreignObject width="45" height="18"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">Voting</div></foreignObject></g></g></g><g class="node default" id="flowchart-Roadmap-32" transform="translate(191,106)" style="opacity: 1;"><rect rx="0" ry="0" x="-45" y="-19" width="90" height="38" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-35,-9)"><foreignObject width="70" height="18"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">Roadmap</div></foreignObject></g></g></g><g class="node default" id="flowchart-Intake-31" transform="translate(64.5,106)" style="opacity: 1;"><rect rx="0" ry="0" x="-31.5" y="-19" width="63" height="38" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-21.5,-9)"><foreignObject width="43" height="18"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">Intake</div></foreignObject></g></g></g></g></g></g></svg>