# terasky-oss/backstage-plugins architecture

> Architecture diagram of the GitHub repository terasky-oss/backstage-plugins, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-05-14). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/terasky-oss/backstage-plugins
- Repository: https://github.com/terasky-oss/backstage-plugins

## Overview

1. This repository is a monorepo of Backstage plugins and modules, not a single app. The dominant architecture is “plugin family” based: each integration usually has a frontend package, a backend package, and sometimes a shared common package plus optional ingestor/auth/module packages.

2. The runtime split is consistent across the repo. Frontend packages are React/TypeScript Backstage plugins that render catalog pages, cards, tabs, field extensions, or app modules. Backend packages are Node/TypeScript Backstage backend plugins or modules that expose HTTP routes, permissions, catalog providers, scaffolder actions, or auth integrations.

3. Most feature flows follow the same path: Backstage UI component or field extension calls a generated client/API wrapper, which talks to a backend route in the matching backend plugin. The backend then either proxies to an external SaaS API, queries Kubernetes, or performs action logic. Permission-aware features usually gate the frontend with shared permission definitions and enforce them again on the backend.

4. Several packages are catalog ingest sources rather than UI. The ingestor/provider plugins discover external resources or Kubernetes resources and publish Backstage entities into the catalog. This is especially important for Kubernetes Ingestor, SpectroCloud Ingestor, VCF Automation Ingestor, and the cluster providers, which turn external platform state into catalog entities and relationships.

5. There is a strong “shared library” boundary. Packages named `*-common` hold shared types, permission constants, and utilities used by both frontend and backend halves of a feature. That keeps policy definitions and domain types aligned without coupling the UI directly to backend internals.

6. Kubernetes is a major integration boundary. The Kubernetes Ingestor reads cluster workloads and Crossplane/KRO resources and emits catalog entities. The Kubernetes Resources, Crossplane Resources, and KRO Resources plugins visualize Kubernetes-owned infrastructure. The corresponding backend permission packages sit between the UI and cluster-derived data to control what can be viewed.

7. AI/automation support is a second major architectural theme. MCP-enabled backends expose structured actions for AI agents over catalog, RBAC, scaffolder, ScaleOps, AI rules, and other domains. These backends are not UI-driven; they publish machine-consumable operations for querying, auditing, or mutating Backstage-adjacent state.

8. Authentication is handled as pluggable auth modules. SpectroCloud SSO, VCF SSO, and related Kubernetes auth modules plug into the Backstage auth stack and, in some cases, the Kubernetes integration. The pattern is: frontend auth client initiates OAuth/OIDC, backend auth module performs token exchange or claim transformation, and downstream plugins reuse the resulting identity for sign-in or cluster access.

9. Some plugins are “editor” or “builder” tools rather than dashboards. Template Builder is a full visual editor for Backstage software templates, synchronizing a graph canvas, YAML editor, validation, and field-extension discovery. Terraform Scaffolder and Spring Initializer are field extensions/actions that enrich software templates by discovering and configuring external generation targets.

10. The repository also includes platform-level modules that affect how Backstage loads plugins. Module Federation CDN Backend injects dynamic frontend plugins from a CDN, while the Global Sign-In Page module configures sign-in behavior from YAML. These sit at the app/platform layer rather than in a domain integration.

11. `packages/app` and `packages/backend` are the reference host application. They provide the Backstage shell used to assemble and exercise the plugins, but the individual plugins are the primary units of deployment and reuse.

12. `site/` is a separate documentation system, built from Markdown into a plugin catalog site. It reflects the repo’s packaging model: each plugin has install/configure/about docs, matching the frontend/backend/module split and making the documentation a parallel architecture map for consumers.

13. Tooling reinforces the monorepo boundaries: Yarn 4 workspaces, Backstage 1.50.3 compatibility, per-package tests, and GitHub workflows for publishing, docs, and version bumps. The build/release process is organized around independently publishable plugin packages rather than one consolidated artifact.

Main entry points: [`plugins/ai-rules-plugin-backend`](https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/ai-rules-plugin-backend) (AI rules backend), [`plugins/spectrocloud-common`](https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/spectrocloud-common) (Spectro common), [`plugins/crossplane-resources`](https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/crossplane-resources) (Crossplane UI), [`plugins/spectrocloud`](https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/spectrocloud) (SpectroCloud UI)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_platform["Platform"]
  node_packages_app["App shell<br/>Backstage host"]
  node_packages_backend[("Backend shell<br/>Backstage host")]
  node_module_federation_cdn_backend["CDN module<br/>Platform backend module"]
  node_app_module_global_signin_page["Signin module<br/>App module"]
