@cryptotaxi247 / CoPilot / commits / b54c3d0b

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 +