Entities are the core building blocks of the Shoehorn service catalog. Every service, library, API, database, and infrastructure component is represented as an entity.
Type Description Example serviceA running microservice or application Payment API, User Service apiA standalone API Public REST API, GraphQL Gateway frontendA frontend or UI application Web Dashboard, Mobile App libraryA shared library or SDK Auth SDK, Common Utils databaseA data store PostgreSQL, Redis, Elasticsearch systemA collection of related entities Payment System, Auth System domainA business domain Finance, Customer Experience resourceInfrastructure resource S3 Bucket, Kafka Topic componentA generic software component Cron Job, Lambda Function platformA platform or runtime Kubernetes, AWS teamAn engineering team Platform Team, Payments Team
Entities can be created from multiple sources:
Source How Automatic Kubernetes K8s agent discovers workloads Yes GitHub Manifests Crawler reads .shoehorn/manifest.yml from repos Yes Backstage Import Crawler reads catalog-info.yaml files Yes Manual Created via UI or API No Terraform Created via Terraform provider No
Each entity has a lifecycle stage indicating its maturity:
Stage Description productionLive, serving production traffic stagingIn staging/pre-production developmentUnder active development experimentalProof of concept or experiment deprecatedScheduled for decommission
Field Description Name Display name Service ID Unique kebab-case identifier (e.g., payment-api) Type Entity type (see above) Owner Owning team Lifecycle Current lifecycle stage Tier Service tier (platinum, gold, silver, bronze) Description Human-readable description Tags Categorization tags
Field Description Links External tool links (Grafana, ArgoCD, Docs, etc.) Relations Dependencies and relationships to other entities Interfaces API definitions (OpenAPI, gRPC, GraphQL) Runbooks Operational runbooks Licenses Software license tracking Scorecard Maturity score and grade
Navigate to Catalog in the sidebar
Browse, search, and filter entities
Click an entity to view its detail page
Use the Edit button to modify attributes
curl https://shoehorn.example.com/api/v1/entities \
-H " Authorization: Bearer <token> "
curl https://shoehorn.example.com/api/v1/entities/<id> \
-H " Authorization: Bearer <token> "
curl -X POST https://shoehorn.example.com/api/v1/entities \
-H " Authorization: Bearer <token> " \
-H " Content-Type: application/json " \
"lifecycle": "production",
The recommended approach for managing entities at scale. See Manifests .
The entity detail page includes these tabs:
Tab Content Overview Description, owner, tier, tags, links, relations Operations Kubernetes workloads, pod status, GitOps sync Scorecard Maturity score breakdown by category Changelog Repository changelog entries Activity Recent changes and events Governance Governance actions and compliance status Documentation README and embedded docs
Tiers indicate the criticality and SLA expectations of an entity:
Tier Description platinumMission-critical, highest SLA goldImportant, high SLA silverStandard, normal SLA bronzeBest-effort, low SLA