= 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(), '{}'); }}}