Roadmap¶
Implementation Phases¶
Phase 1a: Claim Registry File¶
Repository: stuttgart-things/harvester
Establish claims/registry.yaml as the source of truth for all managed claims.
- Define registry schema (
claim-registry.io/v1alpha1) - Create initial
claims/registry.yamlwith existing claims - Document schema and field reference
- Update Backstage claim-to-pull-request template to write registry entries on create
Phase 1b: Claims CLI - Delete and Registry Support¶
Repository: stuttgart-things/claims
Extend the claims CLI with delete functionality and registry integration.
-
claims deletesubcommand (interactive + non-interactive)- Remove claim directory (
claims/{category}/{name}/) - Remove entry from parent
kustomization.yaml - Remove entry from
claims/registry.yaml - Create PR with deletion changes
- Remove claim directory (
-
claims renderupdates to write registry entry on create -
claims listsubcommand (read from registry file or API)
Phase 2: Claim Registry API¶
Repository: stuttgart-things/machinery-registry-api
Build a lightweight API that serves the claim inventory.
- REST API (
GET /api/v1/claims,GET /api/v1/claims/{name}) - Query filtering (category, template, status, source)
- Git sync (poll
registry.yamlfrom harvester repo) - Middleware stack (CORS, request ID, logging, error handler)
- Cobra CLI with env var configuration and graceful shutdown
- OpenAPI 3.0 spec and Redoc docs endpoint
- GoReleaser multi-platform build config
- Backstage catalog integration (API definition)
- Container image and Helm chart
Phase 3: Claim Status Collector¶
Repository: stuttgart-things/claim-status-collector (new)
Monitor deployed claims and report health status.
- Kubernetes API integration for Crossplane claim status
- Registry updates (status, statusMessage, lastCheckedAt)
- Backstage catalog annotation updates
- Multi-cluster support
- Alerting webhooks on status change
Dependencies¶
1 2 3 4 | |
Phase 1a is the foundation. Phase 1b depends on the registry schema. Phase 2 and Phase 3 can be developed in parallel once the registry file exists.