<mxfile host="app.diagrams.net" agent="architecture-diagram" version="24.0.0">
  <diagram name="Integration Surface — every interface the service exposes or uses" id="09-integration-surface">
    <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="530" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="_h1" value="Consumers" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontStyle=1;fontColor=#8a97a5;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="40" y="60" width="520" height="20" as="geometry" />
        </mxCell>
        <mxCell id="n.console" value="&lt;b&gt;Developer console&lt;/b&gt;" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#1a2b45;fontSize=12;fontFamily=Segoe UI;verticalAlign=middle;align=center;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="70" y="90" width="460" height="50" 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,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABmJLR0QA/wD/AP+gvaeTAAADdUlEQVR4nO2ay2sTURSHv3snbVJji7YKClJ8oejShS5EUcG21rX+CYKPlS5EiyCooAt3LhT/APGx9rUTNyLShSK6KFpwpTZprS1tMnPvdTHNo1WbyaO5neZ+MDCBmeT8fjnnzLkzAw6Hw+FwtCyiuHfikcfWXfsQ3iqL8Sw9Iphm5PNbHp9UAAkArhrJ7MenQB9om+EtPUbCtt3PwQyCMBKA/KfdQJ/dyJrKAJc+7AQIDTBBp9VwbKC8LigY0MI4A2wHYBtngO0AbOMMsB2AbZwBtgOwTQKgp3e1mp0KXtsOppl0dKf0GHMG9O7f4AlpDliOqakYLdrGcCXgDHAG2A7ANlUZkFyBdkWWtLUdHm5UXO7RSFH5+LgQyYCkMNxer1jjQV/acKl75ZgQyYCcEQznSoqPriATIpfAjYzk5fR8E650a7yYm5Ao7ZpFD9QGbmZDtX3p8NjDaQMormclavHTlyGhlpIBEQRoAzczAgP0F00A0FzPxNGEGuYAbeBWRvCirBwOp+FKTzzLoaYr+79MOBRTE+ZKIKD8MWEUQhMARLEcDqWhC5+L2QT+sn/CFgB1jsIFEwqZ4Ps+O8wM99fOxGbGrjvOggnvp3xyuRwA6wg40qHqDq4ZVHUV+B/Hk3m2kCt+zgvJm1lZ13c2i8hzwP8YSPmcWp0rdpAJ43Ehm2JK1/6dzaSuEhhI+ZwtE/9FeZzOpviu43MpqNmAheK/Ko+hiRS/TXzEw7weED1d+1PBAvGSoYkkv2OS9gCI8lE4AGS0wPs7As515kvig1D8ZJzEA6h5awE/fHemAqF4f7748fZI4tsFJGusjsDATMO99YEqSuDYKsWZrgXis22RxG9pF9zdJEnWcQPhzpjiyUTjMyyyAUdTQVH8aCAZyiQip31vm6hLPMCOpADTwPl6LpxS3huz6HZtvI1vgWA0kFwe85hUlc8pbHld/z/n6+i/F2mbI8wAn4pNcDyA8z8SKCBvoJqG925ace8ndNa4VFTG8PSXrupKVRF/4Q2RCNTaiHwDD7LLc21QWg4v++VrowkFl80BLeaADttfaQ6I0fzeGMKSLPUA3WIZIMuaoDZq0msx/VowCYVxwBi559XoM1rljXHBi+GDmwcRQoclIITe9sgMjnSP7MWTacvhLS1KT2/Pbn87LESL5bzD4XA4HH/xB4PFgJQl9GRxAAAAAElFTkSuQmCC;" vertex="1" parent="n.console">
          <mxGeometry x="9" y="15" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.cust" value="&lt;b&gt;Customer CI&lt;/b&gt;" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#8c8c8c;fontColor=#333333;fontSize=12;fontFamily=Segoe UI;verticalAlign=middle;align=center;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="70" y="170" width="460" height="50" 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.cust">
          <mxGeometry x="9" y="15" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.svc" value="&lt;b&gt;Platform services&lt;/b&gt;" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#1a2b45;fontSize=12;fontFamily=Segoe UI;verticalAlign=middle;align=center;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="70" y="250" width="460" height="50" 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+gvaeTAAAC4klEQVRoge3YQYhVVRgH8N/rwZRp+4gUcwaNyU1C0SY03SomiEHaXohoUaBuiiiXQxQtgrRFKxUFl4XgImeeElKNrQoX2oxSubLGZ1JvxsV9r3lc7j3v3nPfe23uHz7mMed8/+//3XvO9517qFGjRo0aFdAYAsdjWBPp28aDIWiIwi7MY6Wi/YjtY9ZuGvcrCu+3JWwZZwIXuoH/xlHcjhB9C8ckS2gFX49L/N4+Eb9hElciEmhhCnf6/rd71OIn8EuE2KJ2HY+OMoGjIxTfs3fLCCpTRp+UPP0ncsa/wNWCXFvxVs7YXWzGHyW0FcJJ4VLYLMHVFC7Bnw9NdRfb0AkE3BHB+UqA7188X1V0Dw3MBoKdrcB9LsD7reGcFBwMBLmPjRW4nxFuiK9V4AZrsRAIcDzHbxM+lry5WczIT/R4gP+G+HMW+DBAfgvrMnz2Sg5p6flL2JMxf12XKy/Oe7HiN+QI6dnBDJ+pAT73ZL+JNwI+S3g6JoGvAqQt2Rvs04BPz2Yy/Bq4HPA5WVZ8Q/K0VnAKb/aRdfBCjl+rQAKzOb4vpeYdxvnu77/kVKRHAkl0un+b+Cc1thLwi0Was4PlKoShJTRn+Eso9Pa+jElgo3CNfj3DZ9AmbktqfxqHAj73sD4mAfgoQLwg6RNp7MtJoo1XM+avxWIgzvux4klqdIj8gxy/SXwiWWpzkqa2KWduqNfcVLGREa7RbdWOEuutVrssO1CB+z8M2mCnK3CfCfBeMqTDHLwoKWlZgZbxcgTn9hy+Xq/ZVll1CqGy+r1wT0mjiR8CfCeKEpV5RU/hZ9kHOPgMPxXkmsbbOWN/Sj4pfy+hrTCOGdyoqlqpj/qymJBcfYxK/MivVWB/X8Dbks76XYTYlmSp9F9sZX0vjAQXrfaBd/BrRAKLOGL1avGbcYmH5wz3creNZ8eZAOzENfn9oajNi7uWwXA63eMGb7yO7IuvB5KnX6NGjRo1/h88BEP/S4lsvyxyAAAAAElFTkSuQmCC;" vertex="1" parent="n.svc">
          <mxGeometry x="9" y="15" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.scanner" value="&lt;b&gt;Scanning partner&lt;/b&gt;" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#8c8c8c;fontColor=#333333;fontSize=12;fontFamily=Segoe UI;verticalAlign=middle;align=center;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="70" y="340" width="460" height="50" 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,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.scanner">
          <mxGeometry x="9" y="15" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="_h6" value="API Key and Token Service" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontStyle=1;fontColor=#8a97a5;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="600" y="60" width="520" height="20" as="geometry" />
        </mxCell>
        <mxCell id="_box7" value="" style="rounded=1;arcSize=3;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#6c8ebf;dashed=1;dashPattern=8 8;verticalAlign=top;align=left;spacingLeft=12;spacingTop=6;fontSize=11;fontStyle=2;fontColor=#5b7fa6;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="600" y="80" width="520" height="320" as="geometry" />
        </mxCell>
        <mxCell id="n.mgmt" value="&lt;b&gt;Management API&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px;color:#5b6b7d&quot;&gt;issue, scope, rotate, revoke&lt;/font&gt;" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#4a3200;fontSize=12;fontFamily=Segoe UI;verticalAlign=middle;align=center;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="630" y="160" width="460" height="70" 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,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;" vertex="1" parent="n.mgmt">
          <mxGeometry x="9" y="23" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.verify" value="&lt;b&gt;Verification interface&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px;color:#5b6b7d&quot;&gt;library, sidecar, API&lt;/font&gt;" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#4a3200;fontSize=12;fontFamily=Segoe UI;verticalAlign=middle;align=center;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="630" y="250" width="460" height="70" as="geometry" />
        </mxCell>
        <mxCell id="_ico9" 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+gvaeTAAABzklEQVRoge3XsYsUMRjG4efURgQbQQ4OxSu2EEEEwVo7Qey8VlGxFnv/BnsFCy0Ee7sDRXsrUQQREexszgOFc3HXIg7sjJPc3TK7k4H8IEXyzYT3JfnyJRQKhUKhznEc6FvEPBzBa0zxEaN+5eyf64L4qn2zBxM5LdWxRn8Nb3A69VNOBtpYxUsJE7kbYBcTh1rGjuLgIhVFOJyIrWITl/Ap9tF5fFZPpNxaMrE3MxC4l/ZV2CWo58BazFlmnMTFqjNr4OfSpczHb7yvOrMGHgtLlDMT3BFyFaw0PjinvxJ+BTcS8Qlu4uly5Oyfe+KJ+0fE3BAK2QS38KQtmLuBpHjaK3Ff7DT6ne75q/iAt7jQxYQtrOOHsOfHwvW6Ezb+TVgl1LuuJm7hFG7jbFcTNsVPDafguSZUveaRNggDMfGDMJASn52B5lViA8+kj9cpvixMUZotPMLDtuBl/ydsjm0i3NlQr8T35VXYYqzgTNWZNfB9+VrmZtw2uC68OfveIru1bTOvx2YSj/BK+nk5xoNEfJHs4LlwrYkykl6JrI7RGCkTgzBA3MRgDNBuYrtXRXPQNPGiXzl1mqdQjBO4i1/CCbS1MEWFQqFQWCZ/AdclH6RcD+9yAAAAAElFTkSuQmCC;" vertex="1" parent="n.verify">
          <mxGeometry x="9" y="23" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="_h10" value="Dependencies and sinks" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontStyle=1;fontColor=#8a97a5;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="1150" y="60" width="520" height="20" as="geometry" />
        </mxCell>
        <mxCell id="n.kms" value="&lt;b&gt;Cloud KMS / HSM&lt;/b&gt;" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;fontColor=#3a2b44;fontSize=12;fontFamily=Segoe UI;verticalAlign=middle;align=center;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="1180" y="130" width="460" height="50" as="geometry" />
        </mxCell>
        <mxCell id="_ico11" 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+gvaeTAAADDUlEQVRoge3azatVVRjH8Y+aebMX4Q6EQKQXaiBRDkS46TCLZgbpIMgKylHQC6HYX+BMmgS90BvhoJpEgmiFoNmk0sAyiKK07GVwzTJLUe9tsN1w2j37nL32XvvcBn5hDc5z1lrP73fWWnuvtThcZm6Z11O/a/EwVuIP7MJrONlTvixMYBMOYzYoZ/EW1syVwDpuwXZMi4VH5VNsxuI50Avm4y68h5lAYNPyG57DjeMSvhRb8X0H0VG5iPexAQv6EL4GO3EuUdi04ldOafMNnsFkV9GjFmWTsn+gn0OJbVsv+iuwDac6CB80MMidePOSuJR+DigeyY14IYPwOgMlS/EsjiX09TtuGyX+dt2eKk0NlCzAeuxtmPfdUQYezyi+iYFBbsUOwxf9qWqj+ZXP1yQkzM3XeArLFC+5r4I6/9FXNXA2v65kzuAlvBh891c1UDXwdx+KWnJdEBtpYDqziC673ehFdroaqBo40SFhxGyHtsuD2PFqoGrgxw4JI7qMwE1B7IdqIBqBMx2S5mIxVgTxY9VA1cAMvsgopO0UWoWFQfxwNVA1AJ+3TBrRdgqtrokfqgYiAwdbJs3JVBD7VYNFDB9ml5PG1bg7iH8QVY4M/IQvcypK5D7xlmZPVDkyAO9kk5POg0HsghoDdayQZzd6IFH8sktiq/3sqmtQNwJH8Uli8hxsEx/qX2/T2SbjHYEbxJcGJ3BlGwMT+HmMBl6p6WNLG/ElT47JwJR47p/Eki4GrlJs8Po0cK3iLihq/3QX8SUPdDDwUYP+X61p+y0W5TAwD/t6MrC5pt0M1uUQX3Kz4jSU08AG8byfxcs5xZc8mtHAPervWY/q8Xakbr6mGHhsiPjT4oNMNhbh45YGFuL5IXXP494+xZdM4kiigSl8NqTeBTw0DvEl1yuOnqMMHFG8YYfde57D/eMUXzIpbTpF5U+ZH5epTEhf2GX5Tv3Zd+w8ori/byr+DR33OH2wHG8bLvw4Ns6VwKasxW7/Fv4LnpBpbzNIX381oNh+3KGYWgf9P67uL5OdfwCdL2jqexBRtgAAAABJRU5ErkJggg==;" vertex="1" parent="n.kms">
          <mxGeometry x="9" y="15" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.spanner" value="&lt;b&gt;Credential store&lt;/b&gt;" style="shape=cylinder3;boundedLbl=1;backgroundOutline=1;size=11;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#1e3a1e;fontSize=12;fontFamily=Segoe UI;verticalAlign=middle;align=center;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="1180" y="210" width="460" height="50" as="geometry" />
        </mxCell>
        <mxCell id="_ico12" 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.spanner">
          <mxGeometry x="12" y="21" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.siem" value="&lt;b&gt;Tenant SIEM&lt;/b&gt;" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#8c8c8c;fontColor=#333333;fontSize=12;fontFamily=Segoe UI;verticalAlign=middle;align=center;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="1180" y="300" width="460" height="50" as="geometry" />
        </mxCell>
        <mxCell id="_ico13" 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.siem">
          <mxGeometry x="9" y="15" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="_e14" value="session" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;jettySize=auto;orthogonalLoop=1;endArrow=block;endFill=1;strokeColor=#5a6570;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;verticalAlign=bottom;fontFamily=Segoe UI;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.2;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.console" target="n.mgmt">
          <mxGeometry relative="1" x="-0.7" as="geometry">
            <Array as="points">
              <mxPoint x="560" y="120" />
              <mxPoint x="560" y="170" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="_e15" value="mint" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;jettySize=auto;orthogonalLoop=1;endArrow=block;endFill=1;strokeColor=#5a6570;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;verticalAlign=bottom;fontFamily=Segoe UI;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.4;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.cust" target="n.mgmt">
          <mxGeometry relative="1" x="-0.7" as="geometry">
            <Array as="points">
              <mxPoint x="580" y="200" />
              <mxPoint x="580" y="190" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="_e16" value="verify" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;jettySize=auto;orthogonalLoop=1;endArrow=block;endFill=1;strokeColor=#5a6570;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;verticalAlign=bottom;fontFamily=Segoe UI;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.6;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.svc" target="n.mgmt">
          <mxGeometry relative="1" x="-0.7" as="geometry">
            <Array as="points">
              <mxPoint x="590" y="280" />
              <mxPoint x="590" y="200" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="_e17" value="live-or-not" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;jettySize=auto;orthogonalLoop=1;endArrow=block;endFill=1;strokeColor=#5a6570;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;verticalAlign=bottom;fontFamily=Segoe UI;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.8;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.scanner" target="n.mgmt">
          <mxGeometry relative="1" x="-0.7" as="geometry">
            <Array as="points">
              <mxPoint x="610" y="370" />
              <mxPoint x="610" y="220" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="_e18" value="pepper" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;jettySize=auto;orthogonalLoop=1;endArrow=block;endFill=1;strokeColor=#5a6570;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;verticalAlign=bottom;fontFamily=Segoe UI;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.mgmt" target="n.kms">
          <mxGeometry relative="1" x="-0.6" as="geometry">
            <Array as="points">
              <mxPoint x="1120" y="180" />
              <mxPoint x="1120" y="160" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="_e19" value="records" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;jettySize=auto;orthogonalLoop=1;endArrow=block;endFill=1;strokeColor=#5a6570;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;verticalAlign=bottom;fontFamily=Segoe UI;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.mgmt" target="n.spanner">
          <mxGeometry relative="1" x="-0.6" as="geometry">
            <Array as="points">
              <mxPoint x="1140" y="200" />
              <mxPoint x="1140" y="240" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="_e20" value="export" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;jettySize=auto;orthogonalLoop=1;dashed=1;dashPattern=1 4;endArrow=block;endFill=1;strokeColor=#9673a6;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;verticalAlign=bottom;fontFamily=Segoe UI;exitX=1;exitY=0.75;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.mgmt" target="n.siem">
          <mxGeometry relative="1" x="-0.8" as="geometry">
            <Array as="points">
              <mxPoint x="1160" y="210" />
              <mxPoint x="1160" y="330" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="title" value="Integration Surface — every interface the service exposes or uses" 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="_lg21" value="" style="rounded=1;arcSize=30;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
          <mxGeometry x="40" y="440" width="20" height="10" as="geometry" />
        </mxCell>
        <mxCell id="_lg22" value="Application we own" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontColor=#7b8794;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="70" y="440" width="110" height="20" as="geometry" />
        </mxCell>
        <mxCell id="_lg23" value="" style="rounded=1;arcSize=30;html=1;fillColor=#f5f5f5;strokeColor=#8c8c8c;" vertex="1" parent="1">
          <mxGeometry x="200" y="440" width="20" height="10" as="geometry" />
        </mxCell>
        <mxCell id="_lg24" value="External / third party" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontColor=#7b8794;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="230" y="440" width="130" height="20" as="geometry" />
        </mxCell>
        <mxCell id="_lg25" value="" style="rounded=1;arcSize=30;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
          <mxGeometry x="380" y="440" width="20" height="10" as="geometry" />
        </mxCell>
        <mxCell id="_lg26" value="Interface / broker" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontColor=#7b8794;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="410" y="440" width="110" height="20" as="geometry" />
        </mxCell>
        <mxCell id="_lg27" value="" style="rounded=1;arcSize=30;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
          <mxGeometry x="540" y="440" width="20" height="10" as="geometry" />
        </mxCell>
        <mxCell id="_lg28" value="Security / platform" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontColor=#7b8794;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="570" y="440" width="110" height="20" as="geometry" />
        </mxCell>
        <mxCell id="_lg29" value="" style="rounded=1;arcSize=30;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
          <mxGeometry x="710" y="440" width="20" height="10" as="geometry" />
        </mxCell>
        <mxCell id="_lg30" value="Data store" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontColor=#7b8794;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="740" y="440" width="70" height="20" as="geometry" />
        </mxCell>
        <mxCell id="_lg31" value="" style="html=1;endArrow=none;strokeColor=#5a6570;strokeWidth=1.4;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="820" y="450" as="sourcePoint" />
            <mxPoint x="850" y="450" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="_lg32" value="synchronous" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontColor=#7b8794;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="850" y="440" width="70" height="20" as="geometry" />
        </mxCell>
        <mxCell id="_lg33" value="" style="html=1;endArrow=none;dashed=1;dashPattern=1 4;strokeColor=#9673a6;strokeWidth=1.4;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="940" y="450" as="sourcePoint" />
            <mxPoint x="970" y="450" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="_lg34" value="batch" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontColor=#7b8794;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="970" y="440" width="40" height="20" as="geometry" />
        </mxCell>
        <mxCell id="note" value="Four inbound interfaces, three outbound. Lifecycle webhooks and metering are emitted, not called, and appear in views 14 and 18. The partner endpoint is the only unauthenticated interface, and it answers a single bit." 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="470" 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="490" width="1630" height="10" as="geometry" />
        </mxCell>
        <mxCell id="foot" value="v 1.0   ·   owner Security 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="500" width="1630" height="10" as="geometry" />
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
