| Version 8 (modified by , 2 weeks ago) ( diff ) |
|---|
ER дијаграм
Податочни барања
Ентитети
1. Tenants
Ентитет кој претставува логички изолирана организација (tenant) во системот.
- id (integer, PK)
- name (text, NOT NULL)
- owner_email (text, NOT NULL)
- created_at (datetime)
2. Users
Ентитет кој чува информации за корисници автентицирани преку Google OAuth.
- id (integer, PK)
- email (text, NOT NULL, UNIQUE)
- name (text)
- picture (text)
- created_at (datetime)
3. Memberships
Асоцијативен ентитет кој поврзува корисници со tenants и ја дефинира нивната улога.
- user_id* (integer, PK, FK → Users.id)
- tenant_id* (integer, PK, FK → Tenants.id)
- role (text, DEFAULT 'admin')
- created_at (datetime)
4. Environments
Ентитет кој дефинира логички околини во рамки на еден tenant (пример: default, staging, prod).
- id (integer, PK)
- tenant_id* (integer, FK → Tenants.id, NOT NULL)
- name (text, NOT NULL)
- created_at (datetime)
*Ограничување:* UNIQUE (tenant_id, name)
5. ENV_Tokens
Ентитет кој чува токени за пристап на клиентските агенти во конкретно environment.
- id (integer, PK)
- tenant_id* (integer, FK → Tenants.id, NOT NULL)
- env_name (text, NOT NULL)
- token (text, NOT NULL, UNIQUE)
- created_at (datetime)
- expires_at (datetime)
6. Computers
Ентитет кој чува податоци за клиентските компјутери што испраќаат логови до серверот.
- id (integer, PK)
- tenant_id* (integer, FK → Tenants.id, NOT NULL)
- env_name (text, NOT NULL)
- name (text, NOT NULL)
- user (text)
- ip (text)
- os (text)
- first_seen (datetime)
- last_seen (datetime)
- sysmon_available (boolean, DEFAULT 0)
*Ограничување:* UNIQUE (tenant_id, name)
7. Computer_history
Ентитет кој чува временски перформансни метрики за компјутерите.
- id (integer, PK)
- computer_id* (integer, FK → Computers.id)
- cpu_usage (real)
- ram_usage (real)
- disk_usage (real)
- network_sent_mb (real)
- network_recv_mb (real)
- timestamp (datetime)
8. Computer_processes_current
Ентитет кој чува тековна snapshot состојба на процеси за секој компјутер.
- id (integer, PK)
- computer_id* (integer, FK → Computers.id)
- pid (integer)
- name (text)
- cpu_percent (real)
- memory_mb (real)
- username (text)
- cmdline (text)
- timestamp (datetime)
9. Computer_processes_history
Ентитет кој чува историски податоци за процеси (опционално, контролирано по environment).
- id (integer, PK)
- computer_id* (integer, FK → Computers.id)
- pid (integer)
- name (text)
- cpu_percent (real)
- memory_mb (real)
- username (text)
- cmdline (text)
- timestamp (datetime)
10. Sysmon_events
Ентитет кој чува Sysmon и безбедносни настани испратени од клиентите.
- id (integer, PK)
- computer_id* (integer, FK → Computers.id)
- event_id (integer)
- event_type (text)
- message (text)
- timestamp (datetime)
- details (text – JSON како string)
11. Network_connections
Ентитет кој чува информации за мрежни конекции на компјутерите.
- id (integer, PK)
- computer_id* (integer, FK → Computers.id)
- pid (integer)
- local_address (text)
- remote_address (text)
- status (text)
- process_name (text)
- timestamp (datetime)
12. Security_alerts
Ентитет кој чува аларми за потенцијални безбедносни инциденти.
- id (integer, PK)
- computer_id* (integer, FK → Computers.id)
- alert_type (text)
- severity (text)
- description (text)
- timestamp (datetime)
- resolved (boolean, DEFAULT 0)
13. Env_settings
Ентитет кој чува конфигурации по environment.
- tenant_id* (integer, PK, FK → Tenants.id)
- env_name* (text, PK)
- save_process_history (boolean, DEFAULT 0)
- created_at (datetime)
- updated_at (datetime)
---
Релации
# Tenants ⟶ Environments (1:N) Еден tenant може да има повеќе environments.
# Tenants ⟷ Users (M:N преку Memberships) Корисник може да припаѓа на повеќе tenants со различни улоги.
# Environments ⟶ ENV_Tokens (1:N) Едно environment може да има повеќе токени за клиентски агенти.
# Environments ⟶ Computers (1:N) Едно environment содржи повеќе компјутери.
# Computers ⟶ Computer_history (1:N) Еден компјутер има повеќе временски перформансни записи.
# Computers ⟶ Computer_processes_current (1:N) Еден компјутер има повеќе тековни процеси.
# Computers ⟶ Computer_processes_history (1:N) Еден компјутер може да има историски процеси (ако е овозможено).
# Computers ⟶ Sysmon_events (1:N) Еден компјутер генерира повеќе Sysmon безбедносни настани.
# Computers ⟶ Network_connections (1:N) Еден компјутер има повеќе активни мрежни конекции.
# Computers ⟶ Security_alerts (1:N) Еден компјутер може да активира повеќе безбедносни аларми.
Забелешка: Атрибутите означени со * се странски клучеви (Foreign Keys).
Attachments (4)
- ERDiagram_NetIntel.drawio (1).png (71.6 KB ) - added by 3 weeks ago.
- ERDiagram_NetIntel.drawio (2).png (85.9 KB ) - added by 3 weeks ago.
- ERDiagram_NetIntel.drawio (3) (1).png (95.5 KB ) - added by 3 weeks ago.
- ERDiagram_NetIntel.drawio (4) (1).png (97.5 KB ) - added by 2 weeks ago.
Download all attachments as: .zip
