# variamosple/variamos_ms_admin architecture

> Architecture diagram of the GitHub repository variamosple/variamos_ms_admin, 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/variamosple/variamos_ms_admin
- Repository: https://github.com/variamosple/variamos_ms_admin

## Overview

VariaMos Admin Microservice exposes administrative APIs for identity, access control, configuration, metrics, microservices, visits, and bug tracking. The main flow is an HTTP request through the Express entry points into a domain use case, then a data provider or external integration; persistence is PostgreSQL-backed. The tree documents broad feature coverage, while sampled source confirms selected auth, query, and bug repository behavior. Composition wiring and most feature-specific routes were not sampled, so uncertain call links are omitted.

Main entry points: [`src/EntryPoints`](https://github.com/variamosple/variamos_ms_admin/tree/main/src/EntryPoints) (Feature Routers), [`src/Domain/Bug/UseCase`](https://github.com/variamosple/variamos_ms_admin/tree/main/src/Domain/Bug/UseCase) (Bug Workflow), [`src/Domain/User/UseCase`](https://github.com/variamosple/variamos_ms_admin/tree/main/src/Domain/User/UseCase) (Identity Use Cases), [`src/Infrastructure/VariamosORM.ts`](https://github.com/variamosple/variamos_ms_admin/blob/main/src/Infrastructure/VariamosORM.ts) (ORM Adapter)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["HTTP API"]
  node_server["Express Server<br/>[server.ts]"]
  node_routers["Feature Routers"]
end

subgraph group_identity["Identity and Admin"]
  node_identity_uc["Identity Use Cases"]
  node_access_uc["Roles and Permissions"]
  node_micro_uc["Microservice Management"]
  node_config_uc["Configuration"]
  node_metrics_uc["Metrics Queries"]
  node_countries_uc["Country Queries"]
  node_visits_uc["Visit Tracking<br/>[VisitUseCase.ts]"]
end

subgraph group_bugs["Bug Tracking"]
  node_bug_uc["Bug Workflow"]
end

subgraph group_integrations["External Integrations"]
  node_github["GitHub Issues"]
  node_mail["Mail Service<br/>[MailService.ts]"]
  node_notifications["Notifications"]
  node_config_events["Config Events"]
  node_storage_service["Disk Attachments"]
  node_docker["Docker Service"]
end

subgraph group_storage["Persistence"]
  node_user_repo["User Repository<br/>[UserRepository.ts]"]
  node_bug_repo["Bug Repository<br/>[BugRepository.ts]"]
  node_orm["ORM Adapter<br/>[VariamosORM.ts]"]
  node_postgres[("PostgreSQL")]
end

node_client(("API Client"))

node_client -->|"sends requests"| node_server
node_server -->|"mounts routes"| node_routers
node_routers -->|"handles identity"| node_identity_uc
node_routers -->|"handles access"| node_access_uc
node_routers -->|"handles services"| node_micro_uc
node_routers -->|"handles config"| node_config_uc
node_routers -->|"queries metrics"| node_metrics_uc
node_routers -->|"queries countries"| node_countries_uc
node_routers -->|"records visits"| node_visits_uc
node_routers -->|"handles bugs"| node_bug_uc
node_identity_uc -->|"reads and writes"| node_user_repo
node_bug_uc -->|"reads and writes"| node_bug_repo
node_bug_repo -->|"queries models"| node_orm
node_user_repo -->|"queries models"| node_orm
node_orm -->|"persists data"| node_postgres
node_bug_uc -.->|"syncs issues"| node_github
node_bug_uc -->|"manages files"| node_storage_service
node_config_uc -.->|"publishes changes"| node_config_events
node_routers -.->|"sends notifications"| node_notifications
node_identity_uc -.->|"sends mail"| node_mail
node_micro_uc -.->|"manages services"| node_docker

click node_server "https://github.com/variamosple/variamos_ms_admin/blob/main/src/server.ts"
click node_routers "https://github.com/variamosple/variamos_ms_admin/tree/main/src/EntryPoints"
click node_identity_uc "https://github.com/variamosple/variamos_ms_admin/tree/main/src/Domain/User/UseCase"
click node_user_repo "https://github.com/variamosple/variamos_ms_admin/blob/main/src/DataProviders/User/UserRepository.ts"
click node_access_uc "https://github.com/variamosple/variamos_ms_admin/tree/main/src/Domain/Role/UseCase"
click node_micro_uc "https://github.com/variamosple/variamos_ms_admin/tree/main/src/Domain/MicroService/UseCase"
click node_config_uc "https://github.com/variamosple/variamos_ms_admin/blob/main/src/Domain/Configuration/UseCase/ConfigurationUseCase.ts"
click node_metrics_uc "https://github.com/variamosple/variamos_ms_admin/blob/main/src/Domain/Metrics/UseCase/MetricsQueryUseCase.ts"
click node_countries_uc "https://github.com/variamosple/variamos_ms_admin/blob/main/src/Domain/Countries/UseCase/CountriesQueryUseCase.ts"
click node_visits_uc "https://github.com/variamosple/variamos_ms_admin/blob/main/src/Domain/Visit/UseCase/VisitUseCase.ts"
click node_bug_uc "https://github.com/variamosple/variamos_ms_admin/tree/main/src/Domain/Bug/UseCase"
click node_bug_repo "https://github.com/variamosple/variamos_ms_admin/blob/main/src/DataProviders/Bug/BugRepository.ts"
click node_github "https://github.com/variamosple/variamos_ms_admin/blob/main/src/Infrastructure/GitHub/GitHubIssuesService.ts"
click node_mail "https://github.com/variamosple/variamos_ms_admin/blob/main/src/Infrastructure/Mail/MailService.ts"
click node_notifications "https://github.com/variamosple/variamos_ms_admin/blob/main/src/Infrastructure/Notification/NotificationClient.ts"
click node_config_events "https://github.com/variamosple/variamos_ms_admin/tree/main/src/Infrastructure/Messaging"
click node_storage_service "https://github.com/variamosple/variamos_ms_admin/blob/main/src/Infrastructure/Storage/DiskStorageService.ts"
click node_orm "https://github.com/variamosple/variamos_ms_admin/blob/main/src/Infrastructure/VariamosORM.ts"

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_server,node_routers,node_client toneBlue
class node_identity_uc,node_access_uc,node_micro_uc,node_config_uc,node_metrics_uc,node_countries_uc,node_visits_uc toneAmber
class node_bug_uc toneMint
class node_github,node_mail,node_notifications,node_config_events,node_storage_service,node_docker toneRose
class node_user_repo,node_bug_repo,node_orm,node_postgres toneIndigo
```

## Components

### HTTP API

- [Express Server](https://github.com/variamosple/variamos_ms_admin/blob/main/src/server.ts): `src/server.ts`
- [Feature Routers](https://github.com/variamosple/variamos_ms_admin/tree/main/src/EntryPoints): `src/EntryPoints`

### Identity and Admin

- [Identity Use Cases](https://github.com/variamosple/variamos_ms_admin/tree/main/src/Domain/User/UseCase): `src/Domain/User/UseCase`
- [Roles and Permissions](https://github.com/variamosple/variamos_ms_admin/tree/main/src/Domain/Role/UseCase): `src/Domain/Role/UseCase`
- [Microservice Management](https://github.com/variamosple/variamos_ms_admin/tree/main/src/Domain/MicroService/UseCase): `src/Domain/MicroService/UseCase`
- [Configuration](https://github.com/variamosple/variamos_ms_admin/blob/main/src/Domain/Configuration/UseCase/ConfigurationUseCase.ts): `src/Domain/Configuration/UseCase/ConfigurationUseCase.ts`
- [Metrics Queries](https://github.com/variamosple/variamos_ms_admin/blob/main/src/Domain/Metrics/UseCase/MetricsQueryUseCase.ts): `src/Domain/Metrics/UseCase/MetricsQueryUseCase.ts`
- [Country Queries](https://github.com/variamosple/variamos_ms_admin/blob/main/src/Domain/Countries/UseCase/CountriesQueryUseCase.ts): `src/Domain/Countries/UseCase/CountriesQueryUseCase.ts`
- [Visit Tracking](https://github.com/variamosple/variamos_ms_admin/blob/main/src/Domain/Visit/UseCase/VisitUseCase.ts): `src/Domain/Visit/UseCase/VisitUseCase.ts`

### Bug Tracking

- [Bug Workflow](https://github.com/variamosple/variamos_ms_admin/tree/main/src/Domain/Bug/UseCase): `src/Domain/Bug/UseCase`

### External Integrations

- [GitHub Issues](https://github.com/variamosple/variamos_ms_admin/blob/main/src/Infrastructure/GitHub/GitHubIssuesService.ts): `src/Infrastructure/GitHub/GitHubIssuesService.ts`
- [Mail Service](https://github.com/variamosple/variamos_ms_admin/blob/main/src/Infrastructure/Mail/MailService.ts): `src/Infrastructure/Mail/MailService.ts`
- [Notifications](https://github.com/variamosple/variamos_ms_admin/blob/main/src/Infrastructure/Notification/NotificationClient.ts): `src/Infrastructure/Notification/NotificationClient.ts`
- [Config Events](https://github.com/variamosple/variamos_ms_admin/tree/main/src/Infrastructure/Messaging): `src/Infrastructure/Messaging`
- [Disk Attachments](https://github.com/variamosple/variamos_ms_admin/blob/main/src/Infrastructure/Storage/DiskStorageService.ts): `src/Infrastructure/Storage/DiskStorageService.ts`
- **Docker Service**

### Persistence

- [User Repository](https://github.com/variamosple/variamos_ms_admin/blob/main/src/DataProviders/User/UserRepository.ts): `src/DataProviders/User/UserRepository.ts`
- [Bug Repository](https://github.com/variamosple/variamos_ms_admin/blob/main/src/DataProviders/Bug/BugRepository.ts): `src/DataProviders/Bug/BugRepository.ts`
- [ORM Adapter](https://github.com/variamosple/variamos_ms_admin/blob/main/src/Infrastructure/VariamosORM.ts): `src/Infrastructure/VariamosORM.ts`
- **PostgreSQL**

### Other components

- **API Client**

## Connections

- API Client → Express Server: sends requests
- Express Server → Feature Routers: mounts routes
- Feature Routers → Identity Use Cases: handles identity
- Feature Routers → Roles and Permissions: handles access
- Feature Routers → Microservice Management: handles services
- Feature Routers → Configuration: handles config
- Feature Routers → Metrics Queries: queries metrics
- Feature Routers → Country Queries: queries countries
- Feature Routers → Visit Tracking: records visits
- Feature Routers → Bug Workflow: handles bugs
- Identity Use Cases → User Repository: reads and writes
- Bug Workflow → Bug Repository: reads and writes
- Bug Repository → ORM Adapter: queries models
- User Repository → ORM Adapter: queries models
- ORM Adapter → PostgreSQL: persists data
- Bug Workflow → GitHub Issues: syncs issues
- Bug Workflow → Disk Attachments: manages files
- Configuration → Config Events: publishes changes
- Feature Routers → Notifications: sends notifications
- Identity Use Cases → Mail Service: sends mail
- Microservice Management → Docker Service: manages services
