roam/validation-and-sanitization.svg

44 lines
7.5 KiB
XML
Raw Normal View History

2022-12-08 20:20:49 +00:00
<?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="115px" preserveAspectRatio="none" style="width:864px;height:115px;background:#FFFFFF;" version="1.1" viewBox="0 0 864 115" width="864px" zoomAndPan="magnify"><defs/><g><!--MD5=[fac864e77539af95038f0151207ed802]
cluster API--><g id="cluster_API"><rect fill="none" height="102" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:1.0;" width="416" x="99.338" y="7"/><rect fill="none" height="10" style="stroke:#181818;stroke-width:1.0;" width="15" x="495.338" y="12"/><rect fill="none" height="2" style="stroke:#181818;stroke-width:1.0;" width="4" x="493.338" y="14"/><rect fill="none" height="2" style="stroke:#181818;stroke-width:1.0;" width="4" x="493.338" y="18"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="24" x="295.338" y="34.9659">API</text></g><!--MD5=[406b65fecc21e832f7a9b6ebadc6dce1]
cluster Client--><g id="cluster_Client"><rect fill="none" height="96" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:1.0;" width="319" x="539.338" y="10"/><path d="M589.338,10 L589.338,22.0679 L579.338,32.0679 L539.338,32.0679 " fill="none" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="40" x="542.338" y="25.9659">Client</text></g><!--MD5=[22e6038e6e27d0d14f9906e81bc7e2c8]
entity POST--><g id="elem_POST"><ellipse cx="124.338" cy="69" fill="#F1F1F1" rx="8" ry="8" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="35" x="106.838" y="100.9659">POST</text></g><g id="elem_validate"><ellipse cx="245.5598" cy="69.2444" fill="#F1F1F1" rx="76.7218" ry="17.7444" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="94" x="195.5598" y="73.9773">Validate input</text></g><!--MD5=[703ea5a149c5871c74522bf38bdfe548]
entity data--><g id="elem_data"><path d="M356.838,55 C356.838,45 401.338,45 401.338,45 C401.338,45 445.838,45 445.838,55 L445.838,83.0679 C445.838,93.0679 401.338,93.0679 401.338,93.0679 C401.338,93.0679 356.838,93.0679 356.838,83.0679 L356.838,55 " fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;"/><path d="M356.838,55 C356.838,65 401.338,65 401.338,65 C401.338,65 445.838,65 445.838,55 " fill="none" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="69" x="366.838" y="83.9659">Data store</text></g><!--MD5=[70fd517e0f0740f5d86c7b6ca14931ca]
entity GET--><g id="elem_GET"><ellipse cx="490.338" cy="69" fill="#F1F1F1" rx="8" ry="8" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="26" x="477.338" y="100.9659">GET</text></g><g id="elem_sanitize"><ellipse cx="647.2489" cy="68.7822" fill="#F1F1F1" rx="91.9109" ry="20.7822" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="135" x="576.7489" y="73.5152">Sanitize and display</text></g><!--MD5=[c661d977cad040094ee01910682146de]
entity output--><g id="elem_output"><path d="M774.338,52 L774.338,86.0679 A2.5,2.5 0 0 0 776.838,88.5679 L839.838,88.5679 A2.5,2.5 0 0 0 842.338,86.0679 L842.338,59.5 L832.338,49.5 L776.838,49.5 A2.5,2.5 0 0 0 774.338,52 " fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;"/><path d="M832.338,49.5 L832.338,57 A2.5,2.5 0 0 0 834.838,59.5 L842.338,59.5 " fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="48" x="784.338" y="74.4659">Output</text></g><!--MD5=[fb14c9b1fd95d0c04eeb1a4af9d96e82]
entity input--><g id="elem_input"><path d="M21.7763,54.0027 C25.632,47.6083 29.7816,48.0027 34.7132,52.7537 C37.43,46.5142 44.1518,45.8608 48.3874,50.9147 C52.945,45.4523 58.1535,48.0967 59.8551,53.8379 C63.6467,47.2012 69.0585,46.2905 74,52.5795 C84.2486,53.4246 89.6425,60.439 82.525,69.8542 C87.1729,78.5493 83.6254,86.2654 73.4241,87.1445 C70.6663,94.2711 66.0279,96.5318 59.5645,91.3002 C58.6639,99.1797 54.5611,100.3974 48.1674,96.715 C42.5394,101.1266 36.863,98.7905 35.0709,92.1638 C28.7894,98.5529 22.6758,95.4972 21.1776,87.5335 C9.7736,88.0657 6.3487,79.7467 11.4003,70.7134 C6,60.6744 9.6711,53.1722 21.7763,54.0027 " fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="37" x="27.838" y="74.4659">Input</text></g><!--MD5=[9b4c3def22d3715760cb10bc86adcdf3]
link input to POST--><g id="link_input_POST"><path d="M80.158,69 C89.688,69 99.218,69 108.758,69 " fill="none" id="input-to-POST" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="113.508,69,104.508,65,108.508,69,104.508,73,113.508,69" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[66bb7d49198fd08b12c30e4afea4b0ac]
link POST to validate--><g id="link_POST_validate"><path d="M133.788,69 C143.318,69 152.858,69 162.388,69 " fill="none" id="POST-to-validate" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="167.138,69,158.138,65,162.138,69,158.138,73,167.138,69" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[3069c9f0cdeb7d5a96faf21f7d853108]
link validate to data--><g id="link_validate_data"><path d="M322.118,69 C331.418,69 340.728,69 350.028,69 " fill="none" id="validate-to-data" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="354.958,69,345.958,65,349.958,69,345.958,73,354.958,69" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[4b4d57bd799c71ac5dd445323722f292]
link data to GET--><g id="link_data_GET"><path d="M446.188,69 C455.708,69 465.238,69 474.768,69 " fill="none" id="data-to-GET" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="479.508,69,470.508,65,474.508,69,470.508,73,479.508,69" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[d4daddbe9754ea69a880285c75f093bd]
link GET to sanitize--><g id="link_GET_sanitize"><path d="M499.538,70.49 C517.518,73.22 535.498,74.89 553.488,75.49 " fill="none" id="GET-to-sanitize" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="558.068,75.62,549.1859,71.3646,553.07,75.4772,548.9574,79.3613,558.068,75.62" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[772675569b8f37b37db722a5c7b97c7d]
link sanitize to output--><g id="link_sanitize_output"><path d="M739.788,69 C749.068,69 758.358,69 767.638,69 " fill="none" id="sanitize-to-output" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="772.548,69,763.548,65,767.548,69,763.548,73,772.548,69" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[70d9ec0f6a9a19322f09f9812c4b3ccd]
@startuml
cloud "Input" as input
component API {
interface POST
usecase "Validate input" as validate
database "Data store" as data
interface GET
}
frame Client {
usecase "Sanitize and display" as sanitize
file "Output" as output
}
input -> POST
POST -> validate
validate -> data
data -> GET
GET -> sanitize
sanitize -> output
@enduml
PlantUML version 1.2022.12(Sun Oct 23 14:12:26 EDT 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>