Create README.MD
taylor_socfortress committed
Jul 10, 2023 at 16:38 UTC
b54c3d0b717481fa8077bf5aeb9204fa5a321d88
1 file changed
+168
backend/README.MD
new
+168
@@ -0,0 +1,168 @@
1
+# DB Modals
2
+
3
+```mermaid
4
+classDiagram
5
+ class ConnectorsAvailable {
6
+ +int id
7
+ +str connector_name
8
+ +str connector_description
9
+ +str connector_supports
10
+ +bool connector_configured
11
+ +bool connector_verified
12
+ }
13
+
14
+ class Connectors {
15
+ +int id
16
+ +str connector_name
17
+ +str connector_type
18
+ +str connector_url
19
+ +DateTime connector_last_updated
20
+ +str connector_username
21
+ +str connector_password
22
+ +str connector_api_key
23
+ }
24
+
25
+ class DisabledRules {
26
+ +int id
27
+ +str rule_id
28
+ +str previous_level
29
+ +str new_level
30
+ +str reason_for_disabling
31
+ +DateTime date_disabled
32
+ +int length_of_time
33
+ }
34
+
35
+ class WazuhIndexerAllocation {
36
+ +int id
37
+ +str node
38
+ +float disk_used
39
+ +float disk_available
40
+ +float disk_total
41
+ +float disk_percent
42
+ +DateTime timestamp
43
+ }
44
+
45
+ class GraylogMetricsAllocation {
46
+ +int id
47
+ +float input_usage
48
+ +float output_usage
49
+ +float processor_usage
50
+ +float input_1_sec_rate
51
+ +float output_1_sec_rate
52
+ +float total_input
53
+ +float total_output
54
+ +DateTime timestamp
55
+ }
56
+
57
+ class AgentMetadata {
58
+ +int id
59
+ +str agent_id
60
+ +str ip_address
61
+ +str os
62
+ +str hostname
63
+ +bool critical_asset
64
+ +DateTime last_seen
65
+ }
66
+
67
+ class Case {
68
+ +int id
69
+ +int case_id
70
+ +str case_name
71
+ +str agents
72
+ }
73
+
74
+ class Artifact {
75
+ +int id
76
+ +str artifact_name
77
+ +JSONB artifact_results
78
+ +str hostname
79
+ }
80
+```
81
+
82
+
83
+# Connector Classes
84
+
85
+```mermaid
86
+classDiagram
87
+ class Connector {
88
+ +attributes: dict
89
+ +verify_connection()
90
+ +get_connector_info_from_db(connector_name: str)
91
+ }
92
+
93
+ class WazuhIndexerConnector {
94
+ +verify_connection()
95
+ }
96
+ Connector <|-- WazuhIndexerConnector
97
+
98
+ class GraylogConnector {
99
+ +verify_connection()
100
+ }
101
+ Connector <|-- GraylogConnector
102
+
103
+ class WazuhManagerConnector {
104
+ +verify_connection()
105
+ }
106
+ Connector <|-- WazuhManagerConnector
107
+
108
+ class ShuffleConnector {
109
+ +verify_connection()
110
+ }
111
+ Connector <|-- ShuffleConnector
112
+
113
+ class DfirIrisConnector {
114
+ +verify_connection()
115
+ }
116
+ Connector <|-- DfirIrisConnector
117
+
118
+ class VelociraptorConnector {
119
+ +verify_connection()
120
+ }
121
+ Connector <|-- VelociraptorConnector
122
+
123
+ class RabbitMQConnector {
124
+ +verify_connection()
125
+ }
126
+ Connector <|-- RabbitMQConnector
127
+
128
+ class ConnectorFactory {
129
+ -_creators: dict
130
+ +register_creator(key: str, creator: str)
131
+ +create(key: str, connector_name: str)
132
+ }
133
+```
134
+
135
+# Routes
136
+
137
+```mermaid
138
+graph TD;
139
+ A["/connectors (GET)"] --> B["list_connectors_available()"]
140
+ C["/connectors/wazuh-manager (GET)"] --> D["get_wazuh_manager_connector()"]
141
+ E["/connectors/<id> (PUT)"] --> F["update_connector_route(id)"]
142
+```
143
+
144
+# Responses
145
+
146
+```mermaid
147
+graph TD;
148
+ A[update_connector_in_db] --> B[Return Data]
149
+ C[update_connector] --> D[Return Data]
150
+ E[process_connector] --> F[Return Data]
151
+ G[ConnectorFactory.create] --> H[Connector Instance]
152
+ H --> I[WazuhIndexerConnector.verify_connection]
153
+ H --> J[GraylogConnector.verify_connection]
154
+ H --> K[WazuhManagerConnector.verify_connection]
155
+ H --> L[DfirIrisConnector.verify_connection]
156
+ H --> M[VelociraptorConnector.verify_connection]
157
+ H --> N[RabbitMQConnector.verify_connection]
158
+ H --> O[ShuffleConnector.verify_connection]
159
+ I --> P[Return Data]
160
+ J --> Q[Return Data]
161
+ K --> R[Return Data]
162
+ L --> S[Return Data]
163
+ M --> T[Return Data]
164
+ N --> U[Return Data]
165
+ O --> V[Return Data]
166
+
167
+```
168
+