zed/docs/diagrams/svg/login-flow.svg
Max Brunsfeld e897d1c98e Update collaboration doc
Add some diagrams
2021-06-10 14:27:05 -07:00

1 line
6.2 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" contentScriptType="application/ecmascript" contentStyleType="text/css" height="428px" preserveAspectRatio="none" style="width:727px;height:428px;background:#FFFFFF;" version="1.1" viewBox="0 0 727 428" width="727px" zoomAndPan="magnify"><defs><filter height="300%" id="f1s3tlar68499x" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="130" x2="130" y1="40.4883" y2="384.8359"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="361" x2="361" y1="40.4883" y2="384.8359"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="613" x2="613" y1="40.4883" y2="384.8359"/><rect fill="#FEFECE" filter="url(#f1s3tlar68499x)" height="30.4883" style="stroke:#A80036;stroke-width:1.5;" width="71" x="93" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="57" x="100" y="25.5352">Zed App</text><rect fill="#FEFECE" filter="url(#f1s3tlar68499x)" height="30.4883" style="stroke:#A80036;stroke-width:1.5;" width="71" x="93" y="383.8359"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="57" x="100" y="404.3711">Zed App</text><rect fill="#FEFECE" filter="url(#f1s3tlar68499x)" height="30.4883" style="stroke:#A80036;stroke-width:1.5;" width="69" x="325" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="55" x="332" y="25.5352">Browser</text><rect fill="#FEFECE" filter="url(#f1s3tlar68499x)" height="30.4883" style="stroke:#A80036;stroke-width:1.5;" width="69" x="325" y="383.8359"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="55" x="332" y="404.3711">Browser</text><rect fill="#FEFECE" filter="url(#f1s3tlar68499x)" height="30.4883" style="stroke:#A80036;stroke-width:1.5;" width="125" x="549" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="111" x="556" y="25.5352">Zed HTTP server</text><rect fill="#FEFECE" filter="url(#f1s3tlar68499x)" height="30.4883" style="stroke:#A80036;stroke-width:1.5;" width="125" x="549" y="383.8359"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="111" x="556" y="404.3711">Zed HTTP server</text><rect fill="#FBFB77" filter="url(#f1s3tlar68499x)" height="38" style="stroke:#A80036;stroke-width:1.0;" width="188" x="36" y="55.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="180" x="40" y="72.0566">Generate encryption keypair.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="174" x="40" y="87.3672">Listen on an open TCP port.</text><polygon fill="#A80036" points="349.5,131.7305,359.5,135.7305,349.5,139.7305,353.5,135.7305" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="130.5" x2="355.5" y1="135.7305" y2="135.7305"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="118" x="137.5" y="115.6777">Open sign-in page</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="135" x="137.5" y="130.9883">(public key, TCP port)</text><polygon fill="#A80036" points="601.5,176.3516,611.5,180.3516,601.5,184.3516,605.5,180.3516" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="361.5" x2="607.5" y1="180.3516" y2="180.3516"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="43" x="368.5" y="160.2988">Sign in</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="209" x="368.5" y="175.6094">(app's public key, app's TCP port)</text><rect fill="#FBFB77" filter="url(#f1s3tlar68499x)" height="38" style="stroke:#A80036;stroke-width:1.0;" width="209" x="509" y="193.3516"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="145" x="513" y="209.9199">Generate access token.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="201" x="513" y="225.2305">Encrypt it with app's public key.</text><polygon fill="#A80036" points="372.5,269.5938,362.5,273.5938,372.5,277.5938,368.5,273.5938" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="366.5" x2="612.5" y1="273.5938" y2="273.5938"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="228" x="378.5" y="253.541">Redirect to loopback with app's port</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="207" x="378.5" y="268.8516">(user id, encrypted access token)</text><polygon fill="#A80036" points="141.5,314.2148,131.5,318.2148,141.5,322.2148,137.5,318.2148" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="135.5" x2="360.5" y1="318.2148" y2="318.2148"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="93" x="147.5" y="298.1621">Follow redirect</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="207" x="147.5" y="313.4727">(user id, encrypted access token)</text><rect fill="#FBFB77" filter="url(#f1s3tlar68499x)" height="38" style="stroke:#A80036;stroke-width:1.0;" width="251" x="5" y="331.2148"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="243" x="9" y="347.7832">Decrypt access token with private key.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="182" x="9" y="363.0938">Save credentials to keychain.</text></g></svg>