wiki:Conceptual_design

Version 4 (modified by 231118, 3 weeks ago) ( diff )

--

ER дијаграм

No image "ERDiagram_NetIntel.drawio.png" attached to Conceptual_design

Податочни барања

Ентитети

  1. Tenants – ентитет кој претставува логички изолирана организација (tenant) во системот.
    • id (integer, PK)
    • name (text, not null)
    • owner_email (text, not null)
    • created_at (datetime, not null)
  1. Users – ентитет кој чува информации за корисници автентицирани преку Google OAuth.
    • id (integer, PK)
    • email (text, not null, UNIQUE)
    • name (text)
    • picture (text)
    • created_at (datetime, not null)
  1. Memberships – асоцијативен ентитет кој поврзува корисници со tenants и дефинира нивна улога.
    • user_id* (integer, PK, FK → Users.id)
    • tenant_id* (integer, PK, FK → Tenants.id)
    • role (text, not null)
    • created_at (datetime, not null)
  1. Environments – ентитет кој чува информации за логички околини во рамки на еден tenant.
    • id (integer, PK)
    • name (text, not null)
    • created_at (datetime, not null)
    • tenant_id* (integer, FK → Tenants.id, not null)
    • (UNIQUE: tenant_id + name)
  1. ENV_Tokens – ентитет кој чува токени за пристап на клиентите во конкретно environment.
    • id (integer, PK)
    • env_name* (text, FK → Environments.name, not null)
    • tenant_id* (integer, FK → Tenants.id, not null)
    • token (text, not null, UNIQUE)
    • created_at (datetime, not null)
    • expires_at (datetime)
  1. Admin_sessions – ентитет кој чува администраторски сесии за управување со системот.
    • id (integer, PK)
    • token (text, not null, UNIQUE)
    • tenant_id* (integer, FK → Tenants.id, not null)
    • created_at (datetime, not null)
  1. Computers – ентитет кој чува податоци за уредите (клиенти) што испраќаат логови до серверот.
    • id (integer, PK)
    • name (text, not null)
    • user (text)
    • ip (text)
    • os (text)
    • first_seen (datetime)
    • last_seen (datetime)
    • sysmon_available (boolean, default 0)
    • env_name* (text, FK → Environments.name, not null)
    • tenant_id* (integer, FK → Tenants.id, not null)
    • (UNIQUE: tenant_id + name)
  1. Computer_history – ентитет кој чува временски перформансни метрики за компјутерот.
    • id (integer, PK)
    • computer_id* (integer, FK → Computers.id, not null)
    • cpu_usage (real)
    • ram_usage (real)
    • disk_usage (real)
    • network_sent_mb (real)
    • network_recv_mb (real)
    • timestamp (datetime)
  1. Computer_processes – ентитет кој чува податоци за процеси на компјутерот.
    • id (integer, PK)
    • computer_id* (integer, FK → Computers.id, not null)
    • pid (integer)
    • name (text)
    • cpu_percent (real)
    • memory_mb (real)
    • username (text)
    • cmdline (text)
    • timestamp (datetime)
  1. Sysmon_events – ентитет кој чува Sysmon/безбедносни настани испратени од клиентот.
    • id (integer, PK)
    • computer_id* (integer, FK → Computers.id, not null)
    • event_id (integer)
    • event_type (text)
    • message (text)
    • timestamp (datetime)
    • details (text) (JSON како string)
  1. Network_connections – ентитет кој чува мрежни конекции детектирани на компјутерот.
    • id (integer, PK)
    • computer_id* (integer, FK → Computers.id, not null)
    • pid (integer)
    • local_address (text)
    • remote_address (text)
    • status (text)
    • process_name (text)
    • timestamp (datetime)
  1. Security_alerts – ентитет кој чува аларми за потенцијални безбедносни инциденти.
    • id (integer, PK)
    • computer_id* (integer, FK → Computers.id, not null)
    • alert_type (text)
    • severity (text)
    • description (text)
    • timestamp (datetime)
    • resolved (boolean, default 0)

Забелешка: Атрибутите означени со * се странски клучеви (Foreign Keys).

Релации

  1. owns (Tenants ↔ Environments, 1:N) Еден tenant може да има повеќе environments, а секое environment припаѓа на еден tenant.
  1. has (Tenants ↔ Users, M:N преку Memberships) Еден tenant може да има повеќе корисници, а еден корисник може да припаѓа на повеќе tenants со различни улоги.
  1. issues (Environments ↔ ENV_Tokens, 1:N) Едно environment може да има повеќе токени за пристап.
  1. contains (Environments ↔ Computers, 1:N) Едно environment содржи повеќе компјутери, а секој компјутер припаѓа на едно environment.
  1. records (Computers ↔ Computer_history, 1:N) Еден компјутер има повеќе записи со перформансни метрики во текот на времето.
  1. runs (Computers ↔ Computer_processes, 1:N) Еден компјутер има повеќе записи за процеси.
  1. generates (Computers ↔ Sysmon_events, 1:N) Еден компјутер генерира повеќе безбедносни (Sysmon) настани.
  1. opens (Computers ↔ Network_connections, 1:N) Еден компјутер може да има повеќе мрежни конекции.
  1. triggers (Computers ↔ Security_alerts, 1:N) Еден компјутер може да активира повеќе безбедносни аларми.

Attachments (4)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.