Remove REST API, keep GraphQL as sole API
- Add missing GraphQL mutations: retryJob, updateAsset, deleteAsset - Add UpdateAssetRequest and DeleteResult to schema source of truth - Move Lambda callback endpoint to main.py (only REST endpoint) - Remove REST routes, pydantic schemas, and deps - Remove pydantic target from modelgen.json - Update architecture diagrams and documentation
This commit is contained in:
@@ -4,222 +4,221 @@
|
||||
<!-- Generated by graphviz version 14.1.2 (0)
|
||||
-->
|
||||
<!-- Title: aws_architecture Pages: 1 -->
|
||||
<svg width="620pt" height="1094pt"
|
||||
viewBox="0.00 0.00 620.00 1094.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1090.1)">
|
||||
<svg width="639pt" height="1081pt"
|
||||
viewBox="0.00 0.00 639.00 1081.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1077.35)">
|
||||
<title>aws_architecture</title>
|
||||
<polygon fill="white" stroke="none" points="-4,4 -4,-1090.1 616.25,-1090.1 616.25,4 -4,4"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="306.12" y="-1066.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">MPR - AWS Architecture (Lambda + Step Functions)</text>
|
||||
<polygon fill="white" stroke="none" points="-4,4 -4,-1077.35 635.25,-1077.35 635.25,4 -4,4"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="315.62" y="-1054.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">MPR - AWS Architecture (Lambda + Step Functions)</text>
|
||||
<g id="clust1" class="cluster">
|
||||
<title>cluster_external</title>
|
||||
<polygon fill="none" stroke="gray" stroke-dasharray="5,2" points="158,-947 158,-1050.6 318,-1050.6 318,-947 158,-947"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="238" y="-1031.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">External</text>
|
||||
<polygon fill="none" stroke="gray" stroke-dasharray="5,2" points="155,-934.25 155,-1037.85 315,-1037.85 315,-934.25 155,-934.25"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="235" y="-1018.65" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">External</text>
|
||||
</g>
|
||||
<g id="clust2" class="cluster">
|
||||
<title>cluster_proxy</title>
|
||||
<polygon fill="#e8f4f8" stroke="black" points="165,-819.25 165,-905.25 311,-905.25 311,-819.25 165,-819.25"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="238" y="-886.05" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">Reverse Proxy</text>
|
||||
<polygon fill="#e8f4f8" stroke="black" points="162,-806.5 162,-892.5 308,-892.5 308,-806.5 162,-806.5"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="235" y="-873.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">Reverse Proxy</text>
|
||||
</g>
|
||||
<g id="clust3" class="cluster">
|
||||
<title>cluster_apps</title>
|
||||
<polygon fill="#f0f8e8" stroke="black" points="11,-542.75 11,-789.25 293,-789.25 293,-542.75 11,-542.75"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="152" y="-770.05" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">Application Layer</text>
|
||||
<polygon fill="#f0f8e8" stroke="black" points="8,-542.75 8,-776.5 290,-776.5 290,-542.75 8,-542.75"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="149" y="-757.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">Application Layer</text>
|
||||
</g>
|
||||
<g id="clust4" class="cluster">
|
||||
<title>cluster_data</title>
|
||||
<polygon fill="#f8e8f0" stroke="black" points="8,-372.91 8,-474.84 122,-474.84 122,-372.91 8,-372.91"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="65" y="-455.64" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">Data Layer</text>
|
||||
<polygon fill="#f8e8f0" stroke="black" points="27,-372.91 27,-474.84 141,-474.84 141,-372.91 27,-372.91"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="84" y="-455.64" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">Data Layer</text>
|
||||
</g>
|
||||
<g id="clust5" class="cluster">
|
||||
<title>cluster_aws</title>
|
||||
<polygon fill="#fde8d0" stroke="black" points="245,-8 245,-475.5 577,-475.5 577,-8 245,-8"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="411" y="-456.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">AWS Cloud</text>
|
||||
<polygon fill="#fde8d0" stroke="black" points="264,-8 264,-475.5 596,-475.5 596,-8 264,-8"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="430" y="-456.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">AWS Cloud</text>
|
||||
</g>
|
||||
<!-- browser -->
|
||||
<g id="node1" class="node">
|
||||
<title>browser</title>
|
||||
<ellipse fill="none" stroke="black" cx="238" cy="-985.05" rx="71.77" ry="30.05"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="238" y="-989" font-family="Helvetica,sans-Serif" font-size="14.00">Browser</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="238" y="-971.75" font-family="Helvetica,sans-Serif" font-size="14.00">mpr.mcrn.ar</text>
|
||||
<ellipse fill="none" stroke="black" cx="235" cy="-972.3" rx="71.77" ry="30.05"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="235" y="-976.25" font-family="Helvetica,sans-Serif" font-size="14.00">Browser</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="235" y="-959" font-family="Helvetica,sans-Serif" font-size="14.00">mpr.mcrn.ar</text>
|
||||
</g>
|
||||
<!-- nginx -->
|
||||
<g id="node2" class="node">
|
||||
<title>nginx</title>
|
||||
<path fill="none" stroke="black" d="M259.5,-869.75C259.5,-869.75 216.5,-869.75 216.5,-869.75 210.5,-869.75 204.5,-863.75 204.5,-857.75 204.5,-857.75 204.5,-839.25 204.5,-839.25 204.5,-833.25 210.5,-827.25 216.5,-827.25 216.5,-827.25 259.5,-827.25 259.5,-827.25 265.5,-827.25 271.5,-833.25 271.5,-839.25 271.5,-839.25 271.5,-857.75 271.5,-857.75 271.5,-863.75 265.5,-869.75 259.5,-869.75"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="238" y="-852.45" font-family="Helvetica,sans-Serif" font-size="14.00">nginx</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="238" y="-835.2" font-family="Helvetica,sans-Serif" font-size="14.00">port 80</text>
|
||||
<path fill="none" stroke="black" d="M256.5,-857C256.5,-857 213.5,-857 213.5,-857 207.5,-857 201.5,-851 201.5,-845 201.5,-845 201.5,-826.5 201.5,-826.5 201.5,-820.5 207.5,-814.5 213.5,-814.5 213.5,-814.5 256.5,-814.5 256.5,-814.5 262.5,-814.5 268.5,-820.5 268.5,-826.5 268.5,-826.5 268.5,-845 268.5,-845 268.5,-851 262.5,-857 256.5,-857"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="235" y="-839.7" font-family="Helvetica,sans-Serif" font-size="14.00">nginx</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="235" y="-822.45" font-family="Helvetica,sans-Serif" font-size="14.00">port 80</text>
|
||||
</g>
|
||||
<!-- browser->nginx -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>browser->nginx</title>
|
||||
<path fill="none" stroke="black" d="M238,-954.75C238,-954.75 238,-881.75 238,-881.75"/>
|
||||
<polygon fill="black" stroke="black" points="241.5,-881.75 238,-871.75 234.5,-881.75 241.5,-881.75"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="250.75" y="-916.5" font-family="Helvetica,sans-Serif" font-size="10.00">HTTP</text>
|
||||
<path fill="none" stroke="black" d="M235,-942C235,-942 235,-869 235,-869"/>
|
||||
<polygon fill="black" stroke="black" points="238.5,-869 235,-859 231.5,-869 238.5,-869"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="247.75" y="-903.75" font-family="Helvetica,sans-Serif" font-size="10.00">HTTP</text>
|
||||
</g>
|
||||
<!-- django -->
|
||||
<g id="node3" class="node">
|
||||
<title>django</title>
|
||||
<path fill="none" stroke="black" d="M120.75,-753.75C120.75,-753.75 31.25,-753.75 31.25,-753.75 25.25,-753.75 19.25,-747.75 19.25,-741.75 19.25,-741.75 19.25,-706 19.25,-706 19.25,-700 25.25,-694 31.25,-694 31.25,-694 120.75,-694 120.75,-694 126.75,-694 132.75,-700 132.75,-706 132.75,-706 132.75,-741.75 132.75,-741.75 132.75,-747.75 126.75,-753.75 120.75,-753.75"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="76" y="-736.45" font-family="Helvetica,sans-Serif" font-size="14.00">Django Admin</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="76" y="-719.2" font-family="Helvetica,sans-Serif" font-size="14.00">/admin</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="76" y="-701.95" font-family="Helvetica,sans-Serif" font-size="14.00">port 8701</text>
|
||||
<path fill="none" stroke="black" d="M117.75,-741C117.75,-741 28.25,-741 28.25,-741 22.25,-741 16.25,-735 16.25,-729 16.25,-729 16.25,-693.25 16.25,-693.25 16.25,-687.25 22.25,-681.25 28.25,-681.25 28.25,-681.25 117.75,-681.25 117.75,-681.25 123.75,-681.25 129.75,-687.25 129.75,-693.25 129.75,-693.25 129.75,-729 129.75,-729 129.75,-735 123.75,-741 117.75,-741"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="73" y="-723.7" font-family="Helvetica,sans-Serif" font-size="14.00">Django Admin</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="73" y="-706.45" font-family="Helvetica,sans-Serif" font-size="14.00">/admin</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="73" y="-689.2" font-family="Helvetica,sans-Serif" font-size="14.00">port 8701</text>
|
||||
</g>
|
||||
<!-- nginx->django -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>nginx->django</title>
|
||||
<path fill="none" stroke="black" d="M204.04,-856C156.54,-856 76,-856 76,-856 76,-856 76,-765.7 76,-765.7"/>
|
||||
<polygon fill="black" stroke="black" points="79.5,-765.7 76,-755.7 72.5,-765.7 79.5,-765.7"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="78" y="-859.25" font-family="Helvetica,sans-Serif" font-size="10.00">/admin</text>
|
||||
<path fill="none" stroke="black" d="M201.04,-843C153.54,-843 73,-843 73,-843 73,-843 73,-752.89 73,-752.89"/>
|
||||
<polygon fill="black" stroke="black" points="76.5,-752.89 73,-742.89 69.5,-752.89 76.5,-752.89"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="75.09" y="-846.25" font-family="Helvetica,sans-Serif" font-size="10.00">/admin</text>
|
||||
</g>
|
||||
<!-- fastapi -->
|
||||
<g id="node4" class="node">
|
||||
<title>fastapi</title>
|
||||
<path fill="none" stroke="black" d="M273.38,-610.5C273.38,-610.5 148.62,-610.5 148.62,-610.5 142.62,-610.5 136.62,-604.5 136.62,-598.5 136.62,-598.5 136.62,-562.75 136.62,-562.75 136.62,-556.75 142.62,-550.75 148.62,-550.75 148.62,-550.75 273.38,-550.75 273.38,-550.75 279.38,-550.75 285.38,-556.75 285.38,-562.75 285.38,-562.75 285.38,-598.5 285.38,-598.5 285.38,-604.5 279.38,-610.5 273.38,-610.5"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="211" y="-593.2" font-family="Helvetica,sans-Serif" font-size="14.00">FastAPI + GraphQL</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="211" y="-575.95" font-family="Helvetica,sans-Serif" font-size="14.00">/api + /graphql</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="211" y="-558.7" font-family="Helvetica,sans-Serif" font-size="14.00">port 8702</text>
|
||||
<path fill="none" stroke="black" d="M270.25,-610.5C270.25,-610.5 189.75,-610.5 189.75,-610.5 183.75,-610.5 177.75,-604.5 177.75,-598.5 177.75,-598.5 177.75,-562.75 177.75,-562.75 177.75,-556.75 183.75,-550.75 189.75,-550.75 189.75,-550.75 270.25,-550.75 270.25,-550.75 276.25,-550.75 282.25,-556.75 282.25,-562.75 282.25,-562.75 282.25,-598.5 282.25,-598.5 282.25,-604.5 276.25,-610.5 270.25,-610.5"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="230" y="-593.2" font-family="Helvetica,sans-Serif" font-size="14.00">GraphQL API</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="230" y="-575.95" font-family="Helvetica,sans-Serif" font-size="14.00">/graphql</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="230" y="-558.7" font-family="Helvetica,sans-Serif" font-size="14.00">port 8702</text>
|
||||
</g>
|
||||
<!-- nginx->fastapi -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>nginx->fastapi</title>
|
||||
<path fill="none" stroke="black" d="M204.14,-841C190.81,-841 178.61,-841 178.61,-841 178.61,-841 178.61,-622.26 178.61,-622.26"/>
|
||||
<polygon fill="black" stroke="black" points="182.11,-622.26 178.61,-612.26 175.11,-622.26 182.11,-622.26"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="162.68" y="-734.9" font-family="Helvetica,sans-Serif" font-size="10.00">/api, /graphql</text>
|
||||
<path fill="none" stroke="black" d="M201.11,-829C191.15,-829 182.88,-829 182.88,-829 182.88,-829 182.88,-622.1 182.88,-622.1"/>
|
||||
<polygon fill="black" stroke="black" points="186.38,-622.1 182.88,-612.1 179.38,-622.1 186.38,-622.1"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="163" y="-737.91" font-family="Helvetica,sans-Serif" font-size="10.00">/graphql</text>
|
||||
</g>
|
||||
<!-- timeline -->
|
||||
<g id="node5" class="node">
|
||||
<title>timeline</title>
|
||||
<path fill="none" stroke="black" d="M273,-753.75C273,-753.75 203,-753.75 203,-753.75 197,-753.75 191,-747.75 191,-741.75 191,-741.75 191,-706 191,-706 191,-700 197,-694 203,-694 203,-694 273,-694 273,-694 279,-694 285,-700 285,-706 285,-706 285,-741.75 285,-741.75 285,-747.75 279,-753.75 273,-753.75"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="238" y="-736.45" font-family="Helvetica,sans-Serif" font-size="14.00">Timeline UI</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="238" y="-719.2" font-family="Helvetica,sans-Serif" font-size="14.00">/</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="238" y="-701.95" font-family="Helvetica,sans-Serif" font-size="14.00">port 5173</text>
|
||||
<path fill="none" stroke="black" d="M270,-741C270,-741 200,-741 200,-741 194,-741 188,-735 188,-729 188,-729 188,-693.25 188,-693.25 188,-687.25 194,-681.25 200,-681.25 200,-681.25 270,-681.25 270,-681.25 276,-681.25 282,-687.25 282,-693.25 282,-693.25 282,-729 282,-729 282,-735 276,-741 270,-741"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="235" y="-723.7" font-family="Helvetica,sans-Serif" font-size="14.00">Timeline UI</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="235" y="-706.45" font-family="Helvetica,sans-Serif" font-size="14.00">/</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="235" y="-689.2" font-family="Helvetica,sans-Serif" font-size="14.00">port 5173</text>
|
||||
</g>
|
||||
<!-- nginx->timeline -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>nginx->timeline</title>
|
||||
<path fill="none" stroke="black" d="M238,-826.79C238,-826.79 238,-765.72 238,-765.72"/>
|
||||
<polygon fill="black" stroke="black" points="241.5,-765.72 238,-755.72 234.5,-765.72 241.5,-765.72"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="236.5" y="-799.5" font-family="Helvetica,sans-Serif" font-size="10.00">/</text>
|
||||
<path fill="none" stroke="black" d="M235,-814.04C235,-814.04 235,-752.97 235,-752.97"/>
|
||||
<polygon fill="black" stroke="black" points="238.5,-752.97 235,-742.97 231.5,-752.97 238.5,-752.97"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="233.5" y="-786.75" font-family="Helvetica,sans-Serif" font-size="10.00">/</text>
|
||||
</g>
|
||||
<!-- postgres -->
|
||||
<g id="node6" class="node">
|
||||
<title>postgres</title>
|
||||
<path fill="none" stroke="black" d="M112.75,-434.03C112.75,-436.96 91.35,-439.34 65,-439.34 38.65,-439.34 17.25,-436.96 17.25,-434.03 17.25,-434.03 17.25,-386.22 17.25,-386.22 17.25,-383.29 38.65,-380.91 65,-380.91 91.35,-380.91 112.75,-383.29 112.75,-386.22 112.75,-386.22 112.75,-434.03 112.75,-434.03"/>
|
||||
<path fill="none" stroke="black" d="M112.75,-434.03C112.75,-431.1 91.35,-428.72 65,-428.72 38.65,-428.72 17.25,-431.1 17.25,-434.03"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="65" y="-414.07" font-family="Helvetica,sans-Serif" font-size="14.00">PostgreSQL</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="65" y="-396.82" font-family="Helvetica,sans-Serif" font-size="14.00">port 5436</text>
|
||||
<path fill="none" stroke="black" d="M131.75,-434.03C131.75,-436.96 110.35,-439.34 84,-439.34 57.65,-439.34 36.25,-436.96 36.25,-434.03 36.25,-434.03 36.25,-386.22 36.25,-386.22 36.25,-383.29 57.65,-380.91 84,-380.91 110.35,-380.91 131.75,-383.29 131.75,-386.22 131.75,-386.22 131.75,-434.03 131.75,-434.03"/>
|
||||
<path fill="none" stroke="black" d="M131.75,-434.03C131.75,-431.1 110.35,-428.72 84,-428.72 57.65,-428.72 36.25,-431.1 36.25,-434.03"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="84" y="-414.07" font-family="Helvetica,sans-Serif" font-size="14.00">PostgreSQL</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="84" y="-396.82" font-family="Helvetica,sans-Serif" font-size="14.00">port 5436</text>
|
||||
</g>
|
||||
<!-- django->postgres -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>django->postgres</title>
|
||||
<path fill="none" stroke="black" d="M42.62,-693.51C42.62,-693.51 42.62,-451.11 42.62,-451.11"/>
|
||||
<polygon fill="black" stroke="black" points="46.13,-451.11 42.63,-441.11 39.13,-451.11 46.13,-451.11"/>
|
||||
<path fill="none" stroke="black" d="M83,-680.89C83,-680.89 83,-450.97 83,-450.97"/>
|
||||
<polygon fill="black" stroke="black" points="86.5,-450.97 83,-440.97 79.5,-450.97 86.5,-450.97"/>
|
||||
</g>
|
||||
<!-- fastapi->postgres -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>fastapi->postgres</title>
|
||||
<path fill="none" stroke="black" d="M136.38,-591C100.85,-591 66,-591 66,-591 66,-591 66,-451.1 66,-451.1"/>
|
||||
<polygon fill="black" stroke="black" points="69.5,-451.1 66,-441.1 62.5,-451.1 69.5,-451.1"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="247.38" y="-499.5" font-family="Helvetica,sans-Serif" font-size="10.00">read/write jobs</text>
|
||||
<path fill="none" stroke="black" d="M201.38,-550.41C201.38,-503.88 201.38,-420 201.38,-420 201.38,-420 143.59,-420 143.59,-420"/>
|
||||
<polygon fill="black" stroke="black" points="143.59,-416.5 133.59,-420 143.59,-423.5 143.59,-416.5"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="266.38" y="-499.5" font-family="Helvetica,sans-Serif" font-size="10.00">read/write jobs</text>
|
||||
</g>
|
||||
<!-- fastapi->postgres -->
|
||||
<g id="edge12" class="edge">
|
||||
<title>fastapi->postgres</title>
|
||||
<path fill="none" stroke="black" d="M136.4,-571C111.22,-571 89.38,-571 89.38,-571 89.38,-571 89.38,-451.15 89.38,-451.15"/>
|
||||
<polygon fill="black" stroke="black" points="92.88,-451.15 89.38,-441.15 85.88,-451.15 92.88,-451.15"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="106.25" y="-505.88" font-family="Helvetica,sans-Serif" font-size="10.00">callback updates</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="106.25" y="-493.12" font-family="Helvetica,sans-Serif" font-size="10.00">job status</text>
|
||||
<path fill="none" stroke="black" d="M225,-550.39C225,-498.97 225,-400 225,-400 225,-400 143.64,-400 143.64,-400"/>
|
||||
<polygon fill="black" stroke="black" points="143.64,-396.5 133.64,-400 143.64,-403.5 143.64,-396.5"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="125.25" y="-505.88" font-family="Helvetica,sans-Serif" font-size="10.00">callback updates</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="125.25" y="-493.12" font-family="Helvetica,sans-Serif" font-size="10.00">job status</text>
|
||||
</g>
|
||||
<!-- step_functions -->
|
||||
<g id="node7" class="node">
|
||||
<title>step_functions</title>
|
||||
<path fill="none" stroke="black" d="M365.38,-440C365.38,-440 270.62,-440 270.62,-440 264.62,-440 258.62,-434 258.62,-428 258.62,-428 258.62,-392.25 258.62,-392.25 258.62,-386.25 264.62,-380.25 270.62,-380.25 270.62,-380.25 365.38,-380.25 365.38,-380.25 371.38,-380.25 377.38,-386.25 377.38,-392.25 377.38,-392.25 377.38,-428 377.38,-428 377.38,-434 371.38,-440 365.38,-440"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="318" y="-422.7" font-family="Helvetica,sans-Serif" font-size="14.00">Step Functions</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="318" y="-405.45" font-family="Helvetica,sans-Serif" font-size="14.00">Orchestration</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="318" y="-388.2" font-family="Helvetica,sans-Serif" font-size="14.00">state machine</text>
|
||||
<path fill="none" stroke="black" d="M384.38,-440C384.38,-440 289.62,-440 289.62,-440 283.62,-440 277.62,-434 277.62,-428 277.62,-428 277.62,-392.25 277.62,-392.25 277.62,-386.25 283.62,-380.25 289.62,-380.25 289.62,-380.25 384.38,-380.25 384.38,-380.25 390.38,-380.25 396.38,-386.25 396.38,-392.25 396.38,-392.25 396.38,-428 396.38,-428 396.38,-434 390.38,-440 384.38,-440"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="337" y="-422.7" font-family="Helvetica,sans-Serif" font-size="14.00">Step Functions</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="337" y="-405.45" font-family="Helvetica,sans-Serif" font-size="14.00">Orchestration</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="337" y="-388.2" font-family="Helvetica,sans-Serif" font-size="14.00">state machine</text>
|
||||
</g>
|
||||
<!-- fastapi->step_functions -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>fastapi->step_functions</title>
|
||||
<path fill="none" stroke="black" d="M272,-550.54C272,-550.54 272,-452 272,-452"/>
|
||||
<polygon fill="black" stroke="black" points="275.5,-452 272,-442 268.5,-452 275.5,-452"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="388.25" y="-512.25" font-family="Helvetica,sans-Serif" font-size="10.00">boto3</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="388.25" y="-499.5" font-family="Helvetica,sans-Serif" font-size="10.00">start_execution()</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="388.25" y="-486.75" font-family="Helvetica,sans-Serif" font-size="10.00">execution_arn</text>
|
||||
<path fill="none" stroke="black" d="M282.68,-581C289.69,-581 294.51,-581 294.51,-581 294.51,-581 294.51,-451.79 294.51,-451.79"/>
|
||||
<polygon fill="black" stroke="black" points="298.01,-451.79 294.51,-441.79 291.01,-451.79 298.01,-451.79"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="407.25" y="-512.25" font-family="Helvetica,sans-Serif" font-size="10.00">boto3</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="407.25" y="-499.5" font-family="Helvetica,sans-Serif" font-size="10.00">start_execution()</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="407.25" y="-486.75" font-family="Helvetica,sans-Serif" font-size="10.00">execution_arn</text>
|
||||
</g>
|
||||
<!-- timeline->fastapi -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>timeline->fastapi</title>
|
||||
<path fill="none" stroke="black" d="M238,-693.85C238,-693.85 238,-622.13 238,-622.13"/>
|
||||
<polygon fill="black" stroke="black" points="241.5,-622.13 238,-612.13 234.5,-622.13 241.5,-622.13"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="245.75" y="-655.5" font-family="Helvetica,sans-Serif" font-size="10.00">REST API</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="245.75" y="-642.75" font-family="Helvetica,sans-Serif" font-size="10.00">GraphQL</text>
|
||||
<path fill="none" stroke="black" d="M235,-680.86C235,-680.86 235,-622.24 235,-622.24"/>
|
||||
<polygon fill="black" stroke="black" points="238.5,-622.24 235,-612.24 231.5,-622.24 238.5,-622.24"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="253" y="-642.75" font-family="Helvetica,sans-Serif" font-size="10.00">GraphQL</text>
|
||||
</g>
|
||||
<!-- lambda -->
|
||||
<g id="node8" class="node">
|
||||
<title>lambda</title>
|
||||
<path fill="none" stroke="black" d="M467,-296.75C467,-296.75 349,-296.75 349,-296.75 343,-296.75 337,-290.75 337,-284.75 337,-284.75 337,-249 337,-249 337,-243 343,-237 349,-237 349,-237 467,-237 467,-237 473,-237 479,-243 479,-249 479,-249 479,-284.75 479,-284.75 479,-290.75 473,-296.75 467,-296.75"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="408" y="-279.45" font-family="Helvetica,sans-Serif" font-size="14.00">Lambda Function</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="408" y="-262.2" font-family="Helvetica,sans-Serif" font-size="14.00">FFmpeg container</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="408" y="-244.95" font-family="Helvetica,sans-Serif" font-size="14.00">transcoding</text>
|
||||
<path fill="none" stroke="black" d="M486,-296.75C486,-296.75 368,-296.75 368,-296.75 362,-296.75 356,-290.75 356,-284.75 356,-284.75 356,-249 356,-249 356,-243 362,-237 368,-237 368,-237 486,-237 486,-237 492,-237 498,-243 498,-249 498,-249 498,-284.75 498,-284.75 498,-290.75 492,-296.75 486,-296.75"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="427" y="-279.45" font-family="Helvetica,sans-Serif" font-size="14.00">Lambda Function</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="427" y="-262.2" font-family="Helvetica,sans-Serif" font-size="14.00">FFmpeg container</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="427" y="-244.95" font-family="Helvetica,sans-Serif" font-size="14.00">transcoding</text>
|
||||
</g>
|
||||
<!-- step_functions->lambda -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>step_functions->lambda</title>
|
||||
<path fill="none" stroke="black" d="M357.19,-380.1C357.19,-380.1 357.19,-308.38 357.19,-308.38"/>
|
||||
<polygon fill="black" stroke="black" points="360.69,-308.38 357.19,-298.38 353.69,-308.38 360.69,-308.38"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="388.12" y="-341.75" font-family="Helvetica,sans-Serif" font-size="10.00">invoke with</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="388.12" y="-329" font-family="Helvetica,sans-Serif" font-size="10.00">job parameters</text>
|
||||
<path fill="none" stroke="black" d="M376.19,-380.1C376.19,-380.1 376.19,-308.38 376.19,-308.38"/>
|
||||
<polygon fill="black" stroke="black" points="379.69,-308.38 376.19,-298.38 372.69,-308.38 379.69,-308.38"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="407.12" y="-341.75" font-family="Helvetica,sans-Serif" font-size="10.00">invoke with</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="407.12" y="-329" font-family="Helvetica,sans-Serif" font-size="10.00">job parameters</text>
|
||||
</g>
|
||||
<!-- lambda->fastapi -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>lambda->fastapi</title>
|
||||
<path fill="none" stroke="black" d="M336.76,-267C274.82,-267 194.94,-267 194.94,-267 194.94,-267 194.94,-538.75 194.94,-538.75"/>
|
||||
<polygon fill="black" stroke="black" points="191.44,-538.75 194.94,-548.75 198.44,-538.75 191.44,-538.75"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="552.62" y="-413.38" font-family="Helvetica,sans-Serif" font-size="10.00">POST /jobs/{id}/callback</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="552.62" y="-400.62" font-family="Helvetica,sans-Serif" font-size="10.00">update status</text>
|
||||
<path fill="none" stroke="black" d="M355.73,-267C306.05,-267 248.62,-267 248.62,-267 248.62,-267 248.62,-538.75 248.62,-538.75"/>
|
||||
<polygon fill="black" stroke="black" points="245.13,-538.75 248.63,-548.75 252.13,-538.75 245.13,-538.75"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="571.62" y="-413.38" font-family="Helvetica,sans-Serif" font-size="10.00">POST /jobs/{id}/callback</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="571.62" y="-400.62" font-family="Helvetica,sans-Serif" font-size="10.00">update status</text>
|
||||
</g>
|
||||
<!-- s3 -->
|
||||
<g id="node9" class="node">
|
||||
<title>s3</title>
|
||||
<polygon fill="none" stroke="black" points="454.62,-153.5 451.62,-157.5 430.62,-157.5 427.62,-153.5 361.38,-153.5 361.38,-117.5 454.62,-117.5 454.62,-153.5"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="408" y="-130.82" font-family="Helvetica,sans-Serif" font-size="14.00">S3 Buckets</text>
|
||||
<polygon fill="none" stroke="black" points="473.62,-153.5 470.62,-157.5 449.62,-157.5 446.62,-153.5 380.38,-153.5 380.38,-117.5 473.62,-117.5 473.62,-153.5"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="427" y="-130.82" font-family="Helvetica,sans-Serif" font-size="14.00">S3 Buckets</text>
|
||||
</g>
|
||||
<!-- lambda->s3 -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>lambda->s3</title>
|
||||
<path fill="none" stroke="black" d="M408,-236.73C408,-236.73 408,-165.27 408,-165.27"/>
|
||||
<polygon fill="black" stroke="black" points="411.5,-165.27 408,-155.27 404.5,-165.27 411.5,-165.27"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="445.5" y="-198.5" font-family="Helvetica,sans-Serif" font-size="10.00">download input</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="445.5" y="-185.75" font-family="Helvetica,sans-Serif" font-size="10.00">upload output</text>
|
||||
<path fill="none" stroke="black" d="M427,-236.73C427,-236.73 427,-165.27 427,-165.27"/>
|
||||
<polygon fill="black" stroke="black" points="430.5,-165.27 427,-155.27 423.5,-165.27 430.5,-165.27"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-198.5" font-family="Helvetica,sans-Serif" font-size="10.00">download input</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-185.75" font-family="Helvetica,sans-Serif" font-size="10.00">upload output</text>
|
||||
</g>
|
||||
<!-- bucket_in -->
|
||||
<g id="node10" class="node">
|
||||
<title>bucket_in</title>
|
||||
<polygon fill="none" stroke="black" points="360.75,-58.5 253.25,-58.5 253.25,-16 366.75,-16 366.75,-52.5 360.75,-58.5"/>
|
||||
<polyline fill="none" stroke="black" points="360.75,-58.5 360.75,-52.5"/>
|
||||
<polyline fill="none" stroke="black" points="366.75,-52.5 360.75,-52.5"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="310" y="-41.2" font-family="Helvetica,sans-Serif" font-size="14.00">mpr-media-in/</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="310" y="-23.95" font-family="Helvetica,sans-Serif" font-size="14.00">input videos</text>
|
||||
<polygon fill="none" stroke="black" points="379.75,-58.5 272.25,-58.5 272.25,-16 385.75,-16 385.75,-52.5 379.75,-58.5"/>
|
||||
<polyline fill="none" stroke="black" points="379.75,-58.5 379.75,-52.5"/>
|
||||
<polyline fill="none" stroke="black" points="385.75,-52.5 379.75,-52.5"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="329" y="-41.2" font-family="Helvetica,sans-Serif" font-size="14.00">mpr-media-in/</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="329" y="-23.95" font-family="Helvetica,sans-Serif" font-size="14.00">input videos</text>
|
||||
</g>
|
||||
<!-- s3->bucket_in -->
|
||||
<g id="edge13" class="edge">
|
||||
<title>s3->bucket_in</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M361.09,-136C354.1,-136 349.19,-136 349.19,-136 349.19,-136 349.19,-87.72 349.19,-58.68"/>
|
||||
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M380.09,-136C373.1,-136 368.19,-136 368.19,-136 368.19,-136 368.19,-87.72 368.19,-58.68"/>
|
||||
</g>
|
||||
<!-- bucket_out -->
|
||||
<g id="node11" class="node">
|
||||
<title>bucket_out</title>
|
||||
<polygon fill="none" stroke="black" points="563.12,-58.5 424.88,-58.5 424.88,-16 569.12,-16 569.12,-52.5 563.12,-58.5"/>
|
||||
<polyline fill="none" stroke="black" points="563.12,-58.5 563.12,-52.5"/>
|
||||
<polyline fill="none" stroke="black" points="569.12,-52.5 563.12,-52.5"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="497" y="-41.2" font-family="Helvetica,sans-Serif" font-size="14.00">mpr-media-out/</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="497" y="-23.95" font-family="Helvetica,sans-Serif" font-size="14.00">transcoded output</text>
|
||||
<polygon fill="none" stroke="black" points="582.12,-58.5 443.88,-58.5 443.88,-16 588.12,-16 588.12,-52.5 582.12,-58.5"/>
|
||||
<polyline fill="none" stroke="black" points="582.12,-58.5 582.12,-52.5"/>
|
||||
<polyline fill="none" stroke="black" points="588.12,-52.5 582.12,-52.5"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="516" y="-41.2" font-family="Helvetica,sans-Serif" font-size="14.00">mpr-media-out/</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="516" y="-23.95" font-family="Helvetica,sans-Serif" font-size="14.00">transcoded output</text>
|
||||
</g>
|
||||
<!-- s3->bucket_out -->
|
||||
<g id="edge14" class="edge">
|
||||
<title>s3->bucket_out</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M439.75,-117.02C439.75,-100.45 439.75,-76.15 439.75,-58.73"/>
|
||||
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M458.75,-117.02C458.75,-100.45 458.75,-76.15 458.75,-58.73"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 16 KiB |
Reference in New Issue
Block a user