Files
postgrest/docs/_static/arch-dark.svg
T

1 line
28 KiB
XML

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" height="666px" preserveAspectRatio="none" style="width:1681px;height:666px;" version="1.1" viewBox="0 0 1681 666" width="1681px" zoomAndPan="magnify"><defs/><g><!--cluster PostgREST--><g id="cluster_PostgREST"><path d="M327.64,128.8 L413.5423,128.8 A3.75,3.75 0 0 1 416.0423,131.3 L423.0423,151.0969 L945.64,151.0969 A2.5,2.5 0 0 1 948.14,153.5969 L948.14,510.89 A2.5,2.5 0 0 1 945.64,513.39 L327.64,513.39 A2.5,2.5 0 0 1 325.14,510.89 L325.14,131.3 A2.5,2.5 0 0 1 327.64,128.8 " fill="none" style="stroke:#FFFFFF;stroke-width:1.5;"/><line style="stroke:#FFFFFF;stroke-width:1.5;" x1="325.14" x2="423.0423" y1="151.0969" y2="151.0969"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="84.9023" x="329.14" y="143.7951">PostgREST</text></g><!--cluster PostgreSQL--><g id="cluster_PostgreSQL"><path d="M980.14,310.1 C980.14,300.1 1261.64,300.1 1261.64,300.1 C1261.64,300.1 1543.14,300.1 1543.14,310.1 L1543.14,639.69 C1543.14,649.69 1261.64,649.69 1261.64,649.69 C1261.64,649.69 980.14,649.69 980.14,639.69 L980.14,310.1 " fill="none" style="stroke:#E7E7E7;stroke-width:1.0;"/><path d="M980.14,310.1 C980.14,320.1 1261.64,320.1 1261.64,320.1 C1261.64,320.1 1543.14,320.1 1543.14,310.1 " fill="none" style="stroke:#E7E7E7;stroke-width:1.0;"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="92.2305" x="1215.5248" y="335.0951">PostgreSQL</text></g><!--cluster Authorization--><g id="cluster_Authorization"><a href="../explanations/db_authz.html" target="_top" title="../explanations/db_authz.html" xlink:actuate="onRequest" xlink:href="../explanations/db_authz.html" xlink:show="new" xlink:title="../explanations/db_authz.html" xlink:type="simple"><polygon fill="none" points="1020.14,394.1,1030.14,384.1,1243.14,384.1,1243.14,506.39,1233.14,516.39,1020.14,516.39,1020.14,394.1" style="stroke:#E7E7E7;stroke-width:1.0;"/><line style="stroke:#E7E7E7;stroke-width:1.0;" x1="1233.14" x2="1243.14" y1="394.1" y2="384.1"/><line style="stroke:#E7E7E7;stroke-width:1.0;" x1="1020.14" x2="1233.14" y1="394.1" y2="394.1"/><line style="stroke:#E7E7E7;stroke-width:1.0;" x1="1233.14" x2="1233.14" y1="394.1" y2="516.39"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="107.4541" x="1073.9129" y="410.0951">Authorization</text></a></g><!--cluster API--><g id="cluster_API"><a href="../explanations/schema_isolation.html" target="_top" title="../explanations/schema_isolation.html" xlink:actuate="onRequest" xlink:href="../explanations/schema_isolation.html" xlink:show="new" xlink:title="../explanations/schema_isolation.html" xlink:type="simple"><polygon fill="none" points="1283.14,394.1,1293.14,384.1,1491.14,384.1,1491.14,506.39,1481.14,516.39,1283.14,516.39,1283.14,394.1" style="stroke:#E7E7E7;stroke-width:1.0;"/><line style="stroke:#E7E7E7;stroke-width:1.0;" x1="1481.14" x2="1491.14" y1="394.1" y2="384.1"/><line style="stroke:#E7E7E7;stroke-width:1.0;" x1="1283.14" x2="1481.14" y1="394.1" y2="394.1"/><line style="stroke:#E7E7E7;stroke-width:1.0;" x1="1481.14" x2="1481.14" y1="394.1" y2="516.39"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="91.3076" x="1337.4862" y="410.0951">API schema</text></a></g><!--entity HTTPAPI--><g id="elem_HTTPAPI"><a href="../explanations/architecture.html#http" target="_top" title="../explanations/architecture.html#http" xlink:actuate="onRequest" xlink:href="../explanations/architecture.html#http" xlink:show="new" xlink:title="../explanations/architecture.html#http" xlink:type="simple"><ellipse cx="350.14" cy="474.24" fill="#313139" rx="8" ry="8" style="stroke:#E7E7E7;stroke-width:0.5;"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="36.0732" x="332.1034" y="504.2351">HTTP</text></a></g><!--entity Auth--><g id="elem_Auth"><a href="../references/auth.html#authn" target="_top" title="../references/auth.html#authn" xlink:actuate="onRequest" xlink:href="../references/auth.html#authn" xlink:show="new" xlink:title="../references/auth.html#authn" xlink:type="simple"><rect fill="#313139" height="46.2969" rx="2.5" ry="2.5" style="stroke:#E7E7E7;stroke-width:0.5;" width="72.8125" x="393.74" y="451.1"/><rect fill="#313139" height="10" style="stroke:#E7E7E7;stroke-width:0.5;" width="15" x="446.5525" y="456.1"/><rect fill="#313139" height="2" style="stroke:#E7E7E7;stroke-width:0.5;" width="4" x="444.5525" y="458.1"/><rect fill="#313139" height="2" style="stroke:#E7E7E7;stroke-width:0.5;" width="4" x="444.5525" y="462.1"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="32.8125" x="408.74" y="484.0951">Auth</text></a></g><!--entity ApiRequest--><g id="elem_ApiRequest"><a href="../explanations/architecture.html#api-request" target="_top" title="../explanations/architecture.html#api-request" xlink:actuate="onRequest" xlink:href="../explanations/architecture.html#api-request" xlink:show="new" xlink:title="../explanations/architecture.html#api-request" xlink:type="simple"><rect fill="#313139" height="46.2969" rx="2.5" ry="2.5" style="stroke:#E7E7E7;stroke-width:0.5;" width="119.8506" x="501.22" y="451.1"/><rect fill="#313139" height="10" style="stroke:#E7E7E7;stroke-width:0.5;" width="15" x="601.0706" y="456.1"/><rect fill="#313139" height="2" style="stroke:#E7E7E7;stroke-width:0.5;" width="4" x="599.0706" y="458.1"/><rect fill="#313139" height="2" style="stroke:#E7E7E7;stroke-width:0.5;" width="4" x="599.0706" y="462.1"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="79.8506" x="516.22" y="484.0951">ApiRequest</text></a></g><!--entity Plan--><g id="elem_Plan"><a href="../explanations/architecture.html#plan" target="_top" title="../explanations/architecture.html#plan" xlink:actuate="onRequest" xlink:href="../explanations/architecture.html#plan" xlink:show="new" xlink:title="../explanations/architecture.html#plan" xlink:type="simple"><rect fill="#313139" height="46.2969" rx="2.5" ry="2.5" style="stroke:#E7E7E7;stroke-width:0.5;" width="69.7842" x="656.25" y="451.1"/><rect fill="#313139" height="10" style="stroke:#E7E7E7;stroke-width:0.5;" width="15" x="706.0342" y="456.1"/><rect fill="#313139" height="2" style="stroke:#E7E7E7;stroke-width:0.5;" width="4" x="704.0342" y="458.1"/><rect fill="#313139" height="2" style="stroke:#E7E7E7;stroke-width:0.5;" width="4" x="704.0342" y="462.1"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="29.7842" x="671.25" y="484.0951">Plan</text></a></g><!--entity Query--><g id="elem_Query"><a href="../explanations/architecture.html#query" target="_top" title="../explanations/architecture.html#query" xlink:actuate="onRequest" xlink:href="../explanations/architecture.html#query" xlink:show="new" xlink:title="../explanations/architecture.html#query" xlink:type="simple"><rect fill="#313139" height="46.2969" rx="2.5" ry="2.5" style="stroke:#E7E7E7;stroke-width:0.5;" width="82.5469" x="761.87" y="451.1"/><rect fill="#313139" height="10" style="stroke:#E7E7E7;stroke-width:0.5;" width="15" x="824.4169" y="456.1"/><rect fill="#313139" height="2" style="stroke:#E7E7E7;stroke-width:0.5;" width="4" x="822.4169" y="458.1"/><rect fill="#313139" height="2" style="stroke:#E7E7E7;stroke-width:0.5;" width="4" x="822.4169" y="462.1"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="42.5469" x="776.87" y="484.0951">Query</text></a></g><!--entity Connection Pool--><g id="elem_Connection Pool"><a href="../references/connection_pool.html" target="_top" title="../references/connection_pool.html" xlink:actuate="onRequest" xlink:href="../references/connection_pool.html" xlink:show="new" xlink:title="../references/connection_pool.html" xlink:type="simple"><ellipse cx="923.14" cy="474.24" fill="#313139" rx="8" ry="8" style="stroke:#E7E7E7;stroke-width:0.5;"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="113.1279" x="866.576" y="504.2351">Connection Pool</text></a></g><!--entity Schema Cache--><g id="elem_Schema Cache"><a href="../references/schema_cache.html#schema-cache" target="_top" title="../references/schema_cache.html#schema-cache" xlink:actuate="onRequest" xlink:href="../references/schema_cache.html#schema-cache" xlink:show="new" xlink:title="../references/schema_cache.html#schema-cache" xlink:type="simple"><rect fill="#313139" height="46.2969" rx="2.5" ry="2.5" style="stroke:#E7E7E7;stroke-width:0.5;" width="144.2754" x="686.01" y="182.8"/><rect fill="#313139" height="10" style="stroke:#E7E7E7;stroke-width:0.5;" width="15" x="810.2854" y="187.8"/><rect fill="#313139" height="2" style="stroke:#E7E7E7;stroke-width:0.5;" width="4" x="808.2854" y="189.8"/><rect fill="#313139" height="2" style="stroke:#E7E7E7;stroke-width:0.5;" width="4" x="808.2854" y="193.8"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="104.2754" x="701.01" y="215.7951">Schema Cache</text></a></g><!--entity Listener--><g id="elem_Listener"><a href="../references/listener.html#listener" target="_top" title="../references/listener.html#listener" xlink:actuate="onRequest" xlink:href="../references/listener.html#listener" xlink:show="new" xlink:title="../references/listener.html#listener" xlink:type="simple"><ellipse cx="923.14" cy="205.95" fill="#313139" rx="8" ry="8" style="stroke:#E7E7E7;stroke-width:0.5;"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="56.3281" x="894.9759" y="235.9451">Listener</text></a></g><!--entity HTTPADMIN--><g id="elem_HTTPADMIN"><a href="../explanations/architecture.html#http" target="_top" title="../explanations/architecture.html#http" xlink:actuate="onRequest" xlink:href="../explanations/architecture.html#http" xlink:show="new" xlink:title="../explanations/architecture.html#http" xlink:type="simple"><ellipse cx="469.14" cy="205.95" fill="#313139" rx="8" ry="8" style="stroke:#E7E7E7;stroke-width:0.5;"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="36.0732" x="451.1034" y="235.9451">HTTP</text></a></g><!--entity Admin--><g id="elem_Admin"><a href="../references/admin_server.html#admin-server" target="_top" title="../references/admin_server.html#admin-server" xlink:actuate="onRequest" xlink:href="../references/admin_server.html#admin-server" xlink:show="new" xlink:title="../references/admin_server.html#admin-server" xlink:type="simple"><rect fill="#313139" height="46.2969" rx="2.5" ry="2.5" style="stroke:#E7E7E7;stroke-width:0.5;" width="84.8643" x="340.71" y="182.8"/><rect fill="#313139" height="10" style="stroke:#E7E7E7;stroke-width:0.5;" width="15" x="405.5743" y="187.8"/><rect fill="#313139" height="2" style="stroke:#E7E7E7;stroke-width:0.5;" width="4" x="403.5743" y="189.8"/><rect fill="#313139" height="2" style="stroke:#E7E7E7;stroke-width:0.5;" width="4" x="403.5743" y="193.8"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="44.8643" x="355.71" y="215.7951">Admin</text></a></g><!--entity Config--><g id="elem_Config"><a href="../references/configuration.html#configuration" target="_top" title="../references/configuration.html#configuration" xlink:actuate="onRequest" xlink:href="../references/configuration.html#configuration" xlink:show="new" xlink:title="../references/configuration.html#configuration" xlink:type="simple"><rect fill="#313139" height="46.2969" rx="2.5" ry="2.5" style="stroke:#E7E7E7;stroke-width:0.5;" width="84.9189" x="565.68" y="182.8"/><rect fill="#313139" height="10" style="stroke:#E7E7E7;stroke-width:0.5;" width="15" x="630.5989" y="187.8"/><rect fill="#313139" height="2" style="stroke:#E7E7E7;stroke-width:0.5;" width="4" x="628.5989" y="189.8"/><rect fill="#313139" height="2" style="stroke:#E7E7E7;stroke-width:0.5;" width="4" x="628.5989" y="193.8"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="44.9189" x="580.68" y="215.7951">Config</text></a></g><!--entity CLI--><g id="elem_CLI"><a href="../references/cli.html#cli" target="_top" title="../references/cli.html#cli" xlink:actuate="onRequest" xlink:href="../references/cli.html#cli" xlink:show="new" xlink:title="../references/cli.html#cli" xlink:type="simple"><ellipse cx="522.14" cy="205.95" fill="#313139" rx="8" ry="8" style="stroke:#E7E7E7;stroke-width:0.5;"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="21.7041" x="511.2879" y="235.9451">CLI</text></a></g><!--entity tbs--><g id="elem_tbs"><rect fill="#313139" height="36.2969" rx="2.5" ry="2.5" style="stroke:#E7E7E7;stroke-width:0.5;" width="150.5049" x="1356.89" y="589.39"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="130.5049" x="1366.89" y="612.3851">Tables, extensions</text></g><!--entity Roles, GRANT, RLS--><g id="elem_Roles, GRANT, RLS"><rect fill="#313139" height="36.2969" rx="2.5" ry="2.5" style="stroke:#E7E7E7;stroke-width:0.5;" width="151.4824" x="1044.4" y="456.1"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="131.4824" x="1054.4" y="479.0951">Roles, GRANT, RLS</text></g><!--entity Functions, Views--><g id="elem_Functions, Views"><rect fill="#313139" height="36.2969" rx="2.5" ry="2.5" style="stroke:#E7E7E7;stroke-width:0.5;" width="137.332" x="1307.48" y="456.1"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="117.332" x="1317.48" y="479.0951">Functions, Views</text></g><!--entity user--><g id="elem_user"><ellipse cx="63.1481" cy="444.6" fill="#313139" rx="8" ry="8" style="stroke:#E7E7E7;stroke-width:0.5;"/><path d="M63.1481,452.6 L63.1481,479.6 M50.1481,460.6 L76.1481,460.6 M63.1481,479.6 L50.1481,494.6 M63.1481,479.6 L76.1481,494.6 " fill="none" style="stroke:#E7E7E7;stroke-width:0.5;"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="30.5361" x="47.88" y="509.0951">user</text></g><!--entity Proxy--><g id="elem_Proxy"><a href="../explanations/nginx.html" target="_top" title="../explanations/nginx.html" xlink:actuate="onRequest" xlink:href="../explanations/nginx.html" xlink:show="new" xlink:title="../explanations/nginx.html" xlink:type="simple"><polygon fill="#313139" points="303.48,474.24,283.81,461.1,244.48,461.1,224.81,474.24,244.48,487.39,283.81,487.39,303.48,474.24" style="stroke:#E7E7E7;stroke-width:0.5;"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="39.334" x="244.477" y="479.0951">Proxy</text></a></g><!--entity ExternalAuth--><g id="elem_ExternalAuth"><a href="../explanations/external_auth.html" target="_top" title="../explanations/external_auth.html" xlink:actuate="onRequest" xlink:href="../explanations/external_auth.html" xlink:show="new" xlink:title="../explanations/external_auth.html" xlink:type="simple"><polygon fill="#313139" points="198.29,607.54,152.72,594.39,61.57,594.39,16,607.54,61.57,620.69,152.72,620.69,198.29,607.54" style="stroke:#E7E7E7;stroke-width:0.5;"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="91.1436" x="61.5718" y="612.3851">ExternalAuth</text></a></g><!--entity operator--><g id="elem_operator"><ellipse cx="493.1455" cy="14" fill="#313139" rx="8" ry="8" style="stroke:#E7E7E7;stroke-width:0.5;"/><path d="M493.1455,22 L493.1455,49 M480.1455,30 L506.1455,30 M493.1455,49 L480.1455,64 M493.1455,49 L506.1455,64 " fill="none" style="stroke:#E7E7E7;stroke-width:0.5;"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="60.2109" x="463.04" y="78.4951">operator</text></g><!--entity developer--><g id="elem_developer"><ellipse cx="1639.1447" cy="444.6" fill="#313139" rx="8" ry="8" style="stroke:#E7E7E7;stroke-width:0.5;"/><path d="M1639.1447,452.6 L1639.1447,479.6 M1626.1447,460.6 L1652.1447,460.6 M1639.1447,479.6 L1626.1447,494.6 M1639.1447,479.6 L1652.1447,494.6 " fill="none" style="stroke:#E7E7E7;stroke-width:0.5;"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="70.1094" x="1604.09" y="509.0951">developer</text></g><g id="elem_GMN60"><path d="M233.44,594.98 L233.44,620.1128 L368.8375,620.1128 L368.8375,604.98 L358.8375,594.98 L233.44,594.98 " fill="#714137" style="stroke:#E7E7E7;stroke-width:0.5;"/><path d="M358.8375,594.98 L358.8375,604.98 L368.8375,604.98 L358.8375,594.98 " fill="#714137" style="stroke:#E7E7E7;stroke-width:1.0;"/><text fill="#FFFFFF" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="114.3975" x="239.44" y="612.0469">Validates the JWT</text></g><g id="elem_GMN63"><path d="M403.8,594.98 L403.8,620.1128 A0,0 0 0 0 403.8,620.1128 L570.4787,620.1128 A0,0 0 0 0 570.4787,620.1128 L570.4787,604.98 L560.4787,594.98 L497.94,594.98 L548.42,497.82 L489.94,594.98 L403.8,594.98 A0,0 0 0 0 403.8,594.98 " fill="#714137" style="stroke:#E7E7E7;stroke-width:0.5;"/><path d="M560.4787,594.98 L560.4787,604.98 L570.4787,604.98 L560.4787,594.98 " fill="#714137" style="stroke:#E7E7E7;stroke-width:0.5;"/><text fill="#FFFFFF" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="145.6787" x="409.8" y="612.0469">Parses the URL syntax</text></g><g id="elem_GMN66"><path d="M605.17,594.98 L605.17,620.1128 A0,0 0 0 0 605.17,620.1128 L777.1173,620.1128 A0,0 0 0 0 777.1173,620.1128 L777.1173,604.98 L767.1173,594.98 L695.14,594.98 L691.14,497.82 L687.14,594.98 L605.17,594.98 A0,0 0 0 0 605.17,594.98 " fill="#714137" style="stroke:#E7E7E7;stroke-width:0.5;"/><path d="M767.1173,594.98 L767.1173,604.98 L777.1173,604.98 L767.1173,594.98 " fill="#714137" style="stroke:#E7E7E7;stroke-width:0.5;"/><text fill="#FFFFFF" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="150.9473" x="611.17" y="612.0469">Generates internal AST</text></g><g id="elem_GMN69"><path d="M812.24,594.98 L812.24,620.1128 A0,0 0 0 0 812.24,620.1128 L956.0545,620.1128 A0,0 0 0 0 956.0545,620.1128 L956.0545,604.98 L946.0545,594.98 L880.71,594.98 L817.07,497.82 L872.71,594.98 L812.24,594.98 A0,0 0 0 0 812.24,594.98 " fill="#714137" style="stroke:#E7E7E7;stroke-width:0.5;"/><path d="M946.0545,594.98 L946.0545,604.98 L956.0545,604.98 L946.0545,594.98 " fill="#714137" style="stroke:#E7E7E7;stroke-width:0.5;"/><text fill="#FFFFFF" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="122.8145" x="818.24" y="612.0469">Generates the SQL</text></g><g id="elem_GMN72"><path d="M863.91,31.08 L863.91,56.2128 A0,0 0 0 0 863.91,56.2128 L919.14,56.2128 L923.14,196.8 L927.14,56.2128 L982.3719,56.2128 A0,0 0 0 0 982.3719,56.2128 L982.3719,41.08 L972.3719,31.08 L863.91,31.08 A0,0 0 0 0 863.91,31.08 " fill="#714137" style="stroke:#E7E7E7;stroke-width:0.5;"/><path d="M972.3719,31.08 L972.3719,41.08 L982.3719,41.08 L972.3719,31.08 " fill="#714137" style="stroke:#E7E7E7;stroke-width:0.5;"/><text fill="#FFFFFF" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="97.4619" x="869.91" y="48.1469">LISTEN session</text></g><!--link HTTPAPI to Auth--><g id="link_HTTPAPI_Auth"><path d="M359.52,474.24 C370.83,474.24 382.14,474.24 393.45,474.24 " fill="none" id="HTTPAPI-Auth" style="stroke:#E7E7E7;stroke-width:1.0;"/></g><!--link Auth to ApiRequest--><g id="link_Auth_ApiRequest"><path d="M466.99,474.24 C478.27,474.24 483.55,474.24 494.82,474.24 " fill="none" id="Auth-to-ApiRequest" style="stroke:#E7E7E7;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#E7E7E7" points="500.82,474.24,491.82,470.24,495.82,474.24,491.82,478.24,500.82,474.24" style="stroke:#E7E7E7;stroke-width:1.0;"/></g><!--link ApiRequest to Plan--><g id="link_ApiRequest_Plan"><path d="M621.32,474.24 C632.87,474.24 638.41,474.24 649.96,474.24 " fill="none" id="ApiRequest-to-Plan" style="stroke:#E7E7E7;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#E7E7E7" points="655.96,474.24,646.96,470.24,650.96,474.24,646.96,478.24,655.96,474.24" style="stroke:#E7E7E7;stroke-width:1.0;"/></g><!--link Plan to Query--><g id="link_Plan_Query"><path d="M726.14,474.24 C737.97,474.24 743.8,474.24 755.64,474.24 " fill="none" id="Plan-to-Query" style="stroke:#E7E7E7;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#E7E7E7" points="761.64,474.24,752.64,470.24,756.64,474.24,752.64,478.24,761.64,474.24" style="stroke:#E7E7E7;stroke-width:1.0;"/></g><!--link Query to Connection Pool--><g id="link_Query_Connection Pool"><path d="M844.78,474.24 C869.69,474.24 899.27,474.24 913.95,474.24 " fill="none" id="Query-Connection Pool" style="stroke:#E7E7E7;stroke-width:1.0;"/></g><!--reverse link Schema Cache to Plan--><g id="link_Schema Cache_Plan"><path d="M751.0852,235.0085 C738.4652,285.1385 709.41,400.63 696.77,450.87 " fill="none" id="Schema Cache-backto-Plan" style="stroke:#E7E7E7;stroke-width:1.0;"/><polygon fill="#E7E7E7" points="752.55,229.19,746.4739,236.9412,751.3294,234.0387,754.2318,238.8942,752.55,229.19" style="stroke:#E7E7E7;stroke-width:1.0;"/><text fill="#FFFFFF" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="29.7832" x="744.67" y="272.1669">uses</text></g><!--reverse link Schema Cache to Listener--><g id="link_Schema Cache_Listener"><path d="M836.51,205.95 C869.07,205.95 897.77,205.95 913.9,205.95 " fill="none" id="Schema Cache-backto-Listener" style="stroke:#E7E7E7;stroke-width:1.0;"/><polygon fill="#E7E7E7" points="830.51,205.95,839.51,209.95,835.51,205.95,839.51,201.95,830.51,205.95" style="stroke:#E7E7E7;stroke-width:1.0;"/><text fill="#FFFFFF" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="47.8994" x="848.71" y="199.0169">reloads</text></g><!--link Admin to HTTPADMIN--><g id="link_Admin_HTTPADMIN"><path d="M425.81,205.95 C437.09,205.95 448.38,205.95 459.66,205.95 " fill="none" id="Admin-HTTPADMIN" style="stroke:#E7E7E7;stroke-width:1.0;"/></g><!--link CLI to Config--><g id="link_CLI_Config"><path d="M531.55,205.95 C542.82,205.95 554.09,205.95 565.36,205.95 " fill="none" id="CLI-Config" style="stroke:#E7E7E7;stroke-width:1.0;"/></g><!--reverse link Config to Listener--><g id="link_Config_Listener"><path d="M619.6617,176.8949 C631.1217,151.0449 651.17,116.68 685.64,101.3 C715.07,88.17 801.22,88.17 830.64,101.3 C875.37,121.26 907.11,174.88 918.5,196.61 " fill="none" id="Config-backto-Listener" style="stroke:#E7E7E7;stroke-width:1.0;stroke-dasharray:1.0,3.0;"/><polygon fill="#E7E7E7" points="617.23,182.38,624.5343,175.7734,619.2564,177.809,617.2208,172.5311,617.23,182.38" style="stroke:#E7E7E7;stroke-width:1.0;"/></g><!--link HTTPADMIN to CLI--><!--link Config to Schema Cache--><!--link Admin to Schema Cache--><!--link CLI to Schema Cache--><!--link API to tbs--><g id="link_API_tbs"><path d="M1466.8599,516.6154 C1466.8266,516.7087 1466.7934,516.8021 1466.7601,516.8954 C1466.494,517.6421 1466.227,518.3895 1465.9595,519.1369 C1465.4244,520.6316 1464.887,522.126 1464.3495,523.6129 C1463.2744,526.5869 1462.1988,529.5313 1461.14,532.39 C1453.94,551.84 1445.22,573.95 1439.24,588.93 " fill="none" id="API-tbs" style="stroke:#E7E7E7;stroke-width:1.0;"/></g><!--link Authorization to API--><!--link user to Proxy--><g id="link_user_Proxy"><path d="M78.58,474.24 C109.38,474.24 173.31,474.24 217.99,474.24 " fill="none" id="user-to-Proxy" style="stroke:#E7E7E7;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#E7E7E7" points="223.99,474.24,214.99,470.24,218.99,474.24,214.99,478.24,223.99,474.24" style="stroke:#E7E7E7;stroke-width:1.0;"/><text fill="#FFFFFF" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="110.1763" x="96.61" y="467.3069">request with JWT</text></g><!--link Proxy to HTTPAPI--><g id="link_Proxy_HTTPAPI"><path d="M304.12,474.24 C316.35,474.24 322.57,474.24 334.8,474.24 " fill="none" id="Proxy-to-HTTPAPI" style="stroke:#E7E7E7;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#E7E7E7" points="340.8,474.24,331.8,470.24,335.8,474.24,331.8,478.24,340.8,474.24" style="stroke:#E7E7E7;stroke-width:1.0;"/></g><!--link Proxy to ExternalAuth--><!--link user to ExternalAuth--><g id="link_user_ExternalAuth"><path d="M47.46,506.86 C41.62,523.19 38.13,543.07 46.14,559.39 C53.52,574.41 63.0958,582.8952 76.2258,590.8352 " fill="none" id="user-to-ExternalAuth" style="stroke:#E7E7E7;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#E7E7E7" points="81.36,593.94,75.7285,585.86,77.0815,591.3527,71.5888,592.7056,81.36,593.94" style="stroke:#E7E7E7;stroke-width:1.0;"/><text fill="#FFFFFF" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="31.6685" x="47.14" y="555.4569">login</text></g><!--reverse link user to ExternalAuth--><g id="link_user_ExternalAuth"><path d="M77.6561,518.5592 C86.8461,545.9892 96.83,575.77 103.01,594.2 " fill="none" id="user-backto-ExternalAuth" style="stroke:#E7E7E7;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#E7E7E7" points="75.75,512.87,74.8163,522.6745,77.3384,517.611,82.4019,520.1331,75.75,512.87" style="stroke:#E7E7E7;stroke-width:1.0;"/><text fill="#FFFFFF" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="24.6289" x="91.38" y="555.4569">JWT</text></g><!--link operator to HTTPADMIN--><g id="link_operator_HTTPADMIN"><path d="M487.52,82.23 C481.86,119.99 474.4377,169.566 471.2977,190.556 " fill="none" id="operator-to-HTTPADMIN" style="stroke:#E7E7E7;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#E7E7E7" points="470.41,196.49,475.6975,188.1808,471.1497,191.545,467.7856,186.9972,470.41,196.49" style="stroke:#E7E7E7;stroke-width:1.0;"/></g><!--link operator to CLI--><g id="link_operator_CLI"><path d="M499.94,82.23 C506.77,119.99 515.7539,169.5955 519.5439,190.5855 " fill="none" id="operator-to-CLI" style="stroke:#E7E7E7;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#E7E7E7" points="520.61,196.49,522.9471,186.9225,519.7216,191.5696,515.0745,188.344,520.61,196.49" style="stroke:#E7E7E7;stroke-width:1.0;"/></g><!--reverse link PostgreSQL to developer--><g id="link_PostgreSQL_developer"><path d="M1549.2557,474.24 C1549.5273,474.24 1544.0063,474.24 1544.2866,474.24 C1544.8472,474.24 1545.425,474.24 1546.0191,474.24 C1550.7712,474.24 1556.5613,474.24 1562.905,474.24 C1575.5925,474.24 1590.495,474.24 1603.74,474.24 " fill="none" id="PostgreSQL-backto-developer" style="stroke:#E7E7E7;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#E7E7E7" points="1543.2557,474.24,1552.2557,478.24,1548.2557,474.24,1552.2557,470.24,1543.2557,474.24" style="stroke:#E7E7E7;stroke-width:1.0;"/></g><!--link Listener to PostgreSQL--><g id="link_Listener_PostgreSQL"><path d="M932.44,206.73 C999.97,205.38 1415.02,200.57 1499.14,284.1 C1502.7506,287.685 1506.0518,291.5141 1509.0675,295.5455 C1509.8214,296.5533 1510.5575,297.5738 1511.2761,298.6063 C1511.4557,298.8644 1508.2481,294.1701 1508.4256,294.4298 " fill="none" id="Listener-to-PostgreSQL" style="stroke:#E7E7E7;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#E7E7E7" points="1511.8118,299.3829,1510.0346,289.6957,1508.99,295.2553,1503.4304,294.2106,1511.8118,299.3829" style="stroke:#E7E7E7;stroke-width:1.0;"/></g><!--link Connection Pool to PostgreSQL--><g id="link_Connection Pool_PostgreSQL"><path d="M925.79,465.14 C930.21,450.87 940.3025,421.7975 957.0375,392.1288 C961.2213,384.7116 965.8202,377.2571 970.8494,369.9874 C973.364,366.3525 975.9862,362.7638 978.7178,359.249 C979.0593,358.8097 975.6853,363.0813 976.0302,362.6443 " fill="none" id="Connection Pool-to-PostgreSQL" style="stroke:#E7E7E7;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#E7E7E7" points="979.7473,357.9345,971.0317,362.5211,976.6497,361.8594,977.3115,367.4774,979.7473,357.9345" style="stroke:#E7E7E7;stroke-width:1.0;"/></g><!--link Auth to GMN60--><g id="link_Auth_GMN60"><path d="M409.76,497.74 C400.01,508.37 388.1,521.15 377.14,532.39 C355.27,554.83 328.93,580.17 313.7,594.66 " fill="none" id="Auth-GMN60" style="stroke:#E7E7E7;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/></g><!--SRC=[KypCIyufJKbLqDFJJonApj0hpSq10000]--></g></svg>