wiki:UseCase1

Version 4 (modified by 231118, 5 days ago) ( diff )

--

Use-case 1 – Испраќање и обработка на податоци

Initiating actor: Client application (Agent / Collector) Other actors: Administrator Description: Клиентската апликација периодично собира системски, процесни и мрежни податоци и ги испраќа до серверот со X-Env-Token. Серверот го проверува токенот, го ажурира записот за компјутерот, ја заменува тековната состојба (snapshot) и по потреба додава во историја според поставките на околината. Scenario:

  1. Агентот ги собира податоците на компјутерот.
  2. Агентот испраќа POST барање со заглавие X-Env-Token.
  3. Системот го проверува токенот:
    SET search_path TO project;
    SELECT tenant_id, env_name
    FROM env_tokens
    WHERE token = 'ENV_TOKEN_DEFAULT_TEST'
      AND (expires_at IS NULL OR expires_at > now());
    
  4. Системот го ажурира (или создава) записот за компјутерот:
    INSERT INTO computers (tenant_id, env_name, name, "user", ip, os, first_seen, last_seen, sysmon_available)
    VALUES (1, 'default', 'PC-ADMIN', 'admin', '192.168.1.10', 'Windows 11 Pro', now(), now(), true)
    ON CONFLICT (tenant_id, name)
    DO UPDATE SET last_seen = now(), ip = EXCLUDED.ip, os = EXCLUDED.os;
    
  5. Системот ја заменува тековната snapshot состојба на метриките:
    DELETE FROM computer_history_current
    WHERE computer_id = (SELECT id FROM computers WHERE tenant_id=1 AND name='PC-ADMIN');
    INSERT INTO computer_history_current
    (computer_id, cpu_usage, ram_usage, disk_usage, network_sent_mb, network_recv_mb, timestamp)
    VALUES ((SELECT id FROM computers WHERE tenant_id=1 AND name='PC-ADMIN'), 45.0, 62.0, 71.0, 130.0, 100.0, now());
    
  6. Системот ги заменува тековните процеси, и додава во историја само ако е овозможено за околината:
    DELETE FROM computer_processes_current
    WHERE computer_id = (SELECT id FROM computers WHERE tenant_id=1 AND name='PC-ADMIN');
    INSERT INTO computer_processes_current
    (computer_id, pid, name, cpu_percent, memory_mb, username, cmdline, timestamp)
    VALUES ((SELECT id FROM computers WHERE tenant_id=1 AND name='PC-ADMIN'), 1234, 'chrome.exe', 12.5, 350.2, 'admin', 'chrome', now());
    INSERT INTO computer_processes_history
    (computer_id, pid, name, cpu_percent, memory_mb, username, cmdline, timestamp)
    SELECT (SELECT id FROM computers WHERE tenant_id=1 AND name='PC-ADMIN'), 1234, 'chrome.exe', 12.5, 350.2, 'admin', 'chrome', now()
    WHERE (SELECT save_process_history FROM env_settings WHERE tenant_id=1 AND env_name='default') = true;
    
  7. Системот зачувува безбедносен/Sysmon настан и враќа успешен одговор:
    INSERT INTO sysmon_events (computer_id, event_id, event_type, message, timestamp, details)
    VALUES ((SELECT id FROM computers WHERE tenant_id=1 AND name='PC-ADMIN'), 1, 'Process Create', 'Process created: chrome.exe', now(), '{}');
    
Note: See TracWiki for help on using the wiki.