Claim Registry¶
Purpose¶
The claim registry is a structured YAML file (claims/registry.yaml) that serves as the single source of truth for all claims managed through the platform. It replaces the previous approach of discovering claims solely through filesystem scanning or Backstage catalog discovery.
Why a Registry?¶
Without a centralized registry:
- Only Backstage knows what claims exist (by scanning
catalog-info.yamlfiles) - The CLI has no way to list or resolve claims without scanning the repo
- Automated tooling (cleanup, status checks) must walk the directory tree
- No structured metadata beyond what's in individual
catalog-info.yamlfiles
With a registry:
- Any service can query what claims exist by reading one file
- The
claim-registryAPI serves this data over HTTP - Delete operations can resolve claim paths and metadata instantly
- Status information has a centralized place to live
Schema¶
The registry file lives at claims/registry.yaml:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | |
Field Reference¶
| Field | Required | Description |
|---|---|---|
name |
yes | Unique claim name (matches directory name) |
template |
yes | Claim template used (e.g., volumeclaim, postgresql) |
category |
yes | Category directory (infra, apps, other-resources, cli) |
namespace |
no | Kubernetes namespace for the claim |
createdAt |
yes | ISO 8601 timestamp of creation |
createdBy |
yes | User or service that created the claim |
source |
yes | Origin of creation: backstage, cli, or ci |
repository |
yes | Git repository slug |
path |
yes | Path within the repository |
status |
no | Current status (active, error, unknown). Updated by claim-status-collector |
statusMessage |
no | Human-readable status detail. Updated by claim-status-collector |
lastCheckedAt |
no | Last time status was checked. Updated by claim-status-collector |
Integration Points¶
Claims CLI¶
- On
render: Adds a new entry toclaims/registry.yaml - On
delete: Removes the entry fromclaims/registry.yaml - On
list: Readsclaims/registry.yamldirectly or queries the claim-registry API
Claim Registry API¶
- Reads
claims/registry.yamlfrom the git repository (polling or webhook) - Exposes REST endpoints:
GET /api/v1/claims- List all claimsGET /api/v1/claims/{name}- Get claim detailsGET /api/v1/claims?category=infra- Filter by categoryGET /api/v1/claims?template=volumeclaim- Filter by template
Claim Status Collector¶
- Reads
claims/registry.yamlto know which claims to check - Updates
status,statusMessage, andlastCheckedAtfields - Commits updates back to git (direct push or PR)
Backstage¶
- Queries the claim-registry API to display existing claims
- Uses claim metadata for delete operations (via Backstage template calling claims CLI)
- Catalog entries (
catalog-info.yaml) remain per-claim for Backstage-native features (ownership, dependencies, TechInsights)