Changes between Initial Version and Version 1 of Conceptual_design


Ignore:
Timestamp:
01/19/26 23:08:35 (3 weeks ago)
Author:
231118
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Conceptual_design

    v1 v1  
     1== ER дијаграм ==
     2
     3[[Image(UseCaseDiagram2.drawio.png)]]
     4
     5== Податочни барања ==
     6
     7=== Ентитети ===
     8
     91. '''Environments''' – ентитет кој чува информации за логички околини (environments) во кои се групираат компјутерите.
     10   * ''id'' (integer, PK)
     11   * ''name'' (text, not null, UNIQUE)
     12   * ''created_at'' (datetime, not null)
     13
     142. '''ENV_Tokens''' – ентитет кој чува токени за пристап на клиентите во конкретно environment.
     15   * ''id'' (integer, PK)
     16   * ''env_name''* (text, FK → Environments.name, not null)
     17   * ''token'' (text, not null, UNIQUE)
     18   * ''created_at'' (datetime, not null)
     19   * ''expires_at'' (datetime)
     20
     213. '''Admin_sessions''' – ентитет кој чува администраторски сесии за најава.
     22   * ''id'' (integer, PK)
     23   * ''token'' (text, not null, UNIQUE)
     24   * ''created_at'' (datetime, not null)
     25
     264. '''Computers''' – ентитет кој чува податоци за уредите (клиенти) што испраќаат логови до сервер.
     27   * ''id'' (integer, PK)
     28   * ''name'' (text, not null, UNIQUE)
     29   * ''user'' (text)
     30   * ''ip'' (text)
     31   * ''os'' (text)
     32   * ''first_seen'' (datetime)
     33   * ''last_seen'' (datetime)
     34   * ''sysmon_available'' (boolean, default 0)
     35   * ''env_name''* (text, FK → Environments.name, default 'default')
     36
     375. '''Computer_history''' – ентитет кој чува временски перформансни метрики за компјутерот.
     38   * ''id'' (integer, PK)
     39   * ''computer_id''* (integer, FK → Computers.id, not null)
     40   * ''cpu_usage'' (real)
     41   * ''ram_usage'' (real)
     42   * ''disk_usage'' (real)
     43   * ''network_sent_mb'' (real)
     44   * ''network_recv_mb'' (real)
     45   * ''timestamp'' (datetime)
     46
     476. '''Computer_processes''' – ентитет кој чува податоци за процеси на компјутерот (во момент на собирање).
     48   * ''id'' (integer, PK)
     49   * ''computer_id''* (integer, FK → Computers.id, not null)
     50   * ''pid'' (integer)
     51   * ''name'' (text)
     52   * ''cpu_percent'' (real)
     53   * ''memory_mb'' (real)
     54   * ''username'' (text)
     55   * ''cmdline'' (text)
     56   * ''timestamp'' (datetime)
     57
     587. '''Sysmon_events''' – ентитет кој чува Sysmon/безбедносни настани испратени од клиентот.
     59   * ''id'' (integer, PK)
     60   * ''computer_id''* (integer, FK → Computers.id, not null)
     61   * ''event_id'' (integer)
     62   * ''event_type'' (text)
     63   * ''message'' (text)
     64   * ''timestamp'' (datetime)
     65   * ''details'' (text)  (JSON како string)
     66
     678. '''Network_connections''' – ентитет кој чува мрежни конекции детектирани на компјутерот.
     68   * ''id'' (integer, PK)
     69   * ''computer_id''* (integer, FK → Computers.id, not null)
     70   * ''pid'' (integer)
     71   * ''local_address'' (text)
     72   * ''remote_address'' (text)
     73   * ''status'' (text)
     74   * ''process_name'' (text)
     75   * ''timestamp'' (datetime)
     76
     779. '''Security_alerts''' – ентитет кој чува аларми за потенцијални безбедносни инциденти.
     78   * ''id'' (integer, PK)
     79   * ''computer_id''* (integer, FK → Computers.id, not null)
     80   * ''alert_type'' (text)
     81   * ''severity'' (text)
     82   * ''description'' (text)
     83   * ''timestamp'' (datetime)
     84   * ''resolved'' (boolean, default 0)
     85
     86''Забелешка:'' Атрибутите означени со * се странски клучеви (Foreign Keys).
     87
     88=== Релации ===
     89
     901. '''contains''' (Environments ↔ Computers, 1:N) 
     91   Едно environment може да содржи повеќе компјутери, а секој компјутер припаѓа на едно environment.
     92
     932. '''has''' (Environments ↔ ENV_Tokens, 1:N) 
     94   Едно environment може да има повеќе токени, а секој токен е издаден за едно environment.
     95
     963. '''records''' (Computers ↔ Computer_history, 1:N) 
     97   Еден компјутер има повеќе записи со перформансни метрики во текот на времето.
     98
     994. '''runs''' (Computers ↔ Computer_processes, 1:N) 
     100   Еден компјутер има повеќе записи за процеси (снимени во различни моменти).
     101
     1025. '''generates''' (Computers ↔ Sysmon_events, 1:N) 
     103   Еден компјутер генерира повеќе безбедносни (Sysmon) настани.
     104
     1056. '''opens''' (Computers ↔ Network_connections, 1:N) 
     106   Еден компјутер може да има повеќе мрежни конекции.
     107
     1087. '''triggers''' (Computers ↔ Security_alerts, 1:N) 
     109   Еден компјутер може да активира повеќе аларми (alerts) во системот.