# malik-xae-12/mymonitor architecture

> Architecture diagram of the GitHub repository malik-xae-12/mymonitor, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/malik-xae-12/mymonitor
- Repository: https://github.com/malik-xae-12/mymonitor

## Overview

This is a Microsoft Fabric pipeline monitoring hub with an administrative console. A user selects a workspace; the frontend loads monitoring data and receives workspace updates, then presents pipeline hierarchy, runs, schedules, incidents and metrics. Backend routes combine Fabric queries with cached history and configuration, while background polling and alert monitoring support live operations. The tree and excerpts identify auth, RBAC, directory search, table-log and AI-diagnostic capabilities, but do not show all their internal wiring; those branches are represented only where paths and calls are supported.

Main entry points: [`backend/app/api/routes_workspaces.py`](https://github.com/malik-xae-12/mymonitor/blob/main/backend/app/api/routes_workspaces.py) (Workspace routes), [`backend/app/main.py`](https://github.com/malik-xae-12/mymonitor/blob/main/backend/app/main.py) (Service startup), [`frontend/src/App.jsx`](https://github.com/malik-xae-12/mymonitor/blob/main/frontend/src/App.jsx) (Application shell), [`backend/app/services/db_service.py`](https://github.com/malik-xae-12/mymonitor/blob/main/backend/app/services/db_service.py) (Monitoring data access)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Monitoring interface"]
  node_app["Application shell<br/>[App.jsx]"]
  node_monitor_hook["Workspace monitor"]
  node_pipeline_ui["Pipeline monitoring"]
  node_pipeline_row["Pipeline details<br/>[PipelineRow.jsx]"]
  node_schedules_ui["Schedule views"]
  node_admin_ui["Admin console<br/>[AdminConsole.jsx]"]
  node_teams_ui["Pipeline assignments"]
  node_api_client["API client<br/>[apiClient.js]"]
end

subgraph group_backend["Monitoring backend"]
  node_workspaces_api["Workspace routes"]
  node_directory_api["Directory routes"]
  node_main["Service startup<br/>[main.py]"]
  node_fabric["Fabric client<br/>[fabric_client.py]"]
  node_poller["Leased poller<br/>[leased_poller.py]"]
  node_alerts["SLA alerts<br/>[alert_service.py]"]
  node_tree_builder["Pipeline tree builder<br/>[tree_builder.py]"]
  node_ai_diag["AI diagnostics"]
  node_table_logs["Table log service"]
end

subgraph group_state["Persistence and realtime"]
  node_db_service["Monitoring data access<br/>[db_service.py]"]
  node_sqlite[("SQLite store")]
  node_websocket_api["Workspace WebSocket<br/>[websocket_hub.py]"]
  node_connections["Connection manager"]
end

subgraph group_identity["Identity and administration"]
  node_auth["Authentication<br/>[service.py]"]
  node_users["User and role service<br/>[service.py]"]
  node_user_repo["User repository<br/>[repository.py]"]
  node_directory["Directory service"]
end

subgraph group_integrations["External services"]
  node_fabric_service["Microsoft Fabric"]
  node_entra["Entra ID"]
  node_gemini["Gemini service"]
end

node_user(("Monitoring user"))

node_user -->|"uses"| node_app
node_app -->|"loads monitoring"| node_monitor_hook
node_app -->|"renders pipelines"| node_pipeline_ui
node_pipeline_ui -->|"renders rows"| node_pipeline_row
node_pipeline_row -->|"opens schedules"| node_schedules_ui
node_monitor_hook -->|"fetches snapshots"| node_workspaces_api
node_monitor_hook -->|"opens workspace socket"| node_websocket_api
node_workspaces_api -->|"queries Fabric"| node_fabric
node_workspaces_api -->|"reads cached data"| node_db_service
node_workspaces_api -->|"builds date tree"| node_tree_builder
node_db_service -->|"reads and writes"| node_sqlite
node_main -->|"initializes store"| node_db_service
node_main -->|"starts polling"| node_poller
node_main -->|"starts alerts"| node_alerts
node_poller -->|"polls Fabric"| node_fabric
node_alerts -->|"reads monitoring data"| node_db_service
node_websocket_api -->|"manages clients"| node_connections
node_admin_ui -->|"shows assignments"| node_teams_ui
node_teams_ui -->|"loads assignments"| node_workspaces_api
node_app -->|"uses identity"| node_auth
node_auth -->|"resolves user"| node_users
node_users -->|"reads and writes"| node_user_repo
node_user_repo -->|"reads and writes"| node_sqlite
node_directory_api -->|"searches users"| node_directory
node_directory -->|"searches directory"| node_entra
node_workspaces_api -->|"serves table logs"| node_table_logs
node_main -->|"dispatches diagnostics"| node_ai_diag
node_ai_diag -.->|"analyzes failures"| node_gemini
node_fabric -->|"calls API"| node_fabric_service

click node_app "https://github.com/malik-xae-12/mymonitor/blob/main/frontend/src/App.jsx"
click node_monitor_hook "https://github.com/malik-xae-12/mymonitor/blob/main/frontend/src/hooks/useWorkspaceMonitoring.js"
click node_pipeline_ui "https://github.com/malik-xae-12/mymonitor/blob/main/frontend/src/components/PipelineTreeTable.jsx"
click node_pipeline_row "https://github.com/malik-xae-12/mymonitor/blob/main/frontend/src/components/PipelineRow.jsx"
click node_schedules_ui "https://github.com/malik-xae-12/mymonitor/blob/main/frontend/src/components/PipelineScheduleModal.jsx"
click node_admin_ui "https://github.com/malik-xae-12/mymonitor/blob/main/frontend/src/features/admin/AdminConsole.jsx"
click node_teams_ui "https://github.com/malik-xae-12/mymonitor/blob/main/frontend/src/features/admin/PipelineTeamsPage.jsx"
click node_api_client "https://github.com/malik-xae-12/mymonitor/blob/main/frontend/src/services/api/apiClient.js"
click node_workspaces_api "https://github.com/malik-xae-12/mymonitor/blob/main/backend/app/api/routes_workspaces.py"
click node_directory_api "https://github.com/malik-xae-12/mymonitor/blob/main/backend/app/api/routes_directory.py"
click node_main "https://github.com/malik-xae-12/mymonitor/blob/main/backend/app/main.py"
click node_fabric "https://github.com/malik-xae-12/mymonitor/blob/main/backend/app/services/fabric_client.py"
click node_poller "https://github.com/malik-xae-12/mymonitor/blob/main/backend/app/services/leased_poller.py"
click node_alerts "https://github.com/malik-xae-12/mymonitor/blob/main/backend/app/services/alert_service.py"
click node_tree_builder "https://github.com/malik-xae-12/mymonitor/blob/main/backend/app/services/tree_builder.py"
click node_ai_diag "https://github.com/malik-xae-12/mymonitor/blob/main/backend/app/services/ai_diagnostic_service.py"
click node_table_logs "https://github.com/malik-xae-12/mymonitor/blob/main/backend/app/services/table_log_service.py"
click node_db_service "https://github.com/malik-xae-12/mymonitor/blob/main/backend/app/services/db_service.py"
click node_websocket_api "https://github.com/malik-xae-12/mymonitor/blob/main/backend/app/api/websocket_hub.py"
click node_connections "https://github.com/malik-xae-12/mymonitor/blob/main/backend/app/services/connection_manager.py"
click node_auth "https://github.com/malik-xae-12/mymonitor/blob/main/backend/app/modules/auth/service.py"
click node_users "https://github.com/malik-xae-12/mymonitor/blob/main/backend/app/modules/users/service.py"
click node_user_repo "https://github.com/malik-xae-12/mymonitor/blob/main/backend/app/modules/users/repository.py"
click node_directory "https://github.com/malik-xae-12/mymonitor/blob/main/backend/app/services/directory_service.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_app,node_monitor_hook,node_pipeline_ui,node_pipeline_row,node_schedules_ui,node_admin_ui,node_teams_ui,node_api_client,node_user toneBlue
class node_workspaces_api,node_directory_api,node_main,node_fabric,node_poller,node_alerts,node_tree_builder,node_ai_diag,node_table_logs toneAmber
class node_db_service,node_sqlite,node_websocket_api,node_connections toneMint
class node_auth,node_users,node_user_repo,node_directory toneRose
class node_fabric_service,node_entra,node_gemini toneIndigo
```

## Components

### Monitoring interface

- [Application shell](https://github.com/malik-xae-12/mymonitor/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`
- [Workspace monitor](https://github.com/malik-xae-12/mymonitor/blob/main/frontend/src/hooks/useWorkspaceMonitoring.js): `frontend/src/hooks/useWorkspaceMonitoring.js`
- [Pipeline monitoring](https://github.com/malik-xae-12/mymonitor/blob/main/frontend/src/components/PipelineTreeTable.jsx): `frontend/src/components/PipelineTreeTable.jsx`
- [Pipeline details](https://github.com/malik-xae-12/mymonitor/blob/main/frontend/src/components/PipelineRow.jsx): `frontend/src/components/PipelineRow.jsx`
- [Schedule views](https://github.com/malik-xae-12/mymonitor/blob/main/frontend/src/components/PipelineScheduleModal.jsx): `frontend/src/components/PipelineScheduleModal.jsx`
- [Admin console](https://github.com/malik-xae-12/mymonitor/blob/main/frontend/src/features/admin/AdminConsole.jsx): `frontend/src/features/admin/AdminConsole.jsx`
- [Pipeline assignments](https://github.com/malik-xae-12/mymonitor/blob/main/frontend/src/features/admin/PipelineTeamsPage.jsx): `frontend/src/features/admin/PipelineTeamsPage.jsx`
- [API client](https://github.com/malik-xae-12/mymonitor/blob/main/frontend/src/services/api/apiClient.js): `frontend/src/services/api/apiClient.js`

### Monitoring backend

- [Workspace routes](https://github.com/malik-xae-12/mymonitor/blob/main/backend/app/api/routes_workspaces.py): `backend/app/api/routes_workspaces.py`
- [Directory routes](https://github.com/malik-xae-12/mymonitor/blob/main/backend/app/api/routes_directory.py): `backend/app/api/routes_directory.py`
- [Service startup](https://github.com/malik-xae-12/mymonitor/blob/main/backend/app/main.py): `backend/app/main.py`
- [Fabric client](https://github.com/malik-xae-12/mymonitor/blob/main/backend/app/services/fabric_client.py): `backend/app/services/fabric_client.py`
- [Leased poller](https://github.com/malik-xae-12/mymonitor/blob/main/backend/app/services/leased_poller.py): `backend/app/services/leased_poller.py`
- [SLA alerts](https://github.com/malik-xae-12/mymonitor/blob/main/backend/app/services/alert_service.py): `backend/app/services/alert_service.py`
- [Pipeline tree builder](https://github.com/malik-xae-12/mymonitor/blob/main/backend/app/services/tree_builder.py): `backend/app/services/tree_builder.py`
- [AI diagnostics](https://github.com/malik-xae-12/mymonitor/blob/main/backend/app/services/ai_diagnostic_service.py): `backend/app/services/ai_diagnostic_service.py`
- [Table log service](https://github.com/malik-xae-12/mymonitor/blob/main/backend/app/services/table_log_service.py): `backend/app/services/table_log_service.py`

### Persistence and realtime

- [Monitoring data access](https://github.com/malik-xae-12/mymonitor/blob/main/backend/app/services/db_service.py): `backend/app/services/db_service.py`
- **SQLite store**
- [Workspace WebSocket](https://github.com/malik-xae-12/mymonitor/blob/main/backend/app/api/websocket_hub.py): `backend/app/api/websocket_hub.py`
- [Connection manager](https://github.com/malik-xae-12/mymonitor/blob/main/backend/app/services/connection_manager.py): `backend/app/services/connection_manager.py`

### Identity and administration

- [Authentication](https://github.com/malik-xae-12/mymonitor/blob/main/backend/app/modules/auth/service.py): `backend/app/modules/auth/service.py`
- [User and role service](https://github.com/malik-xae-12/mymonitor/blob/main/backend/app/modules/users/service.py): `backend/app/modules/users/service.py`
- [User repository](https://github.com/malik-xae-12/mymonitor/blob/main/backend/app/modules/users/repository.py): `backend/app/modules/users/repository.py`
- [Directory service](https://github.com/malik-xae-12/mymonitor/blob/main/backend/app/services/directory_service.py): `backend/app/services/directory_service.py`

### External services

- **Microsoft Fabric**
- **Entra ID**
- **Gemini service**

### Other components

- **Monitoring user**

## Connections

- Monitoring user → Application shell: uses
- Application shell → Workspace monitor: loads monitoring
- Application shell → Pipeline monitoring: renders pipelines
- Pipeline monitoring → Pipeline details: renders rows
- Pipeline details → Schedule views: opens schedules
- Workspace monitor → Workspace routes: fetches snapshots
- Workspace monitor → Workspace WebSocket: opens workspace socket
- Workspace routes → Fabric client: queries Fabric
- Workspace routes → Monitoring data access: reads cached data
- Workspace routes → Pipeline tree builder: builds date tree
- Monitoring data access → SQLite store: reads and writes
- Service startup → Monitoring data access: initializes store
- Service startup → Leased poller: starts polling
- Service startup → SLA alerts: starts alerts
- Leased poller → Fabric client: polls Fabric
- SLA alerts → Monitoring data access: reads monitoring data
- Workspace WebSocket → Connection manager: manages clients
- Admin console → Pipeline assignments: shows assignments
- Pipeline assignments → Workspace routes: loads assignments
- Application shell → Authentication: uses identity
- Authentication → User and role service: resolves user
- User and role service → User repository: reads and writes
- User repository → SQLite store: reads and writes
- Directory routes → Directory service: searches users
- Directory service → Entra ID: searches directory
- Workspace routes → Table log service: serves table logs
- Service startup → AI diagnostics: dispatches diagnostics
- AI diagnostics → Gemini service: analyzes failures
- Fabric client → Microsoft Fabric: calls API
