# sourabhbarwal/idp architecture

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

## Overview

IDP is a self-service developer portal: engineers use the React dashboard to register services, scaffold repositories, deploy workloads, and inspect operational health. The backend separates these capabilities into HTTP services; the README documents shared gateway routing and observability, while sampled sources confirm key request handlers and the Copilot’s live context calls. Some README-listed subsystems have no sampled implementation excerpts, so their documented capabilities are represented without speculative internal wiring.

Main entry points: [`frontend/src/lib/api-client.ts`](https://github.com/sourabhbarwal/idp/blob/main/frontend/src/lib/api-client.ts) (API client), [`backend/ai-copilot-service/src/application/platform-context.service.ts`](https://github.com/sourabhbarwal/idp/blob/main/backend/ai-copilot-service/src/application/platform-context.service.ts) (Platform context), [`backend/alert-service/src/infrastructure/web/alerts.controller.ts`](https://github.com/sourabhbarwal/idp/blob/main/backend/alert-service/src/infrastructure/web/alerts.controller.ts) (Alert rules and events), [`backend/ai-copilot-service/src/infrastructure/web/copilot.controller.ts`](https://github.com/sourabhbarwal/idp/blob/main/backend/ai-copilot-service/src/infrastructure/web/copilot.controller.ts) (Copilot chat)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_portal["Developer portal"]
  node_frontend["React dashboard<br/>[App.tsx]"]
  node_api["API client<br/>[api-client.ts]"]
  node_gateway["Nginx gateway"]
  node_authui["Sign in / register<br/>[LoginPage.tsx]"]
  node_catalogui["Service catalog UI"]
  node_copilotui["AI Copilot UI<br/>[CopilotPage.tsx]"]
end

subgraph group_identity["Identity and catalog"]
  node_authapi["Auth and user API<br/>[auth.controller.ts]"]
  node_userapi["User administration"]
  node_catalogapi["Service catalog API"]
  node_catalogstore[("Catalog persistence")]
end

subgraph group_delivery["Developer delivery"]
  node_templates["Project templates"]
  node_repository["Repository provisioning"]
  node_deployui["Deployment API"]
end

subgraph group_operations["Operations and insights"]
  node_monitoring["Metrics queries"]
  node_logging["Log queries"]
  node_alerts["Alert rules and events"]
  node_notifications["Notifications"]
  node_audit["Audit queries"]
  node_cost["Cost analysis"]
  node_dora["DORA metrics"]
  node_copilot["Copilot chat"]
  node_context["Platform context"]
end

subgraph group_platform["Platform services"]
  node_realtime["Realtime events<br/>[events.gateway.ts]"]
  node_auditstore[("Shared PostgreSQL")]
end

node_developer(("Developer"))
node_github["GitHub"]
node_kubernetes["Kubernetes"]
node_prometheus[("Prometheus")]
node_loki[("Loki")]
node_alertmanager["AlertManager"]
node_groq["Groq AI"]

node_developer -->|"uses"| node_frontend
node_frontend -->|"requests"| node_api
node_api -->|"sends HTTP"| node_gateway
node_gateway -->|"routes requests"| node_authapi
node_gateway -->|"routes requests"| node_userapi
node_gateway -->|"routes requests"| node_catalogapi
node_gateway -->|"routes requests"| node_deployui
node_gateway -->|"routes requests"| node_repository
node_gateway -->|"routes requests"| node_alerts
node_gateway -->|"routes requests"| node_monitoring
node_gateway -->|"routes requests"| node_logging
node_gateway -->|"routes requests"| node_copilot
node_gateway -->|"routes requests"| node_dora
node_gateway -->|"routes requests"| node_cost
node_gateway -->|"routes requests"| node_audit
node_authui -->|"submits credentials"| node_api
node_catalogui -->|"requests catalog"| node_api
node_copilotui -->|"sends chat"| node_api
node_authapi -->|"stores identity data"| node_auditstore
node_userapi -->|"reads user data"| node_auditstore
node_catalogapi -->|"calls use cases"| node_catalogstore
node_catalogstore -->|"reads and writes"| node_auditstore
node_repository -->|"provisions repositories"| node_github
node_deployui -->|"manages deployments"| node_kubernetes
node_monitoring -->|"queries metrics"| node_prometheus
node_logging -->|"queries logs"| node_loki
node_alertmanager -->|"posts webhook"| node_alerts
node_alerts -.->|"dispatches alerts"| node_notifications
node_audit -->|"queries audit schemas"| node_auditstore
node_copilot -->|"requests context"| node_context
node_context -->|"fetches active alerts"| node_alerts
node_context -->|"fetches cost summary"| node_cost
node_context -->|"fetches service metrics"| node_monitoring
node_copilot -->|"generates responses"| node_groq
node_realtime -->|"pushes events"| node_frontend
node_templates -->|"returns project archive"| node_developer

click node_frontend "https://github.com/sourabhbarwal/idp/blob/main/frontend/src/App.tsx"
click node_api "https://github.com/sourabhbarwal/idp/blob/main/frontend/src/lib/api-client.ts"
click node_authui "https://github.com/sourabhbarwal/idp/blob/main/frontend/src/pages/auth/LoginPage.tsx"
click node_authapi "https://github.com/sourabhbarwal/idp/blob/main/backend/auth-service/src/infrastructure/web/auth.controller.ts"
click node_userapi "https://github.com/sourabhbarwal/idp/blob/main/backend/auth-service/src/infrastructure/web/users.controller.ts"
click node_catalogui "https://github.com/sourabhbarwal/idp/blob/main/frontend/src/pages/catalog/ServiceListPage.tsx"
click node_catalogapi "https://github.com/sourabhbarwal/idp/blob/main/backend/service-catalog-service/src/infrastructure/web/services.controller.ts"
click node_catalogstore "https://github.com/sourabhbarwal/idp/blob/main/backend/service-catalog-service/src/infrastructure/persistence/repositories/service.repository.adapter.ts"
click node_templates "https://github.com/sourabhbarwal/idp/blob/main/backend/template-service/src/application/use-cases/generate-template.use-case.ts"
click node_repository "https://github.com/sourabhbarwal/idp/blob/main/backend/repository-service/src/infrastructure/web/repositories.controller.ts"
click node_deployui "https://github.com/sourabhbarwal/idp/blob/main/backend/deployment-service/src/infrastructure/web/deployments.controller.ts"
click node_monitoring "https://github.com/sourabhbarwal/idp/blob/main/backend/monitoring-service/src/application/prometheus-query.service.ts"
click node_logging "https://github.com/sourabhbarwal/idp/blob/main/backend/logging-service/src/application/loki-query.service.ts"
click node_alerts "https://github.com/sourabhbarwal/idp/blob/main/backend/alert-service/src/infrastructure/web/alerts.controller.ts"
click node_notifications "https://github.com/sourabhbarwal/idp/blob/main/backend/notification-service/src/application/services/notification-dispatcher.service.ts"
click node_audit "https://github.com/sourabhbarwal/idp/blob/main/backend/audit-service/src/application/audit-query.service.ts"
click node_cost "https://github.com/sourabhbarwal/idp/blob/main/backend/cost-service/src/application/cost-analysis.service.ts"
click node_dora "https://github.com/sourabhbarwal/idp/blob/main/backend/dora-service/src/application/dora-metrics.service.ts"
click node_copilotui "https://github.com/sourabhbarwal/idp/blob/main/frontend/src/pages/copilot/CopilotPage.tsx"
click node_copilot "https://github.com/sourabhbarwal/idp/blob/main/backend/ai-copilot-service/src/infrastructure/web/copilot.controller.ts"
click node_context "https://github.com/sourabhbarwal/idp/blob/main/backend/ai-copilot-service/src/application/platform-context.service.ts"
click node_realtime "https://github.com/sourabhbarwal/idp/blob/main/backend/realtime-service/src/infrastructure/websocket/events.gateway.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_frontend,node_api,node_gateway,node_authui,node_catalogui,node_copilotui toneBlue
class node_authapi,node_userapi,node_catalogapi,node_catalogstore,node_prometheus,node_loki toneAmber
class node_templates,node_repository,node_deployui toneMint
class node_monitoring,node_logging,node_alerts,node_notifications,node_audit,node_cost,node_dora,node_copilot,node_context toneRose
class node_realtime,node_auditstore,node_developer,node_github,node_kubernetes,node_alertmanager,node_groq toneIndigo
```

## Components

### Developer portal

- [React dashboard](https://github.com/sourabhbarwal/idp/blob/main/frontend/src/App.tsx): `frontend/src/App.tsx`
- [API client](https://github.com/sourabhbarwal/idp/blob/main/frontend/src/lib/api-client.ts): `frontend/src/lib/api-client.ts`
- **Nginx gateway**
- [Sign in / register](https://github.com/sourabhbarwal/idp/blob/main/frontend/src/pages/auth/LoginPage.tsx): `frontend/src/pages/auth/LoginPage.tsx`
- [Service catalog UI](https://github.com/sourabhbarwal/idp/blob/main/frontend/src/pages/catalog/ServiceListPage.tsx): `frontend/src/pages/catalog/ServiceListPage.tsx`
- [AI Copilot UI](https://github.com/sourabhbarwal/idp/blob/main/frontend/src/pages/copilot/CopilotPage.tsx): `frontend/src/pages/copilot/CopilotPage.tsx`

### Identity and catalog

- [Auth and user API](https://github.com/sourabhbarwal/idp/blob/main/backend/auth-service/src/infrastructure/web/auth.controller.ts): `backend/auth-service/src/infrastructure/web/auth.controller.ts`
- [User administration](https://github.com/sourabhbarwal/idp/blob/main/backend/auth-service/src/infrastructure/web/users.controller.ts): `backend/auth-service/src/infrastructure/web/users.controller.ts`
- [Service catalog API](https://github.com/sourabhbarwal/idp/blob/main/backend/service-catalog-service/src/infrastructure/web/services.controller.ts): `backend/service-catalog-service/src/infrastructure/web/services.controller.ts`
- [Catalog persistence](https://github.com/sourabhbarwal/idp/blob/main/backend/service-catalog-service/src/infrastructure/persistence/repositories/service.repository.adapter.ts): `backend/service-catalog-service/src/infrastructure/persistence/repositories/service.repository.adapter.ts`

### Developer delivery

- [Project templates](https://github.com/sourabhbarwal/idp/blob/main/backend/template-service/src/application/use-cases/generate-template.use-case.ts): `backend/template-service/src/application/use-cases/generate-template.use-case.ts`
- [Repository provisioning](https://github.com/sourabhbarwal/idp/blob/main/backend/repository-service/src/infrastructure/web/repositories.controller.ts): `backend/repository-service/src/infrastructure/web/repositories.controller.ts`
- [Deployment API](https://github.com/sourabhbarwal/idp/blob/main/backend/deployment-service/src/infrastructure/web/deployments.controller.ts): `backend/deployment-service/src/infrastructure/web/deployments.controller.ts`

### Operations and insights

- [Metrics queries](https://github.com/sourabhbarwal/idp/blob/main/backend/monitoring-service/src/application/prometheus-query.service.ts): `backend/monitoring-service/src/application/prometheus-query.service.ts`
- [Log queries](https://github.com/sourabhbarwal/idp/blob/main/backend/logging-service/src/application/loki-query.service.ts): `backend/logging-service/src/application/loki-query.service.ts`
- [Alert rules and events](https://github.com/sourabhbarwal/idp/blob/main/backend/alert-service/src/infrastructure/web/alerts.controller.ts): `backend/alert-service/src/infrastructure/web/alerts.controller.ts`
- [Notifications](https://github.com/sourabhbarwal/idp/blob/main/backend/notification-service/src/application/services/notification-dispatcher.service.ts): `backend/notification-service/src/application/services/notification-dispatcher.service.ts`
- [Audit queries](https://github.com/sourabhbarwal/idp/blob/main/backend/audit-service/src/application/audit-query.service.ts): `backend/audit-service/src/application/audit-query.service.ts`
- [Cost analysis](https://github.com/sourabhbarwal/idp/blob/main/backend/cost-service/src/application/cost-analysis.service.ts): `backend/cost-service/src/application/cost-analysis.service.ts`
- [DORA metrics](https://github.com/sourabhbarwal/idp/blob/main/backend/dora-service/src/application/dora-metrics.service.ts): `backend/dora-service/src/application/dora-metrics.service.ts`
- [Copilot chat](https://github.com/sourabhbarwal/idp/blob/main/backend/ai-copilot-service/src/infrastructure/web/copilot.controller.ts): `backend/ai-copilot-service/src/infrastructure/web/copilot.controller.ts`
- [Platform context](https://github.com/sourabhbarwal/idp/blob/main/backend/ai-copilot-service/src/application/platform-context.service.ts): `backend/ai-copilot-service/src/application/platform-context.service.ts`

### Platform services

- [Realtime events](https://github.com/sourabhbarwal/idp/blob/main/backend/realtime-service/src/infrastructure/websocket/events.gateway.ts): `backend/realtime-service/src/infrastructure/websocket/events.gateway.ts`
- **Shared PostgreSQL**

### Other components

- **Developer**
- **GitHub**
- **Kubernetes**
- **Prometheus**
- **Loki**
- **AlertManager**
- **Groq AI**

## Connections

- Developer → React dashboard: uses
- React dashboard → API client: requests
- API client → Nginx gateway: sends HTTP
- Nginx gateway → Auth and user API: routes requests
- Nginx gateway → User administration: routes requests
- Nginx gateway → Service catalog API: routes requests
- Nginx gateway → Deployment API: routes requests
- Nginx gateway → Repository provisioning: routes requests
- Nginx gateway → Alert rules and events: routes requests
- Nginx gateway → Metrics queries: routes requests
- Nginx gateway → Log queries: routes requests
- Nginx gateway → Copilot chat: routes requests
- Nginx gateway → DORA metrics: routes requests
- Nginx gateway → Cost analysis: routes requests
- Nginx gateway → Audit queries: routes requests
- Sign in / register → API client: submits credentials
- Service catalog UI → API client: requests catalog
- AI Copilot UI → API client: sends chat
- Auth and user API → Shared PostgreSQL: stores identity data
- User administration → Shared PostgreSQL: reads user data
- Service catalog API → Catalog persistence: calls use cases
- Catalog persistence → Shared PostgreSQL: reads and writes
- Repository provisioning → GitHub: provisions repositories
- Deployment API → Kubernetes: manages deployments
- Metrics queries → Prometheus: queries metrics
- Log queries → Loki: queries logs
- AlertManager → Alert rules and events: posts webhook
- Alert rules and events → Notifications: dispatches alerts
- Audit queries → Shared PostgreSQL: queries audit schemas
- Copilot chat → Platform context: requests context
- Platform context → Alert rules and events: fetches active alerts
- Platform context → Cost analysis: fetches cost summary
- Platform context → Metrics queries: fetches service metrics
- Copilot chat → Groq AI: generates responses
- Realtime events → React dashboard: pushes events
- Project templates → Developer: returns project archive
