Changes between Version 2 and Version 3 of UseCase1


Ignore:
Timestamp:
08/22/26 19:03:05 (5 days ago)
Author:
231118
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • UseCase1

    v2 v3  
     1
    12= Use-case 1 – Испраќање и обработка на податоци =
    2 
    3 '''Актер кој го иницира:'''
    4 * Клиентска апликација (Agent / Collector)
    5 
    6 '''Други актери:'''
    7 * Администратор
    8 
    9 '''Опис:'''
    10 
    11 Клиентската апликација периодично собира системски, процесни и безбедносни информации и ги испраќа до серверот со користење на X-Env-Token.
    12 
    13 == Предуслови ==
    14 
    15 * Постои Environment.
    16 * Клиентот поседува валиден X-Env-Token.
    17 
    18 == Сценарио ==
    19 
    20 1. Клиентската апликација ги собира потребните податоци.
    21 2. Испраќа POST барање со X-Env-Token.
    22 3. Системот го проверува токенот.
    23 4. Системот ги зачувува податоците во базата.
    24 5. Системот враќа успешен одговор.
    25 
    26 == SQL ==
    27 
     3'''Initiating actor:''' Client application (Agent / Collector)
     4'''Other actors:''' Administrator
     5'''Description:'''
     6Клиентската апликација периодично собира системски, процесни и мрежни податоци и ги испраќа до серверот со X-Env-Token. Серверот го проверува токенот, го ажурира записот за компјутерот, ја заменува тековната состојба (snapshot) и по потреба додава во историја според поставките на околината.
     7'''Scenario:'''
     81. Агентот ги собира податоците на компјутерот.
     92. Агентот испраќа POST барање со заглавие X-Env-Token.
     103. Системот го проверува токенот:
    2811{{{
    29 INSERT INTO computers (...);
    30 
    31 INSERT INTO computer_history (...);
    32 
    33 INSERT INTO computer_processes (...);
     12SET search_path TO project;
     13SELECT tenant_id, env_name
     14FROM env_tokens
     15WHERE token = 'ENV_TOKEN_DEFAULT_TEST'
     16  AND (expires_at IS NULL OR expires_at > now());
    3417}}}
     184. Системот го ажурира (или создава) записот за компјутерот:
     19{{{
     20INSERT INTO computers (tenant_id, env_name, name, "user", ip, os, first_seen, last_seen, sysmon_available)
     21VALUES (1, 'default', 'PC-ADMIN', 'admin', '192.168.1.10', 'Windows 11 Pro', now(), now(), true)
     22ON CONFLICT (tenant_id, name)
     23DO UPDATE SET last_seen = now(), ip = EXCLUDED.ip, os = EXCLUDED.os;
     24}}}
     255. Системот ја заменува тековната snapshot состојба на метриките:
     26{{{
     27DELETE FROM computer_history_current
     28WHERE computer_id = (SELECT id FROM computers WHERE tenant_id=1 AND name='PC-ADMIN');
     29INSERT INTO computer_history_current
     30(computer_id, cpu_usage, ram_usage, disk_usage, network_sent_mb, network_recv_mb, timestamp)
     31VALUES ((SELECT id FROM computers WHERE tenant_id=1 AND name='PC-ADMIN'), 45.0, 62.0, 71.0, 130.0, 100.0, now());
     32}}}
     336. Системот ги заменува тековните процеси, и додава во историја само ако е овозможено за околината:
     34{{{
     35DELETE FROM computer_processes_current
     36WHERE computer_id = (SELECT id FROM computers WHERE tenant_id=1 AND name='PC-ADMIN');
     37INSERT INTO computer_processes_current
     38(computer_id, pid, name, cpu_percent, memory_mb, username, cmdline, timestamp)
     39VALUES ((SELECT id FROM computers WHERE tenant_id=1 AND name='PC-ADMIN'), 1234, 'chrome.exe', 12.5, 350.2, 'admin', 'chrome', now());
     40INSERT INTO computer_processes_history
     41(computer_id, pid, name, cpu_percent, memory_mb, username, cmdline, timestamp)
     42SELECT (SELECT id FROM computers WHERE tenant_id=1 AND name='PC-ADMIN'), 1234, 'chrome.exe', 12.5, 350.2, 'admin', 'chrome', now()
     43WHERE (SELECT save_process_history FROM env_settings WHERE tenant_id=1 AND env_name='default') = true;
     44}}}
     457. Системот зачувува безбедносен/Sysmon настан и враќа успешен одговор:
     46{{{
     47INSERT INTO sysmon_events (computer_id, event_id, event_type, message, timestamp, details)
     48VALUES ((SELECT id FROM computers WHERE tenant_id=1 AND name='PC-ADMIN'), 1, 'Process Create', 'Process created: chrome.exe', now(), '{}');
     49}}}