wiki:Conceptual_design

Version 9 (modified by 231118, 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)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.