Changes between Version 1 and Version 2 of NETIntel-СЦ1-Испраќање-податоци


Ignore:
Timestamp:
01/21/26 00:48:50 (3 weeks ago)
Author:
231118
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • NETIntel-СЦ1-Испраќање-податоци

    v1 v2  
    22
    33== Опис
    4 Клиентската апликација периодично испраќа JSON пакет со системски метрики, процеси, Sysmon настани и мрежни конекции до сервер.
     4Клиентската апликација (Agent/Collector) периодично испраќа JSON пакет со системски
     5перформансни метрики, активни процеси, безбедносни (Sysmon) настани и мрежни конекции
     6до серверот. Автентикацијата на клиентот се врши преку временски валиден Env Token.
    57
    68== Актери
    7 * Клиентска апликација (Agent/Collector)
     9* Клиентска апликација (Agent / Collector)
    810* Сервер (API)
    911
    1012== Предуслови
    11 * Постојат environment и валиден token во env_tokens.
    12 * Клиентот го праќа header-от **X-Env-Token**.
     13* Постојно environment поврзано со одреден tenant.
     14* Валиден и неистечен token зачуван во табелата `env_tokens`.
     15* Клиентот го испраќа HTTP header-от `X-Env-Token`.
    1316
    1417== Главен тек
    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}.
     181. Клиентската апликација повикува `POST /receive` со JSON payload.
     192. Серверот го валидира `X-Env-Token` и од табелата `env_tokens` ги добива
     20   `env_name` и `tenant_id`.
     213. Серверот проверува дали компјутерот постои во табелата `computers`
     22   (според `name` и `tenant_id`).
     234. Доколку компјутерот постои, серверот ги ажурира следните полиња:
     24   * `last_seen`
     25   * `ip`
     26   * `os`
     27   * `sysmon_available`
     28   * `env_name`
     295. Доколку компјутерот не постои, серверот креира нов запис во табелата `computers`
     30   со поврзување кон соодветниот `tenant_id` и `env_name`.
     316. Серверот внесува нов запис во `computer_history` со перформансните метрики.
     327. Серверот внесува записи во `computer_processes` за тековните процеси.
     338. Серверот внесува записи во `sysmon_events` за безбедносните настани.
     349. Серверот внесува записи во `network_connections` за активните мрежни конекции.
     3510. Серверот враќа JSON одговор од облик:
     36    `{ status: "success", computer_id, event_count }`.
    2537
    2638== Алтернативни текови / Грешки
    27 * Нема token или невалиден token → 401 Missing or invalid X-Env-Token
    28 * Нема data во body → 400 No data
    29 * Проблем со DB → 500 error
     39* Недостасува или е невалиден `X-Env-Token` → HTTP 401 (Unauthorized)
     40* Недостасува или е невалиден JSON payload → HTTP 400 (Bad Request)
     41* Проблем при запишување во база на податоци → HTTP 500 (Internal Server Error)
    3042
    3143== Табели што се засегаат
     
    3547* sysmon_events
    3648* network_connections
     49* env_tokens
    3750
    3851== Пример SQL (логички)
    39 * INSERT/UPDATE во computers
    40 * INSERT во останатите табели
     52* INSERT / UPDATE во `computers`
     53* INSERT во `computer_history`
     54* INSERT во `computer_processes`
     55* INSERT во `sysmon_events`
     56* INSERT во `network_connections`