# googlecloudplatform/horizon-sdv architecture

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

- Interactive diagram: https://gitdiagram.com/googlecloudplatform/horizon-sdv
- Repository: https://github.com/googlecloudplatform/horizon-sdv

## Overview

Horizon is a cloud-hosted platform for SDV software development, combining developer-facing tools with modular platform services. A representative user workflow is to enter the Developer Portal, browse module workflow templates and runs, and use its authenticated API client to request data or actions. The repository also contains a Horizon API, CLI, module-management and cloud-workstation services, storage APIs, and agentic-AI and preflight tooling. The README describes broader code/build/test/release capabilities; sampled evidence supports only a few concrete runtime connections, so other relationships are intentionally not inferred.

Main entry points: [`terraform/modules/sdv-container-images/images/horizon-dev-portal/horizon-dev-portal/src/utils/api.ts`](https://github.com/googlecloudplatform/horizon-sdv/blob/main/terraform/modules/sdv-container-images/images/horizon-dev-portal/horizon-dev-portal/src/utils/api.ts) (Authenticated API Client), [`terraform/modules/sdv-container-images/images/horizon-dev-portal/horizon-dev-portal/src/App.tsx`](https://github.com/googlecloudplatform/horizon-sdv/blob/main/terraform/modules/sdv-container-images/images/horizon-dev-portal/horizon-dev-portal/src/App.tsx) (Portal Shell), [`terraform/modules/sdv-container-images/images/horizon-dev-portal/horizon-dev-portal/src/pages`](https://github.com/googlecloudplatform/horizon-sdv/tree/main/terraform/modules/sdv-container-images/images/horizon-dev-portal/horizon-dev-portal/src/pages) (Portal Pages), [`terraform/modules/sdv-container-images/images/horizon-api/horizon-api-app/internal/api`](https://github.com/googlecloudplatform/horizon-sdv/tree/main/terraform/modules/sdv-container-images/images/horizon-api/horizon-api-app/internal/api) (Horizon API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_portal["Developer Portal"]
  node_portal_shell["Portal Shell<br/>[App.tsx]"]
  node_portal_pages["Portal Pages"]
  node_module_status["Module Status<br/>[moduleStatus.ts]"]
  node_portal_api["Authenticated API Client<br/>[api.ts]"]
  node_portal_auth["Portal Authentication<br/>[auth.ts]"]
end

subgraph group_horizon["Horizon Interfaces"]
  node_horizon_cli["Horizon CLI"]
  node_horizon_api["Horizon API"]
  node_workflow_services["Workflow Services"]
end

subgraph group_platform["Platform Services"]
  node_module_manager["Module Manager"]
  node_workstation_controller["Workstation Controller"]
  node_gcs_api["GCS Storage API<br/>[server.go]"]
end

subgraph group_workloads["Workload Tooling"]
  node_agentic_ai["Agentic AI<br/>[agy_agent.py]"]
  node_preflight_ui["Workstation Preflight UI<br/>[ui_module.ts]"]
  node_preflight_sbom["SBOM and Licenses<br/>[sbom_module.ts]"]
  node_android_gcp["Android GCP Utilities"]
end

node_developer(("Developer"))

node_developer -->|"uses"| node_portal_shell
node_portal_shell -->|"renders"| node_portal_pages
node_portal_shell -->|"fetches module data"| node_portal_api
node_portal_pages -->|"computes deployment status"| node_module_status
node_portal_pages -->|"requests catalog and runs"| node_portal_api
node_portal_api -->|"refreshes credentials"| node_portal_auth
node_portal_api -->|"requests Horizon routes"| node_horizon_api
node_portal_api -->|"requests module routes"| node_module_manager
node_preflight_ui -->|"renders license details"| node_preflight_sbom
node_horizon_cli -.-> node_horizon_api

click node_portal_shell "https://github.com/googlecloudplatform/horizon-sdv/blob/main/terraform/modules/sdv-container-images/images/horizon-dev-portal/horizon-dev-portal/src/App.tsx"
click node_portal_pages "https://github.com/googlecloudplatform/horizon-sdv/tree/main/terraform/modules/sdv-container-images/images/horizon-dev-portal/horizon-dev-portal/src/pages"
click node_module_status "https://github.com/googlecloudplatform/horizon-sdv/blob/main/terraform/modules/sdv-container-images/images/horizon-dev-portal/horizon-dev-portal/src/moduleStatus.ts"
click node_portal_api "https://github.com/googlecloudplatform/horizon-sdv/blob/main/terraform/modules/sdv-container-images/images/horizon-dev-portal/horizon-dev-portal/src/utils/api.ts"
click node_portal_auth "https://github.com/googlecloudplatform/horizon-sdv/blob/main/terraform/modules/sdv-container-images/images/horizon-dev-portal/horizon-dev-portal/src/utils/auth.ts"
click node_horizon_cli "https://github.com/googlecloudplatform/horizon-sdv/tree/main/tools/horizon/cmd"
click node_horizon_api "https://github.com/googlecloudplatform/horizon-sdv/tree/main/terraform/modules/sdv-container-images/images/horizon-api/horizon-api-app/internal/api"
click node_workflow_services "https://github.com/googlecloudplatform/horizon-sdv/tree/main/terraform/modules/sdv-container-images/images/horizon-api/horizon-api-app/internal/workflow"
click node_module_manager "https://github.com/googlecloudplatform/horizon-sdv/tree/main/terraform/modules/sdv-container-images/images/module-manager/module-manager-app/internal/controller"
click node_workstation_controller "https://github.com/googlecloudplatform/horizon-sdv/blob/main/terraform/modules/sdv-container-images/images/cloud-workstations-module/cloud-workstations-module-app/internal/controller/workstationcluster_controller.go"
click node_gcs_api "https://github.com/googlecloudplatform/horizon-sdv/blob/main/terraform/modules/sdv-container-images/images/storage-gcs-module/storage-gcs-module-app/internal/api/server.go"
click node_agentic_ai "https://github.com/googlecloudplatform/horizon-sdv/blob/main/workloads/common/agentic-ai/antigravity/agy_agent.py"
click node_preflight_ui "https://github.com/googlecloudplatform/horizon-sdv/blob/main/workloads/cloud-workstations/pipelines/workstation-images/horizon-preflight/preflight-web/ui_module.ts"
click node_preflight_sbom "https://github.com/googlecloudplatform/horizon-sdv/blob/main/workloads/cloud-workstations/pipelines/workstation-images/horizon-preflight/preflight-web/sbom_module.ts"
click node_android_gcp "https://github.com/googlecloudplatform/horizon-sdv/tree/main/workloads/android/pipelines/common/gcp"

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_portal_shell,node_portal_pages,node_module_status,node_portal_api,node_portal_auth toneBlue
class node_horizon_cli,node_horizon_api,node_workflow_services toneAmber
class node_module_manager,node_workstation_controller,node_gcs_api toneMint
class node_agentic_ai,node_preflight_ui,node_preflight_sbom,node_android_gcp toneRose
class node_developer toneIndigo
```

## Components

### Developer Portal

- [Portal Shell](https://github.com/googlecloudplatform/horizon-sdv/blob/main/terraform/modules/sdv-container-images/images/horizon-dev-portal/horizon-dev-portal/src/App.tsx): `terraform/modules/sdv-container-images/images/horizon-dev-portal/horizon-dev-portal/src/App.tsx`
- [Portal Pages](https://github.com/googlecloudplatform/horizon-sdv/tree/main/terraform/modules/sdv-container-images/images/horizon-dev-portal/horizon-dev-portal/src/pages): `terraform/modules/sdv-container-images/images/horizon-dev-portal/horizon-dev-portal/src/pages`
- [Module Status](https://github.com/googlecloudplatform/horizon-sdv/blob/main/terraform/modules/sdv-container-images/images/horizon-dev-portal/horizon-dev-portal/src/moduleStatus.ts): `terraform/modules/sdv-container-images/images/horizon-dev-portal/horizon-dev-portal/src/moduleStatus.ts`
- [Authenticated API Client](https://github.com/googlecloudplatform/horizon-sdv/blob/main/terraform/modules/sdv-container-images/images/horizon-dev-portal/horizon-dev-portal/src/utils/api.ts): `terraform/modules/sdv-container-images/images/horizon-dev-portal/horizon-dev-portal/src/utils/api.ts`
- [Portal Authentication](https://github.com/googlecloudplatform/horizon-sdv/blob/main/terraform/modules/sdv-container-images/images/horizon-dev-portal/horizon-dev-portal/src/utils/auth.ts): `terraform/modules/sdv-container-images/images/horizon-dev-portal/horizon-dev-portal/src/utils/auth.ts`

### Horizon Interfaces

- [Horizon CLI](https://github.com/googlecloudplatform/horizon-sdv/tree/main/tools/horizon/cmd): `tools/horizon/cmd`
- [Horizon API](https://github.com/googlecloudplatform/horizon-sdv/tree/main/terraform/modules/sdv-container-images/images/horizon-api/horizon-api-app/internal/api): `terraform/modules/sdv-container-images/images/horizon-api/horizon-api-app/internal/api`
- [Workflow Services](https://github.com/googlecloudplatform/horizon-sdv/tree/main/terraform/modules/sdv-container-images/images/horizon-api/horizon-api-app/internal/workflow): `terraform/modules/sdv-container-images/images/horizon-api/horizon-api-app/internal/workflow`

### Platform Services

- [Module Manager](https://github.com/googlecloudplatform/horizon-sdv/tree/main/terraform/modules/sdv-container-images/images/module-manager/module-manager-app/internal/controller): `terraform/modules/sdv-container-images/images/module-manager/module-manager-app/internal/controller`
- [Workstation Controller](https://github.com/googlecloudplatform/horizon-sdv/blob/main/terraform/modules/sdv-container-images/images/cloud-workstations-module/cloud-workstations-module-app/internal/controller/workstationcluster_controller.go): `terraform/modules/sdv-container-images/images/cloud-workstations-module/cloud-workstations-module-app/internal/controller/workstationcluster_controller.go`
- [GCS Storage API](https://github.com/googlecloudplatform/horizon-sdv/blob/main/terraform/modules/sdv-container-images/images/storage-gcs-module/storage-gcs-module-app/internal/api/server.go): `terraform/modules/sdv-container-images/images/storage-gcs-module/storage-gcs-module-app/internal/api/server.go`

### Workload Tooling

- [Agentic AI](https://github.com/googlecloudplatform/horizon-sdv/blob/main/workloads/common/agentic-ai/antigravity/agy_agent.py): `workloads/common/agentic-ai/antigravity/agy_agent.py`
- [Workstation Preflight UI](https://github.com/googlecloudplatform/horizon-sdv/blob/main/workloads/cloud-workstations/pipelines/workstation-images/horizon-preflight/preflight-web/ui_module.ts): `workloads/cloud-workstations/pipelines/workstation-images/horizon-preflight/preflight-web/ui_module.ts`
- [SBOM and Licenses](https://github.com/googlecloudplatform/horizon-sdv/blob/main/workloads/cloud-workstations/pipelines/workstation-images/horizon-preflight/preflight-web/sbom_module.ts): `workloads/cloud-workstations/pipelines/workstation-images/horizon-preflight/preflight-web/sbom_module.ts`
- [Android GCP Utilities](https://github.com/googlecloudplatform/horizon-sdv/tree/main/workloads/android/pipelines/common/gcp): `workloads/android/pipelines/common/gcp`

### Other components

- **Developer**

## Connections

- Developer → Portal Shell: uses (evidence: `terraform/modules/sdv-container-images/images/horizon-dev-portal/horizon-dev-portal/src/App.tsx`)
- Portal Shell → Portal Pages: renders (evidence: `terraform/modules/sdv-container-images/images/horizon-dev-portal/horizon-dev-portal/src/App.tsx`)
- Portal Shell → Authenticated API Client: fetches module data (evidence: `terraform/modules/sdv-container-images/images/horizon-dev-portal/horizon-dev-portal/src/App.tsx`)
- Portal Pages → Module Status: computes deployment status (evidence: `terraform/modules/sdv-container-images/images/horizon-dev-portal/horizon-dev-portal/src/pages/admin/ModulesTab.tsx`)
- Portal Pages → Authenticated API Client: requests catalog and runs (evidence: `terraform/modules/sdv-container-images/images/horizon-dev-portal/horizon-dev-portal/src/pages/ModulePage.tsx`)
- Authenticated API Client → Portal Authentication: refreshes credentials (evidence: `terraform/modules/sdv-container-images/images/horizon-dev-portal/horizon-dev-portal/src/utils/api.ts`)
- Authenticated API Client → Horizon API: requests Horizon routes (evidence: `terraform/modules/sdv-container-images/images/horizon-dev-portal/horizon-dev-portal/src/utils/api.ts`)
- Authenticated API Client → Module Manager: requests module routes (evidence: `terraform/modules/sdv-container-images/images/horizon-dev-portal/horizon-dev-portal/src/utils/api.ts`)
- Workstation Preflight UI → SBOM and Licenses: renders license details (evidence: `workloads/cloud-workstations/pipelines/workstation-images/horizon-preflight/preflight-web/ui_module.ts`)
- Horizon CLI → Horizon API
