Changes between Initial Version and Version 1 of ERModel


Ignore:
Timestamp:
07/07/26 01:02:10 (18 hours ago)
Author:
231118
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ERModel

    v1 v1  
     1== ER дијаграм ==
     2
     3[[Image("ERDiagram_NetIntel.drawio (4) (1).png")]]
     4
     5== Податочни барања ==
     6
     7=== Ентитети ===
     8
     9==== 1. Tenants ====
     10Ентитет кој претставува логички изолирана организација (tenant) во системот.
     11
     12* ''id'' (integer, PK)
     13* ''name'' (text, NOT NULL)
     14* ''owner_email'' (text, NOT NULL)
     15* ''created_at'' (datetime)
     16
     17
     18==== 2. Users ====
     19Ентитет кој чува информации за корисници автентицирани преку Google OAuth.
     20
     21* ''id'' (integer, PK)
     22* ''email'' (text, NOT NULL, UNIQUE)
     23* ''name'' (text)
     24* ''picture'' (text)
     25* ''created_at'' (datetime)
     26
     27
     28
     29==== 3. Memberships ====
     30Асоцијативен ентитет кој поврзува корисници со tenants и ја дефинира нивната улога.
     31
     32* ''user_id''* (integer, PK, FK → Users.id)
     33* ''tenant_id''* (integer, PK, FK → Tenants.id)
     34* ''role'' (text, DEFAULT 'admin')
     35* ''created_at'' (datetime)
     36
     37
     38
     39==== 4. Environments ====
     40Ентитет кој дефинира логички околини во рамки на еден tenant (пример: default, staging, prod).
     41
     42* ''id'' (integer, PK)
     43* ''tenant_id''* (integer, FK → Tenants.id, NOT NULL)
     44* ''name'' (text, NOT NULL)
     45* ''created_at'' (datetime)
     46
     47*Ограничување:* UNIQUE (tenant_id, name)
     48
     49
     50
     51==== 5. ENV_Tokens ====
     52Ентитет кој чува токени за пристап на клиентските агенти во конкретно environment.
     53
     54* ''id'' (integer, PK)
     55* ''tenant_id''* (integer, FK → Tenants.id, NOT NULL)
     56* ''env_name'' (text, NOT NULL)
     57* ''token'' (text, NOT NULL, UNIQUE)
     58* ''created_at'' (datetime)
     59* ''expires_at'' (datetime)
     60
     61
     62
     63==== 6. Computers ====
     64Ентитет кој чува податоци за клиентските компјутери што испраќаат логови до серверот.
     65
     66* ''id'' (integer, PK)
     67* ''tenant_id''* (integer, FK → Tenants.id, NOT NULL)
     68* ''env_name'' (text, NOT NULL)
     69* ''name'' (text, NOT NULL)
     70* ''user'' (text)
     71* ''ip'' (text)
     72* ''os'' (text)
     73* ''first_seen'' (datetime)
     74* ''last_seen'' (datetime)
     75* ''sysmon_available'' (boolean, DEFAULT 0)
     76
     77*Ограничување:* UNIQUE (tenant_id, name)
     78
     79
     80
     81==== 7. Computer_history ====
     82Ентитет кој чува временски перформансни метрики за компјутерите.
     83
     84* ''id'' (integer, PK)
     85* ''computer_id''* (integer, FK → Computers.id)
     86* ''cpu_usage'' (real)
     87* ''ram_usage'' (real)
     88* ''disk_usage'' (real)
     89* ''network_sent_mb'' (real)
     90* ''network_recv_mb'' (real)
     91* ''timestamp'' (datetime)
     92
     93
     94==== 8. Computer_processes_current ====
     95Ентитет кој чува тековна snapshot состојба на процеси за секој компјутер.
     96
     97* ''id'' (integer, PK)
     98* ''computer_id''* (integer, FK → Computers.id)
     99* ''pid'' (integer)
     100* ''name'' (text)
     101* ''cpu_percent'' (real)
     102* ''memory_mb'' (real)
     103* ''username'' (text)
     104* ''cmdline'' (text)
     105* ''timestamp'' (datetime)
     106
     107
     108
     109==== 9. Computer_processes_history ====
     110Ентитет кој чува историски податоци за процеси (опционално, контролирано по environment).
     111
     112* ''id'' (integer, PK)
     113* ''computer_id''* (integer, FK → Computers.id)
     114* ''pid'' (integer)
     115* ''name'' (text)
     116* ''cpu_percent'' (real)
     117* ''memory_mb'' (real)
     118* ''username'' (text)
     119* ''cmdline'' (text)
     120* ''timestamp'' (datetime)
     121
     122
     123
     124==== 10. Sysmon_events ====
     125Ентитет кој чува Sysmon и безбедносни настани испратени од клиентите.
     126
     127* ''id'' (integer, PK)
     128* ''computer_id''* (integer, FK → Computers.id)
     129* ''event_id'' (integer)
     130* ''event_type'' (text)
     131* ''message'' (text)
     132* ''timestamp'' (datetime)
     133* ''details'' (text – JSON како string)
     134
     135
     136
     137==== 11. Network_connections ====
     138Ентитет кој чува информации за мрежни конекции на компјутерите.
     139
     140* ''id'' (integer, PK)
     141* ''computer_id''* (integer, FK → Computers.id)
     142* ''pid'' (integer)
     143* ''local_address'' (text)
     144* ''remote_address'' (text)
     145* ''status'' (text)
     146* ''process_name'' (text)
     147* ''timestamp'' (datetime)
     148
     149
     150
     151==== 12. Security_alerts ====
     152Ентитет кој чува аларми за потенцијални безбедносни инциденти.
     153
     154* ''id'' (integer, PK)
     155* ''computer_id''* (integer, FK → Computers.id)
     156* ''alert_type'' (text)
     157* ''severity'' (text)
     158* ''description'' (text)
     159* ''timestamp'' (datetime)
     160* ''resolved'' (boolean, DEFAULT 0)
     161
     162
     163
     164==== 13. Env_settings ====
     165Ентитет кој чува конфигурации по environment.
     166
     167* ''tenant_id''* (integer, PK, FK → Tenants.id)
     168* ''env_name''* (text, PK)
     169* ''save_process_history'' (boolean, DEFAULT 0)
     170* ''created_at'' (datetime)
     171* ''updated_at'' (datetime)
     172
     173
     174
     175=== Релации ===
     176
     177* Tenants ⟶ Environments (1:N) 
     178Еден tenant може да има повеќе environments.
     179
     180* Tenants ⟷ Users (M:N преку Memberships) 
     181Корисник може да припаѓа на повеќе tenants со различни улоги.
     182
     183* Environments ⟶ ENV_Tokens (1:N) 
     184Едно environment може да има повеќе токени за клиентски агенти.
     185
     186* Environments ⟶ Computers (1:N) 
     187Едно environment содржи повеќе компјутери.
     188
     189* Computers ⟶ Computer_history (1:N) 
     190Еден компјутер има повеќе временски перформансни записи.
     191
     192* Computers ⟶ Computer_processes_current (1:N) 
     193Еден компјутер има повеќе тековни процеси.
     194
     195* Computers ⟶ Computer_processes_history (1:N) 
     196Еден компјутер може да има историски процеси (ако е овозможено).
     197
     198* Computers ⟶ Sysmon_events (1:N) 
     199Еден компјутер генерира повеќе Sysmon безбедносни настани.
     200
     201* Computers ⟶ Network_connections (1:N) 
     202Еден компјутер има повеќе активни мрежни конекции.
     203
     204* Computers ⟶ Security_alerts (1:N) 
     205Еден компјутер може да активира повеќе безбедносни аларми.
     206
     207''Забелешка:'' Атрибутите означени со * се странски клучеви (Foreign Keys).