-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathArchitecture.puml
108 lines (86 loc) · 2.41 KB
/
Architecture.puml
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
@startuml
legend left
|<#lightsteelblue>| HiQDev |
|<#bisque> | proprietory |
endlegend
!define OpenSource(name,desc) component name as "desc" #lightsteelblue
!define Proprietory(name,desc) component name as "desc"
!define OAuth2(src,dst) src -[thickness=2]-> dst #green;text:green : OAuth2
!define REST(src,dst) src -[thickness=2]-> dst #red;text:red : REST
!define AMQP(src,dst,dir='') src -dir-> dst #blue;text:blue;line.bold : AMQP
!define SQL(src,dst,dir='') src -dir-> dst #darkblue;text:darkblue;line.bold : SQL
!define API(src,dst,dir='') src -dir-> dst #orange;text:orange;line.bold : API
!define SSH(src,dst,dir='') src -dir-> dst #black;text:black;line.bold : SSH
package "HiPanel" {
OpenSource([hipanel-core], "hipanel-core")
OpenSource([hipanel-modules], "hipanel-module")
collections "Proprietory HiPanel extensions"
}
package "External users" {
collections externalSystems as "External systems"
}
package "Other interfaces" {
Proprietory(kibana, "Kibana")
Proprietory(grafana, "Grafana")
Proprietory(hisite, "HiSite")
}
package "HiAPI" {
OpenSource([hiapi-core], "hiapi-core")
OpenSource([hiapi-modules], "hiapi-modules")
collections "Proprietory HiAPI extensions"
}
package "HIAM" {
OpenSource([hiam-core], "hiam-core")
OpenSource([hiam-modules], "hiam-modules")
collections "Proprietory HIAM extensions"
}
frame internalServices as "Internal Services" {
package "Billing" {
OpenSource([php-billing], "php-billing")
collections "Proprietory billing extensions"
}
package "Merchant" {
OpenSource(cashew, cashew)
}
package "Workers" {
[recon]
[hiapi-bots]
}
collections "Other services"
}
database DataBase [
<b>PgSQL</b>
====
clients
----
objects
]
queue "RabbitMQ" {
}
cloud "External services" {
[some-api]
[other-api]
}
cloud "Hardware" {
[Servers]
[Switches]
}
REST(externalSystems, HiAPI)
REST([hipanel-core], HiAPI)
REST(grafana, HiAPI)
OAuth2(externalSystems, HIAM)
OAuth2([hipanel-core], HIAM)
OAuth2(grafana, HIAM)
SQL([hiapi-core], DataBase)
SQL([hiam-core], DataBase)
AMQP([DataBase], RabbitMQ, down)
AMQP([hiapi-bots], RabbitMQ, up)
AMQP([recon], RabbitMQ, up)
SSH([hiapi-bots], [Servers])
API(internalServices, [some-api])
API("HiAPI", internalServices)
API(internalServices, "HiAPI")
skinparam database {
backgroundColor Moccasin
}
@enduml