summaryrefslogtreecommitdiff
path: root/doc/uml/security_use_case_diagram.dot
diff options
context:
space:
mode:
Diffstat (limited to 'doc/uml/security_use_case_diagram.dot')
-rw-r--r--doc/uml/security_use_case_diagram.dot153
1 files changed, 153 insertions, 0 deletions
diff --git a/doc/uml/security_use_case_diagram.dot b/doc/uml/security_use_case_diagram.dot
new file mode 100644
index 0000000..c939cc6
--- /dev/null
+++ b/doc/uml/security_use_case_diagram.dot
@@ -0,0 +1,153 @@
+// This is a graphviz file. To generate a diagram from this source,
+// you must first install graphviz (available from homebrew). Then run
+// the following command:
+//
+// dot -Tpng -o security_use_case_diagram.png security_use_case_diagram.dot
+
+digraph G {
+ graph [fontsize = 14, penwidth = 0, rankdir = UD];
+ node [shape = "plaintext"];
+ edge [fontsize = 9, style = dotted, arrowhead = empty];
+
+ subgraph cluster_external {
+ label = "External systems";
+ penwidth = 1;
+
+ subgraph cluster_externalbrowser {
+ label = "EDN-attached web browser";
+ penwidth = 0;
+ externalbrowser_icon [label = "", image = "computer.png"];
+ }
+
+ subgraph cluster_externalorchestration {
+ label = "ATLAS/Orchestration";
+ penwidth = 0;
+ externalorchestration_icon [label = "", image = "computer.png"];
+ }
+
+ subgraph cluster_externalvmb{
+ label = "VMB";
+ penwidth = 0;
+ externalvmb_icon [label = "", image = "computer.png"];
+ }
+
+ subgraph cluster_externalgitlab {
+ label = "GitLab";
+ penwidth = 0;
+ externalgitlab_icon [label = "", image = "computer.png"];
+ }
+
+ subgraph cluster_externalartifactory {
+ label = "Artifactory";
+ penwidth = 0;
+ externalartifactory_icon [label = "", image = "computer.png"];
+ }
+
+ subgraph cluster_externalinfoblox {
+ label = "CDS Infoblox";
+ penwidth = 0;
+ externalinfoblox_icon [label = "", image = "computer.png"];
+ }
+
+ subgraph cluster_externalldap {
+ label = "USWIN LDAP";
+ penwidth = 0;
+ externalldap_icon [label = "", image = "computer.png"];
+ }
+ }
+
+ subgraph cluster_middlewarestack {
+ label = "Automation stack";
+ penwidth = 1;
+
+ subgraph cluster_middlewarestackansible {
+ label = "Ansible/DNS hosts";
+ penwidth = 0;
+ middlewarestackansible_icon [label = "", image = "computer.png"];
+ }
+
+ subgraph cluster_middlewarestackapp {
+ label = "Middleware/Icinga hosts";
+ penwidth = 0;
+ middlewarestackapp_icon [label = "", image = "computer.png"];
+ }
+
+ subgraph cluster_middlewarestackdatabase {
+ label = "Database hosts";
+ penwidth = 0;
+ middlewarestackdatabase_icon [label = "", image = "drive-removable-media.png"];
+ }
+
+ subgraph cluster_middlewarestacklb {
+ label = "Load balancer hosts";
+ penwidth = 0;
+ middlewarestacklb_icon [label = "", image = "computer.png"];
+ }
+ }
+
+ subgraph cluster_wr {
+ label = "Wind River platform";
+ penwidth = 1;
+
+ subgraph cluster_wrcentral {
+ label = "Central controller cluster";
+
+ subgraph cluster_wrcentralhosts {
+ label = "Central controller hosts";
+ penwidth = 0;
+ wrcentralhosts_icon [label = "", image = "computer.png"];
+ }
+
+ subgraph cluster_wrcentralbmc {
+ label = "Central controller BMC";
+ penwidth = 0;
+ wrcentralbmc_icon [label = "", image = "network-wired.png"];
+ }
+ }
+
+ subgraph cluster_wrremote {
+ label = "Remote subcloud cluster";
+
+ subgraph cluster_wrremotehosts {
+ label = "Remote subcloud hosts";
+ penwidth = 0;
+ wrremotehosts_icon [label = "", image = "computer.png"];
+ }
+
+ subgraph cluster_wrremotebmc {
+ label = "Remote subcloud BMC";
+ penwidth = 0;
+ wrremotebmc_icon [label = "", image = "network-wired.png"];
+ }
+ }
+ }
+
+ subgraph cluster_legend {
+ label = "Legend";
+ penwidth = 1;
+ node [shape = "rect", style = filled];
+ legend_external [label = "Connections\nto external\nsystems", fillcolor = "chocolate1"];
+ legend_wr [label = "Connections\nto Wind River\nplatform", fillcolor = "darkolivegreen3"];
+ legend_middleware_external [label = "Connections\nto middleware", fillcolor = "deepskyblue"];
+ }
+
+ externalbrowser_icon -> middlewarestacklb_icon [color = "deepskyblue", headlabel = "TCP *:443"];
+ externalorchestration_icon -> middlewarestacklb_icon [color = "deepskyblue"];
+ middlewarestackapp_icon -> externalvmb_icon [color = "chocolate1", headlabel = "TCP *:6651"];
+ externalgitlab_icon -> middlewarestacklb_icon [color = "deepskyblue"];
+ middlewarestackansible_icon -> externalartifactory_icon [color = "chocolate1", headlabel = "TCP *:443"];
+ middlewarestackapp_icon -> externalgitlab_icon [color = "chocolate1", headlabel = "TCP *:22"];
+ middlewarestackansible_icon -> externalgitlab_icon [color = "chocolate1"];
+ middlewarestackansible_icon -> wrcentralhosts_icon [color = "darkolivegreen3", headlabel = "TCP *:22"];
+ middlewarestackansible_icon -> wrremotehosts_icon [color = "darkolivegreen3", headlabel = "TCP *:22"];
+ middlewarestackapp_icon -> middlewarestackansible_icon [color = "deepskyblue", headlabel = "TCP *:80, *:5555-5561"];
+ middlewarestacklb_icon -> externalldap_icon [color = "chocolate1", headlabel = "TCP *:636"];
+ middlewarestackansible_icon -> externalinfoblox_icon [color = "chocolate1", headlabel = "TCP *:443"];
+ middlewarestackapp_icon -> wrcentralbmc_icon [color = "darkolivegreen3", headlabel = "TCP *:443"];
+ middlewarestackapp_icon -> wrremotebmc_icon [color = "darkolivegreen3", headlabel = "TCP *:443"];
+ middlewarestacklb_icon -> middlewarestackapp_icon [color = "deepskyblue", headlabel = "TCP *:80"];
+ middlewarestackapp_icon -> middlewarestackdatabase_icon [color = "deepskyblue", headlabel = "TCP *:5432"];
+ middlewarestacklb_icon -> middlewarestackansible_icon [color = "deepskyblue"];
+ wrcentralhosts_icon -> externalartifactory_icon [color = "chocolate1"];
+ wrcentralhosts_icon -> wrremotehosts_icon [color = "darkolivegreen3"];
+}