# nudaadeshmukh/unified-org-workspace architecture

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

- Interactive diagram: https://gitdiagram.com/nudaadeshmukh/unified-org-workspace
- Repository: https://github.com/nudaadeshmukh/unified-org-workspace

## Overview

Unified Org Workspace is a multi-tenant SaaS product with Support Hub and Review Console frontends sharing identity and session state. Users authenticate, select an organization, then work with tickets or pull requests; cross-organization access is limited to individually shared resources. Separate services handle identity, ticketing, review, and unified audit/notifications/digests. The README documents the principal capabilities and service boundaries; several service integrations and scheduled-digest internals are not shown in sampled source, so those links are documented or marked unverified rather than inferred from imports.

Main entry points: [`packages/pr-service/src/routes/prs.routes.js`](https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/pr-service/src/routes/prs.routes.js) (PR endpoints), [`packages/ticket-service/src/routes/tickets.routes.js`](https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/ticket-service/src/routes/tickets.routes.js) (Ticket endpoints), [`packages/identity-service/src/routes/auth.routes.js`](https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/identity-service/src/routes/auth.routes.js) (Auth and org routes), [`frontend/apps/review-console/app/page.js`](https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/frontend/apps/review-console/app/page.js) (Review Console)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontends["Dashboards and shared UI"]
  node_support["Support Hub<br/>[page.js]"]
  node_reviewconsole["Review Console<br/>[page.js]"]
  node_sharedui["Shared UI<br/>[AppShell.jsx]"]
  node_authcontext["Auth context<br/>[AuthContext.jsx]"]
  node_authapi["Auth API client<br/>[apiClient.js]"]
  node_sharemanager["Share manager<br/>[ShareManager.jsx]"]
end

subgraph group_identity["Identity and organizations"]
  node_identityroutes["Auth and org routes<br/>[auth.routes.js]"]
  node_authservice["Session lifecycle<br/>[auth.service.js]"]
  node_orgservice["Organization management<br/>[org.service.js]"]
  node_connectionservice["Org connections"]
  node_identitydb[("Identity database<br/>[prisma.js]")]
  node_redis[("Session store<br/>[redis.js]")]
end

subgraph group_tickets["Support ticketing"]
  node_ticketroutes["Ticket endpoints<br/>[tickets.routes.js]"]
  node_ticketservice["Ticket workflows<br/>[ticket.service.js]"]
  node_ticketcomments["Comments and attachments<br/>[comment.service.js]"]
  node_ticketshares["Ticket sharing<br/>[share.service.js]"]
  node_ticketupload["Attachment upload<br/>[upload.js]"]
  node_ticketdb[("Ticket database<br/>[prisma.js]")]
end

subgraph group_reviews["Code review"]
  node_prroutes["PR endpoints<br/>[prs.routes.js]"]
  node_prservice["PR workflows<br/>[pr.service.js]"]
  node_reviewservice["Reviews and approvals<br/>[review.service.js]"]
  node_reviewer["Reviewer assignment"]
  node_prversions["Versions and diffs<br/>[version.service.js]"]
  node_prshares["PR sharing<br/>[share.service.js]"]
  node_prdb[("PR database<br/>[prisma.js]")]
end

subgraph group_audit["Audit and notifications"]
  node_auditroutes["Audit and notification routes<br/>[auditLog.routes.js]"]
  node_auditlog["Unified audit log"]
  node_auditwrite["Audit event intake<br/>[audit.service.js]"]
  node_digest["Scheduled AI digest<br/>[digest.service.js]"]
  node_notifications["Notifications"]
  node_auditdb[("Audit database<br/>[prisma.js]")]
end

node_user(("Workspace user"))
node_groq["Groq AI"]

