# adityakdevin/proxyurlapp architecture

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

- Interactive diagram: https://gitdiagram.com/adityakdevin/proxyurlapp
- Repository: https://github.com/adityakdevin/proxyurlapp

## Overview

ProxyURLApp provides role-controlled navigation to masked internal and external URLs, with authentication, session controls, and audit history. Its client also exposes a substantial claims-review and document-validation workflow: users review claims, inspect documents, request checks, and monitor results; administrators manage claim rules and master data. The graph separates these product areas and includes the server API/business-logic layer. The README documents the proxy capabilities, while sampled server excerpts substantiate app wiring and authentication; several proxy, claims, and audit internals are unsampled, so their detailed wiring is not inferred.

Main entry points: [`client/src/lib/api.ts`](https://github.com/adityakdevin/proxyurlapp/blob/main/client/src/lib/api.ts) (API client), [`client/src/App.tsx`](https://github.com/adityakdevin/proxyurlapp/blob/main/client/src/App.tsx) (Route application), [`server/src/app.ts`](https://github.com/adityakdevin/proxyurlapp/blob/main/server/src/app.ts) (Express app), [`server/src/routes/claims.ts`](https://github.com/adityakdevin/proxyurlapp/blob/main/server/src/routes/claims.ts) (Claims API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Web client"]
  node_app["Route application<br/>[App.tsx]"]
  node_login["Login page<br/>[Login.tsx]"]
  node_user_views["User URL views"]
  node_proxy_view["Proxy view<br/>[ProxyView.tsx]"]
  node_claim_dashboard["Claim dashboard<br/>[ClaimDashboard.tsx]"]
  node_claim_update["Claim review<br/>[ClaimUpdate.tsx]"]
  node_doc_view["Document viewer<br/>[DocumentView.tsx]"]
  node_api_client["API client<br/>[api.ts]"]
end

subgraph group_identity["Identity and access"]
  node_auth_routes["Authentication API<br/>[auth.ts]"]
  node_auth_service["Authentication service<br/>[authService.ts]"]
  node_sessions["Session service<br/>[sessionService.ts]"]
end

subgraph group_proxy["URL access"]
  node_proxy_routes["Proxy endpoints<br/>[proxy.ts]"]
  node_proxy_service["Proxy service<br/>[proxyService.ts]"]
  node_headless["Browser sessions<br/>[headlessManager.ts]"]
  node_user_routes["User API<br/>[user.ts]"]
end

subgraph group_claims["Claims review"]
  node_claim_routes["Claims API<br/>[claims.ts]"]
  node_claim_service["Claim service<br/>[claimService.ts]"]
  node_documents["Document processing<br/>[documentService.ts]"]
  node_validation["Validation service"]
  node_validator_registry["Validation rules<br/>[registry.ts]"]
  node_validation_queue["Validation queue<br/>[validationQueue.ts]"]
end

subgraph group_admin["Administration"]
  node_admin_routes["Admin APIs<br/>[index.ts]"]
  node_admin_claims["Admin claim tools<br/>[AdminClaims.tsx]"]
  node_admin_config["Access configuration<br/>[UrlConfigs.tsx]"]
  node_audit["Audit logging<br/>[auditLogService.ts]"]
  node_server_app["Express app<br/>[app.ts]"]
end

node_user(("End user"))
node_admin_actor(("Administrator"))
node_target(("Target URLs"))
node_mysql[("MySQL database")]

node_user -->|"uses"| node_app
node_admin_actor -->|"uses"| node_app
node_app -->|"routes to"| node_login
node_app -->|"routes to"| node_user_views
node_app -->|"routes to"| node_proxy_view
node_app -->|"routes to"| node_claim_dashboard
node_app -->|"routes to"| node_claim_update
node_app -->|"routes to"| node_doc_view
node_login -->|"requests"| node_api_client
node_user_views -->|"requests"| node_api_client
node_claim_dashboard -->|"requests"| node_api_client
node_claim_update -->|"requests"| node_api_client
node_doc_view -->|"requests"| node_api_client
node_api_client -->|"calls API"| node_auth_routes
node_api_client -->|"calls API"| node_user_routes
node_api_client -->|"calls proxy"| node_proxy_routes
node_api_client -->|"calls API"| node_claim_routes
node_api_client -->|"calls API"| node_admin_routes
node_server_app -->|"mounts"| node_auth_routes
node_server_app -->|"mounts"| node_user_routes
node_server_app -->|"mounts"| node_proxy_routes
node_server_app -->|"mounts"| node_claim_routes
node_server_app -->|"mounts"| node_admin_routes
node_auth_routes -->|"invokes"| node_auth_service
node_auth_service -->|"uses"| node_sessions
node_sessions -->|"reads/writes"| node_mysql
node_auth_service -->|"reads/writes"| node_mysql
node_admin_claims -->|"requests"| node_api_client
node_admin_config -->|"requests"| node_api_client
node_claim_routes -->|"delegates"| node_claim_service
node_claim_routes -->|"delegates"| node_documents
node_claim_routes -->|"delegates"| node_validation
node_validation -->|"runs checks"| node_validator_registry
node_validation_queue -->|"dispatches"| node_validation
node_admin_routes -->|"records activity"| node_audit
node_proxy_routes -->|"proxies requests"| node_target

click node_app "https://github.com/adityakdevin/proxyurlapp/blob/main/client/src/App.tsx"
click node_login "https://github.com/adityakdevin/proxyurlapp/blob/main/client/src/pages/auth/Login.tsx"
click node_user_views "https://github.com/adityakdevin/proxyurlapp/blob/main/client/src/pages/user/SubCategoryUrls.tsx"
click node_proxy_view "https://github.com/adityakdevin/proxyurlapp/blob/main/client/src/pages/user/ProxyView.tsx"
click node_claim_dashboard "https://github.com/adityakdevin/proxyurlapp/blob/main/client/src/pages/claims/ClaimDashboard.tsx"
click node_claim_update "https://github.com/adityakdevin/proxyurlapp/blob/main/client/src/pages/claims/ClaimUpdate.tsx"
click node_doc_view "https://github.com/adityakdevin/proxyurlapp/blob/main/client/src/pages/claims/DocumentView.tsx"
click node_api_client "https://github.com/adityakdevin/proxyurlapp/blob/main/client/src/lib/api.ts"
click node_auth_routes "https://github.com/adityakdevin/proxyurlapp/blob/main/server/src/routes/auth.ts"
click node_auth_service "https://github.com/adityakdevin/proxyurlapp/blob/main/server/src/services/authService.ts"
click node_sessions "https://github.com/adityakdevin/proxyurlapp/blob/main/server/src/services/sessionService.ts"
click node_proxy_routes "https://github.com/adityakdevin/proxyurlapp/blob/main/server/src/routes/proxy.ts"
click node_proxy_service "https://github.com/adityakdevin/proxyurlapp/blob/main/server/src/services/proxyService.ts"
click node_headless "https://github.com/adityakdevin/proxyurlapp/blob/main/server/src/services/headlessManager.ts"
click node_user_routes "https://github.com/adityakdevin/proxyurlapp/blob/main/server/src/routes/user.ts"
click node_claim_routes "https://github.com/adityakdevin/proxyurlapp/blob/main/server/src/routes/claims.ts"
click node_claim_service "https://github.com/adityakdevin/proxyurlapp/blob/main/server/src/services/claimService.ts"
click node_documents "https://github.com/adityakdevin/proxyurlapp/blob/main/server/src/services/documentService.ts"
click node_validation "https://github.com/adityakdevin/proxyurlapp/blob/main/server/src/services/validationService.ts"
click node_validator_registry "https://github.com/adityakdevin/proxyurlapp/blob/main/server/src/validators/registry.ts"
click node_validation_queue "https://github.com/adityakdevin/proxyurlapp/blob/main/server/src/services/validationQueue.ts"
click node_admin_routes "https://github.com/adityakdevin/proxyurlapp/blob/main/server/src/routes/admin/index.ts"
click node_admin_claims "https://github.com/adityakdevin/proxyurlapp/blob/main/client/src/pages/admin/AdminClaims.tsx"
click node_admin_config "https://github.com/adityakdevin/proxyurlapp/blob/main/client/src/pages/admin/UrlConfigs.tsx"
click node_audit "https://github.com/adityakdevin/proxyurlapp/blob/main/server/src/services/auditLogService.ts"
click node_server_app "https://github.com/adityakdevin/proxyurlapp/blob/main/server/src/app.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_app,node_login,node_user_views,node_proxy_view,node_claim_dashboard,node_claim_update,node_doc_view,node_api_client,node_user toneBlue
class node_auth_routes,node_auth_service,node_sessions,node_mysql toneAmber
class node_proxy_routes,node_proxy_service,node_headless,node_user_routes toneMint
class node_claim_routes,node_claim_service,node_documents,node_validation,node_validator_registry,node_validation_queue toneRose
class node_admin_routes,node_admin_claims,node_admin_config,node_audit,node_server_app,node_admin_actor,node_target toneIndigo
```

## Components

### Web client

- [Route application](https://github.com/adityakdevin/proxyurlapp/blob/main/client/src/App.tsx): `client/src/App.tsx`
- [Login page](https://github.com/adityakdevin/proxyurlapp/blob/main/client/src/pages/auth/Login.tsx): `client/src/pages/auth/Login.tsx`
- [User URL views](https://github.com/adityakdevin/proxyurlapp/blob/main/client/src/pages/user/SubCategoryUrls.tsx): `client/src/pages/user/SubCategoryUrls.tsx`
- [Proxy view](https://github.com/adityakdevin/proxyurlapp/blob/main/client/src/pages/user/ProxyView.tsx): `client/src/pages/user/ProxyView.tsx`
- [Claim dashboard](https://github.com/adityakdevin/proxyurlapp/blob/main/client/src/pages/claims/ClaimDashboard.tsx): `client/src/pages/claims/ClaimDashboard.tsx`
- [Claim review](https://github.com/adityakdevin/proxyurlapp/blob/main/client/src/pages/claims/ClaimUpdate.tsx): `client/src/pages/claims/ClaimUpdate.tsx`
- [Document viewer](https://github.com/adityakdevin/proxyurlapp/blob/main/client/src/pages/claims/DocumentView.tsx): `client/src/pages/claims/DocumentView.tsx`
- [API client](https://github.com/adityakdevin/proxyurlapp/blob/main/client/src/lib/api.ts): `client/src/lib/api.ts`

### Identity and access

- [Authentication API](https://github.com/adityakdevin/proxyurlapp/blob/main/server/src/routes/auth.ts): `server/src/routes/auth.ts`
- [Authentication service](https://github.com/adityakdevin/proxyurlapp/blob/main/server/src/services/authService.ts): `server/src/services/authService.ts`
- [Session service](https://github.com/adityakdevin/proxyurlapp/blob/main/server/src/services/sessionService.ts): `server/src/services/sessionService.ts`

### URL access

- [Proxy endpoints](https://github.com/adityakdevin/proxyurlapp/blob/main/server/src/routes/proxy.ts): `server/src/routes/proxy.ts`
- [Proxy service](https://github.com/adityakdevin/proxyurlapp/blob/main/server/src/services/proxyService.ts): `server/src/services/proxyService.ts`
- [Browser sessions](https://github.com/adityakdevin/proxyurlapp/blob/main/server/src/services/headlessManager.ts): `server/src/services/headlessManager.ts`
- [User API](https://github.com/adityakdevin/proxyurlapp/blob/main/server/src/routes/user.ts): `server/src/routes/user.ts`

### Claims review

- [Claims API](https://github.com/adityakdevin/proxyurlapp/blob/main/server/src/routes/claims.ts): `server/src/routes/claims.ts`
- [Claim service](https://github.com/adityakdevin/proxyurlapp/blob/main/server/src/services/claimService.ts): `server/src/services/claimService.ts`
- [Document processing](https://github.com/adityakdevin/proxyurlapp/blob/main/server/src/services/documentService.ts): `server/src/services/documentService.ts`
- [Validation service](https://github.com/adityakdevin/proxyurlapp/blob/main/server/src/services/validationService.ts): `server/src/services/validationService.ts`
- [Validation rules](https://github.com/adityakdevin/proxyurlapp/blob/main/server/src/validators/registry.ts): `server/src/validators/registry.ts`
- [Validation queue](https://github.com/adityakdevin/proxyurlapp/blob/main/server/src/services/validationQueue.ts): `server/src/services/validationQueue.ts`

### Administration

- [Admin APIs](https://github.com/adityakdevin/proxyurlapp/blob/main/server/src/routes/admin/index.ts): `server/src/routes/admin/index.ts`
- [Admin claim tools](https://github.com/adityakdevin/proxyurlapp/blob/main/client/src/pages/admin/AdminClaims.tsx): `client/src/pages/admin/AdminClaims.tsx`
- [Access configuration](https://github.com/adityakdevin/proxyurlapp/blob/main/client/src/pages/admin/UrlConfigs.tsx): `client/src/pages/admin/UrlConfigs.tsx`
- [Audit logging](https://github.com/adityakdevin/proxyurlapp/blob/main/server/src/services/auditLogService.ts): `server/src/services/auditLogService.ts`
- [Express app](https://github.com/adityakdevin/proxyurlapp/blob/main/server/src/app.ts): `server/src/app.ts`

### Other components

- **End user**
- **Administrator**
- **Target URLs**
- **MySQL database**

## Connections

- End user → Route application: uses
- Administrator → Route application: uses
- Route application → Login page: routes to
- Route application → User URL views: routes to
- Route application → Proxy view: routes to
- Route application → Claim dashboard: routes to
- Route application → Claim review: routes to
- Route application → Document viewer: routes to
- Login page → API client: requests
- User URL views → API client: requests
- Claim dashboard → API client: requests
- Claim review → API client: requests
- Document viewer → API client: requests
- API client → Authentication API: calls API
- API client → User API: calls API
- API client → Proxy endpoints: calls proxy
- API client → Claims API: calls API
- API client → Admin APIs: calls API
- Express app → Authentication API: mounts
- Express app → User API: mounts
- Express app → Proxy endpoints: mounts
- Express app → Claims API: mounts
- Express app → Admin APIs: mounts
- Authentication API → Authentication service: invokes
- Authentication service → Session service: uses
- Session service → MySQL database: reads/writes
- Authentication service → MySQL database: reads/writes
- Admin claim tools → API client: requests
- Access configuration → API client: requests
- Claims API → Claim service: delegates
- Claims API → Document processing: delegates
- Claims API → Validation service: delegates
- Validation service → Validation rules: runs checks
- Validation queue → Validation service: dispatches
- Admin APIs → Audit logging: records activity
- Proxy endpoints → Target URLs: proxies requests
