aboutsummaryrefslogtreecommitdiffstats
path: root/docs/architecture/images/PolicyDesign.svg
blob: f414ca7f9442424bd9f49d8f2a034db5eeb87a6d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?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="726px" preserveAspectRatio="none" style="width:810px;height:726px;" version="1.1" viewBox="0 0 810 726" width="810px" zoomAndPan="magnify"><defs><filter height="300%" id="f161gndiw7aqf5" 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><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="105" x="353.5" y="22.9951">Policy Design</text><rect fill="#ADD8E6" height="681.5234" style="stroke: #A80036; stroke-width: 1.0;" width="371" x="422" y="34.2969"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="94" x="560.5" y="46.3638">PolicyDesign</text><rect fill="#FFFFFF" filter="url(#f161gndiw7aqf5)" height="28" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="57" y="419.5938"/><rect fill="#FFFFFF" filter="url(#f161gndiw7aqf5)" height="30" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="474" y="537.2578"/><rect fill="#FFFFFF" filter="url(#f161gndiw7aqf5)" height="90.2031" style="stroke: #000000; stroke-width: 2.0;" width="529" x="13" y="278.3906"/><rect fill="#FFFFFF" height="43.9375" style="stroke: none; stroke-width: 1.0;" width="529" x="13" y="324.6563"/><rect fill="#FFFFFF" filter="url(#f161gndiw7aqf5)" height="163.6641" style="stroke: #000000; stroke-width: 2.0;" width="786" x="13" y="469.8594"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="62" x2="62" y1="115.7266" y2="650.5234"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="479" x2="479" y1="115.7266" y2="650.5234"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="756" x2="756" y1="115.7266" y2="650.5234"/><rect fill="#FEFECE" filter="url(#f161gndiw7aqf5)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="74" x="23" y="80.4297"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="60" x="30" y="100.4248">API_User</text><rect fill="#FEFECE" filter="url(#f161gndiw7aqf5)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="74" x="23" y="649.5234"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="60" x="30" y="669.5186">API_User</text><rect fill="#FEFECE" filter="url(#f161gndiw7aqf5)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="102" x="426" y="80.4297"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="88" x="433" y="100.4248">PolicyDesign</text><rect fill="#FEFECE" filter="url(#f161gndiw7aqf5)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="102" x="426" y="649.5234"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="88" x="433" y="669.5186">PolicyDesign</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="60" x="723" y="112.4248">PolicyDB</text><path d="M738,63.4297 C738,53.4297 756,53.4297 756,53.4297 C756,53.4297 774,53.4297 774,63.4297 L774,89.4297 C774,99.4297 756,99.4297 756,99.4297 C756,99.4297 738,99.4297 738,89.4297 L738,63.4297 " fill="#FEFECE" filter="url(#f161gndiw7aqf5)" style="stroke: #000000; stroke-width: 1.5;"/><path d="M738,63.4297 C738,73.4297 756,73.4297 756,73.4297 C756,73.4297 774,73.4297 774,63.4297 " fill="none" style="stroke: #000000; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="60" x="723" y="662.5186">PolicyDB</text><path d="M738,675.8203 C738,665.8203 756,665.8203 756,665.8203 C756,665.8203 774,665.8203 774,675.8203 L774,701.8203 C774,711.8203 756,711.8203 756,711.8203 C756,711.8203 738,711.8203 738,701.8203 L738,675.8203 " fill="#FEFECE" filter="url(#f161gndiw7aqf5)" style="stroke: #000000; stroke-width: 1.5;"/><path d="M738,675.8203 C738,685.8203 756,685.8203 756,685.8203 C756,685.8203 774,685.8203 774,675.8203 " fill="none" style="stroke: #000000; stroke-width: 1.5;"/><rect fill="#FFFFFF" filter="url(#f161gndiw7aqf5)" height="28" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="57" y="419.5938"/><rect fill="#FFFFFF" filter="url(#f161gndiw7aqf5)" height="30" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="474" y="537.2578"/><polygon fill="#A80036" points="467,142.8594,477,146.8594,467,150.8594,471,146.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="62" x2="473" y1="146.8594" y2="146.8594"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="9" x="69" y="141.7935">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="165" x="82" y="141.7935">Get Policy Type Reference</text><polygon fill="#A80036" points="744,171.9922,754,175.9922,744,179.9922,748,175.9922" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="479" x2="750" y1="175.9922" y2="175.9922"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="9" x="486" y="170.9263">2</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="240" x="499" y="170.9263">Get Policy Type Artifact and Metadata</text><polygon fill="#A80036" points="73,201.125,63,205.125,73,209.125,69,205.125" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="67" x2="478" y1="205.125" y2="205.125"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="9" x="79" y="200.0591">3</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="277" x="92" y="200.0591">Return Policy Type Reference and Metadata</text><polygon fill="#A80036" points="467,230.2578,477,234.2578,467,238.2578,471,234.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="62" x2="473" y1="234.2578" y2="234.2578"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="9" x="69" y="229.1919">4</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="224" x="82" y="229.1919">Get Policy Reference and Metadata</text><polygon fill="#A80036" points="744,259.3906,754,263.3906,744,267.3906,748,263.3906" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="479" x2="750" y1="263.3906" y2="263.3906"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="9" x="486" y="258.3247">5</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="499" y="258.3247">Get Policy Metadata</text><path d="M13,278.3906 L77,278.3906 L77,285.3906 L67,295.3906 L13,295.3906 L13,278.3906 " fill="#EEEEEE" style="stroke: #000000; stroke-width: 1.0;"/><rect fill="none" height="90.2031" style="stroke: #000000; stroke-width: 2.0;" width="529" x="13" y="278.3906"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="19" x="28" y="291.4575">alt</text><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="141" x="92" y="290.6011">[Policy Artifact exists]</text><polygon fill="#A80036" points="73,312.6563,63,316.6563,73,320.6563,69,316.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="67" x2="478" y1="316.6563" y2="316.6563"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="9" x="79" y="311.5903">6</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="243" x="92" y="311.5903">Return Policy Reference and Metadata</text><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="13" x2="542" y1="325.6563" y2="325.6563"/><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="194" x="18" y="335.8667">[Policy Artifact does not exist]</text><polygon fill="#A80036" points="73,356.5938,63,360.5938,73,364.5938,69,360.5938" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="67" x2="478" y1="360.5938" y2="360.5938"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="9" x="79" y="355.5278">7</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="92" y="355.5278">Return Policy Not Found</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="67" x2="109" y1="411.8594" y2="411.8594"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="109" x2="109" y1="411.8594" y2="424.8594"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="68" x2="109" y1="424.8594" y2="424.8594"/><polygon fill="#A80036" points="78,420.8594,68,424.8594,78,428.8594,74,424.8594" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="9" x="74" y="399.2271">8</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="240" x="87" y="391.6606">Policy Editing and Generation Session</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="223" x="87" y="406.7935">to get Policy Parameters from user</text><path d="M13,469.8594 L90,469.8594 L90,476.8594 L80,486.8594 L13,486.8594 L13,469.8594 " fill="#EEEEEE" style="stroke: #000000; stroke-width: 1.0;"/><rect fill="none" height="163.6641" style="stroke: #000000; stroke-width: 2.0;" width="786" x="13" y="469.8594"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="32" x="28" y="482.9263">loop</text><polygon fill="#A80036" points="467,504.125,477,508.125,467,512.125,471,508.125" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="62" x2="473" y1="508.125" y2="508.125"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="9" x="69" y="503.0591">9</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="182" x="82" y="503.0591">Use Policy Type specification</text><polygon fill="#A80036" points="462,533.2578,472,537.2578,462,541.2578,466,537.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="62" x2="468" y1="537.2578" y2="537.2578"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="18" x="69" y="532.1919">10</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="371" x="91" y="532.1919">Create Policy PolicyDesign --&gt; PolicyDesign : Create Policy</text><polygon fill="#A80036" points="744,592.3906,754,596.3906,744,600.3906,748,596.3906" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="479" x2="750" y1="596.3906" y2="596.3906"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="18" x="486" y="591.3247">11</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="215" x="508" y="591.3247">Save Policy Artifact and Metadata</text><polygon fill="#A80036" points="73,621.5234,63,625.5234,73,629.5234,69,625.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="67" x2="478" y1="625.5234" y2="625.5234"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="18" x="79" y="620.4575">12</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="137" x="101" y="620.4575">Policy Creation Result</text><!--
@startuml

