Backstage
Backstage is Spotify's open-source developer portal platform that centralizes all software components—services, websites, libraries, and more—in a unified catalog. While similar to FireHydrant's Service Catalog in providing standardized organization, FireHydrant's catalog is specifically designed for incident management and integrates with tools like Backstage rather than competing with them.
FireHydrant's integration with Backstage comes with two parts:
- FH Service Catalog ingestion of Backstage-defined services
- FireHydrant plugin within Backstage
Service Ingestion via GitHub YAML

Creating a Catalog Setting on FireHydrant
Note:Requires GitHub integration configured.
Create Catalog Setting
- Navigate to Catalog, and then in the left navigation drawer, click Catalog settings.
- Near the top right, click "+ Create catalog setting."
- Enter parameters:
- Name - A name for the catalog setting
- Description - A description for the catalog setting
- Provider - Select
GitHub.- Format - Select
backstage.io/v1alpha1
- Format - Select
- Targets - This is where you specify the path(s) of the YAML file(s).
- Type - Selection
Github. - Repository - Repository name in the format of
org/repo - Reference - The branch name to pull configs from (usually
main) - Path - Path to the YAML file. This will be the path to a single component spec or a
Locationspec that points to multiple YAML files. - Repeat this substep to add more targets/files as needed across any number of repositories.
- Type - Selection
- Click Create setting button to finalize the catalog setting creation.
File Formats
Note:Currently, FireHydrant only supports
Componentspecs andLocationspecs that point to otherComponentspecs.
For a single component, you can specify the kind as Component and the service's parameters in the spec section, like so:
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
name: Sample-component3
description: sample backstage component
tags:
- microservice
spec:
type: service
lifecycle: experimental
owner: DalmatiansIf you have multiple components, as mentioned above, you can configure multiple Targets that point at each of the files. Alternatively, to clean things up, you can define a single Location type spec that points at multiple other component specs:
apiVersion: backstage.io/v1alpha1
kind: Location
metadata:
name: example-components
description: A collection of all services that the FireHydrant catalog should point to an ingest
spec:
targets:
- ./service_1.yaml
- ./service_2.yamlService Ingestion via API
Create Catalog Setting
- Navigate to Catalog, and then in the left navigation drawer, click Catalog settings.
- Near the top right, click "+ Create catalog setting."
- Enter parameters:
- Name - A name for the catalog setting.
- Description - A description for the catalog setting.
- Provider - Select
API Only. - Format - Select
backstage.io/v1alpha1.
- Click Create setting button to finalize the catalog setting creation. Once created, the setting will output a unique API path, similar to:
/v1/catalogs/72845d2d-77ca-4bc8-8d8e-a8ea16f15a42/ingest.
From here, you can append to the FireHydrant base API URL https://api.firehydrant.com//v1/catalogs/72845d2d-77ca-4bc8-8d8e-a8ea16f15a42/ingest and use this endpoint for sending your Service Catalog configurations.
Data Format
Ingestion via API supports the same general parameters (see [next section](#parameter-mappings)), but the data will need to be converted to JSON. Once converted to JSON, the information is then inserted into the data parameter of the request. Note in the example below, the content in the data object matches the YAML spec but in JSON form:
{
"encoding": "application/json",
"data": {
"apiVersion": "backstage.io/v1alpha1",
"kind": "Component",
"metadata": {
"name": "API-Component1",
"description": "sample backstage component",
"tags": [
"microservice",
"svc1",
"prod"
]
},
"spec": {
"type": "service",
"lifecycle": "experimental",
"owner": "SRE (FireHydrant)"
}
}
}Parameter Mappings
The following parameters in the Backstage specs are supported when ingesting and mapping to FireHydrant:
Backstage Field | FireHydrant Ingested Field | Additional Notes |
|---|---|---|
|
| The ingested service's name will be |
|
| |
|
| The namespace is incorporated into the service's name when ingested: If no namespace is provided, then the default value is |
|
| The tags in the metadata are imported as semi-colon delimited values under the |
|
| Links in the metadata are included as links in the service |
|
| Added as a value to the |
|
| Added as a value to the |
|
| Added as a value to the |
|
| The |
Parameters Not Currently Supported
- Any
metadatafields not mentioned above- E.g.,
metadata.annotations
- E.g.,
- Any
relationsfield - Any
specfields not mentioned above- E.g.,
spec.consumesApis,spec.dependsOn, etc.
- E.g.,
Updated 18 days ago
