wiki:ERModel

Version 2 (modified by 231118, 15 hours 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).

Entity-Relationship Model History

Верзија 1

Ова е иницијалната верзија на дијаграмот со соодветните табели.

Верзија 2

Ова е подобрената верија на дијаграмот. Додадени се табелите env_settings, computer_proccess_current и computer_proccess_history. Овие табели се додадени со цел имплементирање на функционалност каде корисникот би можел да одлучи дали сака да ги чува трајно податоците собрани од компјутерот (во тој случај би се зачувале во computer_proccess_history) или пак да се зачуваат привремено и по некое време би се избришале (во тој случај би се зачувале во computer_proccess_current).

Attachments (4)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.