Labels: ready-to-code
Depends on: Issues 10, 11
Create independently deployable entity provider packages (kagenti-entity-provider, llamastack-entity-provider) and core plugin entity providers (McpEntityProvider, VectorStoreEntityProvider) that emit AI domain objects as Backstage catalog entities.
Important: Two-layer polling model. Backstage's catalog infrastructure polls entity providers on its own schedule. Independently, each entity provider manages its own upstream refresh interval — how often it fetches from the external API (Kagenti, Llama Stack). When Backstage polls, the provider returns cached upstream data. The upstream refresh interval must be configurable via app-config.yaml, not hardcoded.
Tasks
From openspec/changes/agent-creation-discovery/tasks.md sections 1 and 2:
- 1a.1-1a.6 kagenti-entity-provider package
- 1b.1-1b.6 llamastack-entity-provider package
- 1c.1-1c.3 Composition into provider modules
- 1d.1-1d.3 Core plugin entity providers (MCP servers using upstream
kind: API, spec.type: mcp-server from @backstage/plugin-catalog-backend-module-ai-model with Resource fallback; vector stores)
- 1e.1-1e.4 Shared entity concerns (ownership mapping, lifecycle mapping, validators, configurable upstream refresh intervals)
- 2.1-2.4 Catalog integration (backend endpoints reading from catalog)
Specifications
openspec/changes/agent-creation-discovery/specs/catalog-entities/spec.md
openspec/changes/agent-creation-discovery/design.md — Decisions 1-3 (kinds, deployment modes, catalog as source of truth)
Labels:
ready-to-codeDepends on: Issues 10, 11
Create independently deployable entity provider packages (
kagenti-entity-provider,llamastack-entity-provider) and core plugin entity providers (McpEntityProvider,VectorStoreEntityProvider) that emit AI domain objects as Backstage catalog entities.Important: Two-layer polling model. Backstage's catalog infrastructure polls entity providers on its own schedule. Independently, each entity provider manages its own upstream refresh interval — how often it fetches from the external API (Kagenti, Llama Stack). When Backstage polls, the provider returns cached upstream data. The upstream refresh interval must be configurable via
app-config.yaml, not hardcoded.Tasks
From
openspec/changes/agent-creation-discovery/tasks.mdsections 1 and 2:kind: API, spec.type: mcp-serverfrom@backstage/plugin-catalog-backend-module-ai-modelwithResourcefallback; vector stores)Specifications
openspec/changes/agent-creation-discovery/specs/catalog-entities/spec.mdopenspec/changes/agent-creation-discovery/design.md— Decisions 1-3 (kinds, deployment modes, catalog as source of truth)