Certified Backstage Associate (CBA)
Catalog
Demo Working with UsersGroupsDomainsSystems
In this guide, we’ll explore core Backstage entities: Users, Groups, APIs, Systems, Domains, Resources, and Templates. Understanding how these types interrelate will help you organize your software catalog and automate entity synchronization.
Backstage Entity Overview
Entity Type | Kind | Description |
---|---|---|
User | User | A person (employee, contractor) |
Group | Group | Organizational units like teams or business units |
Component | Component | Services, libraries, or applications |
API | API | Interfaces provided or consumed by components |
System | System | Collection of related components and resources |
Domain | Domain | Logical business area grouping multiple systems |
Resource | Resource | Infrastructure elements (databases, queues, etc.) |
Users
A UserEntity represents an individual—an employee, contractor, or consultant. Each user follows the same YAML structure:
apiVersion: backstage.io/v1alpha1
kind: User
metadata:
name: jdoe
spec:
profile:
displayName: Jenny Doe
email: [email protected]
picture: https://example.com/staff/jenny-with-party-hat.jpeg
memberOf:
- team-b
- employees
- metadata.name: unique identifier for the user
- spec.profile: contains
displayName
,email
,picture
- memberOf: lists Backstage groups the user belongs to
Note
You can synchronize users automatically from LDAP, SSO, or an HR system instead of hand-authoring each YAML file.
Groups
A GroupEntity models teams, business units, or communities of interest. Groups help organize users and reflect your company’s hierarchy:
apiVersion: backstage.io/v1alpha1
kind: Group
metadata:
name: infrastructure
description: The infra business unit
spec:
type: business-unit
profile:
displayName: Infrastructure
email: [email protected]
picture: https://example.com/groups/bu-infrastructure.jpeg
parent: ops
children:
- backstage
- other
members:
- jdoe
- spec.type: e.g.,
business-unit
,team
- parent/children: build a hierarchy of groups
- members: list of user
metadata.name
values
Warning
When syncing groups from GitHub or an identity provider, ensure the metadata.name
matches the external group's identifier to avoid duplicates.
APIs
Backstage treats APIs as first-class entities. Define Component and API resources to model service interfaces:
apiVersion: backstage.io/v1beta1
kind: Component
metadata:
name: auth-service
description: Authentication service
tags:
- javascript
spec:
type: service
lifecycle: production
owner: auth-team
providesApis:
- auth-api
---
apiVersion: backstage.io/v1alpha1
kind: API
metadata:
name: auth-api
description: Verify user authentication status
spec:
type: openapi
lifecycle: production
owner: auth-team
apiProvidedBy: auth-service
definition:
$json: https://raw.githubusercontent.com/Sanjeev-Thiyagarajan/backstage-auth/main/openapi/auth-api-spec.yaml
You can declare the relationship from the Component (providesApis
) or from the API (apiProvidedBy
).
Systems
A SystemEntity groups related components and resources, exposing only public APIs to consumers:
apiVersion: backstage.io/v1alpha1
kind: System
metadata:
name: authentication-authorization
description: Handles user authentication and profiles
spec:
owner: guests
domain: user-management
---
apiVersion: backstage.io/v1beta1
kind: Component
metadata:
name: auth-service
description: Authentication service
tags:
- javascript
links:
- url: https://google.com
title: Admin Dashboard
icon: dashboard
type: admin-dashboard
spec:
type: service
lifecycle: production
owner: guests
system: authentication-authorization
providesApis:
- auth-api
Real-world examples:
Domains
A DomainEntity defines a logical business area. Systems are grouped under domains to reflect products or services:
apiVersion: backstage.io/v1alpha1
kind: Domain
metadata:
name: user-management
description: Everything about user operations
spec:
type: product-area
owner: guests
subdomainOf: Ecommerce
---
apiVersion: backstage.io/v1alpha1
kind: System
metadata:
name: authentication-authorization
description: Handles user authentication and profiles
spec:
owner: guests
domain: user-management
Resources
A ResourceEntity represents infrastructure—databases, message queues, buckets, or CDNs—that a system relies on:
apiVersion: backstage.io/v1alpha1
kind: Resource
metadata:
name: auth-db
description: Stores user profiles
spec:
type: database
owner: guests
system: authentication-authorization
Links and References
Watch Video
Watch video content