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
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
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