node_user -->|"uses"| node_support
node_user -->|"uses"| node_reviewconsole
node_support -.->|"renders"| node_sharedui
node_reviewconsole -.->|"renders"| node_sharedui
node_sharedui -.->|"uses"| node_authcontext
node_authcontext -->|"calls"| node_authapi
node_authcontext -.->|"authenticates with"| node_identityroutes
node_identityroutes -->|"dispatches"| node_authservice
node_authservice -->|"reads and writes"| node_identitydb
node_authservice -->|"manages sessions"| node_redis
node_identityroutes -->|"dispatches"| node_orgservice
node_identityroutes -->|"dispatches"| node_connectionservice
node_connectionservice -->|"reads and writes"| node_identitydb
node_support -.->|"uses"| node_ticketroutes
node_ticketroutes -->|"dispatches"| node_ticketservice
node_ticketroutes -->|"dispatches"| node_ticketcomments
node_ticketroutes -->|"dispatches"| node_ticketshares
node_ticketroutes -->|"accepts uploads"| node_ticketupload
node_ticketservice -->|"reads and writes"| node_ticketdb
node_ticketshares -->|"checks ticket access"| node_ticketservice
node_reviewconsole -.->|"uses"| node_prroutes
node_prroutes -->|"dispatches"| node_prservice
node_prroutes -->|"dispatches"| node_reviewservice
node_prroutes -->|"dispatches"| node_reviewer
node_prroutes -->|"dispatches"| node_prversions
node_prroutes -->|"dispatches"| node_prshares
node_prservice -->|"reads and writes"| node_prdb
node_reviewservice -->|"recomputes approval"| node_prservice
node_reviewservice -->|"records reviews"| node_prdb
node_reviewer -->|"verifies membership"| node_identityroutes
node_sharemanager -->|"uses API access"| node_authcontext
node_sharemanager -.->|"manages ticket shares"| node_ticketroutes
node_sharemanager -.->|"manages PR shares"| node_prroutes
node_reviewconsole -.->|"accesses audit log"| node_auditroutes
node_auditroutes -->|"queries"| node_auditlog
node_auditlog -->|"reads"| node_auditdb
node_ticketservice -.->|"emits audit events"| node_auditwrite
node_prservice -.->|"emits audit events"| node_auditwrite
node_auditwrite -.->|"records events"| node_auditdb
node_digest -->|"generates summaries"| node_groq
node_digest -->|"creates digests"| node_notifications
node_notifications -->|"reads and writes"| node_auditdb
node_auditroutes -->|"dispatches"| node_notifications

