| | 1 | = NETIntel – СЦ1: Испраќање на податоци од клиент (X-Env-Token) |
| | 2 | |
| | 3 | == Опис |
| | 4 | Клиентската апликација периодично испраќа JSON пакет со системски метрики, процеси, Sysmon настани и мрежни конекции до сервер. |
| | 5 | |
| | 6 | == Актери |
| | 7 | * Клиентска апликација (Agent/Collector) |
| | 8 | * Сервер (API) |
| | 9 | |
| | 10 | == Предуслови |
| | 11 | * Постојат environment и валиден token во env_tokens. |
| | 12 | * Клиентот го праќа header-от **X-Env-Token**. |
| | 13 | |
| | 14 | == Главен тек |
| | 15 | 1. Клиентот повикува POST /receive со JSON payload. |
| | 16 | 2. Серверот го валидира X-Env-Token и го одредува env_name. |
| | 17 | 3. Серверот проверува дали компјутерот постои во computers (по name). |
| | 18 | 4. Ако постои → UPDATE computers (last_seen, ip, os, sysmon_available, env_name). |
| | 19 | 5. Ако не постои → INSERT во computers. |
| | 20 | 6. INSERT во computer_history (метрики). |
| | 21 | 7. INSERT во computer_processes (процеси). |
| | 22 | 8. INSERT во sysmon_events (Sysmon настани). |
| | 23 | 9. INSERT во network_connections (конекции). |
| | 24 | 10. Серверот враќа JSON {status: success, computer_id, event_count}. |
| | 25 | |
| | 26 | == Алтернативни текови / Грешки |
| | 27 | * Нема token или невалиден token → 401 Missing or invalid X-Env-Token |
| | 28 | * Нема data во body → 400 No data |
| | 29 | * Проблем со DB → 500 error |
| | 30 | |
| | 31 | == Табели што се засегаат |
| | 32 | * computers |
| | 33 | * computer_history |
| | 34 | * computer_processes |
| | 35 | * sysmon_events |
| | 36 | * network_connections |
| | 37 | |
| | 38 | == Пример SQL (логички) |
| | 39 | * INSERT/UPDATE во computers |
| | 40 | * INSERT во останатите табели |