end

subgraph group_catalog_k8s["Catalog + Kubernetes"]
  node_crossplane_common["Crossplane common<br/>Shared types"]
  node_crossplane_resources["Crossplane UI<br/>Frontend plugin"]
  node_crossplane_resources_backend[("Crossplane backend<br/>Backend plugin")]
  node_kro_common["KRO common<br/>Shared types"]
  node_kro_resources["KRO UI<br/>Frontend plugin"]
  node_kro_resources_backend[("KRO backend<br/>Backend plugin")]
  node_kubernetes_ingestor["K8s ingestor<br/>Catalog ingestor"]
  node_kubernetes_resources_common["K8s common<br/>Shared types"]
  node_kubernetes_resources_permissions_backend[("K8s permissions<br/>Permission backend")]
  node_kubernetes_resources["K8s UI<br/>Frontend plugin"]
end

subgraph group_automation["Automation"]
  node_template_builder["Template builder<br/>Visual editor"]
  node_spring_initializer["Spring initializer<br/>Field extension"]
  node_terraform_scaffolder["Terraform scaffolder<br/>Field extension"]
  node_ai_rules_backend[("AI rules backend<br/>MCP backend")]
  node_ai_rules_frontend["AI rules UI<br/>Frontend plugin"]
  node_catalog_mcp_backend[("Catalog MCP<br/>MCP backend")]
  node_rbac_mcp_backend[("RBAC MCP<br/>MCP backend")]
  node_scaffolder_mcp_backend[("Scaffolder MCP<br/>MCP backend")]
end

subgraph group_vendor["Vendor integrations"]
  node_scaleops_frontend["ScaleOps UI<br/>Frontend plugin"]
  node_scaleops_backend[("ScaleOps backend<br/>Backend plugin")]
  node_spectrocloud_common["Spectro common<br/>Shared types"]
  node_spectrocloud_frontend["SpectroCloud UI<br/>Frontend plugin"]
  node_spectrocloud_backend[("SpectroCloud backend<br/>Backend plugin")]
  node_spectrocloud_ingestor["Spectro ingestor<br/>Catalog ingestor"]
  node_spectrocloud_cluster_provider["Cluster provider<br/>Catalog supplier"]
  node_spectrocloud_auth_frontend["Spectro auth UI<br/>Auth frontend"]
  node_spectrocloud_auth_backend[("Spectro auth backend")]
  node_spectrocloud_kubernetes_auth_module["K8s auth module"]
  node_vcf_operations_common["VCF ops common<br/>Shared types"]
end

subgraph group_docs["Docs"]
  node_site_docs["Docs site"]
end

node_packages_app -->|"loads plugins"| node_module_federation_cdn_backend
node_packages_app -->|"uses"| node_app_module_global_signin_page
node_packages_backend -->|"hosts"| node_ai_rules_backend
node_packages_backend -->|"hosts"| node_spectrocloud_backend
node_site_docs -->|"documents"| node_crossplane_resources
node_site_docs -->|"documents"| node_spectrocloud_frontend
node_crossplane_resources -->|"shares types"| node_crossplane_common
node_crossplane_resources_backend -->|"shares types"| node_crossplane_common
node_crossplane_resources -->|"calls API"| node_crossplane_resources_backend
node_kro_resources -->|"shares types"| node_kro_common
node_kro_resources_backend -->|"shares types"| node_kro_common
node_kro_resources -->|"calls API"| node_kro_resources_backend
node_kubernetes_ingestor -->|"publishes entities"| node_kubernetes_resources_common
node_kubernetes_resources -->|"checks access"| node_kubernetes_resources_permissions_backend
node_kubernetes_resources -->|"shares types"| node_kubernetes_resources_common
node_template_builder -->|"extends"| node_spring_initializer
node_template_builder -->|"extends"| node_terraform_scaffolder
node_ai_rules_backend -->|"agent ops"| node_catalog_mcp_backend
node_ai_rules_backend -->|"agent ops"| node_rbac_mcp_backend
node_ai_rules_backend -->|"agent ops"| node_scaffolder_mcp_backend
node_scaleops_frontend -->|"calls API"| node_scaleops_backend
node_spectrocloud_frontend -->|"shares types"| node_spectrocloud_common
node_spectrocloud_backend -->|"shares types"| node_spectrocloud_common
node_spectrocloud_frontend -->|"calls API"| node_spectrocloud_backend
node_spectrocloud_ingestor -->|"shares types"| node_spectrocloud_common
node_spectrocloud_cluster_provider -->|"shares types"| node_spectrocloud_common
node_spectrocloud_auth_frontend -->|"auth flow"| node_spectrocloud_auth_backend
node_spectrocloud_auth_backend -->|"integrates"| node_spectrocloud_kubernetes_auth_module
node_vcf_operations_common -.->|"shared boundary"| node_scaleops_backend

