entity sign--><rectfill="#85BBF0"height="102.4414"style="stroke:#78A8D8;stroke-width:1.5;"width="200"x="80.25"y="327.6992"/><textfill="#000000"font-family="sans-serif"font-size="16"font-weight="bold"lengthAdjust="spacing"textLength="143"x="108.75"y="353.168">Sign In Controller</text><textfill="#000000"font-family="sans-serif"font-size="12"font-style="italic"lengthAdjust="spacing"textLength="40"x="160.25"y="368.1445">[React]</text><textfill="#000000"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="0"x="182.25"y="384.2109"/><textfill="#000000"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="172"x="94.25"y="400.6992">Allows users to sign in to</text><textfill="#000000"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="74"x="143.25"y="417.1875">the Studio.</text><!--MD5=[7d95986b1a7257a223a95834a13edd2e]
entity import_tool--><rectfill="#85BBF0"height="118.9297"style="stroke:#78A8D8;stroke-width:1.5;"width="209"x="316"y="319.1992"/><textfill="#000000"font-family="sans-serif"font-size="16"font-weight="bold"lengthAdjust="spacing"textLength="91"x="375"y="344.668">Import tool</text><textfill="#000000"font-family="sans-serif"font-size="12"font-style="italic"lengthAdjust="spacing"textLength="40"x="400.5"y="359.6445">[React]</text><textfill="#000000"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="0"x="422.5"y="375.7109"/><textfill="#000000"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="139"x="351"y="392.1992">Plugin for importing</text><textfill="#000000"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="185"x="326"y="408.6875">external resources into the</text><textfill="#000000"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="48"x="396.5"y="425.1758">Studio.</text><!--MD5=[33573e971ff506c0f246109ca3fd77bd]
entity spa--><rectfill="#438DD5"height="118.9297"style="stroke:#3C7FC0;stroke-width:1.5;"width="213"x="524"y="40.1992"/><textfill="#FFFFFF"font-family="sans-serif"font-size="16"font-weight="bold"lengthAdjust="spacing"textLength="193"x="534"y="65.668">Single Page Application</text><textfill="#FFFFFF"font-family="sans-serif"font-size="12"font-style="italic"lengthAdjust="spacing"textLength="126"x="567.5"y="80.6445">[Javascript and React]</text><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="0"x="632.5"y="96.7109"/><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="130"x="565.5"y="113.1992">Provides all editing</text><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="178"x="539.5"y="129.6875">functionality to editors via</text><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="128"x="566.5"y="146.1758">their web browser.</text><!--MD5=[3d74be2a757051a7059b41e555fce061]
link import_tool to sanity_db--><pathd="M395.841,318.9042 C379.045,278.4482 356.539,224.2372 338.161,179.9722 "fill="none"id="import_tool-to-sanity_db"style="stroke:#666666;stroke-width:1.0;"/><polygonfill="#666666"points="335.015,172.3942,335.3114,180.9331,340.8529,178.6327,335.015,172.3942"style="stroke:#666666;stroke-width:1.0;"/><textfill="#666666"font-family="sans-serif"font-size="12"font-weight="bold"lengthAdjust="spacing"textLength="30"x="361.25"y="222.8008">Uses</text><!--MD5=[cc6e701350592b60920a324fb448bbde]
link import_tool to marcus--><pathd="M394.025,438.3932 C375.481,479.8962 351.045,534.5872 334.335,571.9842 "fill="none"id="import_tool-to-marcus"style="stroke:#666666;stroke-width:1.0;"/><polygonfill="#666666"points="330.892,579.6912,336.895,573.6114,331.4171,571.1634,330.892,579.6912"style="stroke:#666666;stroke-width:1.0;"/><textfill="#666666"font-family="sans-serif"font-size="12"font-weight="bold"lengthAdjust="spacing"textLength="49"x="372.25"y="499.8008">Imports</text><textfill="#666666"font-family="sans-serif"font-size="12"font-style="italic"lengthAdjust="spacing"textLength="46"x="373.75"y="513.9336">[HTTPS]</text><!--MD5=[ce03490f95923a2a4bf4a1a880a51bb0]
link import_tool to kulturnav--><pathd="M437.983,438.3932 C450.522,479.8962 467.046,534.5872 478.345,571.9842 "fill="none"id="import_tool-to-kulturnav"style="stroke:#666666;stroke-width:1.0;"/><polygonfill="#666666"points="480.673,579.6912,481.2321,571.1655,475.4883,572.9001,480.673,579.6912"style="stroke:#666666;stroke-width:1.0;"/><textfill="#666666"font-family="sans-serif"font-size="12"font-weight="bold"lengthAdjust="spacing"textLength="49"x="463.25"y="499.8008">Imports</text><textfill="#666666"font-family="sans-serif"font-size="12"font-style="italic"lengthAdjust="spacing"textLength="46"x="464.75"y="513.9336">[HTTPS]</text><!--MD5=[72e6538a4afd9ff6e5f89c0cb2220dab]
link import_tool to nb--><pathd="M481.941,438.3932 C526.294,480.5912 584.975,536.4222 624.312,573.8472 "fill="none"id="import_tool-to-nb"style="stroke:#666666;stroke-width:1.0;"/><polygonfill="#666666"points="630.454,579.6912,626.7261,572.0034,622.5903,576.3503,630.454,579.6912"style="stroke:#666666;stroke-width:1.0;"/><textfill="#666666"font-family="sans-serif"font-size="12"font-weight="bold"lengthAdjust="spacing"textLength="49"x="566.25"y="499.8008">Imports</text><textfill="#666666"font-family="sans-serif"font-size="12"font-style="italic"lengthAdjust="spacing"textLength="46"x="567.75"y="513.9336">[HTTPS]</text><!--MD5=[8d00e1f70b11306d90ba31f906661b1d]
reverse link sanity_db to spa--><pathd="M414.281,99.6992 C449.63,99.6992 488.779,99.6992 523.929,99.6992 "fill="none"id="sanity_db-backto-spa"style="stroke:#666666;stroke-width:1.0;"/><polygonfill="#666666"points="405.856,99.6992,413.856,102.6992,413.856,96.6992,405.856,99.6992"style="stroke:#666666;stroke-width:1.0;"/><textfill="#666666"font-family="sans-serif"font-size="12"font-weight="bold"lengthAdjust="spacing"textLength="30"x="449"y="78.3008">Uses</text><textfill="#666666"font-family="sans-serif"font-size="12"font-style="italic"lengthAdjust="spacing"textLength="80"x="424"y="92.4336">[JSON/HTTPS]</text><!--MD5=[b20751f21bc3c5e56073fe913b5ac5ab]
link spa to api--><pathd="M615.405,159.4442 C605.2915,199.4642 591.7723,252.9615 580.6498,296.9745 C577.8691,307.9777 575.2383,318.3882 572.8479,327.8471 C571.6527,332.5766 570.5177,337.0682 569.4541,341.2771 C569.1882,342.3293 568.9267,343.3638 568.6699,344.38 C568.5415,344.8881 568.4143,345.3916 568.2882,345.8904 "fill="none"id="spa-to-api"style="stroke:#666666;stroke-width:1.0;"/><polygonfill="#666666"points="568.2882,345.8904,573.1569,338.8692,567.3397,337.3992,568.2882,345.8904"style="stroke:#666666;stroke-width:1.0;"/><textfill="#666666"font-family="sans-serif"font-size="12"font-weight="bold"lengthAdjust="spacing"textLength="30"x="629.25"y="215.8008">Uses</text><textfill="#666666"font-family="sans-serif"font-size="12"font-style="italic"lengthAdjust="spacing"textLength="80"x="604.25"y="229.9336">[JSON/HTTPS]</text><!--MD5=[0b4537366c46ce983a36229d7d90ca4d]
link sign to auth--><pathd="M164.893,429.8242 C155.025,462.0322 142.032,504.4402 130.979,540.5142 "fill="none"id="sign-to-auth"style="stroke:#666666;stroke-width:1.0;"/><polygonfill="#666666"points="128.507,548.5832,133.7181,541.8124,127.9812,540.0554,128.507,548.5832"style="stroke:#666666;stroke-width:1.0;"/><textfill="#666666"font-family="sans-serif"font-size="12"font-weight="bold"lengthAdjust="spacing"textLength="30"x="173.25"y="499.8008">Uses</text><textfill="#666666"font-family="sans-serif"font-size="12"font-style="italic"lengthAdjust="spacing"textLength="80"x="148.25"y="513.9336">[JSON/HTTPS]</text><rectfill="#FFFFFF"height="162.3945"rx="5"ry="5"style="stroke:#FFFFFF;stroke-width:1.0;"width="159"x="563"y="695.6523"/><textfill="#000000"font-family="sans-serif"font-size="14"font-weight="bold"lengthAdjust="spacing"textLength="51"x="569"y="716.1875">Legend</text><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="0"x="624"y="716.1875"/><rectfill="#08427B"height="16.4883"style="stroke:none;stroke-width:1.0;"width="147"x="569"y="719.1406"/><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="48"x="573"y="732.6758">person</text><rectfill="#1168BD"height="16.4883"style="stroke:none;stroke-width:1.0;"width="147"x="569"y="735.6289"/><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="47"x="573"y="749.1641">system</text><rectfill="#438DD5"height="16.4883"style="stroke:none;stroke-width:1.0;"width="147"x="569"y="752.1172"/><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="65"x="573"y="765.6523">container</text><rectfill="#85BBF0"height="16.4883"style="stroke:none;stroke-width:1.0;"width="147"x="569"y="768.6055"/><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="78"x="573"y="782.1406">component</text><rectfill="#686868"height="16.4883"style="stroke:none;stroke-width:1.0;"width="147"x="569"y="785.0938"/><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="109"x="573"y="798.6289">external person</text><rectfill="#999999"height="16.4883"style="stroke:none;stroke-width:1.0;"width="147"x="569"y="801.582"/><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="108"x="573"y="815.1172">external system</text><rectfill="#B3B3B3"height="16.4883"style="stroke:none;stroke-width:1.0;"width="147"x="569"y="818.0703"/><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="126"x="573"y="831.6055">external container</text><rectfill="#CCCCCC"height="16.4883"style="stroke:none;stroke-width:1.0;"width="147"x="569"y="834.5586"/><textfill="#FFFFFF"font-family="sans-serif"font-size="14"lengthAdjust="spacing"textLength="139"x="573"y="848.0938">external component</text><linestyle="stroke:#FFFFFF;stroke-width:1.0;"x1="569"x2="716"y1="702.6523"y2="702.6523"/><linestyle="stroke:#FFFFFF;stroke-width:1.0;"x1="569"x2="716"y1="719.1406"y2="719.1406"/><linestyle="stroke:#FFFFFF;stroke-width:1.0;"x1="569"x2="716"y1="735.6289"y2="735.6289"/><linestyle="stroke:#FFFFFF;stroke-width:1.0;"x1="569"x2="716"y1="752.1172"y2="752.1172"/><linestyle="stroke:#FFFFFF;stroke-width:1.0;"x1="569"x2="716"y1="768.6055"y2="768.6055"/><linestyle="stroke:#FFFFFF;stroke-width:1.0;"x1="569"x2="716"y1="785.0938"y2="785.0938"/><linestyle="stroke:#FFFFFF;stroke-width:1.0;"x1="569"x2="716"y1="801.582"y2="801.582"/><linestyle="stroke:#FFFFFF;stroke-width:1.0;"x1="569"x2="716"y1="818.0703"y2="818.0703"/><linestyle="stroke:#FFFFFF;stroke-width:1.0;"x1="569"x2="716"y1="834.5586"y2="834.5586"/><linestyle="stroke:#FFFFFF;stroke-width:1.0;"x1="569"x2="716"y1="851.0469"y2="851.0469"/><linestyle="stroke:#FFFFFF;stroke-width:1.0;"x1="569"x2="569"y1="702.6523"y2="851.0469"/><linestyle="stroke:#FFFFFF;stroke-width:1.0;"x1="716"x2="716"y1="702.6523"y2="851.0469"/><!--MD5=[837d8a057417fe834cac17aab717181c]
!define NEXT img:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAABm0lEQVRoQ92Z25LDMAhDt///0dtJpu4kDhgBimPaZ0x0LPCtrz/+7x9I+QJiXCGshIj4kbC0jkyCrHgNLKQpMugugCOYW5d3wAyIEBAKMhvADYOAPAkBA1kgq0A0IFXvCGQ1iCGMBrIqxAYjaq4IIsJIICu7oTZ/D1IF4uJKZZATzBGkkhuXEnsahPH9PUdLlHEjIyYz9rSv/ALIbggbZEvqcZfhyG0gHhgqiGcGpVtdZlNdHgR1hQWyr1p3ONKcs3IvC7IJ94jzxA6fh9iONAdQgWic+cY1A2TUL8uD9KdTrVdKgCAwJUGkEisDYrlSCgSFsfac4SM4+9CINLVWYiVAEFfKgFgw5qanBJxuiOghzzr9IrNKa/CPmN8FiboSWTBYrnzz9JcipDSitdyPY8CoIFFXInBZkJMJmWtqRDzLlYtuCWSmK9ElGQZ5CgbpUXHyNUfQOzejvDyuqHotkJnOWM0/1IqAPAHTl5ip0ww41A5Sv4xSO26wsD44cCJQRJP8Dyk4rXc5NB2EvbKFAJqI1GDBOY9L1G+/AToZcCqjfA/hAAAAAElFTkSuQmCC
Component(sign, "Sign In Controller", "React", "Allows users to sign in to the Studio.")
Component(import_tool, "Import tool", "React", "Plugin for importing external resources into the Studio.")
Rel(import_tool, sanity_db, "Uses")
}
Rel_D(import_tool, marcus, "Imports", "HTTPS")
Rel_D(import_tool, kulturnav, "Imports", "HTTPS")
Rel_D(import_tool, nb, "Imports", "HTTPS")
Rel_L(spa, sanity_db, "Uses", "JSON/HTTPS")
Rel_D(spa, api, "Uses", "JSON/HTTPS")
Rel(sign, auth, "Uses", "JSON/HTTPS")
@enduml
@startuml "component_studio"
skinparam defaultTextAlignment center
skinparam wrapWidth 200
skinparam maxMessageSize 150
skinparam LegendBorderColor transparent
skinparam LegendBackgroundColor transparent
skinparam LegendFontColor #FFFFFF
skinparam shadowing<<legendArea>> false
skinparam rectangle<<legendArea>> {
backgroundcolor #00000000
bordercolor #00000000
}
skinparam rectangle {
StereotypeFontSize 12
shadowing false
}
skinparam database {
StereotypeFontSize 12
shadowing false
}
skinparam queue {
StereotypeFontSize 12
shadowing false
}
skinparam arrow {
Color #666666
FontColor #666666
FontSize 12
}
skinparam actor {
StereotypeFontSize 12
shadowing false
style awesome
}
skinparam person {
StereotypeFontSize 12
shadowing false
}
skinparam package {
StereotypeFontSize 6
StereotypeFontColor transparent
FontStyle plain
BackgroundColor transparent
}
skinparam rectangle<<boundary>> {
Shadowing false
StereotypeFontSize 6
StereotypeFontColor transparent
FontColor #444444
BorderColor #444444
BackgroundColor transparent
BorderStyle dashed
}
skinparam rectangle<<person>> {
StereotypeFontColor #FFFFFF
FontColor #FFFFFF
BackgroundColor #08427B
BorderColor #073B6F
}
skinparam database<<person>> {
StereotypeFontColor #FFFFFF
FontColor #FFFFFF
BackgroundColor #08427B
BorderColor #073B6F
}
skinparam queue<<person>> {
StereotypeFontColor #FFFFFF
FontColor #FFFFFF
BackgroundColor #08427B
BorderColor #073B6F
}
skinparam actor<<person>> {
StereotypeFontColor #08427B
FontColor #08427B
BackgroundColor #08427B
BorderColor #073B6F
}
skinparam person<<person>> {
StereotypeFontColor #FFFFFF
FontColor #FFFFFF
BackgroundColor #08427B
BorderColor #073B6F
}
skinparam rectangle<<external_person>> {
StereotypeFontColor #FFFFFF
FontColor #FFFFFF
BackgroundColor #686868
BorderColor #8A8A8A
}
skinparam database<<external_person>> {
StereotypeFontColor #FFFFFF
FontColor #FFFFFF
BackgroundColor #686868
BorderColor #8A8A8A
}
skinparam queue<<external_person>> {
StereotypeFontColor #FFFFFF
FontColor #FFFFFF
BackgroundColor #686868
BorderColor #8A8A8A
}
skinparam actor<<external_person>> {
StereotypeFontColor #686868
FontColor #686868
BackgroundColor #686868
BorderColor #8A8A8A
}
skinparam person<<external_person>> {
StereotypeFontColor #FFFFFF
FontColor #FFFFFF
BackgroundColor #686868
BorderColor #8A8A8A
}
skinparam rectangle<<system>> {
StereotypeFontColor #FFFFFF
FontColor #FFFFFF
BackgroundColor #1168BD
BorderColor #3C7FC0
}
skinparam database<<system>> {
StereotypeFontColor #FFFFFF
FontColor #FFFFFF
BackgroundColor #1168BD
BorderColor #3C7FC0
}
skinparam queue<<system>> {
StereotypeFontColor #FFFFFF
FontColor #FFFFFF
BackgroundColor #1168BD
BorderColor #3C7FC0
}
skinparam actor<<system>> {
StereotypeFontColor #1168BD
FontColor #1168BD
BackgroundColor #1168BD
BorderColor #3C7FC0
}
skinparam person<<system>> {
StereotypeFontColor #FFFFFF
FontColor #FFFFFF
BackgroundColor #1168BD
BorderColor #3C7FC0
}
skinparam rectangle<<external_system>> {
StereotypeFontColor #FFFFFF
FontColor #FFFFFF
BackgroundColor #999999
BorderColor #8A8A8A
}
skinparam database<<external_system>> {
StereotypeFontColor #FFFFFF
FontColor #FFFFFF
BackgroundColor #999999
BorderColor #8A8A8A
}
skinparam queue<<external_system>> {
StereotypeFontColor #FFFFFF
FontColor #FFFFFF
BackgroundColor #999999
BorderColor #8A8A8A
}
skinparam actor<<external_system>> {
StereotypeFontColor #999999
FontColor #999999
BackgroundColor #999999
BorderColor #8A8A8A
}
skinparam person<<external_system>> {
StereotypeFontColor #FFFFFF
FontColor #FFFFFF
BackgroundColor #999999
BorderColor #8A8A8A
}
sprite $person [48x48/16] {
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
0000000000000000000049BCCA7200000000000000000000
0000000000000000006EFFFFFFFFB3000000000000000000
00000000000000001CFFFFFFFFFFFF700000000000000000
0000000000000001EFFFFFFFFFFFFFF80000000000000000
000000000000000CFFFFFFFFFFFFFFFF6000000000000000
000000000000007FFFFFFFFFFFFFFFFFF100000000000000
00000000000001FFFFFFFFFFFFFFFFFFF900000000000000
00000000000006FFFFFFFFFFFFFFFFFFFF00000000000000
0000000000000BFFFFFFFFFFFFFFFFFFFF40000000000000
0000000000000EFFFFFFFFFFFFFFFFFFFF70000000000000
0000000000000FFFFFFFFFFFFFFFFFFFFF80000000000000
0000000000000FFFFFFFFFFFFFFFFFFFFF80000000000000
0000000000000DFFFFFFFFFFFFFFFFFFFF60000000000000
0000000000000AFFFFFFFFFFFFFFFFFFFF40000000000000
00000000000006FFFFFFFFFFFFFFFFFFFE00000000000000
00000000000000EFFFFFFFFFFFFFFFFFF800000000000000
000000000000007FFFFFFFFFFFFFFFFFF100000000000000
000000000000000BFFFFFFFFFFFFFFFF5000000000000000
0000000000000001DFFFFFFFFFFFFFF70000000000000000
00000000000000000BFFFFFFFFFFFF500000000000000000
0000000000000000005DFFFFFFFFA1000000000000000000
0000000000000000000037ABB96100000000000000000000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
000000000000025788300000000005886410000000000000
000000000007DFFFFFFD9643347BFFFFFFFB400000000000
0000000004EFFFFFFFFFFFFFFFFFFFFFFFFFFB1000000000
000000007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFD200000000
00000006FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE10000000
0000003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0000000
000000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5000000
000003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD000000
000009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF200000
00000DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF600000
00000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800000
00001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA00000
00001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB00000
00001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB00000
00001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB00000
00001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA00000
00000EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF700000
000006FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE100000
0000008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3000000
000000014555555555555555555555555555555300000000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
}
sprite $person2 [48x48/16] {
0000000000000000000049BCCA7200000000000000000000
0000000000000000006EFFFFFFFFB3000000000000000000
00000000000000001CFFFFFFFFFFFF700000000000000000
0000000000000001EFFFFFFFFFFFFFF80000000000000000
000000000000000CFFFFFFFFFFFFFFFF6000000000000000
000000000000007FFFFFFFFFFFFFFFFFF100000000000000
00000000000001FFFFFFFFFFFFFFFFFFF900000000000000
00000000000006FFFFFFFFFFFFFFFFFFFF00000000000000
0000000000000BFFFFFFFFFFFFFFFFFFFF40000000000000
0000000000000EFFFFFFFFFFFFFFFFFFFF70000000000000
0000000000000FFFFFFFFFFFFFFFFFFFFF80000000000000
0000000000000FFFFFFFFFFFFFFFFFFFFF80000000000000
0000000000000DFFFFFFFFFFFFFFFFFFFF60000000000000
0000000000000AFFFFFFFFFFFFFFFFFFFF40000000000000
00000000000006FFFFFFFFFFFFFFFFFFFE00000000000000
00000000000000EFFFFFFFFFFFFFFFFFF800000000000000
000000000000007FFFFFFFFFFFFFFFFFF100000000000000
000000000000000BFFFFFFFFFFFFFFFF5000000000000000
0000000000000001DFFFFFFFFFFFFFF70000000000000000
00000000000000000BFFFFFFFFFFFF500000000000000000
0000000000000000005DFFFFFFFFA1000000000000000000
0000000000000000000037ABB96100000000000000000000
000000000002578888300000000005888864100000000000
0000000007DFFFFFFFFD9643347BFFFFFFFFFB4000000000
00000004EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB10000000
0000007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2000000
000006FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE100000
00003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB00000
0000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50000
0003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0000
0009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2000
000DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6000
000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000
001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB000
001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB000
001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB000
001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA000
000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000
000DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6000
0009FFFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFFF2000
0003FFFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFFD0000
0000BFFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFF50000
00003FFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFB00000
000006FFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFE100000
0000007FFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFD2000000
00000004EFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFB10000000
0000000007DF8FFFFFFFFFFFFFFFFFFFFFF8FB4000000000
000000000002578888888888888888888864100000000000
}
skinparam rectangle<<container>> {
StereotypeFontColor #FFFFFF
FontColor #FFFFFF
BackgroundColor #438DD5
BorderColor #3C7FC0
}
skinparam database<<container>> {
StereotypeFontColor #FFFFFF
FontColor #FFFFFF
BackgroundColor #438DD5
BorderColor #3C7FC0
}
skinparam queue<<container>> {
StereotypeFontColor #FFFFFF
FontColor #FFFFFF
BackgroundColor #438DD5
BorderColor #3C7FC0
}
skinparam actor<<container>> {
StereotypeFontColor #438DD5
FontColor #438DD5
BackgroundColor #438DD5
BorderColor #3C7FC0
}
skinparam person<<container>> {
StereotypeFontColor #FFFFFF
FontColor #FFFFFF
BackgroundColor #438DD5
BorderColor #3C7FC0
}
skinparam rectangle<<external_container>> {
StereotypeFontColor #FFFFFF
FontColor #FFFFFF
BackgroundColor #B3B3B3
BorderColor #A6A6A6
}
skinparam database<<external_container>> {
StereotypeFontColor #FFFFFF
FontColor #FFFFFF
BackgroundColor #B3B3B3
BorderColor #A6A6A6
}
skinparam queue<<external_container>> {
StereotypeFontColor #FFFFFF
FontColor #FFFFFF
BackgroundColor #B3B3B3
BorderColor #A6A6A6
}
skinparam actor<<external_container>> {
StereotypeFontColor #B3B3B3
FontColor #B3B3B3
BackgroundColor #B3B3B3
BorderColor #A6A6A6
}
skinparam person<<external_container>> {
StereotypeFontColor #FFFFFF
FontColor #FFFFFF
BackgroundColor #B3B3B3
BorderColor #A6A6A6
}
skinparam rectangle<<component>> {
StereotypeFontColor #000000
FontColor #000000
BackgroundColor #85BBF0
BorderColor #78A8D8
}
skinparam database<<component>> {
StereotypeFontColor #000000
FontColor #000000
BackgroundColor #85BBF0
BorderColor #78A8D8
}
skinparam queue<<component>> {
StereotypeFontColor #000000
FontColor #000000
BackgroundColor #85BBF0
BorderColor #78A8D8
}
skinparam actor<<component>> {
StereotypeFontColor #85BBF0
FontColor #85BBF0
BackgroundColor #85BBF0
BorderColor #78A8D8
}
skinparam person<<component>> {
StereotypeFontColor #000000
FontColor #000000
BackgroundColor #85BBF0
BorderColor #78A8D8
}
skinparam rectangle<<external_component>> {
StereotypeFontColor #000000
FontColor #000000
BackgroundColor #CCCCCC
BorderColor #BFBFBF
}
skinparam database<<external_component>> {
StereotypeFontColor #000000
FontColor #000000
BackgroundColor #CCCCCC
BorderColor #BFBFBF
}
skinparam queue<<external_component>> {
StereotypeFontColor #000000
FontColor #000000
BackgroundColor #CCCCCC
BorderColor #BFBFBF
}
skinparam actor<<external_component>> {
StereotypeFontColor #CCCCCC
FontColor #CCCCCC
BackgroundColor #CCCCCC
BorderColor #BFBFBF
}
skinparam person<<external_component>> {
StereotypeFontColor #000000
FontColor #000000
BackgroundColor #CCCCCC
BorderColor #BFBFBF
}
sprite $google_cloud_platform [48x48/16] {
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
000000000000000001111111111111100000000000000000
000000000000004DFFFFFFFFFFFFFFFFD300000000000000
00000000000002FFFFFFFFFFFFFFFFFFFF20000000000000
0000000000000BFF7EFFFFFFFFFFFFE7FFB0000000000000
0000000000004FFE2CFFFFFFFFFFFFC2EFF4000000000000
000000000000DFFFFFFFFFFFFFFFFFFFFFFD000000000000
000000000007FFFFFFFFFFFFFFFFFFFFFFFF700000000000
00000000001FFFFFFF966666666669FFFFFFF10000000000
00000000009FFFFFFD000000000000DFFFFFF90000000000
0000000003FFFFFFF40000000000004FFFFFFF3000000000
000000000CFFFFFFA00000000000000AFFFFFFC000000000
000000005FFFFFFF2000000000000002FFFFFFF500000000
00000000EFFFFFF80000028CC82000008FFFFFFE00000000
00000008FFFFFFE000004FFFFFF400000EFFFFFF70000000
0000001FFFFFFF500002FFFFFFFF200005FFFFFFF1000000
000000AFFFFFFC000009FFFFFFFF800000CFFFFFF9000000
000000FFA6FFF300000CFFFFFFFFC000003FFF6BFF000000
000000FFA6FFF300000CFFFFFFFFC000003FFF6AFF000000
000000AFFFFFFC000009FFFFFFFF800000CFFFFFF9000000
0000002FFFFFFF500002FFFFFFFF200005FFFFFFF1000000
00000008FFFFFFE000005FFFFFF500000EFFFFFF80000000
00000000EFFFFFF80000029CC82000008FFFFFFE00000000
000000005FFFFFFF2000000000000001FFFFFFF500000000
000000000CFFFFFFA00000000000000AFFFFFFC000000000
0000000003FFFFFFF30000000000003FFFFFFF3000000000
0000000000AFFFFFFC000000000000CFFFFFF90000000000
00000000001FFFFFFF966666666669FFFFFFF10000000000
000000000007FFFFFFFFFFFFFFFFFFFFFFFF700000000000
000000000000DFFFFFFFFFFFFFFFFFFFFFFD000000000000
0000000000005FFE2CFFFFFFFFFFFFC2EFF4000000000000
0000000000000BFF7EFFFFFFFFFFFFE7FFB0000000000000
00000000000002FFFFFFFFFFFFFFFFFFFF20000000000000
000000000000004DFFFFFFFFFFFFFFFFD400000000000000
000000000000000001111111101111100000000000000000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
}
skinparam folderBackgroundColor<<DEV GOOGLE_CLOUD_PLATFORM>> White
hide stereotype
legend right
|<color:#000000>**Legend**</color> |
|<#08427B> person |
|<#1168BD> system |
|<#438DD5> container |
|<#85BBF0> component |
|<#686868> external person |
|<#999999> external system |
|<#B3B3B3> external container |
|<#CCCCCC> external component |
endlegend
title Component diagram for Sanity Studio
rectangle "==Single Page Application\n//<size:12>[Javascript and React]</size>//\n\n Provides all editing functionality to editors via their web browser." <<container>> as spa
database "<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==>\n==Sanity Cloud Storage\n//<size:12>[Google Cloud]</size>//\n\n Stores metadata and files." <<external_container>> as sanity_db
rectangle "<$google_cloud_platform>\n==Google Authentication\n//<size:12>[Google Cloud]</size>//\n\n Authenticates editors." <<external_container>> as auth
rectangle "==Marcus\n\n Content provider" <<external_system>> as marcus
rectangle "==Kulturnav\n\n Content provider" <<external_system>> as kulturnav
rectangle "==NB.no\n\n Content provider" <<external_system>> as nb
rectangle "==SPA Application\n<size:12>[Container]</size>" <<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==>><<boundary>> as api {
rectangle "==Sign In Controller\n//<size:12>[React]</size>//\n\n Allows users to sign in to the Studio." <<component>> as sign
rectangle "==Import tool\n//<size:12>[React]</size>//\n\n Plugin for importing external resources into the Studio." <<component>> as import_tool
import_tool - ->> sanity_db : **Uses**
}
import_tool -DOWN->> marcus : **Imports**\n//<size:12>[HTTPS]</size>//
!define NEXT img:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAABm0lEQVRoQ92Z25LDMAhDt///0dtJpu4kDhgBimPaZ0x0LPCtrz/+7x9I+QJiXCGshIj4kbC0jkyCrHgNLKQpMugugCOYW5d3wAyIEBAKMhvADYOAPAkBA1kgq0A0IFXvCGQ1iCGMBrIqxAYjaq4IIsJIICu7oTZ/D1IF4uJKZZATzBGkkhuXEnsahPH9PUdLlHEjIyYz9rSv/ALIbggbZEvqcZfhyG0gHhgqiGcGpVtdZlNdHgR1hQWyr1p3ONKcs3IvC7IJ94jzxA6fh9iONAdQgWic+cY1A2TUL8uD9KdTrVdKgCAwJUGkEisDYrlSCgSFsfac4SM4+9CINLVWYiVAEFfKgFgw5qanBJxuiOghzzr9IrNKa/CPmN8FiboSWTBYrnzz9JcipDSitdyPY8CoIFFXInBZkJMJmWtqRDzLlYtuCWSmK9ElGQZ5CgbpUXHyNUfQOzejvDyuqHotkJnOWM0/1IqAPAHTl5ip0ww41A5Sv4xSO26wsD44cCJQRJP8Dyk4rXc5NB2EvbKFAJqI1GDBOY9L1G+/AToZcCqjfA/hAAAAAElFTkSuQmCC