diff --git a/docs/diagrams/context.svg b/docs/diagrams/context.svg index d6db017a0282ab02d169dce4d5f6d444d1f8c420..d052f600a7aa4a81f0113ed06d429cd6881534b3 100644 --- a/docs/diagrams/context.svg +++ b/docs/diagrams/context.svg @@ -1,51 +1,55 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1152px" preserveAspectRatio="none" style="width:1415px;height:1152px;background:#FFFFFF;" version="1.1" viewBox="0 0 1415 1152" width="1415px" zoomAndPan="magnify"><defs/><g><!--MD5=[cfd4b2bff0b744335e5c50bb0bd41cb8] -entity visitor--><rect fill="#686868" height="119.8203" style="stroke:#8A8A8A;stroke-width:1.5;" width="158" x="948.25" y="907"/><image height="48" width="48" x="1003.25" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=" y="917"/><text fill="#FFFFFF" font-family="sans-serif" font-size="16" font-weight="bold" lengthAdjust="spacing" textLength="53" x="1000.75" y="980.4688">Visitor</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="0" x="1029.25" y="997.3789"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="134" x="962.25" y="1013.8672">A visitor of website.</text><!--MD5=[026b3f9ae447cd6258ef99d33f5de6cf] -entity editor--><rect fill="#08427B" height="119.8203" style="stroke:#073B6F;stroke-width:1.5;" width="188" x="327.25" y="709"/><image height="48" width="48" x="397.25" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=" y="719"/><text fill="#FFFFFF" font-family="sans-serif" font-size="16" font-weight="bold" lengthAdjust="spacing" textLength="168" x="337.25" y="782.4688">Authenticated editor</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="0" x="423.25" y="799.3789"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="112" x="367.25" y="815.8672">Content creator.</text><!--MD5=[23e4898078453906b079a6bea7d1245c] -entity developer--><rect fill="#08427B" height="119.8203" style="stroke:#073B6F;stroke-width:1.5;" width="166" x="381.25" y="16"/><image height="48" width="48" x="440.25" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=" y="26"/><text fill="#FFFFFF" font-family="sans-serif" font-size="16" font-weight="bold" lengthAdjust="spacing" textLength="82" x="423.25" y="89.4688">Developer</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="0" x="466.25" y="106.3789"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="142" x="395.25" y="122.8672">Developer of system.</text><!--MD5=[de33f1692ae77e01f0ec53f7118825ca] -entity studio--><rect fill="#1168BD" height="138.3086" style="stroke:#3C7FC0;stroke-width:1.5;" width="189" x="327" y="472"/><image height="50" width="50" x="396.5" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAABjklEQVR4Xu2YzU7CQBRGeSoTJa4NaHwNxY2LwsqXplI0rpBLwEzOtGXa3tuZxjnJ2c39+SgNtLNZJpPJdGVXvB5CrY6yPjpcsqvsNzpcaIj79SpOIC6iJeeYwuHacp4J5eLWG2wh56qzDQzCOqEqXrxzTbJWnWtBeL4O1jTJOjUkxMnHuTe0z2DWU55X4y9IzVXh2RC+N29eH8oaFdwgbphqwG8AF6c8rwKDbB9u7IZZ4gU5y3PJwwCuu+XddAJx+SZZlyRc+po/T/M0g3HRPsrfHPaNAhcb4mfMe0s+US6kIeeMglWYchHpCnERDaPeQ+Xxu86FhlguI4Zxka8Il+sqeyaBfMJcNET2SY7QK8a6pOHykw0iMMAkg+yL1em5hiFMgvDJjfJ8F9w+h+f7uEG+FB93owYRWRMCe5gHETiwTta0IVeR9Zce0YOEBKrON3ebZiEucKCV5kEEDrWQM02oNv5gTTnPHC6gIWeMxuHj3Vumj9U6YggXLhaqvMhmr6Rof9Pe/19AJpP55/wCwk7g9HfTvaAAAAAASUVORK5CYII=" y="482"/><text fill="#FFFFFF" font-family="sans-serif" font-size="16" font-weight="bold" lengthAdjust="spacing" textLength="106" x="368.5" y="547.4688">Sanity Studio</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="0" x="423.5" y="564.3789"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="161" x="341" y="580.8672">Allows editors to create</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="56" x="393.5" y="597.3555">content.</text><!--MD5=[3c192b75ae70093d2d02a2a65517a5ba] -entity sanity--><path d="M622.25,461 C622.25,451 732.25,451 732.25,451 C732.25,451 842.25,451 842.25,461 L842.25,621.2852 C842.25,631.2852 732.25,631.2852 732.25,631.2852 C732.25,631.2852 622.25,631.2852 622.25,621.2852 L622.25,461 " fill="#999999" style="stroke:#8A8A8A;stroke-width:1.5;"/><path d="M622.25,461 C622.25,471 732.25,471 732.25,471 C732.25,471 842.25,471 842.25,461 " fill="none" style="stroke:#8A8A8A;stroke-width:1.5;"/><image height="50" width="50" x="707.25" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAABjklEQVR4Xu2YzU7CQBRGeSoTJa4NaHwNxY2LwsqXplI0rpBLwEzOtGXa3tuZxjnJ2c39+SgNtLNZJpPJdGVXvB5CrY6yPjpcsqvsNzpcaIj79SpOIC6iJeeYwuHacp4J5eLWG2wh56qzDQzCOqEqXrxzTbJWnWtBeL4O1jTJOjUkxMnHuTe0z2DWU55X4y9IzVXh2RC+N29eH8oaFdwgbphqwG8AF6c8rwKDbB9u7IZZ4gU5y3PJwwCuu+XddAJx+SZZlyRc+po/T/M0g3HRPsrfHPaNAhcb4mfMe0s+US6kIeeMglWYchHpCnERDaPeQ+Xxu86FhlguI4Zxka8Il+sqeyaBfMJcNET2SY7QK8a6pOHykw0iMMAkg+yL1em5hiFMgvDJjfJ8F9w+h+f7uEG+FB93owYRWRMCe5gHETiwTta0IVeR9Zce0YOEBKrON3ebZiEucKCV5kEEDrWQM02oNv5gTTnPHC6gIWeMxuHj3Vumj9U6YggXLhaqvMhmr6Rof9Pe/19AJpP55/wCwk7g9HfTvaAAAAAASUVORK5CYII=" y="475"/><text fill="#FFFFFF" font-family="sans-serif" font-size="16" font-weight="bold" lengthAdjust="spacing" textLength="168" x="648.25" y="540.4688">Sanity Cloud Storage</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="0" x="734.25" y="557.3789"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="165" x="649.75" y="573.8672">Proprietary DB on top of</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="180" x="640.25" y="590.3555">Google Cloud PostgreSQL.</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="200" x="632.25" y="606.8438">Serves images with IIIF Image</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="182" x="641.25" y="623.332">API and files from buckets.</text><!--MD5=[c5e38d65ec137cb93ec501c699f4220c] -entity sanityManage--><rect fill="#999999" height="138.3086" style="stroke:#8A8A8A;stroke-width:1.5;" width="218" x="28.25" y="7"/><image height="50" width="50" x="112.25" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAABjklEQVR4Xu2YzU7CQBRGeSoTJa4NaHwNxY2LwsqXplI0rpBLwEzOtGXa3tuZxjnJ2c39+SgNtLNZJpPJdGVXvB5CrY6yPjpcsqvsNzpcaIj79SpOIC6iJeeYwuHacp4J5eLWG2wh56qzDQzCOqEqXrxzTbJWnWtBeL4O1jTJOjUkxMnHuTe0z2DWU55X4y9IzVXh2RC+N29eH8oaFdwgbphqwG8AF6c8rwKDbB9u7IZZ4gU5y3PJwwCuu+XddAJx+SZZlyRc+po/T/M0g3HRPsrfHPaNAhcb4mfMe0s+US6kIeeMglWYchHpCnERDaPeQ+Xxu86FhlguI4Zxka8Il+sqeyaBfMJcNET2SY7QK8a6pOHykw0iMMAkg+yL1em5hiFMgvDJjfJ8F9w+h+f7uEG+FB93owYRWRMCe5gHETiwTta0IVeR9Zce0YOEBKrON3ebZiEucKCV5kEEDrWQM02oNv5gTTnPHC6gIWeMxuHj3Vumj9U6YggXLhaqvMhmr6Rof9Pe/19AJpP55/wCwk7g9HfTvaAAAAAASUVORK5CYII=" y="17"/><text fill="#FFFFFF" font-family="sans-serif" font-size="16" font-weight="bold" lengthAdjust="spacing" textLength="118" x="78.25" y="82.4688">Sanity Manage</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="0" x="139.25" y="99.3789"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="190" x="42.25" y="115.8672">Sanity backend for projects,</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="197" x="38.75" y="132.3555">datasets, configs and access.</text><!--MD5=[e9053c6dbb891ad4199c45de881c9d13] -entity website--><rect fill="#1168BD" height="138.3086" style="stroke:#3C7FC0;stroke-width:1.5;" width="202" x="926.25" y="472"/><image height="50" width="50" x="1002.25" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAABfUlEQVR4XtWOAY7DIAwE+/9P36mVEm0HQ7wcTriRRmo9hvB6recn4bbwoa6Pwses8jb44QrL4QerXQ4/cKfL4MVP+Sd42dNOwUt20YKHd9KCh3czBQ/t6hAu7+wQLu9uCJf+iw1cuEOFLesXjI4K25UKW9YvGB0VtisVNscTBkfCPlJhczxhcIzgTk+FzfEDh64R3OmpsDl+4NC1B/ciFTbXZuA6grtUYXNtBq5K9H+kwubaDFyV0SxSYXNtBq5KNHvDM9Eem2szcFUyc3cnazNwVZyW6Y7NwFUZtTejzubaDFwVtqs+aq7NwFVhy+z05o4nDI4KW7TzJuqcOZ4wOCps2b1o5njC4KiwUYVt1gYuZFXYIhW2GRu4kFVhi1TYZgzhUsYDzkcqbI5duFipwpZ1CJerVNgyXsIDlSpsI9PwYKUKW08LHq70gPPIKXhJlQpbb8+Gl1WpsLFPw0urPOjNl8DLqzzQ3yXww6u9HT5glY/Bh8y6FXzcyKX8AqAq6Wv25cYoAAAAAElFTkSuQmCC" y="482"/><text fill="#FFFFFF" font-family="sans-serif" font-size="16" font-weight="bold" lengthAdjust="spacing" textLength="63" x="995.75" y="547.4688">Website</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="0" x="1029.25" y="564.3789"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="136" x="959.25" y="580.8672">Frontend with static</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="182" x="936.25" y="597.3555">generated pages and APIs.</text><!--MD5=[e937783d151d78c9e87fd4c0d99f7485] -entity proxy--><rect fill="#1168BD" height="119.3086" style="stroke:#3C7FC0;stroke-width:1.5;" width="203" x="926" y="709.5"/><image height="31" width="50" x="1002.5" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAfCAYAAAClDZ5ZAAABN0lEQVR4Xt2SUQ6DIBBEOUx7unqZ3khP1mZNRfpcQHCJ6CTvB9idmahzNZqmT5auxbB76E4MWEI3YrAaThcDHeE0MUgYiGcWNBONaMhzK8xFA82Id1aYiYth8ni9675MyXsTcSkMpMhzKcP7FHv28+0hcSkMpEjVVwnFO43D4kIsX4oUl5HZoWDmsLiQYYIiRWVkdsjMmIrLGQZFksE4+yvyNxNR1CMrGmu4rcHGiDORIssM9+TwPqpoGsMljJf/nzOJIrUEyQPRMIVLFAkNOGdcRPBeUcMUEkZZqhpos4ZFBO+1McshYZSFRN0vs02KMOQedhZZTQKfBkUE71MqLkoxD4xj2yI8aIFvf/Uigi9z9SLCbYoItykyY1xk/WeVyytxiyK+xNXLsMcsPuoZZlfFod5gXtEXjeR50lh9IN0AAAAASUVORK5CYII=" y="719.5"/><text fill="#FFFFFF" font-family="sans-serif" font-size="16" font-weight="bold" lengthAdjust="spacing" textLength="45" x="1005" y="765.9688">Proxy</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="0" x="1029.5" y="782.8789"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="175" x="940" y="799.3672">Reverse proxy for serving</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="170" x="942.5" y="815.8555">Nansen with UiB domain.</text><!--MD5=[389badd7c35f4ea505f5befbc26a5052] -entity deployment--><rect fill="#999999" height="121.8203" style="stroke:#8A8A8A;stroke-width:1.5;" width="215" x="487" y="237"/><image height="50" width="50" x="569.5" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAABEklEQVR4Xt3USwqDQBRE0dYtK7gk0UVqMKNQl6R/rweVgjO5MWoIdEop3X8CwRWCKwRXCK4QXCG4QnCF4ArBFYIrBFcIrhBcIbhCCPXsui70ARDCzPP8/iHP9LMBEMLo9PNgCCGWZdHfcU/ThOsCIYT4Nr0uEEK3X9v3HdcHQeiWm14fBKFLyQYdxwjNPo/b3PS7ARCa1U6/3wmhybqu+p7ZBR/HCE1ap/fpgFCtZ8dx4H6NEKr1Tu/XCKFKxIKOY4RiNcdtbnrvBgjFoqf3r4RQZNs2fY/uPf+wPqcCQpFR0+dUQMgaufM88bxCCFmjp88rhOAKwRWCKwRXCK4QXCG4QnCF4ArBFYIrBFcIrhAsvQD7l+LtBB33mgAAAABJRU5ErkJggg==" y="247"/><text fill="#FFFFFF" font-family="sans-serif" font-size="16" font-weight="bold" lengthAdjust="spacing" textLength="50" x="569.5" y="312.4688">Vercel</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="0" x="596.5" y="329.3789"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="191" x="501" y="345.8672">Deploys studio and website.</text><!--MD5=[9a631f4ec9219869b7e8b94d6775f9b9] -entity marcusManifest--><rect fill="#1168BD" height="138.3086" style="stroke:#3C7FC0;stroke-width:1.5;" width="206" x="1203.25" y="472"/><image height="50" width="50" x="1281.25" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAABfUlEQVR4XtWOAY7DIAwE+/9P36mVEm0HQ7wcTriRRmo9hvB6recn4bbwoa6Pwses8jb44QrL4QerXQ4/cKfL4MVP+Sd42dNOwUt20YKHd9KCh3czBQ/t6hAu7+wQLu9uCJf+iw1cuEOFLesXjI4K25UKW9YvGB0VtisVNscTBkfCPlJhczxhcIzgTk+FzfEDh64R3OmpsDl+4NC1B/ciFTbXZuA6grtUYXNtBq5K9H+kwubaDFyV0SxSYXNtBq5KNHvDM9Eem2szcFUyc3cnazNwVZyW6Y7NwFUZtTejzubaDFwVtqs+aq7NwFVhy+z05o4nDI4KW7TzJuqcOZ4wOCps2b1o5njC4KiwUYVt1gYuZFXYIhW2GRu4kFVhi1TYZgzhUsYDzkcqbI5duFipwpZ1CJerVNgyXsIDlSpsI9PwYKUKW08LHq70gPPIKXhJlQpbb8+Gl1WpsLFPw0urPOjNl8DLqzzQ3yXww6u9HT5glY/Bh8y6FXzcyKX8AqAq6Wv25cYoAAAAAElFTkSuQmCC" y="482"/><text fill="#FFFFFF" font-family="sans-serif" font-size="16" font-weight="bold" lengthAdjust="spacing" textLength="137" x="1237.75" y="547.4688">Marcus manifest</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="0" x="1308.25" y="564.3789"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="178" x="1217.25" y="580.8672">Temporary API for Marcus</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="94" x="1259.25" y="597.3555">IIIF manifests.</text><!--MD5=[4d3fe30f1291fc2fac05ba39abe9dac2] -entity git--><rect fill="#1168BD" height="121.8203" style="stroke:#3C7FC0;stroke-width:1.5;" width="129" x="662" y="15"/><image height="50" width="50" x="701.5" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAABzklEQVR4Xu2YTWoCQRCFvYQEJBeQHMOcQbJwyEHULMwVnBzEwJzAHETMdkBwOQtDLQY6r/+qqnvCGPqDt5npea+/leDk9k+Y4IN7pYiMjSIyNoqIi9PpdHuYTlnJTRYRvKQ0OUgSwQulJgWVyPf5bF0iV7SIRXB4iHweDjgbRSSCg0OmWq1wPghbBIf+Ih91jdfwkiRCvG231nNpmqYJbnBgiWC5bwTfx4Lge985F1ERLJUOSMD+Ps+LBR61UIu8LJd4NBncMBMjKIJlmNxgv2TrbkRie2qRocAd7qZK5H23w6PZwK1kESzhFuYA9/rQb5aPuxIJbReRIcE9znYRGRLc42x7RZ7mc6uEU5gK7nA3vSIEFnFLU8Ad7qZaJFasAfsxIZJEYuUSsNeVEEGRtm2tMldSuFwuVp8rMYIihK8Qn5v5Oh6Nht9s1mvrPCcxoiKErxSf43sfeD4WDioR+o/X967rOuNLN4+zmfVdKBxYIoSrnP5xJF6rij3Yg32+cGGLENoRF9jligSRCJEyZoI9GCliEQJHNRfA7zQdJioRAsell8DvpN8jahHier2qL6L9zkeSSE+934svJD0fI4vIGCgiY6OIjI0iMjZ+AG+Vhjrmu25HAAAAAElFTkSuQmCC" y="25"/><text fill="#FFFFFF" font-family="sans-serif" font-size="16" font-weight="bold" lengthAdjust="spacing" textLength="57" x="698" y="90.4688">GitHub</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="0" x="728.5" y="107.3789"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="105" x="676" y="123.8672">Version control</text><!--MD5=[743b25f5500fd16bfcf559a6d1ecca37] -entity google_auth--><rect fill="#999999" height="119.8203" style="stroke:#8A8A8A;stroke-width:1.5;" width="203" x="7" y="481"/><image height="48" width="48" x="84.5" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB5ElEQVR4Xu2YoZLDMAxE+/9/IHSsrKys6FhYWFlRWVhZWG/HnvOl0spW0ukkc5OHOqm83liW4uQgG+OgL6zNbqjFbqjFvzD0FUaPDDDD0Pl8fjwez5lgyOl00lo+UUPH41FPNQcM14oOUUP3+z1Ld103juPrdByEITj/xnCt6BAyhGSVOXCvwzD8TeuDMAQX9xDRuoyQoQVbxwIRrctoGyrL/j6Q0uqGhiGUrlZNXK/X7yoI0GMSzV7QMER1g4tPEw1BHfdKzRD6h9ZLBLdnKQVFvS3VDNFqut1uOs4HwXp8qj4dN8E1dLlctFIi3uLEb6cQ16G/uIZo9+v7XoVhSlwcEvhh7eKiVkn9TIUVuKGgCt0ldofRe/NaADHklbpaZy8dT5NWL/u0BRBDwZ1IO0LGZpbWB20BxFCOhi30tzLY1iqdI2PdTzsIZMujWoXJWoZKElSYUEObS5m3W1fb1BIuezqTbXq07O0qZrghCatgMbDyH2+M4tz906SjTrClTXENibMTV3u4in/8sC2Asmx4zZAsusUCXWBa6lMahrxNsNoRVrZ2yM/Q0/FcgifxkKHSArbyoihbe5WW6pMrQrydRg3JG59jgsnKzDBUyB+jLPYvPTLAEkMfZTfUYjfUYjfU4geTKxbpZd5guQAAAABJRU5ErkJggg==" y="491"/><text fill="#FFFFFF" font-family="sans-serif" font-size="16" font-weight="bold" lengthAdjust="spacing" textLength="183" x="17" y="554.4688">Google Authentication</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="0" x="110.5" y="571.3789"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="150" x="35.5" y="587.8672">Authenticates editors.</text><!--MD5=[d0968bca8d671a4ed6a28747d102d2ea] -link studio to sanity--><path d="M515.827,541 C546.717,541 581.416,541 613.833,541 " fill="none" id="studio-to-sanity" style="stroke:#666666;stroke-width:1.0;"/><polygon fill="#666666" points="622.021,541,614.021,538,614.021,544,622.021,541" style="stroke:#666666;stroke-width:1.0;"/><text fill="#666666" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="69" x="533.75" y="519.6016">Read/Write</text><text fill="#666666" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="46" x="545.25" y="533.7344">[HTTPS]</text><!--MD5=[a7b9f2e9030062fb48414cb466ff70c9] -reverse link sanity to website--><path d="M850.572,541 C875.519,541 901.627,541 925.883,541 " fill="none" id="sanity-backto-website" style="stroke:#666666;stroke-width:1.0;"/><polygon fill="#666666" points="842.517,541,850.517,544,850.517,538,842.517,541" style="stroke:#666666;stroke-width:1.0;"/><text fill="#666666" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="30" x="868.75" y="519.6016">Read</text><text fill="#666666" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="46" x="860.75" y="533.7344">[HTTPS]</text><!--MD5=[7dce95b5a97dd7020c269498fc692f6b] -reverse link google_auth to studio--><path d="M218.314,541 C253.712,541 292.595,541 326.77,541 " fill="none" id="google_auth-backto-studio" style="stroke:#666666;stroke-width:1.0;"/><polygon fill="#666666" points="209.872,541,217.872,544,217.872,538,209.872,541" style="stroke:#666666;stroke-width:1.0;"/><text fill="#666666" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="79" x="228" y="519.6016">Authenticate</text><text fill="#666666" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="46" x="244.5" y="533.7344">[HTTPS]</text><!--MD5=[f9c290ddfcb71aa1a61518863009dc43] -link website to marcusManifest--><path d="M1128.37,541 C1150.04,541 1173.04,541 1195.07,541 " fill="none" id="website-to-marcusManifest" style="stroke:#666666;stroke-width:1.0;"/><polygon fill="#666666" points="1203.13,541,1195.13,538,1195.13,544,1203.13,541" style="stroke:#666666;stroke-width:1.0;"/><text fill="#666666" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="37" x="1146.75" y="533.6016">Loads</text><!--MD5=[de8a4f1916b96daf2804a91a2e5ebbd2] -reverse link website to proxy--><path d="M1027.25,618.372 C1027.25,648.034 1027.25,681.472 1027.25,709.203 " fill="none" id="website-backto-proxy" style="stroke:#666666;stroke-width:1.0;"/><polygon fill="#666666" points="1027.25,610.114,1024.25,618.114,1030.25,618.114,1027.25,610.114" style="stroke:#666666;stroke-width:1.0;"/><text fill="#666666" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="87" x="1028.25" y="674.1016">Reverse proxy</text><!--MD5=[e86980073331b87995418fa115ce6876] -reverse link proxy to visitor--><path d="M1027.25,836.781 C1027.25,859.48 1027.25,884.674 1027.25,906.744 " fill="none" id="proxy-backto-visitor" style="stroke:#666666;stroke-width:1.0;"/><polygon fill="#666666" points="1027.25,828.541,1024.25,836.541,1030.25,836.541,1027.25,828.541" style="stroke:#666666;stroke-width:1.0;"/><text fill="#666666" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="41" x="1028.25" y="872.1016">Enjoys</text><!--MD5=[a8ab28810acd8767e45cc9cc38f0d5d3] -reverse link studio to editor--><path d="M421.25,618.338 C421.25,647.875 421.25,681.16 421.25,708.828 " fill="none" id="studio-backto-editor" style="stroke:#666666;stroke-width:1.0;"/><polygon fill="#666666" points="421.25,610.114,418.25,618.114,424.25,618.114,421.25,610.114" style="stroke:#666666;stroke-width:1.0;"/><text fill="#666666" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="98" x="422.25" y="674.1016">Creates content</text><!--MD5=[340cae6619364b0551fb64a92a9886f2] -link developer to git--><path d="M547.508,76 C581.627,76 620.751,76 653.68,76 " fill="none" id="developer-to-git" style="stroke:#666666;stroke-width:1.0;"/><polygon fill="#666666" points="661.912,76,653.912,73,653.912,79,661.912,76" style="stroke:#666666;stroke-width:1.0;"/><text fill="#666666" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="77" x="565.5" y="68.6016">Pushes code</text><!--MD5=[71a3382d2ed74e0103273db544893122] -reverse link sanityManage to developer--><path d="M254.628,76 C296.497,76 342.761,76 381.151,76 " fill="none" id="sanityManage-backto-developer" style="stroke:#666666;stroke-width:1.0;"/><polygon fill="#666666" points="246.591,76,254.591,79,254.591,73,246.591,76" style="stroke:#666666;stroke-width:1.0;"/><text fill="#666666" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="97" x="264.75" y="68.6016">Manages Sanity</text><!--MD5=[7a67783aaf960bb7536d4335d6a7a2fb] -link developer to deployment--><path d="M488.832,136.312 C499.063,158.992 511.713,184.741 525.25,207 C529.871,214.599 535.01,222.318 540.34,229.879 " fill="none" id="developer-to-deployment" style="stroke:#666666;stroke-width:1.0;"/><polygon fill="#666666" points="545.279,236.77,543.0556,228.5204,538.1794,232.0165,545.279,236.77" style="stroke:#666666;stroke-width:1.0;"/><text fill="#666666" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="133" x="526.25" y="195.1016">Manages deployment</text><!--MD5=[b4bf5123ce98b2bfa5411a06ee70fdd3] -link git to deployment--><path d="M701.536,137.064 C691.376,159.596 678.81,185.047 665.25,207 C660.526,214.649 655.258,222.4 649.785,229.98 " fill="none" id="git-to-deployment" style="stroke:#666666;stroke-width:1.0;"/><polygon fill="#666666" points="644.712,236.885,651.8665,232.2145,647.0314,228.6618,644.712,236.885" style="stroke:#666666;stroke-width:1.0;"/><text fill="#666666" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="88" x="684.25" y="188.1016">Triggers build</text><text fill="#666666" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="61" x="697.75" y="202.2344">[Webhook]</text><!--MD5=[f32e73e884822034bce307502ffb89bc] -link deployment to studio--><path d="M551.041,359.193 C528.054,391.216 499.571,430.894 475.149,464.915 " fill="none" id="deployment-to-studio" style="stroke:#666666;stroke-width:1.0;"/><polygon fill="#666666" points="470.321,471.64,477.423,466.8901,472.5485,463.3915,470.321,471.64" style="stroke:#666666;stroke-width:1.0;"/><text fill="#666666" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="40" x="533.25" y="402.1016">Serves</text><text fill="#666666" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="46" x="530.25" y="416.2344">[HTTPS]</text><!--MD5=[548e49d211da9842714f8e4a5326adfd] -link deployment to website--><path d="M701.562,358.728 C767.773,395.58 852.44,442.704 918.852,479.668 " fill="none" id="deployment-to-website" style="stroke:#666666;stroke-width:1.0;"/><polygon fill="#666666" points="926.037,483.667,920.5064,477.1545,917.5879,482.3969,926.037,483.667" style="stroke:#666666;stroke-width:1.0;"/><text fill="#666666" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="40" x="814.25" y="402.1016">Serves</text><text fill="#666666" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="46" x="811.25" y="416.2344">[HTTPS]</text><rect fill="#FFFFFF" height="96.4414" rx="5" ry="5" style="stroke:#FFFFFF;stroke-width:1.0;" width="129" x="1264.25" y="1039.8203"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="51" x="1270.25" y="1060.3555">Legend</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="0" x="1325.25" y="1060.3555"/><rect fill="#08427B" height="16.4883" style="stroke:none;stroke-width:1.0;" width="117" x="1270.25" y="1063.3086"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="48" x="1274.25" y="1076.8438">person</text><rect fill="#1168BD" height="16.4883" style="stroke:none;stroke-width:1.0;" width="117" x="1270.25" y="1079.7969"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="47" x="1274.25" y="1093.332">system</text><rect fill="#686868" height="16.4883" style="stroke:none;stroke-width:1.0;" width="117" x="1270.25" y="1096.2852"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="109" x="1274.25" y="1109.8203">external person</text><rect fill="#999999" height="16.4883" style="stroke:none;stroke-width:1.0;" width="117" x="1270.25" y="1112.7734"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="108" x="1274.25" y="1126.3086">external system</text><line style="stroke:#FFFFFF;stroke-width:1.0;" x1="1270.25" x2="1387.25" y1="1046.8203" y2="1046.8203"/><line style="stroke:#FFFFFF;stroke-width:1.0;" x1="1270.25" x2="1387.25" y1="1063.3086" y2="1063.3086"/><line style="stroke:#FFFFFF;stroke-width:1.0;" x1="1270.25" x2="1387.25" y1="1079.7969" y2="1079.7969"/><line style="stroke:#FFFFFF;stroke-width:1.0;" x1="1270.25" x2="1387.25" y1="1096.2852" y2="1096.2852"/><line style="stroke:#FFFFFF;stroke-width:1.0;" x1="1270.25" x2="1387.25" y1="1112.7734" y2="1112.7734"/><line style="stroke:#FFFFFF;stroke-width:1.0;" x1="1270.25" x2="1387.25" y1="1129.2617" y2="1129.2617"/><line style="stroke:#FFFFFF;stroke-width:1.0;" x1="1270.25" x2="1270.25" y1="1046.8203" y2="1129.2617"/><line style="stroke:#FFFFFF;stroke-width:1.0;" x1="1387.25" x2="1387.25" y1="1046.8203" y2="1129.2617"/><!--MD5=[74bc443a6a4d4febf6bb98c08c4ebfa0] +<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1166px" preserveAspectRatio="none" style="width:1438px;height:1166px;background:#FFFFFF;" version="1.1" viewBox="0 0 1438 1166" width="1438px" zoomAndPan="magnify"><defs/><g><!--MD5=[cfd4b2bff0b744335e5c50bb0bd41cb8] +entity visitor--><rect fill="#686868" height="119.8203" style="stroke:#8A8A8A;stroke-width:1.5;" width="158" x="743" y="921"/><image height="48" width="48" x="798" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=" y="931"/><text fill="#FFFFFF" font-family="sans-serif" font-size="16" font-weight="bold" lengthAdjust="spacing" textLength="53" x="795.5" y="994.4688">Visitor</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="0" x="824" y="1011.3789"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="134" x="757" y="1027.8672">A visitor of website.</text><!--MD5=[026b3f9ae447cd6258ef99d33f5de6cf] +entity editor--><rect fill="#08427B" height="119.8203" style="stroke:#073B6F;stroke-width:1.5;" width="188" x="7" y="723"/><image height="48" width="48" x="77" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=" y="733"/><text fill="#FFFFFF" font-family="sans-serif" font-size="16" font-weight="bold" lengthAdjust="spacing" textLength="168" x="17" y="796.4688">Authenticated editor</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="0" x="103" y="813.3789"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="112" x="47" y="829.8672">Content creator.</text><!--MD5=[23e4898078453906b079a6bea7d1245c] +entity developer--><rect fill="#08427B" height="119.8203" style="stroke:#073B6F;stroke-width:1.5;" width="166" x="724" y="16"/><image height="48" width="48" x="783" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=" y="26"/><text fill="#FFFFFF" font-family="sans-serif" font-size="16" font-weight="bold" lengthAdjust="spacing" textLength="82" x="766" y="89.4688">Developer</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="0" x="809" y="106.3789"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="142" x="738" y="122.8672">Developer of system.</text><!--MD5=[de33f1692ae77e01f0ec53f7118825ca] +entity studio--><rect fill="#1168BD" height="138.3086" style="stroke:#3C7FC0;stroke-width:1.5;" width="189" x="121.75" y="472"/><image height="50" width="50" x="191.25" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAABjklEQVR4Xu2YzU7CQBRGeSoTJa4NaHwNxY2LwsqXplI0rpBLwEzOtGXa3tuZxjnJ2c39+SgNtLNZJpPJdGVXvB5CrY6yPjpcsqvsNzpcaIj79SpOIC6iJeeYwuHacp4J5eLWG2wh56qzDQzCOqEqXrxzTbJWnWtBeL4O1jTJOjUkxMnHuTe0z2DWU55X4y9IzVXh2RC+N29eH8oaFdwgbphqwG8AF6c8rwKDbB9u7IZZ4gU5y3PJwwCuu+XddAJx+SZZlyRc+po/T/M0g3HRPsrfHPaNAhcb4mfMe0s+US6kIeeMglWYchHpCnERDaPeQ+Xxu86FhlguI4Zxka8Il+sqeyaBfMJcNET2SY7QK8a6pOHykw0iMMAkg+yL1em5hiFMgvDJjfJ8F9w+h+f7uEG+FB93owYRWRMCe5gHETiwTta0IVeR9Zce0YOEBKrON3ebZiEucKCV5kEEDrWQM02oNv5gTTnPHC6gIWeMxuHj3Vumj9U6YggXLhaqvMhmr6Rof9Pe/19AJpP55/wCwk7g9HfTvaAAAAAASUVORK5CYII=" y="482"/><text fill="#FFFFFF" font-family="sans-serif" font-size="16" font-weight="bold" lengthAdjust="spacing" textLength="106" x="163.25" y="547.4688">Sanity Studio</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="0" x="218.25" y="564.3789"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="161" x="135.75" y="580.8672">Allows editors to create</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="56" x="188.25" y="597.3555">content.</text><!--MD5=[3c192b75ae70093d2d02a2a65517a5ba] +entity sanity--><path d="M417,461 C417,451 527,451 527,451 C527,451 637,451 637,461 L637,621.2852 C637,631.2852 527,631.2852 527,631.2852 C527,631.2852 417,631.2852 417,621.2852 L417,461 " fill="#999999" style="stroke:#8A8A8A;stroke-width:1.5;"/><path d="M417,461 C417,471 527,471 527,471 C527,471 637,471 637,461 " fill="none" style="stroke:#8A8A8A;stroke-width:1.5;"/><image height="50" width="50" x="502" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAABjklEQVR4Xu2YzU7CQBRGeSoTJa4NaHwNxY2LwsqXplI0rpBLwEzOtGXa3tuZxjnJ2c39+SgNtLNZJpPJdGVXvB5CrY6yPjpcsqvsNzpcaIj79SpOIC6iJeeYwuHacp4J5eLWG2wh56qzDQzCOqEqXrxzTbJWnWtBeL4O1jTJOjUkxMnHuTe0z2DWU55X4y9IzVXh2RC+N29eH8oaFdwgbphqwG8AF6c8rwKDbB9u7IZZ4gU5y3PJwwCuu+XddAJx+SZZlyRc+po/T/M0g3HRPsrfHPaNAhcb4mfMe0s+US6kIeeMglWYchHpCnERDaPeQ+Xxu86FhlguI4Zxka8Il+sqeyaBfMJcNET2SY7QK8a6pOHykw0iMMAkg+yL1em5hiFMgvDJjfJ8F9w+h+f7uEG+FB93owYRWRMCe5gHETiwTta0IVeR9Zce0YOEBKrON3ebZiEucKCV5kEEDrWQM02oNv5gTTnPHC6gIWeMxuHj3Vumj9U6YggXLhaqvMhmr6Rof9Pe/19AJpP55/wCwk7g9HfTvaAAAAAASUVORK5CYII=" y="475"/><text fill="#FFFFFF" font-family="sans-serif" font-size="16" font-weight="bold" lengthAdjust="spacing" textLength="168" x="443" y="540.4688">Sanity Cloud Storage</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="0" x="529" y="557.3789"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="165" x="444.5" y="573.8672">Proprietary DB on top of</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="180" x="435" y="590.3555">Google Cloud PostgreSQL.</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="200" x="427" y="606.8438">Serves images with IIIF Image</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="182" x="436" y="623.332">API and files from buckets.</text><!--MD5=[c5e38d65ec137cb93ec501c699f4220c] +entity sanityManage--><rect fill="#999999" height="138.3086" style="stroke:#8A8A8A;stroke-width:1.5;" width="218" x="371" y="7"/><image height="50" width="50" x="455" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAABjklEQVR4Xu2YzU7CQBRGeSoTJa4NaHwNxY2LwsqXplI0rpBLwEzOtGXa3tuZxjnJ2c39+SgNtLNZJpPJdGVXvB5CrY6yPjpcsqvsNzpcaIj79SpOIC6iJeeYwuHacp4J5eLWG2wh56qzDQzCOqEqXrxzTbJWnWtBeL4O1jTJOjUkxMnHuTe0z2DWU55X4y9IzVXh2RC+N29eH8oaFdwgbphqwG8AF6c8rwKDbB9u7IZZ4gU5y3PJwwCuu+XddAJx+SZZlyRc+po/T/M0g3HRPsrfHPaNAhcb4mfMe0s+US6kIeeMglWYchHpCnERDaPeQ+Xxu86FhlguI4Zxka8Il+sqeyaBfMJcNET2SY7QK8a6pOHykw0iMMAkg+yL1em5hiFMgvDJjfJ8F9w+h+f7uEG+FB93owYRWRMCe5gHETiwTta0IVeR9Zce0YOEBKrON3ebZiEucKCV5kEEDrWQM02oNv5gTTnPHC6gIWeMxuHj3Vumj9U6YggXLhaqvMhmr6Rof9Pe/19AJpP55/wCwk7g9HfTvaAAAAAASUVORK5CYII=" y="17"/><text fill="#FFFFFF" font-family="sans-serif" font-size="16" font-weight="bold" lengthAdjust="spacing" textLength="118" x="421" y="82.4688">Sanity Manage</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="0" x="482" y="99.3789"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="190" x="385" y="115.8672">Sanity backend for projects,</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="197" x="381.5" y="132.3555">datasets, configs and access.</text><!--MD5=[e9053c6dbb891ad4199c45de881c9d13] +entity website--><rect fill="#1168BD" height="138.3086" style="stroke:#3C7FC0;stroke-width:1.5;" width="202" x="721" y="472"/><image height="50" width="50" x="797" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAABfUlEQVR4XtWOAY7DIAwE+/9P36mVEm0HQ7wcTriRRmo9hvB6recn4bbwoa6Pwses8jb44QrL4QerXQ4/cKfL4MVP+Sd42dNOwUt20YKHd9KCh3czBQ/t6hAu7+wQLu9uCJf+iw1cuEOFLesXjI4K25UKW9YvGB0VtisVNscTBkfCPlJhczxhcIzgTk+FzfEDh64R3OmpsDl+4NC1B/ciFTbXZuA6grtUYXNtBq5K9H+kwubaDFyV0SxSYXNtBq5KNHvDM9Eem2szcFUyc3cnazNwVZyW6Y7NwFUZtTejzubaDFwVtqs+aq7NwFVhy+z05o4nDI4KW7TzJuqcOZ4wOCps2b1o5njC4KiwUYVt1gYuZFXYIhW2GRu4kFVhi1TYZgzhUsYDzkcqbI5duFipwpZ1CJerVNgyXsIDlSpsI9PwYKUKW08LHq70gPPIKXhJlQpbb8+Gl1WpsLFPw0urPOjNl8DLqzzQ3yXww6u9HT5glY/Bh8y6FXzcyKX8AqAq6Wv25cYoAAAAAElFTkSuQmCC" y="482"/><text fill="#FFFFFF" font-family="sans-serif" font-size="16" font-weight="bold" lengthAdjust="spacing" textLength="63" x="790.5" y="547.4688">Website</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="0" x="824" y="564.3789"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="136" x="754" y="580.8672">Frontend with static</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="182" x="731" y="597.3555">generated pages and APIs.</text><!--MD5=[e937783d151d78c9e87fd4c0d99f7485] +entity proxy--><rect fill="#1168BD" height="119.3086" style="stroke:#3C7FC0;stroke-width:1.5;" width="203" x="720.75" y="723.5"/><image height="31" width="50" x="797.25" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAfCAYAAAClDZ5ZAAABN0lEQVR4Xt2SUQ6DIBBEOUx7unqZ3khP1mZNRfpcQHCJ6CTvB9idmahzNZqmT5auxbB76E4MWEI3YrAaThcDHeE0MUgYiGcWNBONaMhzK8xFA82Id1aYiYth8ni9675MyXsTcSkMpMhzKcP7FHv28+0hcSkMpEjVVwnFO43D4kIsX4oUl5HZoWDmsLiQYYIiRWVkdsjMmIrLGQZFksE4+yvyNxNR1CMrGmu4rcHGiDORIssM9+TwPqpoGsMljJf/nzOJIrUEyQPRMIVLFAkNOGdcRPBeUcMUEkZZqhpos4ZFBO+1McshYZSFRN0vs02KMOQedhZZTQKfBkUE71MqLkoxD4xj2yI8aIFvf/Uigi9z9SLCbYoItykyY1xk/WeVyytxiyK+xNXLsMcsPuoZZlfFod5gXtEXjeR50lh9IN0AAAAASUVORK5CYII=" y="733.5"/><text fill="#FFFFFF" font-family="sans-serif" font-size="16" font-weight="bold" lengthAdjust="spacing" textLength="45" x="799.75" y="779.9688">Proxy</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="0" x="824.25" y="796.8789"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="175" x="734.75" y="813.3672">Reverse proxy for serving</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="170" x="737.25" y="829.8555">Nansen with UiB domain.</text><!--MD5=[389badd7c35f4ea505f5befbc26a5052] +entity deployment--><rect fill="#999999" height="121.8203" style="stroke:#8A8A8A;stroke-width:1.5;" width="215" x="829.75" y="237"/><image height="50" width="50" x="912.25" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAABEklEQVR4Xt3USwqDQBRE0dYtK7gk0UVqMKNQl6R/rweVgjO5MWoIdEop3X8CwRWCKwRXCK4QXCG4QnCF4ArBFYIrBFcIrhBcIbhCCPXsui70ARDCzPP8/iHP9LMBEMLo9PNgCCGWZdHfcU/ThOsCIYT4Nr0uEEK3X9v3HdcHQeiWm14fBKFLyQYdxwjNPo/b3PS7ARCa1U6/3wmhybqu+p7ZBR/HCE1ap/fpgFCtZ8dx4H6NEKr1Tu/XCKFKxIKOY4RiNcdtbnrvBgjFoqf3r4RQZNs2fY/uPf+wPqcCQpFR0+dUQMgaufM88bxCCFmjp88rhOAKwRWCKwRXCK4QXCG4QnCF4ArBFYIrBFcIrhAsvQD7l+LtBB33mgAAAABJRU5ErkJggg==" y="247"/><text fill="#FFFFFF" font-family="sans-serif" font-size="16" font-weight="bold" lengthAdjust="spacing" textLength="50" x="912.25" y="312.4688">Vercel</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="0" x="939.25" y="329.3789"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="191" x="843.75" y="345.8672">Deploys studio and website.</text><!--MD5=[9a631f4ec9219869b7e8b94d6775f9b9] +entity marcusManifest--><rect fill="#1168BD" height="138.3086" style="stroke:#3C7FC0;stroke-width:1.5;" width="206" x="998" y="472"/><image height="50" width="50" x="1076" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAABfUlEQVR4XtWOAY7DIAwE+/9P36mVEm0HQ7wcTriRRmo9hvB6recn4bbwoa6Pwses8jb44QrL4QerXQ4/cKfL4MVP+Sd42dNOwUt20YKHd9KCh3czBQ/t6hAu7+wQLu9uCJf+iw1cuEOFLesXjI4K25UKW9YvGB0VtisVNscTBkfCPlJhczxhcIzgTk+FzfEDh64R3OmpsDl+4NC1B/ciFTbXZuA6grtUYXNtBq5K9H+kwubaDFyV0SxSYXNtBq5KNHvDM9Eem2szcFUyc3cnazNwVZyW6Y7NwFUZtTejzubaDFwVtqs+aq7NwFVhy+z05o4nDI4KW7TzJuqcOZ4wOCps2b1o5njC4KiwUYVt1gYuZFXYIhW2GRu4kFVhi1TYZgzhUsYDzkcqbI5duFipwpZ1CJerVNgyXsIDlSpsI9PwYKUKW08LHq70gPPIKXhJlQpbb8+Gl1WpsLFPw0urPOjNl8DLqzzQ3yXww6u9HT5glY/Bh8y6FXzcyKX8AqAq6Wv25cYoAAAAAElFTkSuQmCC" y="482"/><text fill="#FFFFFF" font-family="sans-serif" font-size="16" font-weight="bold" lengthAdjust="spacing" textLength="137" x="1032.5" y="547.4688">Marcus manifest</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="0" x="1103" y="564.3789"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="178" x="1012" y="580.8672">Temporary API for Marcus</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="94" x="1054" y="597.3555">IIIF manifests.</text><!--MD5=[347a3b5b3bf8f7459ed385c356cb03bf] +entity munaDocs--><rect fill="#1168BD" height="130.3086" style="stroke:#3C7FC0;stroke-width:1.5;" width="193" x="1239.75" y="476"/><image height="42" width="50" x="1311.25" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAqCAYAAADxughHAAACo0lEQVR4Xs2YvWsUQRiHr5AUckLAdCJJJ2JpcYVwIR8HViLCqUGMQQ5tbKwtLEWw8V/Q5jjB5kDIlXKlB4IWGzgJFhaBcCgKChbjzZrZ7D7v7M59zG72Bw+zN9l33+ddsnshlYoj9Q/31OoYc1wfjNEr9pJVJUp9sHMsWhLo6AwvUCbo6gwvUCboag2Lygq9RVhQJOP2IfG9c1sX1dnV87Zz3WERGxn48yJJGlvCglhhQl4fnzqzIM4rCmjL1AfbouiocKK9oqC3CAsMl16sib0LT6+IvVlZG9xXT4Yv1bvD9+rH31/KFXqLsIFPfIbe1lDAB5NkOByqXq+X2KvVauGvcDzNZtM9CAV8EU/lSMysOp1OJzoejUbh2m63o71utxsdB0Fw8oNUcHf151arpfr9frRXrVbDtdFoRHuLi4vhauqhLUMBX/gOvUUo4JNrHx/RZ+bQ2xoKnDSP956rNwe76tufg8kH4UXKCr1FWFBW6C2S9ieKT5S6Pjf0FmFTn3z9fUMIzQq9raGAD57tbwmZeaCzCAXyYDPYibjzZVtIToKp39j7/08SETb1zfrn5CCa3e83haiLeD1niMLmPuEQMZlMVlZOTzcIG+cBh9DwjrtwD1LA63f9U3KYINh0kjYI/aOwqS8oMi/0FqGALygyL/S2hhI+gMTULC8nH/ZQNCsU8AXv6LzQW4QCvjACb0e3VP9nM/G2enV4W4i6oLcIBXzCVy6hbBaZbywdNvcJxeM83L871TDxWs4QhQI+oHgal19fFQ+6ZmlpIXsQ3eR4hHyG0FA4Dd75NKyDGPjZJxTOgtI2WJObOGHjLChtgzWlG4TCaZjzN/QQeT8XcShsg7JZmJpoiKIG0VCcUDYN6xAmbJoXlNc8GH+HUDaNtCH+ASczFjTtwdq/AAAAAElFTkSuQmCC" y="486"/><text fill="#FFFFFF" font-family="sans-serif" font-size="16" font-weight="bold" lengthAdjust="spacing" textLength="90" x="1291.25" y="543.4688">Muna docs</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="0" x="1338.25" y="560.3789"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="165" x="1253.75" y="576.8672">Documentation of Muna</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="77" x="1297.75" y="593.3555">datamodel.</text><!--MD5=[4d3fe30f1291fc2fac05ba39abe9dac2] +entity git--><rect fill="#1168BD" height="121.8203" style="stroke:#3C7FC0;stroke-width:1.5;" width="129" x="1004.75" y="15"/><image height="50" width="50" x="1044.25" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAABzklEQVR4Xu2YTWoCQRCFvYQEJBeQHMOcQbJwyEHULMwVnBzEwJzAHETMdkBwOQtDLQY6r/+qqnvCGPqDt5npea+/leDk9k+Y4IN7pYiMjSIyNoqIi9PpdHuYTlnJTRYRvKQ0OUgSwQulJgWVyPf5bF0iV7SIRXB4iHweDjgbRSSCg0OmWq1wPghbBIf+Ih91jdfwkiRCvG231nNpmqYJbnBgiWC5bwTfx4Lge985F1ERLJUOSMD+Ps+LBR61UIu8LJd4NBncMBMjKIJlmNxgv2TrbkRie2qRocAd7qZK5H23w6PZwK1kESzhFuYA9/rQb5aPuxIJbReRIcE9znYRGRLc42x7RZ7mc6uEU5gK7nA3vSIEFnFLU8Ad7qZaJFasAfsxIZJEYuUSsNeVEEGRtm2tMldSuFwuVp8rMYIihK8Qn5v5Oh6Nht9s1mvrPCcxoiKErxSf43sfeD4WDioR+o/X967rOuNLN4+zmfVdKBxYIoSrnP5xJF6rij3Yg32+cGGLENoRF9jligSRCJEyZoI9GCliEQJHNRfA7zQdJioRAsell8DvpN8jahHier2qL6L9zkeSSE+934svJD0fI4vIGCgiY6OIjI0iMjZ+AG+Vhjrmu25HAAAAAElFTkSuQmCC" y="25"/><text fill="#FFFFFF" font-family="sans-serif" font-size="16" font-weight="bold" lengthAdjust="spacing" textLength="57" x="1040.75" y="90.4688">GitHub</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="0" x="1071.25" y="107.3789"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="105" x="1018.75" y="123.8672">Version control</text><!--MD5=[743b25f5500fd16bfcf559a6d1ecca37] +entity google_auth--><rect fill="#999999" height="119.8203" style="stroke:#8A8A8A;stroke-width:1.5;" width="203" x="230.75" y="723"/><image height="48" width="48" x="308.25" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB5ElEQVR4Xu2YoZLDMAxE+/9/IHSsrKys6FhYWFlRWVhZWG/HnvOl0spW0ukkc5OHOqm83liW4uQgG+OgL6zNbqjFbqjFvzD0FUaPDDDD0Pl8fjwez5lgyOl00lo+UUPH41FPNQcM14oOUUP3+z1Ld103juPrdByEITj/xnCt6BAyhGSVOXCvwzD8TeuDMAQX9xDRuoyQoQVbxwIRrctoGyrL/j6Q0uqGhiGUrlZNXK/X7yoI0GMSzV7QMER1g4tPEw1BHfdKzRD6h9ZLBLdnKQVFvS3VDNFqut1uOs4HwXp8qj4dN8E1dLlctFIi3uLEb6cQ16G/uIZo9+v7XoVhSlwcEvhh7eKiVkn9TIUVuKGgCt0ldofRe/NaADHklbpaZy8dT5NWL/u0BRBDwZ1IO0LGZpbWB20BxFCOhi30tzLY1iqdI2PdTzsIZMujWoXJWoZKElSYUEObS5m3W1fb1BIuezqTbXq07O0qZrghCatgMbDyH2+M4tz906SjTrClTXENibMTV3u4in/8sC2Asmx4zZAsusUCXWBa6lMahrxNsNoRVrZ2yM/Q0/FcgifxkKHSArbyoihbe5WW6pMrQrydRg3JG59jgsnKzDBUyB+jLPYvPTLAEkMfZTfUYjfUYjfU4geTKxbpZd5guQAAAABJRU5ErkJggg==" y="733"/><text fill="#FFFFFF" font-family="sans-serif" font-size="16" font-weight="bold" lengthAdjust="spacing" textLength="183" x="240.75" y="796.4688">Google Authentication</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="0" x="334.25" y="813.3789"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="150" x="259.25" y="829.8672">Authenticates editors.</text><!--MD5=[d0968bca8d671a4ed6a28747d102d2ea] +link studio to sanity--><path d="M310.577,541 C341.467,541 376.166,541 408.583,541 " fill="none" id="studio-to-sanity" style="stroke:#666666;stroke-width:1.0;"/><polygon fill="#666666" points="416.771,541,408.771,538,408.771,544,416.771,541" style="stroke:#666666;stroke-width:1.0;"/><text fill="#666666" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="69" x="328.5" y="519.6016">Read/Write</text><text fill="#666666" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="46" x="340" y="533.7344">[HTTPS]</text><!--MD5=[a7b9f2e9030062fb48414cb466ff70c9] +reverse link sanity to website--><path d="M645.322,541 C670.269,541 696.377,541 720.633,541 " fill="none" id="sanity-backto-website" style="stroke:#666666;stroke-width:1.0;"/><polygon fill="#666666" points="637.267,541,645.267,544,645.267,538,637.267,541" style="stroke:#666666;stroke-width:1.0;"/><text fill="#666666" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="30" x="663.5" y="519.6016">Read</text><text fill="#666666" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="46" x="655.5" y="533.7344">[HTTPS]</text><!--MD5=[236ac1edf7a933ec506775a044c42de5] +link studio to google_auth--><path d="M248.931,610.132 C264.872,643.115 283.943,682.571 299.789,715.356 " fill="none" id="studio-to-google_auth" style="stroke:#666666;stroke-width:1.0;"/><polygon fill="#666666" points="303.326,722.674,302.5457,714.1657,297.1436,716.7767,303.326,722.674" style="stroke:#666666;stroke-width:1.0;"/><text fill="#666666" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="79" x="289" y="674.1016">Authenticate</text><text fill="#666666" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="46" x="305.5" y="688.2344">[HTTPS]</text><!--MD5=[f9c290ddfcb71aa1a61518863009dc43] +link website to marcusManifest--><path d="M923.12,541 C944.787,541 967.793,541 989.817,541 " fill="none" id="website-to-marcusManifest" style="stroke:#666666;stroke-width:1.0;"/><polygon fill="#666666" points="997.882,541,989.882,538,989.882,544,997.882,541" style="stroke:#666666;stroke-width:1.0;"/><text fill="#666666" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="37" x="941.5" y="533.6016">Loads</text><!--MD5=[de8a4f1916b96daf2804a91a2e5ebbd2] +reverse link website to proxy--><path d="M822,618.212 C822,652.273 822,691.788 822,723.472 " fill="none" id="website-backto-proxy" style="stroke:#666666;stroke-width:1.0;"/><polygon fill="#666666" points="822,610.132,819,618.132,825,618.132,822,610.132" style="stroke:#666666;stroke-width:1.0;"/><text fill="#666666" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="87" x="823" y="681.1016">Reverse proxy</text><!--MD5=[e86980073331b87995418fa115ce6876] +reverse link proxy to visitor--><path d="M822,850.781 C822,873.48 822,898.674 822,920.744 " fill="none" id="proxy-backto-visitor" style="stroke:#666666;stroke-width:1.0;"/><polygon fill="#666666" points="822,842.541,819,850.541,825,850.541,822,842.541" style="stroke:#666666;stroke-width:1.0;"/><text fill="#666666" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="41" x="823" y="886.1016">Enjoys</text><!--MD5=[a8ab28810acd8767e45cc9cc38f0d5d3] +reverse link studio to editor--><path d="M179.717,617.721 C163.479,651.608 144.617,690.974 129.427,722.674 " fill="none" id="studio-backto-editor" style="stroke:#666666;stroke-width:1.0;"/><polygon fill="#666666" points="183.353,610.132,177.1904,616.05,182.6012,618.6429,183.353,610.132" style="stroke:#666666;stroke-width:1.0;"/><text fill="#666666" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="98" x="160" y="681.1016">Creates content</text><!--MD5=[340cae6619364b0551fb64a92a9886f2] +link developer to git--><path d="M890.258,76 C924.377,76 963.501,76 996.43,76 " fill="none" id="developer-to-git" style="stroke:#666666;stroke-width:1.0;"/><polygon fill="#666666" points="1004.662,76,996.662,73,996.662,79,1004.662,76" style="stroke:#666666;stroke-width:1.0;"/><text fill="#666666" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="77" x="908.25" y="68.6016">Pushes code</text><!--MD5=[71a3382d2ed74e0103273db544893122] +reverse link sanityManage to developer--><path d="M597.378,76 C639.247,76 685.511,76 723.901,76 " fill="none" id="sanityManage-backto-developer" style="stroke:#666666;stroke-width:1.0;"/><polygon fill="#666666" points="589.341,76,597.341,79,597.341,73,589.341,76" style="stroke:#666666;stroke-width:1.0;"/><text fill="#666666" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="97" x="607.5" y="68.6016">Manages Sanity</text><!--MD5=[7a67783aaf960bb7536d4335d6a7a2fb] +link developer to deployment--><path d="M831.582,136.312 C841.813,158.992 854.463,184.741 868,207 C872.621,214.599 877.76,222.318 883.09,229.879 " fill="none" id="developer-to-deployment" style="stroke:#666666;stroke-width:1.0;"/><polygon fill="#666666" points="888.029,236.77,885.8056,228.5204,880.9294,232.0165,888.029,236.77" style="stroke:#666666;stroke-width:1.0;"/><text fill="#666666" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="133" x="869" y="195.1016">Manages deployment</text><!--MD5=[b4bf5123ce98b2bfa5411a06ee70fdd3] +link git to deployment--><path d="M1044.29,137.064 C1034.13,159.596 1021.56,185.047 1008,207 C1003.276,214.649 998.008,222.4 992.535,229.98 " fill="none" id="git-to-deployment" style="stroke:#666666;stroke-width:1.0;"/><polygon fill="#666666" points="987.462,236.885,994.6165,232.2145,989.7814,228.6618,987.462,236.885" style="stroke:#666666;stroke-width:1.0;"/><text fill="#666666" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="88" x="1026" y="188.1016">Triggers build</text><text fill="#666666" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="61" x="1039.5" y="202.2344">[Webhook]</text><!--MD5=[f32e73e884822034bce307502ffb89bc] +link deployment to studio--><path d="M829.538,323.399 C719.626,349.732 544.8,395.453 399,451 C372.143,461.232 343.875,473.949 317.805,486.538 " fill="none" id="deployment-to-studio" style="stroke:#666666;stroke-width:1.0;"/><polygon fill="#666666" points="310.513,490.083,319.0195,489.2829,316.3959,483.8869,310.513,490.083" style="stroke:#666666;stroke-width:1.0;"/><text fill="#666666" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="40" x="577" y="402.1016">Serves</text><text fill="#666666" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="46" x="574" y="416.2344">[HTTPS]</text><!--MD5=[548e49d211da9842714f8e4a5326adfd] +link deployment to website--><path d="M908.277,359.193 C893.124,390.949 874.378,430.234 858.235,464.064 " fill="none" id="deployment-to-website" style="stroke:#666666;stroke-width:1.0;"/><polygon fill="#666666" points="854.62,471.64,860.7731,465.7122,855.3582,463.1279,854.62,471.64" style="stroke:#666666;stroke-width:1.0;"/><text fill="#666666" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="40" x="897" y="402.1016">Serves</text><text fill="#666666" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="46" x="894" y="416.2344">[HTTPS]</text><!--MD5=[a10f54d73aaf31afc00462d72d704f85] +link deployment to marcusManifest--><path d="M977.961,359.193 C999.753,391.216 1026.75,430.894 1049.91,464.915 " fill="none" id="deployment-to-marcusManifest" style="stroke:#666666;stroke-width:1.0;"/><polygon fill="#666666" points="1054.48,471.64,1052.4591,463.3384,1047.4988,466.7142,1054.48,471.64" style="stroke:#666666;stroke-width:1.0;"/><text fill="#666666" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="40" x="1023" y="402.1016">Serves</text><text fill="#666666" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="46" x="1020" y="416.2344">[HTTPS]</text><!--MD5=[587e010c06a5fcec3cc8ad3b0c4b8785] +link deployment to munaDocs--><path d="M1044.39,350.719 C1098.88,378.337 1165.35,414.172 1222,451 C1231.58,457.227 1241.35,464.051 1250.95,471.065 " fill="none" id="deployment-to-munaDocs" style="stroke:#000000;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#000000" points="1257.57,475.945,1252.9097,468.7839,1249.3501,473.614,1257.57,475.945" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="40" x="1173" y="402.1016">Serves</text><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="46" x="1170" y="416.2344">[HTTPS]</text><rect fill="#FFFFFF" height="96.4414" rx="5" ry="5" style="stroke:#FFFFFF;stroke-width:1.0;" width="129" x="1287.75" y="1053.8203"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="51" x="1293.75" y="1074.3555">Legend</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="0" x="1348.75" y="1074.3555"/><rect fill="#08427B" height="16.4883" style="stroke:none;stroke-width:1.0;" width="117" x="1293.75" y="1077.3086"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="48" x="1297.75" y="1090.8438">person</text><rect fill="#1168BD" height="16.4883" style="stroke:none;stroke-width:1.0;" width="117" x="1293.75" y="1093.7969"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="47" x="1297.75" y="1107.332">system</text><rect fill="#686868" height="16.4883" style="stroke:none;stroke-width:1.0;" width="117" x="1293.75" y="1110.2852"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="109" x="1297.75" y="1123.8203">external person</text><rect fill="#999999" height="16.4883" style="stroke:none;stroke-width:1.0;" width="117" x="1293.75" y="1126.7734"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="108" x="1297.75" y="1140.3086">external system</text><line style="stroke:#FFFFFF;stroke-width:1.0;" x1="1293.75" x2="1410.75" y1="1060.8203" y2="1060.8203"/><line style="stroke:#FFFFFF;stroke-width:1.0;" x1="1293.75" x2="1410.75" y1="1077.3086" y2="1077.3086"/><line style="stroke:#FFFFFF;stroke-width:1.0;" x1="1293.75" x2="1410.75" y1="1093.7969" y2="1093.7969"/><line style="stroke:#FFFFFF;stroke-width:1.0;" x1="1293.75" x2="1410.75" y1="1110.2852" y2="1110.2852"/><line style="stroke:#FFFFFF;stroke-width:1.0;" x1="1293.75" x2="1410.75" y1="1126.7734" y2="1126.7734"/><line style="stroke:#FFFFFF;stroke-width:1.0;" x1="1293.75" x2="1410.75" y1="1143.2617" y2="1143.2617"/><line style="stroke:#FFFFFF;stroke-width:1.0;" x1="1293.75" x2="1293.75" y1="1060.8203" y2="1143.2617"/><line style="stroke:#FFFFFF;stroke-width:1.0;" x1="1410.75" x2="1410.75" y1="1060.8203" y2="1143.2617"/><!--MD5=[14b34b93cf2df88be5c52cfcbcd1af7f] @startuml "context" !include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Context.puml +' uncomment the following line and comment the first to use locally +' !include C4_Container.puml !define NREC_LOGO img:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAfCAYAAAClDZ5ZAAAAAXNSR0IArs4c6QAAAXZJREFUWEfV1+sNgyAQAGDYpXs4UJt0FpN2H52j7kJzVCwPgTs4iPRvVfi8F0pR8ltXlb1tmmT2GsYLaIthAP7mOoHwkBKEQXXA4CA1iE6YPIQD0QGThsQQkCqcQAZoOQQWb4GB5xbUVB3kQpg4JPW2p0ne7rPa3s/f/ZTIUNKSEJkqCNz8AQwVgsX3gsB+yFGxN4d5AUhMVURMsyFhIC0fs9peyLTsCSFFZocIlYgmcvP2aYglIqTIWBDnBUQOkNBU7L+O6HvXhxBk3voLoDEexGBiz4sdkH2QC8Eg9oEVXVgKofM/cSqAGoHUqv3ZmD8Ei8hBcp3sJCI1IIOhDzQEJFn8zBCzVjNIFNMMQkkp65SKLc5gxjSAwLby3yPItpjKc41ZFiWk1CdbrmJ35gj2zXIUpO5kI0P8wTdsRPxhOTzkmOJMA7F7jQT1BS2GYbLbkdZdq0fB1zSL3L3QFYeHuEeUgaMSQEZLsfQxfk/Gq9fM2cfVF6rBHOmyKLuMAAAAAElFTkSuQmCC !define SANITY img:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAACeklEQVRoQ+2ZQU5bQQyGPe8hVWkT0mOgqlUldskNkos06aaLwIojlGzbHgTBCYA1C9hwiUYEWkQSI0cMekomE9vjlwBK1jO2P//2eObFwRv5uTfCARuQl6bkRpGQIje9DnKVogxW+3/MEmliSAIQAq0ZACWBpAIUoTLn4MPhb3U86o2WEEUgrToqkLIgPJAGRgwyaDUw+/SV29PqdVIYMcjfVgNzBkgokGHvGyJzBq8dhBMAtzQ5trzkIkVIjenGLIN858tc2Ugc0+ZlQBJ7OhAAmC0viVOfgX/733E0mUT7iGtXDULePYxzDqrKGWClShIITMaQf94FbtbURxhjYxrIk4OPJ+ciO4y4xEtEATw3e8BN7hzUjs9E9sTRRjaIHMdAij7WoZAIhILlwniwSp7Bu6NTsR+pWmIHUpBQQOS0btxXYhCNKrHs0vV926C3VCB0cWQ/BQU1ktJbKhCKrSwYBw7qJ/LTTw3iE23RM7OiaXooGcQHMWg3EQ0LzjmA+jF/0JqBzGZ10GoiQlonSXqmNJA5sHZDJRgXZmUgWsVePEgRLHZgvCqQ2JB9VSC3vS5OAGF8dTE3Ps1BrF5yoUFftF29voTBw+h52cpB6D3y3ui5W1Rm5SCUQs2TN6R0qSAU6LLyksLc7XVxHLgNUEL8SWauCBfEF3dMnWGvu3TqkypcCPIpHogcVQQ394VLSweRKqOFkvabWBEKbLjfQYx/INTGP90nhVCVVjHCMspMA5EMQgbw4AcO/98nKTANxAFUD/V/jqpKa9l0llBtZRlUfv5KjiPZwKKg41/aHdT6+j8+Qz5LA5GoYrF2A2KRRUsbG0Uss2lh6xFkswBC9e0BzQAAAABJRU5ErkJggg== !define VERCEL img:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAABU0lEQVRoQ+2ZWwqDMBBFR92j4joU3IKgCxFdo6akoNjSVmcyNxWZgF+dPM49yfw0ISJHNxiJgVzMohm5mBAyI2YElIBdLVCw4mXNiDg60EQzAgpWvKwZORudc478l6bp2SmiOqgRf/h5np8HSxK/FW5AQbyJ/UDCwECqqqK+719AvKF3OC1HMJBvB0ZZgYD8Sn0YBirLUkvEtk50ENTDVwc58wYQ7VgVZN9uj+6O9ltRBTljA9WO1UDquqau645EwNqxGgjXxkqkdcVUQKQQHmYcRyqKgmXyU/HfQbTacTBIiI01WY12HATCabdHdyf0rQSBaNjQasdikKZpqG3bo6BZv2dZRsuysOZs3U/6/4i2jdB2LDKCgvAw0zRRnudsK5cDkbZjEQg7rggTDCRCyKwtzAgrrgjFZiRCyKwtzAgrrgjFZiRCyKwtzAgrrgjFtzHyAKakjAEBm5CuAAAAAElFTkSuQmCC !define NEXT img:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAABm0lEQVRoQ92Z25LDMAhDt///0dtJpu4kDhgBimPaZ0x0LPCtrz/+7x9I+QJiXCGshIj4kbC0jkyCrHgNLKQpMugugCOYW5d3wAyIEBAKMhvADYOAPAkBA1kgq0A0IFXvCGQ1iCGMBrIqxAYjaq4IIsJIICu7oTZ/D1IF4uJKZZATzBGkkhuXEnsahPH9PUdLlHEjIyYz9rSv/ALIbggbZEvqcZfhyG0gHhgqiGcGpVtdZlNdHgR1hQWyr1p3ONKcs3IvC7IJ94jzxA6fh9iONAdQgWic+cY1A2TUL8uD9KdTrVdKgCAwJUGkEisDYrlSCgSFsfac4SM4+9CINLVWYiVAEFfKgFgw5qanBJxuiOghzzr9IrNKa/CPmN8FiboSWTBYrnzz9JcipDSitdyPY8CoIFFXInBZkJMJmWtqRDzLlYtuCWSmK9ElGQZ5CgbpUXHyNUfQOzejvDyuqHotkJnOWM0/1IqAPAHTl5ip0ww41A5Sv4xSO26wsD44cCJQRJP8Dyk4rXc5NB2EvbKFAJqI1GDBOY9L1G+/AToZcCqjfA/hAAAAAElFTkSuQmCC !define GITHUB img:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAACZElEQVRoQ+2YzUpCURDHJ/AZJNBcSJJIubBoUSs3iZCvEO0qyTfwI30Hoy8JcxFucivUE0RPIRYhIgjuXBhXuGCXe87MnHO4qFx3cubMf37zn+Px3o3ZbDaDNfhs+CBL5qLvyJIZAr4ja+1Ir9eDw4MDEuPvYECKowYZGa3NYJCq5xpnAkoLRBfASaUDpATy3e/Dfiql5YJosyoMG8S0C25AT40GnOZyrEaxQLyAsKs/yWTgpdUiw5BBvISwq6/c3MBVPk+C0QKx5rlSLsP93R1JTBT03GxCNpsFt2ZRzwwJROSGU4TrGnU/BQYFkRVHEeBYJdLaSybh/eNDmkoZJJ1Ow2u7zakTjdVpmhQEGxWvHLE6gGmtDAgGowyCdQidI0GA6ngpgVwXClAslVRrle4zDqKa0ASdSPvi8hKqtZqrhNCRZQSRnRMfxMQIiXKoTIPvyMo4sptIwHA4FNa7FvcIdsvquKVyPiw9pQvRLtS0Kzr/7bRATDqDQWBaUpDRaASJeBydFB1nxuMx7MRi2hrs5xG7aFkH3zodODo+di2uVCzC48MDWrgzAGsWCmIldBaNwWCilDFaBMHyoYfdTuYU/vz6gkgkMl92rvV/fiAQCEg7vhUKwXQ6JbtiDETkivXGMRQOw/nZGXS7XfQpbrFyqisUCLIjImeoIm6tp4Bw8pPOiKyTHDGOI9y8bBC3MeMeTFM5FnWVQGSFUDtJfelH/UVQBrEEJpMJbEej/7RUQaj7RGBaIHbS23odatXq/Cu1INsRajzmjBEQTMSLdR/Eiy5zNHxHON3yItZ3xIsuczT+ANqRwHq+fLT7AAAAAElFTkSuQmCC +!define DOCUSAURUS img:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAqCAYAAADxughHAAAAAXNSR0IArs4c6QAAA1NJREFUaEPtmU9PE0EYxp+FlhKktg0EjAdo0KSNHEDLgbRJY0zaRINHSjwgPfAVTDz6BTjpxRsNXsgexNiDqRCltyp8gCYWiFGjIaRqjSIJ1MyUaWeX3c72z+42kbm03d2ZeX7zvO8701aCoEW3FsoSgM2plETeg3woVzpluWvZUIrcsa3pTh7dTpazoeWK+A5pZOH0pGje6CTxauF6MPqOdJATRmDOgHSyGzyQ2pmOAslOpajW6NZCVXNh6R0Ov/zC+NIthTFCkNOBNBOcTcRG5Ce0uh4IQfRCS71a5LPD3YPwm3tWM1RLPz/x2dDavl8G3TmUjQhXO6B1zSqqph05ePsRAzdHFDq/vfyA4btX26K9W+pG2DOBiPc6Ip4buOi4UHdcSZIUq21psm+GltsCTQYRgtRL9lZUGIEoFArY2dlBLBarTjU9PY1cLodyuVZ/EokEZFm2xxEehEQFEcZeiWpZljE7O0sBisUifD4fVldXMTc3R6+l02nMzMzQ9/l8HsFg0F4QXvxpiGBxcRHJZBKRSIQKdbvdKJVKiMfjyGQy9BoBI4DcItgL0kp4KsqtncnudbjxYuJxW1hsS/ZW1Ifc1xD2TiLsmcRl1xAdSghyfmhsZcmb6Cve2XWOKE3MpdtlM/Sj5eEkac2eqkWUr4yXMNJ70jJEJUcEIGbt7LcHjvDQ/6ctEIZArEj2nv5aVAw7T/Bs7GfDgLG8l/YhB/WNwLLyBGmWG7xKRy/Q5VCeVR9c+o2456ghGAZCOq0HNUDMhuHd4JWvB+ufjP3+PuzuxqtdhCBWhxZT9jrwvb2ORC0ovw4X0OWshdcTfBJCBAL9imeYIySsaPKrRzDLkXbsHcpDo037iOUgZiU7DyJJa8JQUj8wOtqHvb1asgs3xPPQEqwxc+R50YUh5wkefa78SkKq1cpBL+YHDhtyyTZHiEq9PaSZEkyqFqtYllYtEcgV1zEKf7upQ0aacEM0K9lFbjDxxfdfsT3/6gzL4GAP9vfv6O/sJLn5LylmJbtRkKYd4YVX/xM04m2DzxgFYQVANDwfWjRHzHJALeS/A2k0tMgPqRvsGG+FK0YcMQpB3NY8NFoBIiq/RnNDC0Kxj9gJM+Y6xlN/SZTf9L7aCdbpH3V3YzDpluRLAAAAAElFTkSuQmCC !define DEVICONS https://raw.githubusercontent.com/tupadr3/plantuml-icon-font-sprites/master/devicons -' uncomment the following line and comment the first to use locally -' !include C4_Container.puml !include DEVICONS/google_cloud_platform.puml -' uncomment the following line and comment the first to use locally -' !include C4_Context.puml AddSystemTag("s", ) LAYOUT_TOP_DOWN() ' LAYOUT_AS_SKETCH() LAYOUT_WITH_LEGEND() +AddRelTag("dashed", $textColor="black", $lineColor="black", $lineStyle = DashedLine()) + Person_Ext(visitor, "Visitor", "A visitor of website.") Person(editor, "Authenticated editor", "Content creator.") @@ -54,26 +58,27 @@ Person(developer, "Developer", "Developer of system.") ' Enterprise_Boundary(c0, "UiB Library") {} -System(studio, "Sanity Studio", "Allows editors to create content.", "SANITY") +System(studio, "Sanity Studio", "Allows editors to create content.", SANITY) -SystemDb_Ext(sanity, "Sanity Cloud Storage", "Proprietary DB on top of Google Cloud PostgreSQL. Serves images with IIIF Image API and files from buckets.", "SANITY") -System_Ext(sanityManage, "Sanity Manage", "Sanity backend for projects, datasets, configs and access.", "SANITY") +SystemDb_Ext(sanity, "Sanity Cloud Storage", "Proprietary DB on top of Google Cloud PostgreSQL. Serves images with IIIF Image API and files from buckets.", SANITY) +System_Ext(sanityManage, "Sanity Manage", "Sanity backend for projects, datasets, configs and access.", SANITY) -System(website, "Website", "Frontend with static generated pages and APIs.", "NEXT") -System(proxy, "Proxy", "Reverse proxy for serving Nansen with UiB domain.", "NREC_LOGO") +System(website, "Website", "Frontend with static generated pages and APIs.", NEXT) +System(proxy, "Proxy", "Reverse proxy for serving Nansen with UiB domain.", NREC_LOGO) -System_Ext(deployment, "Vercel", "Deploys studio and website.", "VERCEL") +System_Ext(deployment, "Vercel", "Deploys studio and website.", VERCEL) -System(marcusManifest, "Marcus manifest", "Temporary API for Marcus IIIF manifests.", "NEXT") +System(marcusManifest, "Marcus manifest", "Temporary API for Marcus IIIF manifests.", NEXT) +System(munaDocs, "Muna docs", "Documentation of Muna datamodel.", DOCUSAURUS) -System(git, "GitHub", "Version control", "GITHUB") +System(git, "GitHub", "Version control", GITHUB) -System_Ext(google_auth, "Google Authentication", "Authenticates editors.", "google_cloud_platform") +System_Ext(google_auth, "Google Authentication", "Authenticates editors.", google_cloud_platform) Rel_R(studio, sanity, "Read/Write", "HTTPS") Rel_L(website, sanity, "Read", "HTTPS") -Rel_L(studio, google_auth, "Authenticate", "HTTPS") +Rel(studio, google_auth, "Authenticate", "HTTPS") Rel_R(website, marcusManifest, "Loads") @@ -89,8 +94,9 @@ Rel_D(developer, deployment, "Manages deployment") Rel_D(git, deployment, "Triggers build", "Webhook") Rel_D(deployment, studio, "Serves", "HTTPS") - Rel_D(deployment, website, "Serves", "HTTPS") +Rel_D(deployment, marcusManifest, "Serves", "HTTPS") +Rel_D(deployment, munaDocs, "Serves", "HTTPS", $tags="dashed") @enduml @@ -620,6 +626,11 @@ legend right |<#999999> external system | endlegend +skinparam arrow<<dashed>> { + Color black;text:black;line.dashed +} + + rectangle "<$person>\n==Visitor\n\n A visitor of website." <<external_person>> as visitor rectangle "<$person>\n==Authenticated editor\n\n Content creator." <<person>> as editor @@ -638,6 +649,7 @@ rectangle "<img:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAfCAYAAAClDZ rectangle "<img:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAABU0lEQVRoQ+2ZWwqDMBBFR92j4joU3IKgCxFdo6akoNjSVmcyNxWZgF+dPM49yfw0ISJHNxiJgVzMohm5mBAyI2YElIBdLVCw4mXNiDg60EQzAgpWvKwZORudc478l6bp2SmiOqgRf/h5np8HSxK/FW5AQbyJ/UDCwECqqqK+719AvKF3OC1HMJBvB0ZZgYD8Sn0YBirLUkvEtk50ENTDVwc58wYQ7VgVZN9uj+6O9ltRBTljA9WO1UDquqau645EwNqxGgjXxkqkdcVUQKQQHmYcRyqKgmXyU/HfQbTacTBIiI01WY12HATCabdHdyf0rQSBaNjQasdikKZpqG3bo6BZv2dZRsuysOZs3U/6/4i2jdB2LDKCgvAw0zRRnudsK5cDkbZjEQg7rggTDCRCyKwtzAgrrgjFZiRCyKwtzAgrrgjFZiRCyKwtzAgrrgjFtzHyAKakjAEBm5CuAAAAAElFTkSuQmCC>\n==Vercel\n\n Deploys studio and website." <<external_system>> as deployment rectangle "<img:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAABm0lEQVRoQ92Z25LDMAhDt///0dtJpu4kDhgBimPaZ0x0LPCtrz/+7x9I+QJiXCGshIj4kbC0jkyCrHgNLKQpMugugCOYW5d3wAyIEBAKMhvADYOAPAkBA1kgq0A0IFXvCGQ1iCGMBrIqxAYjaq4IIsJIICu7oTZ/D1IF4uJKZZATzBGkkhuXEnsahPH9PUdLlHEjIyYz9rSv/ALIbggbZEvqcZfhyG0gHhgqiGcGpVtdZlNdHgR1hQWyr1p3ONKcs3IvC7IJ94jzxA6fh9iONAdQgWic+cY1A2TUL8uD9KdTrVdKgCAwJUGkEisDYrlSCgSFsfac4SM4+9CINLVWYiVAEFfKgFgw5qanBJxuiOghzzr9IrNKa/CPmN8FiboSWTBYrnzz9JcipDSitdyPY8CoIFFXInBZkJMJmWtqRDzLlYtuCWSmK9ElGQZ5CgbpUXHyNUfQOzejvDyuqHotkJnOWM0/1IqAPAHTl5ip0ww41A5Sv4xSO26wsD44cCJQRJP8Dyk4rXc5NB2EvbKFAJqI1GDBOY9L1G+/AToZcCqjfA/hAAAAAElFTkSuQmCC>\n==Marcus manifest\n\n Temporary API for Marcus IIIF manifests." <<system>> as marcusManifest +rectangle "<img:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAqCAYAAADxughHAAAAAXNSR0IArs4c6QAAA1NJREFUaEPtmU9PE0EYxp+FlhKktg0EjAdo0KSNHEDLgbRJY0zaRINHSjwgPfAVTDz6BTjpxRsNXsgexNiDqRCltyp8gCYWiFGjIaRqjSIJ1MyUaWeX3c72z+42kbm03d2ZeX7zvO8701aCoEW3FsoSgM2plETeg3woVzpluWvZUIrcsa3pTh7dTpazoeWK+A5pZOH0pGje6CTxauF6MPqOdJATRmDOgHSyGzyQ2pmOAslOpajW6NZCVXNh6R0Ov/zC+NIthTFCkNOBNBOcTcRG5Ce0uh4IQfRCS71a5LPD3YPwm3tWM1RLPz/x2dDavl8G3TmUjQhXO6B1zSqqph05ePsRAzdHFDq/vfyA4btX26K9W+pG2DOBiPc6Ip4buOi4UHdcSZIUq21psm+GltsCTQYRgtRL9lZUGIEoFArY2dlBLBarTjU9PY1cLodyuVZ/EokEZFm2xxEehEQFEcZeiWpZljE7O0sBisUifD4fVldXMTc3R6+l02nMzMzQ9/l8HsFg0F4QXvxpiGBxcRHJZBKRSIQKdbvdKJVKiMfjyGQy9BoBI4DcItgL0kp4KsqtncnudbjxYuJxW1hsS/ZW1Ifc1xD2TiLsmcRl1xAdSghyfmhsZcmb6Cve2XWOKE3MpdtlM/Sj5eEkac2eqkWUr4yXMNJ70jJEJUcEIGbt7LcHjvDQ/6ctEIZArEj2nv5aVAw7T/Bs7GfDgLG8l/YhB/WNwLLyBGmWG7xKRy/Q5VCeVR9c+o2456ghGAZCOq0HNUDMhuHd4JWvB+ufjP3+PuzuxqtdhCBWhxZT9jrwvb2ORC0ovw4X0OWshdcTfBJCBAL9imeYIySsaPKrRzDLkXbsHcpDo037iOUgZiU7DyJJa8JQUj8wOtqHvb1asgs3xPPQEqwxc+R50YUh5wkefa78SkKq1cpBL+YHDhtyyTZHiEq9PaSZEkyqFqtYllYtEcgV1zEKf7upQ0aacEM0K9lFbjDxxfdfsT3/6gzL4GAP9vfv6O/sJLn5LylmJbtRkKYd4YVX/xM04m2DzxgFYQVANDwfWjRHzHJALeS/A2k0tMgPqRvsGG+FK0YcMQpB3NY8NFoBIiq/RnNDC0Kxj9gJM+Y6xlN/SZTf9L7aCdbpH3V3YzDpluRLAAAAAElFTkSuQmCC>\n==Muna docs\n\n Documentation of Muna datamodel." <<system>> as munaDocs rectangle "<img:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAACZElEQVRoQ+2YzUpCURDHJ/AZJNBcSJJIubBoUSs3iZCvEO0qyTfwI30Hoy8JcxFucivUE0RPIRYhIgjuXBhXuGCXe87MnHO4qFx3cubMf37zn+Px3o3ZbDaDNfhs+CBL5qLvyJIZAr4ja+1Ir9eDw4MDEuPvYECKowYZGa3NYJCq5xpnAkoLRBfASaUDpATy3e/Dfiql5YJosyoMG8S0C25AT40GnOZyrEaxQLyAsKs/yWTgpdUiw5BBvISwq6/c3MBVPk+C0QKx5rlSLsP93R1JTBT03GxCNpsFt2ZRzwwJROSGU4TrGnU/BQYFkRVHEeBYJdLaSybh/eNDmkoZJJ1Ow2u7zakTjdVpmhQEGxWvHLE6gGmtDAgGowyCdQidI0GA6ngpgVwXClAslVRrle4zDqKa0ASdSPvi8hKqtZqrhNCRZQSRnRMfxMQIiXKoTIPvyMo4sptIwHA4FNa7FvcIdsvquKVyPiw9pQvRLtS0Kzr/7bRATDqDQWBaUpDRaASJeBydFB1nxuMx7MRi2hrs5xG7aFkH3zodODo+di2uVCzC48MDWrgzAGsWCmIldBaNwWCilDFaBMHyoYfdTuYU/vz6gkgkMl92rvV/fiAQCEg7vhUKwXQ6JbtiDETkivXGMRQOw/nZGXS7XfQpbrFyqisUCLIjImeoIm6tp4Bw8pPOiKyTHDGOI9y8bBC3MeMeTFM5FnWVQGSFUDtJfelH/UVQBrEEJpMJbEej/7RUQaj7RGBaIHbS23odatXq/Cu1INsRajzmjBEQTMSLdR/Eiy5zNHxHON3yItZ3xIsuczT+ANqRwHq+fLT7AAAAAElFTkSuQmCC>\n==GitHub\n\n Version control" <<system>> as git @@ -646,7 +658,7 @@ rectangle "<$google_cloud_platform>\n==Google Authentication\n\n Authenticates e studio -RIGHT->> sanity : **Read/Write**\n//<size:12>[HTTPS]</size>// website -LEFT->> sanity : **Read**\n//<size:12>[HTTPS]</size>// -studio -LEFT->> google_auth : **Authenticate**\n//<size:12>[HTTPS]</size>// +studio - ->> google_auth : **Authenticate**\n//<size:12>[HTTPS]</size>// website -RIGHT->> marcusManifest : **Loads** @@ -662,8 +674,9 @@ developer -DOWN->> deployment : **Manages deployment** git -DOWN->> deployment : **Triggers build**\n//<size:12>[Webhook]</size>// deployment -DOWN->> studio : **Serves**\n//<size:12>[HTTPS]</size>// - deployment -DOWN->> website : **Serves**\n//<size:12>[HTTPS]</size>// +deployment -DOWN->> marcusManifest : **Serves**\n//<size:12>[HTTPS]</size>// +deployment -DOWN->> munaDocs <<dashed>> : **Serves**\n//<size:12>[HTTPS]</size>// @enduml diff --git a/docs/diagrams/src/context.puml b/docs/diagrams/src/context.puml index 926cf71b71814d334c7a83be3e9af86c7900230f..db9ae3b6219448ac0b57fc3abf08d8cdc3fe7fa1 100644 --- a/docs/diagrams/src/context.puml +++ b/docs/diagrams/src/context.puml @@ -1,25 +1,26 @@ @startuml "context" !include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Context.puml +' uncomment the following line and comment the first to use locally +' !include C4_Container.puml !define NREC_LOGO img:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAfCAYAAAClDZ5ZAAAAAXNSR0IArs4c6QAAAXZJREFUWEfV1+sNgyAQAGDYpXs4UJt0FpN2H52j7kJzVCwPgTs4iPRvVfi8F0pR8ltXlb1tmmT2GsYLaIthAP7mOoHwkBKEQXXA4CA1iE6YPIQD0QGThsQQkCqcQAZoOQQWb4GB5xbUVB3kQpg4JPW2p0ne7rPa3s/f/ZTIUNKSEJkqCNz8AQwVgsX3gsB+yFGxN4d5AUhMVURMsyFhIC0fs9peyLTsCSFFZocIlYgmcvP2aYglIqTIWBDnBUQOkNBU7L+O6HvXhxBk3voLoDEexGBiz4sdkH2QC8Eg9oEVXVgKofM/cSqAGoHUqv3ZmD8Ei8hBcp3sJCI1IIOhDzQEJFn8zBCzVjNIFNMMQkkp65SKLc5gxjSAwLby3yPItpjKc41ZFiWk1CdbrmJ35gj2zXIUpO5kI0P8wTdsRPxhOTzkmOJMA7F7jQT1BS2GYbLbkdZdq0fB1zSL3L3QFYeHuEeUgaMSQEZLsfQxfk/Gq9fM2cfVF6rBHOmyKLuMAAAAAElFTkSuQmCC !define SANITY img:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAACeklEQVRoQ+2ZQU5bQQyGPe8hVWkT0mOgqlUldskNkos06aaLwIojlGzbHgTBCYA1C9hwiUYEWkQSI0cMekomE9vjlwBK1jO2P//2eObFwRv5uTfCARuQl6bkRpGQIje9DnKVogxW+3/MEmliSAIQAq0ZACWBpAIUoTLn4MPhb3U86o2WEEUgrToqkLIgPJAGRgwyaDUw+/SV29PqdVIYMcjfVgNzBkgokGHvGyJzBq8dhBMAtzQ5trzkIkVIjenGLIN858tc2Ugc0+ZlQBJ7OhAAmC0viVOfgX/733E0mUT7iGtXDULePYxzDqrKGWClShIITMaQf94FbtbURxhjYxrIk4OPJ+ciO4y4xEtEATw3e8BN7hzUjs9E9sTRRjaIHMdAij7WoZAIhILlwniwSp7Bu6NTsR+pWmIHUpBQQOS0btxXYhCNKrHs0vV926C3VCB0cWQ/BQU1ktJbKhCKrSwYBw7qJ/LTTw3iE23RM7OiaXooGcQHMWg3EQ0LzjmA+jF/0JqBzGZ10GoiQlonSXqmNJA5sHZDJRgXZmUgWsVePEgRLHZgvCqQ2JB9VSC3vS5OAGF8dTE3Ps1BrF5yoUFftF29voTBw+h52cpB6D3y3ui5W1Rm5SCUQs2TN6R0qSAU6LLyksLc7XVxHLgNUEL8SWauCBfEF3dMnWGvu3TqkypcCPIpHogcVQQ394VLSweRKqOFkvabWBEKbLjfQYx/INTGP90nhVCVVjHCMspMA5EMQgbw4AcO/98nKTANxAFUD/V/jqpKa9l0llBtZRlUfv5KjiPZwKKg41/aHdT6+j8+Qz5LA5GoYrF2A2KRRUsbG0Uss2lh6xFkswBC9e0BzQAAAABJRU5ErkJggg== !define VERCEL img:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAABU0lEQVRoQ+2ZWwqDMBBFR92j4joU3IKgCxFdo6akoNjSVmcyNxWZgF+dPM49yfw0ISJHNxiJgVzMohm5mBAyI2YElIBdLVCw4mXNiDg60EQzAgpWvKwZORudc478l6bp2SmiOqgRf/h5np8HSxK/FW5AQbyJ/UDCwECqqqK+719AvKF3OC1HMJBvB0ZZgYD8Sn0YBirLUkvEtk50ENTDVwc58wYQ7VgVZN9uj+6O9ltRBTljA9WO1UDquqau645EwNqxGgjXxkqkdcVUQKQQHmYcRyqKgmXyU/HfQbTacTBIiI01WY12HATCabdHdyf0rQSBaNjQasdikKZpqG3bo6BZv2dZRsuysOZs3U/6/4i2jdB2LDKCgvAw0zRRnudsK5cDkbZjEQg7rggTDCRCyKwtzAgrrgjFZiRCyKwtzAgrrgjFZiRCyKwtzAgrrgjFtzHyAKakjAEBm5CuAAAAAElFTkSuQmCC !define NEXT img:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAABm0lEQVRoQ92Z25LDMAhDt///0dtJpu4kDhgBimPaZ0x0LPCtrz/+7x9I+QJiXCGshIj4kbC0jkyCrHgNLKQpMugugCOYW5d3wAyIEBAKMhvADYOAPAkBA1kgq0A0IFXvCGQ1iCGMBrIqxAYjaq4IIsJIICu7oTZ/D1IF4uJKZZATzBGkkhuXEnsahPH9PUdLlHEjIyYz9rSv/ALIbggbZEvqcZfhyG0gHhgqiGcGpVtdZlNdHgR1hQWyr1p3ONKcs3IvC7IJ94jzxA6fh9iONAdQgWic+cY1A2TUL8uD9KdTrVdKgCAwJUGkEisDYrlSCgSFsfac4SM4+9CINLVWYiVAEFfKgFgw5qanBJxuiOghzzr9IrNKa/CPmN8FiboSWTBYrnzz9JcipDSitdyPY8CoIFFXInBZkJMJmWtqRDzLlYtuCWSmK9ElGQZ5CgbpUXHyNUfQOzejvDyuqHotkJnOWM0/1IqAPAHTl5ip0ww41A5Sv4xSO26wsD44cCJQRJP8Dyk4rXc5NB2EvbKFAJqI1GDBOY9L1G+/AToZcCqjfA/hAAAAAElFTkSuQmCC !define GITHUB img:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAACZElEQVRoQ+2YzUpCURDHJ/AZJNBcSJJIubBoUSs3iZCvEO0qyTfwI30Hoy8JcxFucivUE0RPIRYhIgjuXBhXuGCXe87MnHO4qFx3cubMf37zn+Px3o3ZbDaDNfhs+CBL5qLvyJIZAr4ja+1Ir9eDw4MDEuPvYECKowYZGa3NYJCq5xpnAkoLRBfASaUDpATy3e/Dfiql5YJosyoMG8S0C25AT40GnOZyrEaxQLyAsKs/yWTgpdUiw5BBvISwq6/c3MBVPk+C0QKx5rlSLsP93R1JTBT03GxCNpsFt2ZRzwwJROSGU4TrGnU/BQYFkRVHEeBYJdLaSybh/eNDmkoZJJ1Ow2u7zakTjdVpmhQEGxWvHLE6gGmtDAgGowyCdQidI0GA6ngpgVwXClAslVRrle4zDqKa0ASdSPvi8hKqtZqrhNCRZQSRnRMfxMQIiXKoTIPvyMo4sptIwHA4FNa7FvcIdsvquKVyPiw9pQvRLtS0Kzr/7bRATDqDQWBaUpDRaASJeBydFB1nxuMx7MRi2hrs5xG7aFkH3zodODo+di2uVCzC48MDWrgzAGsWCmIldBaNwWCilDFaBMHyoYfdTuYU/vz6gkgkMl92rvV/fiAQCEg7vhUKwXQ6JbtiDETkivXGMRQOw/nZGXS7XfQpbrFyqisUCLIjImeoIm6tp4Bw8pPOiKyTHDGOI9y8bBC3MeMeTFM5FnWVQGSFUDtJfelH/UVQBrEEJpMJbEej/7RUQaj7RGBaIHbS23odatXq/Cu1INsRajzmjBEQTMSLdR/Eiy5zNHxHON3yItZ3xIsuczT+ANqRwHq+fLT7AAAAAElFTkSuQmCC +!define DOCUSAURUS img:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAqCAYAAADxughHAAAAAXNSR0IArs4c6QAAA1NJREFUaEPtmU9PE0EYxp+FlhKktg0EjAdo0KSNHEDLgbRJY0zaRINHSjwgPfAVTDz6BTjpxRsNXsgexNiDqRCltyp8gCYWiFGjIaRqjSIJ1MyUaWeX3c72z+42kbm03d2ZeX7zvO8701aCoEW3FsoSgM2plETeg3woVzpluWvZUIrcsa3pTh7dTpazoeWK+A5pZOH0pGje6CTxauF6MPqOdJATRmDOgHSyGzyQ2pmOAslOpajW6NZCVXNh6R0Ov/zC+NIthTFCkNOBNBOcTcRG5Ce0uh4IQfRCS71a5LPD3YPwm3tWM1RLPz/x2dDavl8G3TmUjQhXO6B1zSqqph05ePsRAzdHFDq/vfyA4btX26K9W+pG2DOBiPc6Ip4buOi4UHdcSZIUq21psm+GltsCTQYRgtRL9lZUGIEoFArY2dlBLBarTjU9PY1cLodyuVZ/EokEZFm2xxEehEQFEcZeiWpZljE7O0sBisUifD4fVldXMTc3R6+l02nMzMzQ9/l8HsFg0F4QXvxpiGBxcRHJZBKRSIQKdbvdKJVKiMfjyGQy9BoBI4DcItgL0kp4KsqtncnudbjxYuJxW1hsS/ZW1Ifc1xD2TiLsmcRl1xAdSghyfmhsZcmb6Cve2XWOKE3MpdtlM/Sj5eEkac2eqkWUr4yXMNJ70jJEJUcEIGbt7LcHjvDQ/6ctEIZArEj2nv5aVAw7T/Bs7GfDgLG8l/YhB/WNwLLyBGmWG7xKRy/Q5VCeVR9c+o2456ghGAZCOq0HNUDMhuHd4JWvB+ufjP3+PuzuxqtdhCBWhxZT9jrwvb2ORC0ovw4X0OWshdcTfBJCBAL9imeYIySsaPKrRzDLkXbsHcpDo037iOUgZiU7DyJJa8JQUj8wOtqHvb1asgs3xPPQEqwxc+R50YUh5wkefa78SkKq1cpBL+YHDhtyyTZHiEq9PaSZEkyqFqtYllYtEcgV1zEKf7upQ0aacEM0K9lFbjDxxfdfsT3/6gzL4GAP9vfv6O/sJLn5LylmJbtRkKYd4YVX/xM04m2DzxgFYQVANDwfWjRHzHJALeS/A2k0tMgPqRvsGG+FK0YcMQpB3NY8NFoBIiq/RnNDC0Kxj9gJM+Y6xlN/SZTf9L7aCdbpH3V3YzDpluRLAAAAAElFTkSuQmCC !define DEVICONS https://raw.githubusercontent.com/tupadr3/plantuml-icon-font-sprites/master/devicons -' uncomment the following line and comment the first to use locally -' !include C4_Container.puml !include DEVICONS/google_cloud_platform.puml -' uncomment the following line and comment the first to use locally -' !include C4_Context.puml AddSystemTag("s", ) LAYOUT_TOP_DOWN() ' LAYOUT_AS_SKETCH() LAYOUT_WITH_LEGEND() +AddRelTag("dashed", $textColor="black", $lineColor="black", $lineStyle = DashedLine()) + Person_Ext(visitor, "Visitor", "A visitor of website.") Person(editor, "Authenticated editor", "Content creator.") @@ -28,26 +29,27 @@ Person(developer, "Developer", "Developer of system.") ' Enterprise_Boundary(c0, "UiB Library") {} -System(studio, "Sanity Studio", "Allows editors to create content.", "SANITY") +System(studio, "Sanity Studio", "Allows editors to create content.", SANITY) -SystemDb_Ext(sanity, "Sanity Cloud Storage", "Proprietary DB on top of Google Cloud PostgreSQL. Serves images with IIIF Image API and files from buckets.", "SANITY") -System_Ext(sanityManage, "Sanity Manage", "Sanity backend for projects, datasets, configs and access.", "SANITY") +SystemDb_Ext(sanity, "Sanity Cloud Storage", "Proprietary DB on top of Google Cloud PostgreSQL. Serves images with IIIF Image API and files from buckets.", SANITY) +System_Ext(sanityManage, "Sanity Manage", "Sanity backend for projects, datasets, configs and access.", SANITY) -System(website, "Website", "Frontend with static generated pages and APIs.", "NEXT") -System(proxy, "Proxy", "Reverse proxy for serving Nansen with UiB domain.", "NREC_LOGO") +System(website, "Website", "Frontend with static generated pages and APIs.", NEXT) +System(proxy, "Proxy", "Reverse proxy for serving Nansen with UiB domain.", NREC_LOGO) -System_Ext(deployment, "Vercel", "Deploys studio and website.", "VERCEL") +System_Ext(deployment, "Vercel", "Deploys studio and website.", VERCEL) -System(marcusManifest, "Marcus manifest", "Temporary API for Marcus IIIF manifests.", "NEXT") +System(marcusManifest, "Marcus manifest", "Temporary API for Marcus IIIF manifests.", NEXT) +System(munaDocs, "Muna docs", "Documentation of Muna datamodel.", DOCUSAURUS) -System(git, "GitHub", "Version control", "GITHUB") +System(git, "GitHub", "Version control", GITHUB) -System_Ext(google_auth, "Google Authentication", "Authenticates editors.", "google_cloud_platform") +System_Ext(google_auth, "Google Authentication", "Authenticates editors.", google_cloud_platform) Rel_R(studio, sanity, "Read/Write", "HTTPS") Rel_L(website, sanity, "Read", "HTTPS") -Rel_L(studio, google_auth, "Authenticate", "HTTPS") +Rel(studio, google_auth, "Authenticate", "HTTPS") Rel_R(website, marcusManifest, "Loads") @@ -63,8 +65,9 @@ Rel_D(developer, deployment, "Manages deployment") Rel_D(git, deployment, "Triggers build", "Webhook") Rel_D(deployment, studio, "Serves", "HTTPS") - Rel_D(deployment, website, "Serves", "HTTPS") +Rel_D(deployment, marcusManifest, "Serves", "HTTPS") +Rel_D(deployment, munaDocs, "Serves", "HTTPS", $tags="dashed") @enduml \ No newline at end of file diff --git a/docs/diagrams/src/docusaurus.svg b/docs/diagrams/src/docusaurus.svg new file mode 100644 index 0000000000000000000000000000000000000000..0df02f0a832b12880cfa50c207e89768ac3ec04d --- /dev/null +++ b/docs/diagrams/src/docusaurus.svg @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg width="256px" height="218px" viewBox="0 0 256 218" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid"> + <g> + <rect fill="#FFFFFF" x="126.030769" y="45.9487179" width="110.276923" height="44.6358974"></rect> + <path d="M26.2564103,191.671795 C16.5441641,191.671795 8.0830359,186.385067 3.54067692,178.54359 C1.30231795,182.408533 0,186.883938 0,191.671795 C0,206.17321 11.7549949,217.928205 26.2564103,217.928205 L52.5128205,217.928205 L52.5128205,191.671795 L26.2564103,191.671795 Z" fill="#3ECC5F"></path> + <path d="M144.384656,53.006441 L236.308349,47.2615385 L236.308349,34.1333333 C236.308349,19.6319179 224.552041,7.87692308 210.051938,7.87692308 L91.8980923,7.87692308 L88.616041,2.19241026 C87.1561846,-0.334769231 83.5104821,-0.334769231 82.0519385,2.19241026 L78.7698872,7.87692308 L75.4878359,2.19241026 C74.0279795,-0.334769231 70.3822769,-0.334769231 68.9237333,2.19241026 L65.6416821,7.87692308 L62.3596308,2.19241026 C60.8997744,-0.334769231 57.2540718,-0.334769231 55.7955282,2.19241026 L52.5134769,7.87692308 C52.4845949,7.87692308 52.4570256,7.88086154 52.4281436,7.88086154 L46.990441,2.44447179 C44.928,0.382030769 41.4070154,1.3246359 40.6508308,4.14326154 L38.8548923,10.8438974 L32.0374154,9.01645128 C29.2187897,8.26157949 26.6404103,10.839959 27.3965949,13.6585846 L29.2227282,20.4760615 L22.5234051,22.2706872 C19.7047795,23.0268718 18.7608615,26.5491692 20.8233026,28.6116103 L26.2596923,34.0493128 C26.2596923,34.0768821 26.2570667,34.1044513 26.2570667,34.1333333 L20.571241,37.4153846 C18.0453744,38.8739282 18.0453744,42.5209436 20.571241,43.9794872 L26.2570667,47.2615385 L20.571241,50.5435897 C18.0453744,52.0021333 18.0453744,55.6491487 20.571241,57.1076923 L26.2570667,60.3897436 L20.571241,63.6717949 C18.0453744,65.1303385 18.0453744,68.7773538 20.571241,70.2358974 L26.2570667,73.5179487 L20.571241,76.8 C18.0453744,78.2585436 18.0453744,81.905559 20.571241,83.3641026 L26.2570667,86.6461538 L20.571241,89.9282051 C18.0453744,91.3867487 18.0453744,95.0337641 20.571241,96.4923077 L26.2570667,99.774359 L20.571241,103.05641 C18.0453744,104.514954 18.0453744,108.161969 20.571241,109.620513 L26.2570667,112.902564 L20.571241,116.184615 C18.0453744,117.643159 18.0453744,121.290174 20.571241,122.748718 L26.2570667,126.030769 L20.571241,129.312821 C18.0453744,130.771364 18.0453744,134.418379 20.571241,135.876923 L26.2570667,139.158974 L20.571241,142.441026 C18.0453744,143.899569 18.0453744,147.546585 20.571241,149.005128 L26.2570667,152.287179 L20.571241,155.569231 C18.0453744,157.027774 18.0453744,160.67479 20.571241,162.133333 L26.2570667,165.415385 L20.571241,168.697436 C18.0453744,170.155979 18.0453744,173.802995 20.571241,175.261538 L26.2570667,178.54359 L20.571241,181.825641 C18.0453744,183.284185 18.0453744,186.9312 20.571241,188.389744 L26.2570667,191.671795 C26.2570667,206.17321 38.0120615,217.928205 52.5134769,217.928205 L210.051938,217.928205 C224.552041,217.928205 236.308349,206.17321 236.308349,191.671795 L236.308349,86.6461538 L144.384656,80.9012513 C137.019733,80.4404513 131.282708,74.3332103 131.282708,66.9538462 C131.282708,59.5744821 137.019733,53.467241 144.384656,53.006441" fill="#3ECC5F"></path> + <polygon fill="#3ECC5F" points="183.794872 217.928205 223.179487 217.928205 223.179487 165.415385 183.794872 165.415385"></polygon> + <path d="M249.435897,185.107692 C249.14839,185.107692 248.87401,185.156267 248.597005,185.191713 C248.547118,184.99479 248.499856,184.796554 248.444718,184.599631 C250.815672,183.609764 252.481641,181.272944 252.481641,178.54359 C252.481641,174.917579 249.543549,171.979487 245.917538,171.979487 C244.423549,171.979487 243.062154,172.499364 241.958072,173.339569 C241.812349,173.191221 241.666626,173.044185 241.518277,172.898462 C242.341415,171.800944 242.845538,170.45399 242.845538,168.977067 C242.845538,165.351056 239.907446,162.412964 236.281436,162.412964 C233.570462,162.412964 231.244144,164.057928 230.243774,166.405251 C230.049477,166.350113 229.853867,166.304164 229.659569,166.254277 C229.695015,165.977272 229.74359,165.702892 229.74359,165.415385 C229.74359,161.789374 226.805497,158.851282 223.179487,158.851282 C219.553477,158.851282 216.615385,161.789374 216.615385,165.415385 C216.615385,165.702892 216.663959,165.977272 216.699405,166.254277 C216.505108,166.304164 216.309497,166.350113 216.1152,166.405251 C215.114831,164.057928 212.788513,162.412964 210.077538,162.412964 C206.451528,162.412964 203.513436,165.351056 203.513436,168.977067 C203.513436,170.45399 204.017559,171.800944 204.840697,172.898462 C199.960944,177.666626 196.923077,184.31081 196.923077,191.671795 C196.923077,206.17321 208.678072,217.928205 223.179487,217.928205 C235.439918,217.928205 245.707487,209.513026 248.597005,198.151877 C248.87401,198.187323 249.14839,198.235897 249.435897,198.235897 C253.061908,198.235897 256,195.297805 256,191.671795 C256,188.045785 253.061908,185.107692 249.435897,185.107692" fill="#44D860"></path> + <polygon fill="#3ECC5F" points="196.923077 139.158974 236.307692 139.158974 236.307692 112.902564 196.923077 112.902564"></polygon> + <path d="M249.435897,129.312821 C251.248903,129.312821 252.717949,127.843774 252.717949,126.030769 C252.717949,124.217764 251.248903,122.748718 249.435897,122.748718 C249.2928,122.748718 249.154954,122.773662 249.017108,122.790728 C248.990851,122.692267 248.968533,122.593805 248.940964,122.495344 C250.125128,122.00041 250.958769,120.830687 250.958769,119.466667 C250.958769,117.653662 249.489723,116.184615 247.676718,116.184615 C246.929723,116.184615 246.248369,116.443241 245.696985,116.864656 C245.624779,116.789826 245.551262,116.716308 245.476431,116.644103 C245.888656,116.096656 246.140718,115.421867 246.140718,114.682749 C246.140718,112.871056 244.671672,111.400697 242.858667,111.400697 C241.502523,111.400697 240.339364,112.223836 239.839179,113.397497 C238.714092,113.083733 237.533867,112.902564 236.307692,112.902564 C229.058297,112.902564 223.179487,118.781374 223.179487,126.030769 C223.179487,133.280164 229.058297,139.158974 236.307692,139.158974 C237.533867,139.158974 238.714092,138.977805 239.839179,138.664041 C240.339364,139.837703 241.502523,140.660841 242.858667,140.660841 C244.671672,140.660841 246.140718,139.190482 246.140718,137.37879 C246.140718,136.639672 245.888656,135.964882 245.476431,135.417436 C245.551262,135.345231 245.624779,135.271713 245.696985,135.196882 C246.248369,135.618297 246.929723,135.876923 247.676718,135.876923 C249.489723,135.876923 250.958769,134.407877 250.958769,132.594872 C250.958769,131.230851 250.125128,130.061128 248.940964,129.566195 C248.968533,129.469046 248.990851,129.369272 249.017108,129.27081 C249.154954,129.287877 249.2928,129.312821 249.435897,129.312821" fill="#44D860"></path> + <path d="M78.7692308,50.5435897 C76.9562256,50.5435897 75.4871795,49.0745436 75.4871795,47.2615385 C75.4871795,41.8317128 71.0708513,37.4153846 65.6410256,37.4153846 C60.2112,37.4153846 55.7948718,41.8317128 55.7948718,47.2615385 C55.7948718,49.0745436 54.3258256,50.5435897 52.5128205,50.5435897 C50.6998154,50.5435897 49.2307692,49.0745436 49.2307692,47.2615385 C49.2307692,38.2122667 56.5917538,30.8512821 65.6410256,30.8512821 C74.6902974,30.8512821 82.0512821,38.2122667 82.0512821,47.2615385 C82.0512821,49.0745436 80.5822359,50.5435897 78.7692308,50.5435897" fill="#000000"></path> + <path d="M131.282051,217.928205 L210.051282,217.928205 C224.552697,217.928205 236.307692,206.17321 236.307692,191.671795 L236.307692,99.774359 L157.538462,99.774359 C143.037046,99.774359 131.282051,111.529354 131.282051,126.030769 L131.282051,217.928205 Z" fill="#FFFF50"></path> + <path d="M216.640985,140.471795 L150.948759,140.471795 C150.222769,140.471795 149.635938,139.884964 149.635938,139.158974 C149.635938,138.432985 150.222769,137.846154 150.948759,137.846154 L216.640985,137.846154 C217.366974,137.846154 217.953805,138.432985 217.953805,139.158974 C217.953805,139.884964 217.366974,140.471795 216.640985,140.471795" fill="#000000"></path> + <path d="M216.640985,166.728205 L150.948759,166.728205 C150.222769,166.728205 149.635938,166.141374 149.635938,165.415385 C149.635938,164.689395 150.222769,164.102564 150.948759,164.102564 L216.640985,164.102564 C217.366974,164.102564 217.953805,164.689395 217.953805,165.415385 C217.953805,166.141374 217.366974,166.728205 216.640985,166.728205" fill="#000000"></path> + <path d="M216.640985,192.984615 L150.948759,192.984615 C150.222769,192.984615 149.635938,192.397785 149.635938,191.671795 C149.635938,190.945805 150.222769,190.358974 150.948759,190.358974 L216.640985,190.358974 C217.366974,190.358974 217.953805,190.945805 217.953805,191.671795 C217.953805,192.397785 217.366974,192.984615 216.640985,192.984615" fill="#000000"></path> + <path d="M216.640985,127.587118 L150.948759,127.587118 C150.222769,127.587118 149.635938,126.998974 149.635938,126.274297 C149.635938,125.548308 150.222769,124.961477 150.948759,124.961477 L216.640985,124.961477 C217.366974,124.961477 217.953805,125.548308 217.953805,126.274297 C217.953805,126.998974 217.366974,127.587118 216.640985,127.587118" fill="#000000"></path> + <path d="M216.640985,153.6 L150.948759,153.6 C150.222769,153.6 149.635938,153.013169 149.635938,152.287179 C149.635938,151.56119 150.222769,150.974359 150.948759,150.974359 L216.640985,150.974359 C217.366974,150.974359 217.953805,151.56119 217.953805,152.287179 C217.953805,153.013169 217.366974,153.6 216.640985,153.6" fill="#000000"></path> + <path d="M216.640985,179.85641 L150.948759,179.85641 C150.222769,179.85641 149.635938,179.269579 149.635938,178.54359 C149.635938,177.8176 150.222769,177.230769 150.948759,177.230769 L216.640985,177.230769 C217.366974,177.230769 217.953805,177.8176 217.953805,178.54359 C217.953805,179.269579 217.366974,179.85641 216.640985,179.85641" fill="#000000"></path> + <path d="M236.307692,58.5666297 C236.291938,58.5666297 236.27881,58.5587528 236.263056,58.5600656 C232.206441,58.6979118 230.287097,62.75584 228.593559,66.3359015 C226.826503,70.0761272 225.459856,72.5100964 223.220185,72.4365785 C220.740267,72.3473067 219.322421,69.5457477 217.820554,66.5800862 C216.095508,63.1759426 214.126277,59.3136246 209.992205,59.4580349 C205.993354,59.5945682 204.067446,63.1260554 202.368656,66.2413785 C200.560903,69.5601887 199.33079,71.5779938 196.958523,71.4847836 C194.428718,71.3928862 193.08439,69.1151426 191.528697,66.478999 C189.794462,63.5435323 187.789785,60.2431015 183.735795,60.3560041 C179.80521,60.4912246 177.874051,63.487081 176.17001,66.1324144 C174.367508,68.9287221 173.104574,70.6327631 170.702113,70.5316759 C168.111918,70.4384656 166.774154,68.5493169 165.226338,66.3608451 C163.488164,63.9019323 161.529436,61.1187528 157.487262,61.2539733 C153.643323,61.3852554 151.712164,63.8389169 150.009436,66.0037579 C148.392041,68.0570092 147.129108,69.682281 144.457518,69.579881 C143.732841,69.550999 143.125005,70.1194503 143.098749,70.84544 C143.071179,71.5688041 143.638318,72.1779528 144.362995,72.2055221 C148.323774,72.3381169 150.329764,69.8411323 152.071877,67.6277169 C153.617067,65.6637374 154.950892,63.9688862 157.576533,63.8796144 C160.105026,63.7719631 161.290503,65.3434092 163.083815,67.8771528 C164.786544,70.2848656 166.719015,73.0155323 170.60759,73.1560041 C174.681272,73.2925374 176.641313,70.2481067 178.376862,67.554199 C179.928615,65.1464862 181.267692,63.0682913 183.825067,62.9803323 C186.178954,62.8923733 187.460267,64.75264 189.266708,67.8128246 C190.969436,70.6970913 192.897969,73.9647015 196.864,74.1091118 C200.966564,74.2508964 202.94761,70.6682092 204.673969,67.4990605 C206.169272,64.7578913 207.580554,62.1676964 210.081477,62.0823631 C212.435364,62.0272246 213.662851,64.1763118 215.478482,67.7668759 C217.174646,71.1185067 219.097928,74.9151836 223.125662,75.0609067 C223.200492,75.0635323 223.27401,75.0648451 223.347528,75.0648451 C227.37001,75.0648451 229.278851,71.0279221 230.968451,67.4583631 C232.463754,64.2944656 233.878974,61.3130503 236.307692,61.1922708 L236.307692,58.5666297 Z" fill="#000000"></path> + <polygon fill="#3ECC5F" points="105.025641 217.928205 157.538462 217.928205 157.538462 165.415385 105.025641 165.415385"></polygon> + <path d="M183.794872,185.107692 C183.507364,185.107692 183.232985,185.156267 182.955979,185.191713 C182.906092,184.99479 182.858831,184.796554 182.803692,184.599631 C185.174646,183.609764 186.840615,181.272944 186.840615,178.54359 C186.840615,174.917579 183.902523,171.979487 180.276513,171.979487 C178.782523,171.979487 177.421128,172.499364 176.317046,173.339569 C176.171323,173.191221 176.0256,173.044185 175.877251,172.898462 C176.70039,171.800944 177.204513,170.45399 177.204513,168.977067 C177.204513,165.351056 174.266421,162.412964 170.64041,162.412964 C167.929436,162.412964 165.603118,164.057928 164.602749,166.405251 C164.408451,166.350113 164.212841,166.304164 164.018544,166.254277 C164.05399,165.977272 164.102564,165.702892 164.102564,165.415385 C164.102564,161.789374 161.164472,158.851282 157.538462,158.851282 C153.912451,158.851282 150.974359,161.789374 150.974359,165.415385 C150.974359,165.702892 151.022933,165.977272 151.058379,166.254277 C150.864082,166.304164 150.668472,166.350113 150.474174,166.405251 C149.473805,164.057928 147.147487,162.412964 144.436513,162.412964 C140.810503,162.412964 137.87241,165.351056 137.87241,168.977067 C137.87241,170.45399 138.376533,171.800944 139.199672,172.898462 C134.319918,177.666626 131.282051,184.31081 131.282051,191.671795 C131.282051,206.17321 143.037046,217.928205 157.538462,217.928205 C169.798892,217.928205 180.066462,209.513026 182.955979,198.151877 C183.232985,198.187323 183.507364,198.235897 183.794872,198.235897 C187.420882,198.235897 190.358974,195.297805 190.358974,191.671795 C190.358974,188.045785 187.420882,185.107692 183.794872,185.107692" fill="#44D860"></path> + <polygon fill="#3ECC5F" points="105.025641 139.158974 157.538462 139.158974 157.538462 112.902564 105.025641 112.902564"></polygon> + <path d="M170.666667,129.312821 C172.479672,129.312821 173.948718,127.843774 173.948718,126.030769 C173.948718,124.217764 172.479672,122.748718 170.666667,122.748718 C170.523569,122.748718 170.385723,122.773662 170.247877,122.790728 C170.221621,122.692267 170.199303,122.593805 170.171733,122.495344 C171.355897,122.00041 172.189538,120.830687 172.189538,119.466667 C172.189538,117.653662 170.720492,116.184615 168.907487,116.184615 C168.160492,116.184615 167.479138,116.443241 166.927754,116.864656 C166.855549,116.789826 166.782031,116.716308 166.7072,116.644103 C167.119426,116.096656 167.371487,115.421867 167.371487,114.682749 C167.371487,112.871056 165.902441,111.400697 164.089436,111.400697 C162.733292,111.400697 161.570133,112.223836 161.069949,113.397497 C159.944862,113.083733 158.764636,112.902564 157.538462,112.902564 C150.289067,112.902564 144.410256,118.781374 144.410256,126.030769 C144.410256,133.280164 150.289067,139.158974 157.538462,139.158974 C158.764636,139.158974 159.944862,138.977805 161.069949,138.664041 C161.570133,139.837703 162.733292,140.660841 164.089436,140.660841 C165.902441,140.660841 167.371487,139.190482 167.371487,137.37879 C167.371487,136.639672 167.119426,135.964882 166.7072,135.417436 C166.782031,135.345231 166.855549,135.271713 166.927754,135.196882 C167.479138,135.618297 168.160492,135.876923 168.907487,135.876923 C170.720492,135.876923 172.189538,134.407877 172.189538,132.594872 C172.189538,131.230851 171.355897,130.061128 170.171733,129.566195 C170.199303,129.469046 170.221621,129.369272 170.247877,129.27081 C170.385723,129.287877 170.523569,129.312821 170.666667,129.312821" fill="#44D860"></path> + <path d="M183.794872,32.4923077 C183.584821,32.4923077 183.361641,32.4660513 183.15159,32.4266667 C182.941538,32.3872821 182.730174,32.321641 182.534564,32.2428718 C182.337641,32.1641026 182.153846,32.0590769 181.968738,31.9409231 C181.798072,31.8227692 181.628718,31.678359 181.469867,31.5339487 C181.326769,31.3764103 181.182359,31.2188718 181.064205,31.0350769 C180.946051,30.8512821 180.841026,30.6674872 180.760944,30.4705641 C180.683487,30.273641 180.617846,30.0635897 180.578462,29.8535385 C180.539077,29.6434872 180.512821,29.4203077 180.512821,29.2102564 C180.512821,29.0002051 180.539077,28.7770256 180.578462,28.5669744 C180.617846,28.3569231 180.683487,28.16 180.760944,27.9499487 C180.841026,27.7530256 180.946051,27.5692308 181.064205,27.3854359 C181.182359,27.2147692 181.326769,27.0441026 181.469867,26.8865641 C181.628718,26.7421538 181.798072,26.5977436 181.968738,26.4795897 C182.153846,26.3614359 182.337641,26.2564103 182.534564,26.177641 C182.730174,26.0988718 182.941538,26.0332308 183.15159,25.9938462 C183.571692,25.9019487 184.004923,25.9019487 184.438154,25.9938462 C184.646892,26.0332308 184.858256,26.0988718 185.055179,26.177641 C185.25079,26.2564103 185.435897,26.3614359 185.619692,26.4795897 C185.790359,26.5977436 185.959713,26.7421538 186.118564,26.8865641 C186.262974,27.0441026 186.407385,27.2147692 186.525538,27.3854359 C186.643692,27.5692308 186.748718,27.7530256 186.827487,27.9499487 C186.906256,28.16 186.971897,28.3569231 187.011282,28.5669744 C187.049354,28.7770256 187.076923,29.0002051 187.076923,29.2102564 C187.076923,30.0767179 186.721149,30.9300513 186.118564,31.5339487 C185.959713,31.678359 185.790359,31.8227692 185.619692,31.9409231 C185.435897,32.0590769 185.25079,32.1641026 185.055179,32.2428718 C184.858256,32.321641 184.646892,32.3872821 184.438154,32.4266667 C184.228103,32.4660513 184.004923,32.4923077 183.794872,32.4923077" fill="#000000"></path> + <path d="M210.051282,30.8512821 C209.184821,30.8512821 208.344615,30.4968205 207.726277,29.8929231 C207.583179,29.7353846 207.438769,29.5647179 207.320615,29.3940513 C207.202462,29.2102564 207.097436,29.0264615 207.017354,28.8295385 C206.939897,28.6326154 206.874256,28.4225641 206.834872,28.2125128 C206.795487,28.0024615 206.769231,27.7792821 206.769231,27.5692308 C206.769231,26.7027692 207.123692,25.8625641 207.726277,25.2455385 C207.885128,25.1011282 208.054482,24.9567179 208.225149,24.8385641 C208.410256,24.7204103 208.594051,24.6153846 208.790974,24.5366154 C208.986585,24.4578462 209.197949,24.3922051 209.408,24.3528205 C209.828103,24.2609231 210.274462,24.2609231 210.694564,24.3528205 C210.903303,24.3922051 211.114667,24.4578462 211.31159,24.5366154 C211.5072,24.6153846 211.692308,24.7204103 211.876103,24.8385641 C212.046769,24.9567179 212.216123,25.1011282 212.374974,25.2455385 C212.977559,25.8625641 213.333333,26.7027692 213.333333,27.5692308 C213.333333,27.7792821 213.305764,28.0024615 213.267692,28.2125128 C213.228308,28.4225641 213.162667,28.6326154 213.083897,28.8295385 C212.992,29.0264615 212.900103,29.2102564 212.781949,29.3940513 C212.663795,29.5647179 212.519385,29.7353846 212.374974,29.8929231 C212.216123,30.0373333 212.046769,30.1817436 211.876103,30.2998974 C211.692308,30.4180513 211.5072,30.5230769 211.31159,30.6018462 C211.114667,30.6806154 210.903303,30.7462564 210.694564,30.785641 C210.484513,30.8250256 210.261333,30.8512821 210.051282,30.8512821" fill="#000000"></path> + </g> +</svg>