click node_packages_app "https://github.com/terasky-oss/backstage-plugins/tree/main/packages/app"
click node_packages_backend "https://github.com/terasky-oss/backstage-plugins/tree/main/packages/backend"
click node_module_federation_cdn_backend "https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/module-federation-cdn-backend"
click node_app_module_global_signin_page "https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/app-module-global-signin-page"
click node_site_docs "https://github.com/terasky-oss/backstage-plugins/tree/main/site"
click node_crossplane_common "https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/crossplane-common"
click node_crossplane_resources "https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/crossplane-resources"
click node_crossplane_resources_backend "https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/crossplane-resources-backend"
click node_kro_common "https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/kro-common"
click node_kro_resources "https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/kro-resources"
click node_kro_resources_backend "https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/kro-resources-backend"
click node_kubernetes_ingestor "https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/kubernetes-ingestor"
click node_kubernetes_resources_common "https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/kubernetes-resources-common"
click node_kubernetes_resources_permissions_backend "https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/kubernetes-resources-permissions-backend"
click node_kubernetes_resources "https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/kubernetes-resources"
click node_template_builder "https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/template-builder"
click node_spring_initializer "https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/spring-initializer"
click node_terraform_scaffolder "https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/terraform-scaffolder"
click node_ai_rules_backend "https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/ai-rules-plugin-backend"
click node_ai_rules_frontend "https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/ai-rules-plugin"
click node_catalog_mcp_backend "https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/catalog-mcp-backend"
click node_rbac_mcp_backend "https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/rbac-mcp-backend"
click node_scaffolder_mcp_backend "https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/scaffolder-mcp-backend"
click node_scaleops_frontend "https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/scaleops-frontend"
click node_scaleops_backend "https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/scaleops-backend"
click node_spectrocloud_common "https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/spectrocloud-common"
click node_spectrocloud_frontend "https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/spectrocloud"
click node_spectrocloud_backend "https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/spectrocloud-backend"
click node_spectrocloud_ingestor "https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/spectrocloud-ingestor"
click node_spectrocloud_cluster_provider "https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/spectrocloud-cluster-provider"
click node_spectrocloud_auth_frontend "https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/spectrocloud-auth"
click node_spectrocloud_auth_backend "https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/spectrocloud-auth-backend"
click node_spectrocloud_kubernetes_auth_module "https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/spectrocloud-kubernetes-auth-module"
click node_vcf_operations_common "https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/vcf-operations-common"

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_packages_app,node_packages_backend,node_module_federation_cdn_backend,node_app_module_global_signin_page toneBlue
class node_crossplane_common,node_crossplane_resources,node_crossplane_resources_backend,node_kro_common,node_kro_resources,node_kro_resources_backend,node_kubernetes_ingestor,node_kubernetes_resources_common,node_kubernetes_resources_permissions_backend,node_kubernetes_resources toneAmber
class node_template_builder,node_spring_initializer,node_terraform_scaffolder,node_ai_rules_backend,node_ai_rules_frontend,node_catalog_mcp_backend,node_rbac_mcp_backend,node_scaffolder_mcp_backend toneMint
class node_scaleops_frontend,node_scaleops_backend,node_spectrocloud_common,node_spectrocloud_frontend,node_spectrocloud_backend,node_spectrocloud_ingestor,node_spectrocloud_cluster_provider,node_spectrocloud_auth_frontend,node_spectrocloud_auth_backend,node_spectrocloud_kubernetes_auth_module,node_vcf_operations_common toneRose
class node_site_docs toneIndigo
```

## Components

### Platform

Host app, platform modules, and repository-wide loading/runtime concerns.

- [App shell](https://github.com/terasky-oss/backstage-plugins/tree/main/packages/app): Backstage host · Reference frontend shell used to assemble and exercise plugins. · `packages/app`
- [Backend shell](https://github.com/terasky-oss/backstage-plugins/tree/main/packages/backend): Backstage host · Reference backend host for mounting backend plugins and modules. · `packages/backend`
- [CDN module](https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/module-federation-cdn-backend): Platform backend module · Injects frontend plugins dynamically from a CDN. · `plugins/module-federation-cdn-backend`
- [Signin module](https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/app-module-global-signin-page): App module · Configures global sign-in behavior at the app layer. · `plugins/app-module-global-signin-page`

### Catalog + Kubernetes

Kubernetes-centric UI, backends, and ingest pipelines.

- [Crossplane common](https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/crossplane-common): Shared types · Shared Crossplane domain types used by frontends and backends. · `plugins/crossplane-common`
- [Crossplane UI](https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/crossplane-resources): Frontend plugin · Visualizes Crossplane resources with overview cards, tables, and graphs. · `plugins/crossplane-resources`
- [Crossplane backend](https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/crossplane-resources-backend): Backend plugin · Serves Crossplane resource data and Kubernetes-backed routes. · `plugins/crossplane-resources-backend`
- [KRO common](https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/kro-common): Shared types · Shared KRO domain types and helpers. · `plugins/kro-common`
- [KRO UI](https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/kro-resources): Frontend plugin · Shows KRO resources with overview, table, and graph views. · `plugins/kro-resources`
- [KRO backend](https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/kro-resources-backend): Backend plugin · Backs KRO visualizations with Kubernetes queries and routes. · `plugins/kro-resources-backend`
- [K8s ingestor](https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/kubernetes-ingestor): Catalog ingestor · Discovers Kubernetes, CRD, Crossplane, and KRO resources and publishes catalog entities. · `plugins/kubernetes-ingestor`
- [K8s common](https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/kubernetes-resources-common): Shared types · Shared Kubernetes resource types and helpers. · `plugins/kubernetes-resources-common`
- [K8s permissions](https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/kubernetes-resources-permissions-backend): Permission backend · Backend permission layer for Kubernetes resource visibility. · `plugins/kubernetes-resources-permissions-backend`
- [K8s UI](https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/kubernetes-resources): Frontend plugin · Catalog-style UI for Kubernetes resources and availability checks. · `plugins/kubernetes-resources`

### Automation

AI, scaffolder, and external automation integrations.

- [Template builder](https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/template-builder): Visual editor · Full visual editor for Backstage software templates. · `plugins/template-builder`
- [Spring initializer](https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/spring-initializer): Field extension · Template field extension for Spring project generation. · `plugins/spring-initializer`
- [Terraform scaffolder](https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/terraform-scaffolder): Field extension · Template field extension for Terraform module discovery and configuration. · `plugins/terraform-scaffolder`
- [AI rules backend](https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/ai-rules-plugin-backend): MCP backend · Machine-consumable backend exposing AI rules, skills, agent configs, and actions. · `plugins/ai-rules-plugin-backend`
- [AI rules UI](https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/ai-rules-plugin): Frontend plugin · Frontend surfaces for AI rules, MCP servers, agent configs, and instructions. · `plugins/ai-rules-plugin`
- [Catalog MCP](https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/catalog-mcp-backend): MCP backend · Agent-facing actions for catalog operations. · `plugins/catalog-mcp-backend`
- [RBAC MCP](https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/rbac-mcp-backend): MCP backend · Agent-facing RBAC operations. · `plugins/rbac-mcp-backend`
- [Scaffolder MCP](https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/scaffolder-mcp-backend): MCP backend · Agent-facing scaffolder operations. · `plugins/scaffolder-mcp-backend`

### Vendor integrations

SpectroCloud and VCF plugin families with shared auth and ingestors.

- [ScaleOps UI](https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/scaleops-frontend): Frontend plugin · Dashboard and cards for ScaleOps data. · `plugins/scaleops-frontend`
- [ScaleOps backend](https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/scaleops-backend): Backend plugin · Backend routes and actions for ScaleOps integration. · `plugins/scaleops-backend`
- [Spectro common](https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/spectrocloud-common): Shared types · Shared SpectroCloud domain types and helpers. · `plugins/spectrocloud-common`
- [SpectroCloud UI](https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/spectrocloud): Frontend plugin · Cluster deployment, viewer, resources, and permission-aware UI. · `plugins/spectrocloud`
- [SpectroCloud backend](https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/spectrocloud-backend): Backend plugin · Routes, client wrappers, and action logic for SpectroCloud. · `plugins/spectrocloud-backend`
- [Spectro ingestor](https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/spectrocloud-ingestor): Catalog ingestor · Publishes SpectroCloud entities into the catalog. · `plugins/spectrocloud-ingestor`
- [Cluster provider](https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/spectrocloud-cluster-provider): Catalog supplier · Periodically supplies SpectroCloud cluster entities. · `plugins/spectrocloud-cluster-provider`
- [Spectro auth UI](https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/spectrocloud-auth): Auth frontend · Frontend auth client for SpectroCloud sign-in. · `plugins/spectrocloud-auth`
- [Spectro auth backend](https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/spectrocloud-auth-backend): Auth backend · Auth module handling token exchange and identity plumbing. · `plugins/spectrocloud-auth-backend`
- [K8s auth module](https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/spectrocloud-kubernetes-auth-module): Auth module · Kubernetes auth module used with SpectroCloud identity flows. · `plugins/spectrocloud-kubernetes-auth-module`
- [VCF ops common](https://github.com/terasky-oss/backstage-plugins/tree/main/plugins/vcf-operations-common): Shared types · Shared VCF Operations domain types. · `plugins/vcf-operations-common`

### Docs

Documentation site that mirrors the plugin packaging model.

- [Docs site](https://github.com/terasky-oss/backstage-plugins/tree/main/site): MkDocs site · Separate documentation system for plugin install, configure, and about pages. · `site`

## Connections

- App shell → CDN module: loads plugins · App shell consumes dynamically served frontend modules.
- App shell → Signin module: uses · App shell is configured by the global sign-in module.
- Backend shell → AI rules backend: hosts · Reference backend mounts the AI rules service.
- Backend shell → SpectroCloud backend: hosts · Reference backend mounts the SpectroCloud service.
- Docs site → Crossplane UI: documents · Docs site mirrors plugin packaging for consumers.
- Docs site → SpectroCloud UI: documents · Docs site mirrors plugin packaging for consumers.
- Crossplane UI → Crossplane common: shares types · Frontend consumes shared Crossplane types and annotations.
- Crossplane backend → Crossplane common: shares types · Backend uses the shared Crossplane domain boundary.
- Crossplane UI → Crossplane backend: calls API · UI fetches Crossplane data from matching backend routes.
- KRO UI → KRO common: shares types · Frontend consumes shared KRO types.
- KRO backend → KRO common: shares types · Backend uses the shared KRO domain boundary.
- KRO UI → KRO backend: calls API · UI fetches KRO data from matching backend routes.
- K8s ingestor → K8s common: publishes entities · Ingestor turns cluster state into catalog data used by Kubernetes plugins.
- K8s UI → K8s permissions: checks access · Frontend is guarded by backend-enforced permissions.
- K8s UI → K8s common: shares types · Frontend relies on shared Kubernetes resource types.
- Template builder → Spring initializer: extends · Template builder can incorporate generation-oriented field extensions.
- Template builder → Terraform scaffolder: extends · Template builder can incorporate Terraform-oriented field extensions.
- AI rules backend → Catalog MCP: agent ops · MCP family exposes catalog-related actions.
- AI rules backend → RBAC MCP: agent ops · MCP family exposes RBAC-related actions.
- AI rules backend → Scaffolder MCP: agent ops · MCP family exposes scaffolder-related actions.
- ScaleOps UI → ScaleOps backend: calls API · ScaleOps UI talks to its backend service.
- SpectroCloud UI → Spectro common: shares types · SpectroCloud UI and backend stay aligned through shared types.
- SpectroCloud backend → Spectro common: shares types · SpectroCloud backend uses the shared domain boundary.
- SpectroCloud UI → SpectroCloud backend: calls API · Frontend workflows depend on backend route and client wrappers.
- Spectro ingestor → Spectro common: shares types · Ingestor publishes entities using shared SpectroCloud types.
- Cluster provider → Spectro common: shares types · Cluster supplier uses shared SpectroCloud types.
- Spectro auth UI → Spectro auth backend: auth flow · Frontend initiates sign-in handled by backend auth module.
- Spectro auth backend → K8s auth module: integrates · Auth backend feeds Kubernetes identity plumbing.
- VCF ops common → ScaleOps backend: shared boundary · Representative shared-library pattern across vendor integrations.
