Changes between Initial Version and Version 1 of UseCaseUC1PrototypeImplementation


Ignore:
Timestamp:
07/07/26 17:22:38 (8 hours ago)
Author:
231118
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • UseCaseUC1PrototypeImplementation

    v1 v1  
     1= Use-case UC1 Prototype Implementation – Испраќање и обработка на податоци =
     2
     3'''Актер кој го иницира:'''
     4* Клиентска апликација (Agent / Collector)
     5
     6'''Други актери:'''
     7* Администратор
     8
     9'''Опис'''
     10
     11Клиентската апликација периодично собира системски информации од компјутерот и ги испраќа до серверот преку POST барање. Серверот го валидира X-Env-Token, го пронаоѓа или креира компјутерот и ги зачувува сите примени информации во базата.
     12
     13== Сценарио ==
     14
     15=== Чекор 1 ===
     16
     17'''Корисник'''
     18
     19Клиентската апликација испраќа POST барање кон серверот со X-Env-Token и собраните податоци.
     20
     21[[Image(UC1_step1.png,700px)]]
     22
     23'''Систем'''
     24
     25Го проверува токенот и го пронаоѓа Environment-от.
     26
     27'''SQL'''
     28
     29{{{
     30SELECT env_name,
     31       tenant_id
     32FROM env_tokens
     33WHERE token = ?
     34AND (expires_at IS NULL
     35     OR expires_at > datetime('now'))
     36LIMIT 1;
     37}}}
     38
     39---
     40
     41### Чекор 2
     42
     43Системот проверува дали компјутерот веќе постои.
     44
     45[[Image(UC1_step2.png,700px)]]
     46
     47'''SQL'''
     48
     49{{{
     50SELECT id
     51FROM computers
     52WHERE tenant_id = ?
     53AND name = ?
     54LIMIT 1;
     55}}}
     56
     57---
     58
     59### Чекор 3
     60
     61Доколку компјутерот веќе постои, се ажурираат неговите информации.
     62
     63'''SQL'''
     64
     65{{{
     66UPDATE computers
     67SET
     68    user=?,
     69    ip=?,
     70    os=?,
     71    last_seen=?,
     72    sysmon_available=?,
     73    env_name=?
     74WHERE
     75    id=?
     76AND
     77    tenant_id=?;
     78}}}
     79
     80Доколку компјутерот не постои, се додава нов запис.
     81
     82'''SQL'''
     83
     84{{{
     85INSERT INTO computers
     86(
     87tenant_id,
     88env_name,
     89name,
     90user,
     91ip,
     92os,
     93first_seen,
     94last_seen,
     95sysmon_available
     96)
     97VALUES
     98(
     99?,
     100?,
     101?,
     102?,
     103?,
     104?,
     105?,
     106?,
     107?
     108);
     109}}}
     110
     111[[Image(UC1_step3.png,700px)]]
     112
     113---
     114
     115### Чекор 4
     116
     117Системот ги зачувува моменталните перформанси.
     118
     119'''SQL'''
     120
     121{{{
     122INSERT INTO computer_history
     123(
     124computer_id,
     125cpu_usage,
     126ram_usage,
     127disk_usage,
     128network_sent_mb,
     129network_recv_mb,
     130timestamp
     131)
     132VALUES
     133(
     134?,
     135?,
     136?,
     137?,
     138?,
     139?,
     140?
     141);
     142}}}
     143
     144[[Image(UC1_step4.png,700px)]]
     145
     146---
     147
     148### Чекор 5
     149
     150Системот ги освежува тековните процеси.
     151
     152Најпрво ги брише старите.
     153
     154'''SQL'''
     155
     156{{{
     157DELETE
     158FROM computer_processes_current
     159WHERE computer_id=?;
     160}}}
     161
     162Потоа ги внесува новите.
     163
     164'''SQL'''
     165
     166{{{
     167INSERT INTO computer_processes_current
     168(
     169computer_id,
     170pid,
     171name,
     172cpu_percent,
     173memory_mb,
     174username,
     175cmdline,
     176timestamp
     177)
     178VALUES
     179(
     180?,
     181?,
     182?,
     183?,
     184?,
     185?,
     186?,
     187?
     188);
     189}}}
     190
     191[[Image(UC1_step5.png,700px)]]
     192
     193---
     194
     195### Чекор 6
     196
     197Доколку е овозможено чување на историја, процесите се зачувуваат и во history.
     198
     199'''SQL'''
     200
     201{{{
     202INSERT INTO computer_processes_history
     203(
     204computer_id,
     205pid,
     206name,
     207cpu_percent,
     208memory_mb,
     209username,
     210cmdline,
     211timestamp
     212)
     213VALUES
     214(
     215?,
     216?,
     217?,
     218?,
     219?,
     220?,
     221?,
     222?
     223);
     224}}}
     225
     226[[Image(UC1_step6.png,700px)]]
     227
     228---
     229
     230### Чекор 7
     231
     232Системот ги зачувува Sysmon настаните.
     233
     234'''SQL'''
     235
     236{{{
     237INSERT INTO sysmon_events
     238(
     239computer_id,
     240event_id,
     241event_type,
     242message,
     243timestamp,
     244details
     245)
     246VALUES
     247(
     248?,
     249?,
     250?,
     251?,
     252?,
     253?
     254);
     255}}}
     256
     257[[Image(UC1_step7.png,700px)]]
     258
     259---
     260
     261### Чекор 8
     262
     263Системот ги зачувува мрежните конекции.
     264
     265'''SQL'''
     266
     267{{{
     268INSERT INTO network_connections
     269(
     270computer_id,
     271pid,
     272local_address,
     273remote_address,
     274status,
     275process_name,
     276timestamp
     277)
     278VALUES
     279(
     280?,
     281?,
     282?,
     283?,
     284?,
     285?,
     286?
     287);
     288}}}
     289
     290[[Image(UC1_step8.png,700px)]]
     291
     292---
     293
     294### Чекор 9
     295
     296Системот успешно ја обработува испратената информација и враќа успешен одговор.
     297
     298[[Image(UC1_step9.png,700px)]]