click node_support "https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/frontend/apps/support-hub/app/dashboard/page.js"
click node_reviewconsole "https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/frontend/apps/review-console/app/page.js"
click node_sharedui "https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/frontend/packages/ui/AppShell.jsx"
click node_authcontext "https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/frontend/packages/ui/auth/AuthContext.jsx"
click node_authapi "https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/frontend/packages/ui/auth/apiClient.js"
click node_sharemanager "https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/frontend/packages/ui/ShareManager.jsx"
click node_identityroutes "https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/identity-service/src/routes/auth.routes.js"
click node_authservice "https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/identity-service/src/services/auth.service.js"
click node_orgservice "https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/identity-service/src/services/org.service.js"
click node_connectionservice "https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/identity-service/src/services/connection.service.js"
click node_identitydb "https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/identity-service/src/lib/prisma.js"
click node_redis "https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/identity-service/src/lib/redis.js"
click node_ticketroutes "https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/ticket-service/src/routes/tickets.routes.js"
click node_ticketservice "https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/ticket-service/src/services/ticket.service.js"
click node_ticketcomments "https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/ticket-service/src/services/comment.service.js"
click node_ticketshares "https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/ticket-service/src/services/share.service.js"
click node_ticketupload "https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/ticket-service/src/lib/upload.js"
click node_ticketdb "https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/ticket-service/src/lib/prisma.js"
click node_prroutes "https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/pr-service/src/routes/prs.routes.js"
click node_prservice "https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/pr-service/src/services/pr.service.js"
click node_reviewservice "https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/pr-service/src/services/review.service.js"
click node_reviewer "https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/pr-service/src/services/reviewer.service.js"
click node_prversions "https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/pr-service/src/services/version.service.js"
click node_prshares "https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/pr-service/src/services/share.service.js"
click node_prdb "https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/pr-service/src/lib/prisma.js"
click node_auditroutes "https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/audit-service/src/routes/auditLog.routes.js"
click node_auditlog "https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/audit-service/src/services/auditLog.service.js"
click node_auditwrite "https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/audit-service/src/services/audit.service.js"
click node_digest "https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/audit-service/src/services/digest.service.js"
click node_notifications "https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/audit-service/src/services/notification.service.js"
click node_auditdb "https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/audit-service/src/lib/prisma.js"

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_support,node_reviewconsole,node_sharedui,node_authcontext,node_authapi,node_sharemanager,node_user toneBlue
class node_identityroutes,node_authservice,node_orgservice,node_connectionservice,node_identitydb,node_redis toneAmber
class node_ticketroutes,node_ticketservice,node_ticketcomments,node_ticketshares,node_ticketupload,node_ticketdb toneMint
class node_prroutes,node_prservice,node_reviewservice,node_reviewer,node_prversions,node_prshares,node_prdb toneRose
class node_auditroutes,node_auditlog,node_auditwrite,node_digest,node_notifications,node_auditdb,node_groq toneIndigo
```

## Components

### Dashboards and shared UI

- [Support Hub](https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/frontend/apps/support-hub/app/dashboard/page.js): `frontend/apps/support-hub/app/dashboard/page.js`
- [Review Console](https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/frontend/apps/review-console/app/page.js): `frontend/apps/review-console/app/page.js`
- [Shared UI](https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/frontend/packages/ui/AppShell.jsx): `frontend/packages/ui/AppShell.jsx`
- [Auth context](https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/frontend/packages/ui/auth/AuthContext.jsx): `frontend/packages/ui/auth/AuthContext.jsx`
- [Auth API client](https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/frontend/packages/ui/auth/apiClient.js): `frontend/packages/ui/auth/apiClient.js`
- [Share manager](https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/frontend/packages/ui/ShareManager.jsx): `frontend/packages/ui/ShareManager.jsx`

### Identity and organizations

- [Auth and org routes](https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/identity-service/src/routes/auth.routes.js): `packages/identity-service/src/routes/auth.routes.js`
- [Session lifecycle](https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/identity-service/src/services/auth.service.js): `packages/identity-service/src/services/auth.service.js`
- [Organization management](https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/identity-service/src/services/org.service.js): `packages/identity-service/src/services/org.service.js`
- [Org connections](https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/identity-service/src/services/connection.service.js): `packages/identity-service/src/services/connection.service.js`
- [Identity database](https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/identity-service/src/lib/prisma.js): `packages/identity-service/src/lib/prisma.js`
- [Session store](https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/identity-service/src/lib/redis.js): `packages/identity-service/src/lib/redis.js`

### Support ticketing

- [Ticket endpoints](https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/ticket-service/src/routes/tickets.routes.js): `packages/ticket-service/src/routes/tickets.routes.js`
- [Ticket workflows](https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/ticket-service/src/services/ticket.service.js): `packages/ticket-service/src/services/ticket.service.js`
- [Comments and attachments](https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/ticket-service/src/services/comment.service.js): `packages/ticket-service/src/services/comment.service.js`
- [Ticket sharing](https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/ticket-service/src/services/share.service.js): `packages/ticket-service/src/services/share.service.js`
- [Attachment upload](https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/ticket-service/src/lib/upload.js): `packages/ticket-service/src/lib/upload.js`
- [Ticket database](https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/ticket-service/src/lib/prisma.js): `packages/ticket-service/src/lib/prisma.js`

### Code review

- [PR endpoints](https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/pr-service/src/routes/prs.routes.js): `packages/pr-service/src/routes/prs.routes.js`
- [PR workflows](https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/pr-service/src/services/pr.service.js): `packages/pr-service/src/services/pr.service.js`
- [Reviews and approvals](https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/pr-service/src/services/review.service.js): `packages/pr-service/src/services/review.service.js`
- [Reviewer assignment](https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/pr-service/src/services/reviewer.service.js): `packages/pr-service/src/services/reviewer.service.js`
- [Versions and diffs](https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/pr-service/src/services/version.service.js): `packages/pr-service/src/services/version.service.js`
- [PR sharing](https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/pr-service/src/services/share.service.js): `packages/pr-service/src/services/share.service.js`
- [PR database](https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/pr-service/src/lib/prisma.js): `packages/pr-service/src/lib/prisma.js`

### Audit and notifications

- [Audit and notification routes](https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/audit-service/src/routes/auditLog.routes.js): `packages/audit-service/src/routes/auditLog.routes.js`
- [Unified audit log](https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/audit-service/src/services/auditLog.service.js): `packages/audit-service/src/services/auditLog.service.js`
- [Audit event intake](https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/audit-service/src/services/audit.service.js): `packages/audit-service/src/services/audit.service.js`
- [Scheduled AI digest](https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/audit-service/src/services/digest.service.js): `packages/audit-service/src/services/digest.service.js`
- [Notifications](https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/audit-service/src/services/notification.service.js): `packages/audit-service/src/services/notification.service.js`
- [Audit database](https://github.com/nudaadeshmukh/unified-org-workspace/blob/main/packages/audit-service/src/lib/prisma.js): `packages/audit-service/src/lib/prisma.js`

### Other components

- **Workspace user**
- **Groq AI**

## Connections

- Workspace user → Support Hub: uses (evidence: `README.md`)
- Workspace user → Review Console: uses (evidence: `README.md`)
- Support Hub → Shared UI: renders
- Review Console → Shared UI: renders
- Shared UI → Auth context: uses
- Auth context → Auth API client: calls (evidence: `frontend/packages/ui/auth/AuthContext.jsx`)
- Auth context → Auth and org routes: authenticates with (evidence: `README.md`)
- Auth and org routes → Session lifecycle: dispatches (evidence: `packages/identity-service/src/routes/auth.routes.js`)
- Session lifecycle → Identity database: reads and writes (evidence: `packages/identity-service/src/services/auth.service.js`)
- Session lifecycle → Session store: manages sessions (evidence: `packages/identity-service/src/services/auth.service.js`)
- Auth and org routes → Organization management: dispatches
- Auth and org routes → Org connections: dispatches
- Org connections → Identity database: reads and writes (evidence: `packages/identity-service/src/services/connection.service.js`)
- Support Hub → Ticket endpoints: uses (evidence: `README.md`)
- Ticket endpoints → Ticket workflows: dispatches (evidence: `packages/ticket-service/src/routes/tickets.routes.js`)
- Ticket endpoints → Comments and attachments: dispatches (evidence: `packages/ticket-service/src/routes/tickets.routes.js`)
- Ticket endpoints → Ticket sharing: dispatches (evidence: `packages/ticket-service/src/routes/tickets.routes.js`)
- Ticket endpoints → Attachment upload: accepts uploads (evidence: `packages/ticket-service/src/routes/tickets.routes.js`)
- Ticket workflows → Ticket database: reads and writes (evidence: `packages/ticket-service/src/services/ticket.service.js`)
- Ticket sharing → Ticket workflows: checks ticket access (evidence: `packages/ticket-service/src/services/share.service.js`)
- Review Console → PR endpoints: uses (evidence: `README.md`)
- PR endpoints → PR workflows: dispatches (evidence: `packages/pr-service/src/routes/prs.routes.js`)
- PR endpoints → Reviews and approvals: dispatches (evidence: `packages/pr-service/src/routes/prs.routes.js`)
- PR endpoints → Reviewer assignment: dispatches (evidence: `packages/pr-service/src/routes/prs.routes.js`)
- PR endpoints → Versions and diffs: dispatches (evidence: `packages/pr-service/src/routes/prs.routes.js`)
- PR endpoints → PR sharing: dispatches (evidence: `packages/pr-service/src/routes/prs.routes.js`)
- PR workflows → PR database: reads and writes (evidence: `packages/pr-service/src/services/pr.service.js`)
- Reviews and approvals → PR workflows: recomputes approval (evidence: `packages/pr-service/src/services/review.service.js`)
- Reviews and approvals → PR database: records reviews (evidence: `packages/pr-service/src/services/review.service.js`)
- Reviewer assignment → Auth and org routes: verifies membership (evidence: `packages/pr-service/src/services/reviewer.service.js`)
- Share manager → Auth context: uses API access (evidence: `frontend/packages/ui/ShareManager.jsx`)
- Share manager → Ticket endpoints: manages ticket shares (evidence: `README.md`)
- Share manager → PR endpoints: manages PR shares (evidence: `README.md`)
- Review Console → Audit and notification routes: accesses audit log (evidence: `README.md`)
- Audit and notification routes → Unified audit log: queries (evidence: `packages/audit-service/src/routes/auditLog.routes.js`)
- Unified audit log → Audit database: reads (evidence: `packages/audit-service/src/services/auditLog.service.js`)
- Ticket workflows → Audit event intake: emits audit events (evidence: `README.md`)
- PR workflows → Audit event intake: emits audit events (evidence: `README.md`)
- Audit event intake → Audit database: records events (evidence: `README.md`)
- Scheduled AI digest → Groq AI: generates summaries (evidence: `packages/audit-service/src/services/digest.service.js`)
- Scheduled AI digest → Notifications: creates digests (evidence: `packages/audit-service/src/services/digest.service.js`)
- Notifications → Audit database: reads and writes (evidence: `packages/audit-service/src/services/notification.service.js`)
- Audit and notification routes → Notifications: dispatches
