<mxfile host="app.diagrams.net" agent="architecture-diagram" version="24.0.0">
  <diagram name="Identity and Access — Offline Read and Online Read" id="20-identity-and-access">
    <mxGraphModel dx="1400" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1720" pageHeight="820" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="n.ds" value="&lt;b&gt;Data scientist&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#08427b;strokeColor=#073b6f;fontColor=#ffffff;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="60" y="80" width="210" height="620" as="geometry" />
        </mxCell>
        <mxCell id="_plate1" value="" style="rounded=1;arcSize=22;html=1;fillColor=#ffffff;strokeColor=none;movable=0;resizable=0;connectable=0;" vertex="1" parent="n.ds">
          <mxGeometry x="5" y="13" width="32" height="32" as="geometry" />
        </mxCell>
        <mxCell id="_ico2" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,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;" vertex="1" parent="n.ds">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.idp" value="&lt;b&gt;Corporate IdP&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#f5f5f5;strokeColor=#8c8c8c;fontColor=#333333;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="290" y="80" width="210" height="620" as="geometry" />
        </mxCell>
        <mxCell id="_ico3" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAAB40lEQVRoge3Yz6sOURzH8dfjXlfuQkoW6ooiIUk2imRna+kvYCMLUlIsWNhYKFtZKUp3y80/YGOHKD+6RCGJErnyazF3MsbM85z73HnmTDnv+tQ0c2bm8znnzJyZL4lEIpH4n+k1dJ21mMJKfMFjvG7o2iNjChfwFL8q9ARnsTqWwTrGcE7W01XGy/qEo5ob7UWxAjPCjJd1DRPtW/7DOG4bznyuqyKOxPkAgyE6jD24IXtOPmMWV7B9VObX4WtDAb73OfYDZ4xglC41ZD5UJ5s038PLlgPMYUOIuSUBbTbJ3vltMoFDIQ1DArRtPmdvSKOQALFW0kXfdxlO4IV253+uOyEmx2v2b8U0tgTHbZ57w564Ex/E6fWynuE4loeaX4VXHTBe1kNsCwlwuQNm6/RuUIg1+NYBo/30SGk6FV+jB7G0X8IOsBlH6g5Oi9/DIZotmi6OQKwVd6Gsl33e4O8AUf+WFsjGfKMYoPNVhAKT+UYxwIMIRoblTdXO3eI/oCGakxUX/qGHux0wOEg3q8zn7JP9l8Y2Waef2NUvAJzqgNE6XRxknmwqnZ5PG9twUdfVf/5Xsh/3O2D8I46pKbUMqr+MzQc5gB2y1Xqy7xnN8BbPcUtWknzfwj0TiUQikWif37lJeEKjXHZHAAAAAElFTkSuQmCC;" vertex="1" parent="n.idp">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.reg" value="&lt;b&gt;Registry API&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#1a2b45;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="520" y="80" width="210" height="620" as="geometry" />
        </mxCell>
        <mxCell id="_ico4" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAACpUlEQVRoge3YTYhNYRzH8Y+3iLzkbZoSdhJZkI1YUWzYWbCxJCU1ZShlpVhQKIoFG28pKxaKDUnyUtTQZJCExZSJEYMMFs+cXMe5955z7jn3jppf/evWfc7/+f6e5/+8nMOIWqsxJeWdhA3YhMUYQG9JfRWqZTiJfvyKxRPsxuyW0VXRHAGsx7/QSfED17ER41rACyYMAVwZAkoDnhTvhRlb2izwWiXSaJRWYvOxDy9yQOWZnW+4jPUaKLFGS+QBdmIGFuGgsAuVXmLTcUS+EnmDA1hQJff4oUG5mnNQ7mNdLfjJeJQx6QDOY61sZ0o7dqErY38/saVa0r0ZEt3BVkzLAF1Ny3EcfSn77sOUpEQ36zz4FkexpADoJI0XFu4lfK/DsjopwdOEhgO4INReWdeOJEUl9iSB6Rc2Rw1H10n0CS/RjcEySKuoF8/wOstDSTMQxaA/x//YIkljahcOs1c1WP6agbQG4mvhIOYWBD0aa6Sr/UIMRFF5KcuzPqYJh93zjP0WZqAyeoSpn5UCPLpPfWmgv8INRPEV57Aqljsa7ax9DDbbQGV0oQOn8Tnjs++wHwtbaSBP3Pb3i87EegbK3BLT6oOwAx0TDq5MaqWBhziFs8KCzqVmG+jHRZzA4yISNtPAGewQFnRhqncXKlLdCoanuQZK0YiBVuu/NzAcDrJqasOeeo0qDXwsjyWT2tCJbcJVIkkfoh+VJXSrRKg0asNh4RW2Q3X4r7iX9Mds4R20rItaZx3wtDfWvbVGYR6uNclAVvA+bMeoWgYirRC+i5ZhYKbwTp0WvH+ofa6PaCtxoyADh2Qf8X2Ymgc8rjJmpJQRb6WRUsHLNNJU8LgaMdJS8LiyGBlW4HHVMjKsweNaKXyW78Zd4atdIdvhiEZUsH4D+zfN9JHFLwAAAAAASUVORK5CYII=;" vertex="1" parent="n.reg">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.lf" value="&lt;b&gt;Lake Formation&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#e1d5e7;strokeColor=#9673a6;fontColor=#3a2b44;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="760" y="80" width="210" height="620" as="geometry" />
        </mxCell>
        <mxCell id="_ico5" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,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;" vertex="1" parent="n.lf">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.off" value="&lt;b&gt;Offline store&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#1e3a1e;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="990" y="80" width="210" height="620" as="geometry" />
        </mxCell>
        <mxCell id="_ico6" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAADIUlEQVRoge3aTWwVVRjG8V9LkW+kwYDY6kLxC5QNJEIMECEGNSa6MCaGHStXrtyqxI0xJLCCDTGBBRuCiSQuTIgxhAUsABP5SAQlCFhlYaB82AqNdfFO06E9U+5M7+29rf0nbyY9M3Pmee85M/Ocd8o0zaVtHOfOwoosuvBEFp2YjTnZMf9kx9/AAK7jGv7ErziHK1VFlEmgE5vwOtbjOXRUvfAIbuI0vscRnMK/9ei4TQg+KH7JwQmKK/hMjGxlVuCHCRSdir/xqZiKpXgFt5osPh9HxH01ihkFbSfwWNmsG8jT6MexkTvaEwcvFU+TVmN1qjGVQKqtFUjqalWxNTMlE7gt7vxWo7fMwV9p/qMzH31YWyaBDuxrAeGD+AtvlRGfZzOON0n4HezG4qri86zCTpxvsOi7+A4fYmFVsV3Yj2UF+7vxAb7At7ikmtG7IVznfnyM1xTYBbyNHakdKTvdjavixjmAPfixoOM8S8RbfEnW76Jc//1Zf/1iHfB79vdYzMF7+AhrcBjv1qBDt9G/1gV8iS1YUEsnFVmObTgkplNewzepE8YagSIGREIXcBG/ZNurYmHSl108da1FmCsWR89msTzbvihGsIjkCFRZUXUYXkqORa9IZpaYDkXze1zUa0mY4tEsGsqU9EKTilQCdakGNICkrlQC19HTWC2VOF3m4LWGbXUrROGifixewtEmC+/D9irih2jDG/ga9yZQ+DV8jieriF6A5xPti/E+9uJn8Uaul+BbYrQ/wTqjyz3tCqoSRVbikjBxu/BbQaJzxdt4ZXbO49l2vmEj1+lBI3dXPCT+EA+Ky/gp2w4mrtGON0WZsUcFMzcgTNRWE/BWzfGyKClezGlJmrmHWYkZeCeL+zgpqmMnDRu5O+MU2yXM3At4FRvwVK0nl/FCM8X8XDeivUckc1lMlV4xVfrE3J4pptVCYermibLlM8KJziuhYRT1MHNDHzY21qGv0kxJLzSpmJIJTJcWGxDTpcVmCP9/lBarfKnvFh+6VwnPMvSl/pGS/dwUpvEszogy43Fh+mpmPP9qMJJ6lxanmRT8B1M0bJ9FjBNdAAAAAElFTkSuQmCC;" vertex="1" parent="n.off">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.pod" value="&lt;b&gt;Model pod&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#1a2b45;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="1220" y="80" width="210" height="620" as="geometry" />
        </mxCell>
        <mxCell id="_ico7" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAACpUlEQVRoge3YTYhNYRzH8Y+3iLzkbZoSdhJZkI1YUWzYWbCxJCU1ZShlpVhQKIoFG28pKxaKDUnyUtTQZJCExZSJEYMMFs+cXMe5955z7jn3jppf/evWfc7/+f6e5/+8nMOIWqsxJeWdhA3YhMUYQG9JfRWqZTiJfvyKxRPsxuyW0VXRHAGsx7/QSfED17ER41rACyYMAVwZAkoDnhTvhRlb2izwWiXSaJRWYvOxDy9yQOWZnW+4jPUaKLFGS+QBdmIGFuGgsAuVXmLTcUS+EnmDA1hQJff4oUG5mnNQ7mNdLfjJeJQx6QDOY61sZ0o7dqErY38/saVa0r0ZEt3BVkzLAF1Ny3EcfSn77sOUpEQ36zz4FkexpADoJI0XFu4lfK/DsjopwdOEhgO4INReWdeOJEUl9iSB6Rc2Rw1H10n0CS/RjcEySKuoF8/wOstDSTMQxaA/x//YIkljahcOs1c1WP6agbQG4mvhIOYWBD0aa6Sr/UIMRFF5KcuzPqYJh93zjP0WZqAyeoSpn5UCPLpPfWmgv8INRPEV57Aqljsa7ax9DDbbQGV0oQOn8Tnjs++wHwtbaSBP3Pb3i87EegbK3BLT6oOwAx0TDq5MaqWBhziFs8KCzqVmG+jHRZzA4yISNtPAGewQFnRhqncXKlLdCoanuQZK0YiBVuu/NzAcDrJqasOeeo0qDXwsjyWT2tCJbcJVIkkfoh+VJXSrRKg0asNh4RW2Q3X4r7iX9Mds4R20rItaZx3wtDfWvbVGYR6uNclAVvA+bMeoWgYirRC+i5ZhYKbwTp0WvH+ofa6PaCtxoyADh2Qf8X2Ymgc8rjJmpJQRb6WRUsHLNNJU8LgaMdJS8LiyGBlW4HHVMjKsweNaKXyW78Zd4atdIdvhiEZUsH4D+zfN9JHFLwAAAAAASUVORK5CYII=;" vertex="1" parent="n.pod">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.api" value="&lt;b&gt;Serving API&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#1a2b45;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="1460" y="80" width="210" height="620" as="geometry" />
        </mxCell>
        <mxCell id="_ico8" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAACpUlEQVRoge3YTYhNYRzH8Y+3iLzkbZoSdhJZkI1YUWzYWbCxJCU1ZShlpVhQKIoFG28pKxaKDUnyUtTQZJCExZSJEYMMFs+cXMe5955z7jn3jppf/evWfc7/+f6e5/+8nMOIWqsxJeWdhA3YhMUYQG9JfRWqZTiJfvyKxRPsxuyW0VXRHAGsx7/QSfED17ER41rACyYMAVwZAkoDnhTvhRlb2izwWiXSaJRWYvOxDy9yQOWZnW+4jPUaKLFGS+QBdmIGFuGgsAuVXmLTcUS+EnmDA1hQJff4oUG5mnNQ7mNdLfjJeJQx6QDOY61sZ0o7dqErY38/saVa0r0ZEt3BVkzLAF1Ny3EcfSn77sOUpEQ36zz4FkexpADoJI0XFu4lfK/DsjopwdOEhgO4INReWdeOJEUl9iSB6Rc2Rw1H10n0CS/RjcEySKuoF8/wOstDSTMQxaA/x//YIkljahcOs1c1WP6agbQG4mvhIOYWBD0aa6Sr/UIMRFF5KcuzPqYJh93zjP0WZqAyeoSpn5UCPLpPfWmgv8INRPEV57Aqljsa7ax9DDbbQGV0oQOn8Tnjs++wHwtbaSBP3Pb3i87EegbK3BLT6oOwAx0TDq5MaqWBhziFs8KCzqVmG+jHRZzA4yISNtPAGewQFnRhqncXKlLdCoanuQZK0YiBVuu/NzAcDrJqasOeeo0qDXwsjyWT2tCJbcJVIkkfoh+VJXSrRKg0asNh4RW2Q3X4r7iX9Mds4R20rItaZx3wtDfWvbVGYR6uNclAVvA+bMeoWgYirRC+i5ZhYKbwTp0WvH+ofa6PaCtxoyADh2Qf8X2Ymgc8rjJmpJQRb6WRUsHLNNJU8LgaMdJS8LiyGBlW4HHVMjKsweNaKXyW78Zd4atdIdvhiEZUsH4D+zfN9JHFLwAAAAAASUVORK5CYII=;" vertex="1" parent="n.api">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="_m9" value="1. OIDC authenticate" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.1484;exitDx=0;exitDy=0;entryX=0.5;entryY=0.1484;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.ds" target="n.idp">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m10" value="2. id token + group claims" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=open;endFill=0;dashed=1;strokeColor=#5a6570;exitX=0.5;exitY=0.2129;exitDx=0;exitDy=0;entryX=0.5;entryY=0.2129;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.idp" target="n.ds">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m11" value="3. offline read: 3 feature groups" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.2774;exitDx=0;exitDy=0;entryX=0.5;entryY=0.2774;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.ds" target="n.reg">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m12" value="4. group ACL + declared purpose" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.3419;exitDx=0;exitDy=0;entryX=0.5;entryY=0.3806;entryDx=0;entryDy=0;align=left;spacingLeft=6;" edge="1" parent="1" source="n.reg" target="n.reg">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="710" y="290" />
              <mxPoint x="710" y="320" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="_m13" value="5. request scoped credential" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.4258;exitDx=0;exitDy=0;entryX=0.5;entryY=0.4258;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.reg" target="n.lf">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m14" value="6. column and row grants" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.4903;exitDx=0;exitDy=0;entryX=0.5;entryY=0.4903;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.lf" target="n.off">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m15" value="7. as-of rows, permitted columns" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=open;endFill=0;dashed=1;strokeColor=#5a6570;exitX=0.5;exitY=0.5548;exitDx=0;exitDy=0;entryX=0.5;entryY=0.5548;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.off" target="n.ds">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m16" value="8. group 3: purpose not granted" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;dashed=1;strokeColor=#b85450;fontColor=#b85450;exitX=0.5;exitY=0.6194;exitDx=0;exitDy=0;entryX=0.5;entryY=0.6194;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.reg" target="n.ds">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m17" value="9. gRPC + IRSA workload identity" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.6839;exitDx=0;exitDy=0;entryX=0.5;entryY=0.6839;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.pod" target="n.api">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m18" value="10. role → authorised group set" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.7484;exitDx=0;exitDy=0;entryX=0.5;entryY=0.7871;entryDx=0;entryDy=0;align=left;spacingLeft=6;" edge="1" parent="1" source="n.api" target="n.api">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="1640" y="550" />
              <mxPoint x="1640" y="570" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="_m19" value="11. vector, authorised groups only" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=open;endFill=0;dashed=1;strokeColor=#5a6570;exitX=0.5;exitY=0.8323;exitDx=0;exitDy=0;entryX=0.5;entryY=0.8323;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.api" target="n.pod">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m20" value="12. PERMISSION_DENIED on group 5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;dashed=1;strokeColor=#b85450;fontColor=#b85450;exitX=0.5;exitY=0.8968;exitDx=0;exitDy=0;entryX=0.5;entryY=0.8968;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.api" target="n.pod">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="title" value="Identity and Access — Offline Read and Online Read" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=20;fontStyle=1;fontColor=#16202c;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="40" y="20" width="1630" height="30" as="geometry" />
        </mxCell>
        <mxCell id="rule" value="" style="line;strokeWidth=1;html=1;strokeColor=#c9d3de;" vertex="1" parent="1">
          <mxGeometry x="40" y="50" width="1630" height="10" as="geometry" />
        </mxCell>
        <mxCell id="note" value="A human proves purpose; a workload proves identity. Neither gets a shared key, and both are refused at group granularity." style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontColor=#8a97a5;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="40" y="750" width="1630" height="20" as="geometry" />
        </mxCell>
        <mxCell id="foot-rule" value="" style="line;strokeWidth=1;html=1;strokeColor=#e3e9ef;" vertex="1" parent="1">
          <mxGeometry x="40" y="770" width="1630" height="10" as="geometry" />
        </mxCell>
        <mxCell id="foot" value="v 1.0   ·   owner Data Platform Architecture   ·   date 2026-09" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=9;fontColor=#9aa7b4;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="40" y="780" width="1630" height="10" as="geometry" />
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