title Policy Design

participant API_User
box "PolicyDesign" #LightBlue
  participant PolicyDesign
  database PolicyDB
end box

autonumber

API_User - -> PolicyDesign : Get Policy Type Reference
PolicyDesign - -> PolicyDB : Get Policy Type Artifact and Metadata
PolicyDesign - -> API_User : Return Policy Type Reference and Metadata
API_User - -> PolicyDesign : Get Policy Reference and Metadata
PolicyDesign - -> PolicyDB : Get Policy Metadata

alt Policy Artifact exists
  PolicyDesign - -> API_User : Return Policy Reference and Metadata
else Policy Artifact does not exist
  PolicyDesign - -> API_User : Return Policy Not Found
end

API_User - -> API_User : Policy Editing and Generation Session\nto get Policy Parameters from user

activate API_User
deactivate API_User

loop
  API_User - -> PolicyDesign : Use Policy Type specification
  API_User - -> PolicyDesign : Create Policy PolicyDesign - -> PolicyDesign : Create Policy
  activate PolicyDesign
  deactivate PolicyDesign
  PolicyDesign - -> PolicyDB : Save Policy Artifact and Metadata
  PolicyDesign - -> API_User : Policy Creation Result
end

@enduml

PlantUML version 1.2018.13(Mon Nov 26 13:11:51 AST 2018)
(GPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Java Version: 11.0.6+10-post-Ubuntu-1ubuntu119.10.1
Operating System: Linux
OS Version: 5.3.0-46-generic
Default Encoding: UTF-8
Language: en
Country: IE
--></g></svg>