Backstage.io Integration
Integrate Facets into Backstage to enhance the developer experience.
Facets is now available as a plugin in Backstage, enabling teams to seamlessly integrate release orchestration within their developer portal. With this plugin, you can:
- View and manage controlled shifts directly from Backstage.
- Monitor deployment progress and troubleshoot issues in real time.
- Automate and standardize release workflows across teams.
This plugin is listed in the Backstage Plugin Marketplace under the Deployment category.
Key Features
This integration is designed for platform engineers aiming to reduce developers' cognitive load by providing fast feedback mechanisms. Familiarity with Backstage is essential to effectively implement this integration and offer developers a comprehensive overview of performance, along with entry points for deeper investigations.
The Facets Cloud plugin provides three main components for your Backstage entity pages:
Environment Overview
Shows all environments deployed for a specific resource in Facets.cloud, helping teams understand what's running where.
Release History
Displays deployment history and lets users trigger new releases directly from Backstage.
Terraform Outputs
Provides access to infrastructure details like endpoints, connection strings, and other Terraform outputs.
Prerequisites
- Backstage Instance: You can either integrate this into an existing Backstage app or set up a new one.
- Node.js & Yarn: Required for package installation.
- Facets.cloud Account: Sign up at Facets.cloud and generate an API key.
- Backstage Plugin Knowledge (optional): Refer to Backstage Plugin Docs for additional details.
Installation Guide
Step 1: Install Both Plugins
First, install both the frontend and backend plugins:
# Install backend plugin
yarn workspace backend add @facets-cloud/backstage-plugin-backend
# Install frontend plugin
yarn workspace app add @facets-cloud/backstage-plugin
Step 2: Configure the Backend
Register the backend plugin in your Backstage backend:
// In packages/backend/src/index.ts
backend.add(import('@facets-cloud/backstage-plugin-backend'));
backend.start();
Step 3: Add Configuration
Configure your Backstage instance to connect to Facets.cloud by adding the following to your app-config.yaml:
proxy:
endpoints:
'/facets/api':
target: ${FACETS_CONTROL_PLANE_URL}
facets-cloud:
controlPlaneUrl: ${FACETS_CONTROL_PLANE_URL}
You can optionally add shared authentication (though user-level auth is recommended):
facets-cloud:
controlPlaneUrl: ${FACETS_CONTROL_PLANE_URL}
auth:
username: ${FACETS_USER_NAME}
accessToken: ${FACETS_ACCESS_TOKEN}
For more information on configuring Backstage, see the official configuration documentation.
Step 4: Add the Settings Page
Add the Facets.cloud settings page to allow users to configure their individual credentials. You can find the same in packages/app/src/App.tsx.
Adding Facets Components to Entity Pages
Now that the plugins are installed, you can add Facets components to your entity pages.
Step 1: Link Entities to Facets Resources : First, ensure your entities are linked to Facets resources by adding annotations to your entity YAML files:
Step 2: Add Components to Entity Overview : Now you can add the Facets components to your entity pages. You can add all components or select just the ones you need for your use case in the EntityPage.tsx
User Authentication
For the best experience, users should configure their own Facets.cloud credentials:
Obtain credentials from Facets Control Plane:
- Log in to Facets Control Plane
- Click on your profile picture
- Go to "Account Settings" → "Personal Token"
- Click "Generate Token" and copy the token
Configure in Backstage:
- Navigate to Settings → Facets.Cloud in Backstage
- Enter your username and token
- Click "Save"
Troubleshooting
Components not appearing
- Verify entity annotations are correctly configured
- Check user has valid credentials configured
Connection errors
- Ensure
controlPlaneUrl
is correct - Verify API credentials have proper permissions
- Check network connectivity to Facets Control Plane
Authentication issues
- Try regenerating your personal token
- Ensure username matches your Facets.Cloud account
Development
For developers who want to contribute to the Facets.Cloud plugin:
Clone the repository:
git clone https://github.com/Facets-cloud/facets-backstage-plugin.git
Install dependencies:
cd facets-backstage-plugin
yarn install
Start the development environment:
yarn dev
Updated 11 days ago