# sailpoint-oss/ui-development-kit architecture

> Architecture diagram of the GitHub repository sailpoint-oss/ui-development-kit, 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/sailpoint-oss/ui-development-kit
- Repository: https://github.com/sailpoint-oss/ui-development-kit

## Overview

UI Development Kit is a SailPoint Identity Security Cloud integration toolkit with Angular experiences, an Electron desktop host, and a web-server option. Users configure a tenant, authenticate, then use identity-management and developer-tool experiences backed by SailPoint APIs. The graph preserves README capabilities and major routed features; several feature nodes use exact component paths from the tree, but their internal wiring was not sampled. Dashed edges mark optional or unverified integrations; other edges cite the source or documentation that supports the relationship.

Main entry points: [`src/app/app.routes.ts`](https://github.com/sailpoint-oss/ui-development-kit/blob/main/src/app/app.routes.ts) (App Routes), [`app/authentication/auth.ts`](https://github.com/sailpoint-oss/ui-development-kit/blob/main/app/authentication/auth.ts) (Desktop Authentication), [`server/controllers/auth.controller.ts`](https://github.com/sailpoint-oss/ui-development-kit/blob/main/server/controllers/auth.controller.ts) (OAuth Controller), [`projects/sailpoint-components/src/lib/sailpoint-sdk.service.ts`](https://github.com/sailpoint-oss/ui-development-kit/blob/main/projects/sailpoint-components/src/lib/sailpoint-sdk.service.ts) (SDK Service)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_desktop["Desktop Runtime"]
  node_angular["Angular App<br/>[main.ts]"]
  node_routes["App Routes<br/>[app.routes.ts]"]
  node_sdk_ipc["SDK IPC Handlers<br/>[ipc-handlers.ts]"]
  node_sdk_wrapper["SDK Wrapper<br/>[sailpoint-sdk.ts]"]
  node_electron_factory["Electron API Factory"]
end

subgraph group_identity["Identity Access"]
  node_connection["Connection Service"]
  node_auth_core["Desktop Authentication<br/>[auth.ts]"]
  node_tenant_config["Tenant Configuration<br/>[config.ts]"]
  node_oauth["OAuth Flow<br/>[oauth.ts]"]
  node_pat["PAT Flow<br/>[pat.ts]"]
  node_sdk_ui["SDK Service"]
  node_config_service["Config Service<br/>[config.service.ts]"]
end

subgraph group_experiences["Product Experiences"]
  node_home["Home Dashboard<br/>[home.component.ts]"]
  node_auth_ui["Web Auth UI"]
  node_identities["Identity Features"]
  node_certifications["Certifications"]
  node_transforms["Transform Builder"]
  node_reports["Reports"]
  node_report_data["Report Data"]
  node_owner_graph["Owner Graph"]
  node_config_hub["Config Hub"]
  node_connector["Connector Tools<br/>[connector.ts]"]
  node_saas_creator["SaaS Creator"]
end

subgraph group_web["Web Runtime"]
  node_web_api["Web API Client<br/>[web-api.service.ts]"]
  node_server_config["Server Configuration<br/>[server.config.ts]"]
  node_auth_controller["OAuth Controller<br/>[auth.controller.ts]"]
  node_sdk_controller["SDK Controller<br/>[sdk.controller.ts]"]
  node_server_sdk["Web SDK"]
  node_storage_facade["Session Storage Facade<br/>[storage.ts]"]
  node_session_storage["Session Storage<br/>[session-storage.ts]"]
end

subgraph group_integrations["External Services"]
  node_github["GitHub Integration<br/>[github.ts]"]
  node_discourse["Discourse Integration<br/>[discourse.ts]"]
  node_isc{{"SailPoint ISC"}}
end

node_user(("User"))

node_user -->|"uses"| node_angular
node_angular -->|"provides routes"| node_routes
node_routes -->|"routes to"| node_home
node_routes -->|"routes to"| node_identities
node_routes -->|"routes to"| node_certifications
node_routes -->|"routes to"| node_transforms
node_routes -->|"routes to"| node_reports
node_routes -->|"routes to"| node_owner_graph
node_routes -->|"routes to"| node_config_hub
node_routes -->|"routes to"| node_saas_creator
node_home -->|"uses"| node_connection
node_angular -.->|"web auth entry"| node_auth_ui
node_auth_ui -.->|"requests"| node_web_api
node_connection -.->|"manages connection"| node_auth_core
node_auth_core -->|"reads and updates"| node_tenant_config
node_auth_core -->|"calls"| node_oauth
node_auth_core -->|"calls"| node_pat
node_auth_core -.->|"authenticates"| node_isc
node_sdk_ui -->|"uses"| node_electron_factory
node_sdk_ui -.->|"dispatches API calls"| node_sdk_ipc
node_sdk_ipc -->|"delegates to"| node_sdk_wrapper
node_sdk_wrapper -.->|"calls API"| node_isc
node_reports -->|"uses data service"| node_report_data
node_reports -->|"uses SDK"| node_sdk_ui
node_owner_graph -->|"uses SDK"| node_sdk_ui
node_config_service -->|"uses"| node_electron_factory
node_user -.->|"web OAuth"| node_auth_controller
node_auth_controller -->|"reads settings"| node_server_config
node_auth_controller -->|"stores session state"| node_storage_facade
node_auth_controller -->|"requests tokens"| node_isc
node_storage_facade -->|"creates storage"| node_session_storage
node_session_storage -.->|"persists in DynamoDB"| node_isc
node_web_api -.->|"calls server"| node_sdk_controller
node_sdk_controller -->|"uses SDK"| node_server_sdk
node_sdk_controller -->|"reads session"| node_storage_facade
node_server_sdk -.->|"calls API"| node_isc
node_user -.->|"uses"| node_connector
node_connector -->|"uses"| node_github
node_connector -->|"uses"| node_sdk_wrapper
node_config_hub -.->|"Git integration"| node_github
node_user -.->|"uses community integration"| node_discourse

click node_angular "https://github.com/sailpoint-oss/ui-development-kit/blob/main/src/main.ts"
click node_routes "https://github.com/sailpoint-oss/ui-development-kit/blob/main/src/app/app.routes.ts"
click node_home "https://github.com/sailpoint-oss/ui-development-kit/blob/main/src/app/home/home.component.ts"
click node_auth_ui "https://github.com/sailpoint-oss/ui-development-kit/blob/main/src/app/web-auth/web-auth.component.ts"
click node_connection "https://github.com/sailpoint-oss/ui-development-kit/blob/main/src/app/services/connection.service.ts"
click node_auth_core "https://github.com/sailpoint-oss/ui-development-kit/blob/main/app/authentication/auth.ts"
click node_tenant_config "https://github.com/sailpoint-oss/ui-development-kit/blob/main/app/authentication/config.ts"
click node_oauth "https://github.com/sailpoint-oss/ui-development-kit/blob/main/app/authentication/oauth.ts"
click node_pat "https://github.com/sailpoint-oss/ui-development-kit/blob/main/app/authentication/pat.ts"
click node_sdk_ui "https://github.com/sailpoint-oss/ui-development-kit/blob/main/projects/sailpoint-components/src/lib/sailpoint-sdk.service.ts"
click node_sdk_ipc "https://github.com/sailpoint-oss/ui-development-kit/blob/main/app/sailpoint-sdk/ipc-handlers.ts"
click node_sdk_wrapper "https://github.com/sailpoint-oss/ui-development-kit/blob/main/app/sailpoint-sdk/sailpoint-sdk.ts"
click node_identities "https://github.com/sailpoint-oss/ui-development-kit/blob/main/projects/sailpoint-components/src/lib/identities/identities.component.ts"
click node_certifications "https://github.com/sailpoint-oss/ui-development-kit/blob/main/projects/sailpoint-components/src/lib/certification-management/certification-management.component.ts"
click node_transforms "https://github.com/sailpoint-oss/ui-development-kit/blob/main/projects/sailpoint-components/src/lib/transforms/transform-builder/transform-builder.component.ts"
click node_reports "https://github.com/sailpoint-oss/ui-development-kit/blob/main/projects/sailpoint-components/src/lib/report-example/report-example.component.ts"
click node_report_data "https://github.com/sailpoint-oss/ui-development-kit/blob/main/projects/sailpoint-components/src/lib/report-example/report-data.service.ts"
click node_owner_graph "https://github.com/sailpoint-oss/ui-development-kit/blob/main/projects/sailpoint-components/src/lib/owner-graph/owner-graph.service.ts"
click node_config_hub "https://github.com/sailpoint-oss/ui-development-kit/blob/main/projects/sailpoint-components/src/lib/config-hub/config-hub.component.ts"
click node_connector "https://github.com/sailpoint-oss/ui-development-kit/blob/main/app/connector/connector.ts"
click node_saas_creator "https://github.com/sailpoint-oss/ui-development-kit/blob/main/projects/sailpoint-components/src/lib/saas-connectivity-creator/saas-connectivity-creator.component.ts"
click node_github "https://github.com/sailpoint-oss/ui-development-kit/blob/main/app/github/github.ts"
click node_discourse "https://github.com/sailpoint-oss/ui-development-kit/blob/main/app/discourse/discourse.ts"
click node_config_service "https://github.com/sailpoint-oss/ui-development-kit/blob/main/projects/sailpoint-components/src/lib/services/config.service.ts"
click node_electron_factory "https://github.com/sailpoint-oss/ui-development-kit/blob/main/projects/sailpoint-components/src/lib/services/electron-api-factory.service.ts"
click node_web_api "https://github.com/sailpoint-oss/ui-development-kit/blob/main/projects/sailpoint-components/src/lib/services/web-api.service.ts"
click node_server_config "https://github.com/sailpoint-oss/ui-development-kit/blob/main/server/config/server.config.ts"
click node_auth_controller "https://github.com/sailpoint-oss/ui-development-kit/blob/main/server/controllers/auth.controller.ts"
click node_sdk_controller "https://github.com/sailpoint-oss/ui-development-kit/blob/main/server/controllers/sdk.controller.ts"
click node_server_sdk "https://github.com/sailpoint-oss/ui-development-kit/blob/main/server/sailpoint-sdk-web.ts"
click node_storage_facade "https://github.com/sailpoint-oss/ui-development-kit/blob/main/server/storage.ts"
click node_session_storage "https://github.com/sailpoint-oss/ui-development-kit/blob/main/server/session-storage.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_angular,node_routes,node_sdk_ipc,node_sdk_wrapper,node_electron_factory,node_user toneBlue
class node_connection,node_auth_core,node_tenant_config,node_oauth,node_pat,node_sdk_ui,node_config_service toneAmber
class node_home,node_auth_ui,node_identities,node_certifications,node_transforms,node_reports,node_report_data,node_owner_graph,node_config_hub,node_connector,node_saas_creator toneMint
class node_web_api,node_server_config,node_auth_controller,node_sdk_controller,node_server_sdk,node_storage_facade,node_session_storage toneRose
class node_github,node_discourse,node_isc toneIndigo
```

## Components

### Desktop Runtime

- [Angular App](https://github.com/sailpoint-oss/ui-development-kit/blob/main/src/main.ts): `src/main.ts`
- [App Routes](https://github.com/sailpoint-oss/ui-development-kit/blob/main/src/app/app.routes.ts): `src/app/app.routes.ts`
- [SDK IPC Handlers](https://github.com/sailpoint-oss/ui-development-kit/blob/main/app/sailpoint-sdk/ipc-handlers.ts): `app/sailpoint-sdk/ipc-handlers.ts`
- [SDK Wrapper](https://github.com/sailpoint-oss/ui-development-kit/blob/main/app/sailpoint-sdk/sailpoint-sdk.ts): `app/sailpoint-sdk/sailpoint-sdk.ts`
- [Electron API Factory](https://github.com/sailpoint-oss/ui-development-kit/blob/main/projects/sailpoint-components/src/lib/services/electron-api-factory.service.ts): `projects/sailpoint-components/src/lib/services/electron-api-factory.service.ts`

### Identity Access

- [Connection Service](https://github.com/sailpoint-oss/ui-development-kit/blob/main/src/app/services/connection.service.ts): `src/app/services/connection.service.ts`
- [Desktop Authentication](https://github.com/sailpoint-oss/ui-development-kit/blob/main/app/authentication/auth.ts): `app/authentication/auth.ts`
- [Tenant Configuration](https://github.com/sailpoint-oss/ui-development-kit/blob/main/app/authentication/config.ts): `app/authentication/config.ts`
- [OAuth Flow](https://github.com/sailpoint-oss/ui-development-kit/blob/main/app/authentication/oauth.ts): `app/authentication/oauth.ts`
- [PAT Flow](https://github.com/sailpoint-oss/ui-development-kit/blob/main/app/authentication/pat.ts): `app/authentication/pat.ts`
- [SDK Service](https://github.com/sailpoint-oss/ui-development-kit/blob/main/projects/sailpoint-components/src/lib/sailpoint-sdk.service.ts): `projects/sailpoint-components/src/lib/sailpoint-sdk.service.ts`
- [Config Service](https://github.com/sailpoint-oss/ui-development-kit/blob/main/projects/sailpoint-components/src/lib/services/config.service.ts): `projects/sailpoint-components/src/lib/services/config.service.ts`

### Product Experiences

- [Home Dashboard](https://github.com/sailpoint-oss/ui-development-kit/blob/main/src/app/home/home.component.ts): `src/app/home/home.component.ts`
- [Web Auth UI](https://github.com/sailpoint-oss/ui-development-kit/blob/main/src/app/web-auth/web-auth.component.ts): `src/app/web-auth/web-auth.component.ts`
- [Identity Features](https://github.com/sailpoint-oss/ui-development-kit/blob/main/projects/sailpoint-components/src/lib/identities/identities.component.ts): `projects/sailpoint-components/src/lib/identities/identities.component.ts`
- [Certifications](https://github.com/sailpoint-oss/ui-development-kit/blob/main/projects/sailpoint-components/src/lib/certification-management/certification-management.component.ts): `projects/sailpoint-components/src/lib/certification-management/certification-management.component.ts`
- [Transform Builder](https://github.com/sailpoint-oss/ui-development-kit/blob/main/projects/sailpoint-components/src/lib/transforms/transform-builder/transform-builder.component.ts): `projects/sailpoint-components/src/lib/transforms/transform-builder/transform-builder.component.ts`
- [Reports](https://github.com/sailpoint-oss/ui-development-kit/blob/main/projects/sailpoint-components/src/lib/report-example/report-example.component.ts): `projects/sailpoint-components/src/lib/report-example/report-example.component.ts`
- [Report Data](https://github.com/sailpoint-oss/ui-development-kit/blob/main/projects/sailpoint-components/src/lib/report-example/report-data.service.ts): `projects/sailpoint-components/src/lib/report-example/report-data.service.ts`
- [Owner Graph](https://github.com/sailpoint-oss/ui-development-kit/blob/main/projects/sailpoint-components/src/lib/owner-graph/owner-graph.service.ts): `projects/sailpoint-components/src/lib/owner-graph/owner-graph.service.ts`
- [Config Hub](https://github.com/sailpoint-oss/ui-development-kit/blob/main/projects/sailpoint-components/src/lib/config-hub/config-hub.component.ts): `projects/sailpoint-components/src/lib/config-hub/config-hub.component.ts`
- [Connector Tools](https://github.com/sailpoint-oss/ui-development-kit/blob/main/app/connector/connector.ts): `app/connector/connector.ts`
- [SaaS Creator](https://github.com/sailpoint-oss/ui-development-kit/blob/main/projects/sailpoint-components/src/lib/saas-connectivity-creator/saas-connectivity-creator.component.ts): `projects/sailpoint-components/src/lib/saas-connectivity-creator/saas-connectivity-creator.component.ts`

### Web Runtime

- [Web API Client](https://github.com/sailpoint-oss/ui-development-kit/blob/main/projects/sailpoint-components/src/lib/services/web-api.service.ts): `projects/sailpoint-components/src/lib/services/web-api.service.ts`
- [Server Configuration](https://github.com/sailpoint-oss/ui-development-kit/blob/main/server/config/server.config.ts): `server/config/server.config.ts`
- [OAuth Controller](https://github.com/sailpoint-oss/ui-development-kit/blob/main/server/controllers/auth.controller.ts): `server/controllers/auth.controller.ts`
- [SDK Controller](https://github.com/sailpoint-oss/ui-development-kit/blob/main/server/controllers/sdk.controller.ts): `server/controllers/sdk.controller.ts`
- [Web SDK](https://github.com/sailpoint-oss/ui-development-kit/blob/main/server/sailpoint-sdk-web.ts): `server/sailpoint-sdk-web.ts`
- [Session Storage Facade](https://github.com/sailpoint-oss/ui-development-kit/blob/main/server/storage.ts): `server/storage.ts`
- [Session Storage](https://github.com/sailpoint-oss/ui-development-kit/blob/main/server/session-storage.ts): `server/session-storage.ts`

### External Services

- [GitHub Integration](https://github.com/sailpoint-oss/ui-development-kit/blob/main/app/github/github.ts): `app/github/github.ts`
- [Discourse Integration](https://github.com/sailpoint-oss/ui-development-kit/blob/main/app/discourse/discourse.ts): `app/discourse/discourse.ts`
- **SailPoint ISC**

### Other components

- **User**

## Connections

- User → Angular App: uses (evidence: `README.md`)
- Angular App → App Routes: provides routes (evidence: `src/main.ts`)
- App Routes → Home Dashboard: routes to (evidence: `src/app/app.routes.ts`)
- App Routes → Identity Features: routes to (evidence: `src/app/app.routes.ts`)
- App Routes → Certifications: routes to (evidence: `src/app/app.routes.ts`)
- App Routes → Transform Builder: routes to (evidence: `src/app/app.routes.ts`)
- App Routes → Reports: routes to (evidence: `src/app/app.routes.ts`)
- App Routes → Owner Graph: routes to (evidence: `src/app/app.routes.ts`)
- App Routes → Config Hub: routes to (evidence: `src/app/app.routes.ts`)
- App Routes → SaaS Creator: routes to (evidence: `src/app/app.routes.ts`)
- Home Dashboard → Connection Service: uses
- Angular App → Web Auth UI: web auth entry
- Web Auth UI → Web API Client: requests
- Connection Service → Desktop Authentication: manages connection
- Desktop Authentication → Tenant Configuration: reads and updates (evidence: `app/authentication/auth.ts`)
- Desktop Authentication → OAuth Flow: calls (evidence: `app/authentication/auth.ts`)
- Desktop Authentication → PAT Flow: calls (evidence: `app/authentication/auth.ts`)
- Desktop Authentication → SailPoint ISC: authenticates (evidence: `README.md`)
- SDK Service → Electron API Factory: uses (evidence: `projects/sailpoint-components/src/lib/sailpoint-sdk.service.ts`)
- SDK Service → SDK IPC Handlers: dispatches API calls
- SDK IPC Handlers → SDK Wrapper: delegates to (evidence: `app/sailpoint-sdk/ipc-handlers.ts`)
- SDK Wrapper → SailPoint ISC: calls API
- Reports → Report Data: uses data service (evidence: `projects/sailpoint-components/src/lib/report-example/report-example.component.ts`)
- Reports → SDK Service: uses SDK (evidence: `projects/sailpoint-components/src/lib/report-example/report-example.component.ts`)
- Owner Graph → SDK Service: uses SDK (evidence: `projects/sailpoint-components/src/lib/owner-graph/owner-graph.service.ts`)
- Config Service → Electron API Factory: uses (evidence: `projects/sailpoint-components/src/lib/services/config.service.ts`)
- User → OAuth Controller: web OAuth
- OAuth Controller → Server Configuration: reads settings (evidence: `server/controllers/auth.controller.ts`)
- OAuth Controller → Session Storage Facade: stores session state (evidence: `server/controllers/auth.controller.ts`)
- OAuth Controller → SailPoint ISC: requests tokens (evidence: `server/controllers/auth.controller.ts`)
- Session Storage Facade → Session Storage: creates storage (evidence: `server/storage.ts`)
- Session Storage → SailPoint ISC: persists in DynamoDB
- Web API Client → SDK Controller: calls server
- SDK Controller → Web SDK: uses SDK (evidence: `server/controllers/sdk.controller.ts`)
- SDK Controller → Session Storage Facade: reads session (evidence: `server/controllers/sdk.controller.ts`)
- Web SDK → SailPoint ISC: calls API
- User → Connector Tools: uses
- Connector Tools → GitHub Integration: uses (evidence: `app/connector/connector.ts`)
- Connector Tools → SDK Wrapper: uses (evidence: `app/connector/connector.ts`)
- Config Hub → GitHub Integration: Git integration
- User → Discourse Integration: uses community integration
