forked from TrueCloudLab/frostfs-s3-gw
60 lines
No EOL
13 KiB
XML
60 lines
No EOL
13 KiB
XML
<?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" contentStyleType="text/css" height="616px" preserveAspectRatio="none" style="width:1278px;height:616px;background:#FFFFFF;" version="1.1" viewBox="0 0 1278 616" width="1278px" zoomAndPan="magnify"><defs/><g><!--MD5=[3c3a15348c55d81488d27d2f242cdf86]
|
|
cluster AccessBox--><g id="cluster_AccessBox"><path d="M8.5,6 L92.5,6 A3.75,3.75 0 0 1 95,8.5 L102,28.2969 L1268.5,28.2969 A2.5,2.5 0 0 1 1271,30.7969 L1271,606.5 A2.5,2.5 0 0 1 1268.5,609 L8.5,609 A2.5,2.5 0 0 1 6,606.5 L6,8.5 A2.5,2.5 0 0 1 8.5,6 " fill="none" style="stroke:#000000;stroke-width:1.5;"/><line style="stroke:#000000;stroke-width:1.5;" x1="6" x2="102" y1="28.2969" y2="28.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="83" x="10" y="20.9951">AccessBox</text></g><g id="elem_Tokens"><rect fill="#F1F1F1" height="81.1875" style="stroke:#181818;stroke-width:0.5;" width="340" x="37" y="509"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="51" x="181.5" y="523.9951">Tokens</text><line style="stroke:#181818;stroke-width:1.0;" x1="37" x2="377" y1="529.2969" y2="529.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="72" x="58.5" y="544.292">SecretKey</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="78" x="157" y="544.292">Private key</text><line style="stroke:#181818;stroke-width:1.0;" x1="152" x2="152" y1="529.2969" y2="549.5938"/><line style="stroke:#181818;stroke-width:1.0;" x1="37" x2="377" y1="549.5938" y2="549.5938"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="93" x="48" y="564.5889">BearerToken</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="158" x="157" y="564.5889">Encoded bearer token</text><line style="stroke:#181818;stroke-width:1.0;" x1="152" x2="152" y1="549.5938" y2="569.8906"/><line style="stroke:#181818;stroke-width:1.0;" x1="37" x2="377" y1="569.8906" y2="569.8906"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="105" x="42" y="584.8857">SessionTokens</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="215" x="157" y="584.8857">List of encoded session tokens</text><line style="stroke:#181818;stroke-width:1.0;" x1="152" x2="152" y1="569.8906" y2="590.1875"/></g><g id="elem_Gate"><rect fill="#F1F1F1" height="60.8906" style="stroke:#181818;stroke-width:0.5;" width="317" x="47.5" y="381"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="34" x="189" y="395.9951">Gate</text><line style="stroke:#181818;stroke-width:1.0;" x1="47.5" x2="364.5" y1="401.2969" y2="401.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="60" x="84" y="416.292">GateKey</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="174" x="185.5" y="416.292">Encoded public gate key</text><line style="stroke:#181818;stroke-width:1.0;" x1="180.5" x2="180.5" y1="401.2969" y2="421.5938"/><line style="stroke:#181818;stroke-width:1.0;" x1="47.5" x2="364.5" y1="421.5938" y2="421.5938"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="123" x="144.5" y="436.5889">Encrypted tokens</text></g><g id="elem_ContainerPolicy"><rect fill="#F1F1F1" height="60.8906" style="stroke:#181818;stroke-width:0.5;" width="342" x="416" y="381"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="111" x="531.5" y="395.9951">ContainerPolicy</text><line style="stroke:#181818;stroke-width:1.0;" x1="416" x2="758" y1="401.2969" y2="401.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="134" x="421" y="416.292">LocationConstraint</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="86" x="565" y="416.292">Policy name</text><line style="stroke:#181818;stroke-width:1.0;" x1="560" x2="560" y1="401.2969" y2="421.5938"/><line style="stroke:#181818;stroke-width:1.0;" x1="416" x2="758" y1="421.5938" y2="421.5938"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="116" x="430" y="436.5889">PlacementPolicy</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="188" x="565" y="436.5889">Encoded placement policy</text><line style="stroke:#181818;stroke-width:1.0;" x1="560" x2="560" y1="421.5938" y2="441.8906"/></g><g id="elem_Box"><rect fill="#F1F1F1" height="81.1875" style="stroke:#181818;stroke-width:0.5;" width="368" x="30" y="233"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="27" x="200.5" y="247.9951">Box</text><line style="stroke:#181818;stroke-width:1.0;" x1="30" x2="398" y1="253.2969" y2="253.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="62" x="90" y="268.292">SeedKey</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="176" x="217" y="268.292">Encoded public seed key</text><line style="stroke:#181818;stroke-width:1.0;" x1="212" x2="212" y1="253.2969" y2="273.5938"/><line style="stroke:#181818;stroke-width:1.0;" x1="30" x2="398" y1="273.5938" y2="273.5938"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="87" x="170.5" y="288.5889">List of Gates</text><line style="stroke:#181818;stroke-width:1.0;" x1="30" x2="398" y1="293.8906" y2="293.8906"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="172" x="128" y="308.8857">List of container policies</text></g><g id="elem_ObjectAttributes"><rect fill="#F1F1F1" height="121.7813" style="stroke:#181818;stroke-width:0.5;" width="1053" x="193.5" y="45"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="115" x="662.5" y="59.9951">ObjectAttributes</text><line style="stroke:#181818;stroke-width:1.0;" x1="193.5" x2="1246.5" y1="65.2969" y2="65.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="80" x="271.5" y="80.292">Timestamp</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="90" x="434.5" y="80.292">1710418478</text><line style="stroke:#181818;stroke-width:1.0;" x1="429.5" x2="429.5" y1="65.2969" y2="85.5938"/><line style="stroke:#181818;stroke-width:1.0;" x1="193.5" x2="1246.5" y1="85.5938" y2="85.5938"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="226" x="198.5" y="100.5889">__SYSTEM__EXPIRATION_EPOCH</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="45" x="434.5" y="100.5889">10801</text><line style="stroke:#181818;stroke-width:1.0;" x1="429.5" x2="429.5" y1="85.5938" y2="105.8906"/><line style="stroke:#181818;stroke-width:1.0;" x1="193.5" x2="1246.5" y1="105.8906" y2="105.8906"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="162" x="230.5" y="120.8857">S3-CRDT-Versions-Add</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="789" x="434.5" y="120.8857">5ZNvs8WVwy1XTmSEkcVkydPKzCgtmR7U3zyLYTj3Snxf,9bLtL1EsUpuSiqmHnqFf6RuT6x5QMLMNBqx7vCcCcNhy</text><line style="stroke:#181818;stroke-width:1.0;" x1="429.5" x2="429.5" y1="105.8906" y2="126.1875"/><line style="stroke:#181818;stroke-width:1.0;" x1="193.5" x2="1246.5" y1="126.1875" y2="126.1875"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="196" x="213.5" y="141.1826">S3-Access-Box-CRDT-Name</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="807" x="434.5" y="141.1826">2XGRML5EW3LMHdf64W2DkBy1Nkuu4y4wGhUj44QjbXBi05ZNvs8WVwy1XTmSEkcVkydPKzCgtmR7U3zyLYTj3Snxf</text><line style="stroke:#181818;stroke-width:1.0;" x1="429.5" x2="429.5" y1="126.1875" y2="146.4844"/><line style="stroke:#181818;stroke-width:1.0;" x1="193.5" x2="1246.5" y1="146.4844" y2="146.4844"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="56" x="283.5" y="161.4795">FilePath</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="175" x="434.5" y="161.4795">1710418478_access.box</text><line style="stroke:#181818;stroke-width:1.0;" x1="429.5" x2="429.5" y1="146.4844" y2="166.7813"/></g><g id="elem_FrostFSObject"><rect fill="#F1F1F1" height="60.8906" style="stroke:#181818;stroke-width:0.5;" width="112" x="30" y="75"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="98" x="37" y="89.9951">FrostFSObject</text><line style="stroke:#181818;stroke-width:1.0;" x1="30" x2="142" y1="95.2969" y2="95.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="53" x="59.5" y="110.292">Header</text><line style="stroke:#181818;stroke-width:1.0;" x1="30" x2="142" y1="115.5938" y2="115.5938"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="56" x="58" y="130.5889">Payload</text></g><!--MD5=[23a04f1234a0605ca826eb8ba1b140e1]
|
|
link Gate to Tokens--><g id="link_Gate_Tokens"><path d="M207,442 C207,460.92 207,481.75 207,499.89 " fill="none" id="Gate-to-Tokens" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="207,504.94,211,495.94,207,499.94,203,495.94,207,504.94" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[e6b4c7479f160e5eb5b48a0b6849bf9b]
|
|
link Box to Gate--><g id="link_Box_Gate"><path d="M29,283 C13.88,283 22.01,304.17 30,317 C45.63,342.1 70.47,360.8 96.62,374.59 " fill="none" id="Box-to-Gate" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="101.17,376.94,94.9969,369.2658,96.7239,374.6526,91.3371,376.3796,101.17,376.94" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[80ddd26670e703c13e9122e6ad52496b]
|
|
link Box to ContainerPolicy--><g id="link_Box_ContainerPolicy"><path d="M399,303 C457.34,303 514.1,342.4 549.72,373.38 " fill="none" id="Box-to-ContainerPolicy" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="553.53,376.73,549.4076,367.7854,549.7733,373.4304,544.1283,373.7961,553.53,376.73" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[8902d75137e8c4af1a99589fb6d46151]
|
|
link FrostFSObject to ObjectAttributes--><g id="link_FrostFSObject_ObjectAttributes"><path d="M143,105 C155.14,105.81 167.43,106.57 179.81,107.3 " fill="none" id="FrostFSObject-to-ObjectAttributes" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="185.13,107.61,176.3865,103.0767,180.139,107.3097,175.906,111.0622,185.13,107.61" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[14889a4c3f5999264ac5c1f0dea9c37a]
|
|
link FrostFSObject to Box--><g id="link_FrostFSObject_Box"><path d="M143,125 C145.8,125 172.27,181.16 192.07,224.06 " fill="none" id="FrostFSObject-to-Box" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="194.21,228.69,194.09,218.8419,192.1238,224.146,186.8196,222.1798,194.21,228.69" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[c2e63655fce60d99c3f0ebcd8e943a7f]
|
|
@startuml
|
|
|
|
package AccessBox {
|
|
map Tokens {
|
|
SecretKey => Private key
|
|
BearerToken => Encoded bearer token
|
|
SessionTokens => List of encoded session tokens
|
|
}
|
|
|
|
map Gate {
|
|
GateKey => Encoded public gate key
|
|
Encrypted tokens *- -> Tokens
|
|
}
|
|
|
|
map ContainerPolicy {
|
|
LocationConstraint => Policy name
|
|
PlacementPolicy => Encoded placement policy
|
|
}
|
|
|
|
map Box {
|
|
SeedKey => Encoded public seed key
|
|
List of Gates *- -> Gate
|
|
List of container policies *- -> ContainerPolicy
|
|
}
|
|
|
|
|
|
map ObjectAttributes {
|
|
Timestamp => 1710418478
|
|
_~_SYSTEM_~_EXPIRATION_EPOCH => 10801
|
|
S3-CRDT-Versions-Add => 5ZNvs8WVwy1XTmSEkcVkydPKzCgtmR7U3zyLYTj3Snxf,9bLtL1EsUpuSiqmHnqFf6RuT6x5QMLMNBqx7vCcCcNhy
|
|
S3-Access-Box-CRDT-Name => 2XGRML5EW3LMHdf64W2DkBy1Nkuu4y4wGhUj44QjbXBi05ZNvs8WVwy1XTmSEkcVkydPKzCgtmR7U3zyLYTj3Snxf
|
|
FilePath => 1710418478_access.box
|
|
}
|
|
|
|
map FrostFSObject {
|
|
Header *-> ObjectAttributes
|
|
Payload *- -> Box
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
@enduml
|
|
|
|
PlantUML version 1.2022.13(Sat Nov 19 16:22:17 MSK 2022)
|
|
(GPL source distribution)
|
|
Java Runtime: OpenJDK Runtime Environment
|
|
JVM: OpenJDK 64-Bit Server VM
|
|
Default Encoding: UTF-8
|
|
Language: en
|
|
Country: US
|
|
--></g></svg> |