Firefly Documentation Portal
  • Welcome to the Documentation Portal
  • Contacting Firefly support
  • User Guides
    • QuickStart Guide
      • Onboarding
      • Dashboard
      • FAQ
      • Glossary
        • IaC status
    • Exploring the Inventory
    • Compose: Generating new configuration
    • Navigating the IaC Explorer
    • Workflows
      • Guardrails
    • Integrations
      • Integrate your providers and tools
        • Integrate your data sources
          • Integrate PagerDuty
          • Integrate MongoDB Atlas
          • Integrate AWS
            • Integrate AWS using Terraform
            • Integrate AWS using CloudFormation
            • Upgrading AWS integration to event-driven
            • AWS Discovery Status
          • Integrate Google Cloud
            • Integrate Google Cloud using a service account key
            • Integrate Google Cloud using Terraform
            • Google Cloud Discovery Status
          • Integrate Kubernetes
          • Integrate Datadog
          • Integrate New Relic
          • Integrate Okta
          • Integrate GitHub service
          • Integrate Cloudflare
          • Integrate NS1
          • Integrate Microsoft Azure
            • Integrate Microsoft Azure using Terraform
            • Azure Discovery Status
          • Integrate HashiCorp Vault
        • Integrate your IaC remote states
          • Integrate Terraform Cloud
          • Integrate Terraform Enterprise
          • Integrate HashiCorp Consul
          • Integrate remote stacks in Google Cloud Storage
          • Integrate env0
        • Integrate your version control system
          • Integrate GitHub
          • Integrate GitLab
          • Integrate Bitbucket
            • Integrate Bitbucket Data Center
            • Integrate Bitbucket Cloud
          • Integrate AWS CodeCommit
          • Integrate Azure DevOps
        • Send Firefly notifications to your messaging tools
          • Send Firefly notifications to Slack
            • Send notifications to Slack using the Slack App
            • Sending notifications to Slack using a webhook
          • Send Firefly notifications to Microsoft Teams
          • Send Firefly notifications to Torq
          • Send Firefly notifications to webhooks
          • Send Firefly notifications to Opsgenie
          • Send Firefly notifications to PagerDuty
            • Integration Key
            • General Access REST API Key
          • Send Firefly notifications to Google Chat
        • Integrate project management tools
          • Integrate Jira
    • Governance
    • Event-Center
    • How-to Guides
      • Manage assets
        • Codify assets
          • Codify assets to Config Connector
          • Codify assets to Manifest
          • Codify assets to Helm
          • Codify assets to CDK8S
          • Codify assets to Terraform
          • Codify assets to Pulumi
          • Codify assets to CloudFormation
          • Codify assets to CDK
          • Codify assets to Crossplane
          • Codify assets to Ansible
        • Delete unmanaged assets
        • Fix drifts
        • Remove asset Terraform code
        • Excluded drifts
        • IaC-Ignored assets
      • Monitor events
      • Manage notifications
      • Manage user roles
    • Deep Dive articles
      • Disaster recovery
      • Drifts
      • Codification
      • Notifications
      • Governance
      • Event-driven
      • IaC-Ignored assets
  • Appendix
    • Migrating CloudFormation resources to Terraform
    • Terraform Cloud Run Tasks
    • Creating a key pair
    • SSO Configuration
    • Firefly API Documentation
    • Support Matrix
    • Data privacy and AI usage
  • Firefly MCP
  • Firefly Backstage Plugin
Powered by GitBook
On this page
  • Overview
  • Features
  • Backend Features
  • Frontend Features
  • Installation
  • Backend Plugin Installation
  • Frontend Plugin Installation
  • How It Works
  • Backend Plugin
  • Frontend Plugin
  • Best Practices
  • Troubleshooting
  • Read More

Was this helpful?

Firefly Backstage Plugin

Overview

Firefly integrates with Backstage to provide comprehensive cloud resource management capabilities directly within your Backstage instance. This integration consists of both frontend and backend plugins that work together to give you visibility and control over your cloud infrastructure.

Features

Backend Features

  • Asset Import: Import Firefly assets as catalog resource entities into Backstage

  • Cloud Account Integration: Import cloud accounts as system entities into Backstage

  • Relationship Mapping: Automatically map relationships between:

    • Cloud resources and systems

    • Existing components and cloud resources

    • Dependencies between cloud resources

  • Flexible Filtering: Filter assets by:

    • Asset types

    • Cloud accounts

  • Automatic Updates: Periodic checks for new assets (configurable interval)

  • Smart Correlation: Tag-based and name-based correlation between components and resources

Frontend Features

  • Dedicated Dashboard: A Firefly page showing:

    • Cloud resource key metrics

    • Number of cloud resources and systems

    • IaC coverage across infrastructure

    • Top 5 components with unmanaged/drifted and overall resources

  • Component Integration: Service component pages enhanced with IaC coverage information

Installation

Backend Plugin Installation

  1. Install the plugin package:

    yarn add @fireflyai/backstage-backend-plugin-firefly
  2. Authenticate with Firefly:

    export FIREFLY_ACCESS_KEY=<your-access-key>
    export FIREFLY_SECRET_KEY=<your-secret-key>
  3. Configure the plugin in your app-config.yaml:

    firefly:
      periodicCheck:
        interval: 3600  # seconds (default: 3600)
        importSystems: true  # import cloud accounts as systems
        correlateByComponentName: true  # if a resource tag value equals the component name, relate the resource to that component
        importResources: true  # import assets as resources
        tagKeysIdentifiers: # Optional: tag keys to use as identifiers for relating resources to components
          - environment
          - component
        filters:
          # Optional filters to apply when fetching assets
          assetTypes:
            - aws_s3_bucket
            - aws_lambda_function
          providerIds:
            - '123456789012'  
            - 'devops-651215'  
  4. Add the plugin to your backend:

    // In packages/backend/src/index.ts or equivalent
    backend.add(import('@fireflyai/backstage-backend-plugin-firefly'));

Frontend Plugin Installation

  1. Install the plugin package:

    yarn add @fireflyai/backstage-plugin-firefly
  2. Configure the plugin in your Backstage app:

    // In packages/app/src/App.tsx
    import { FireflyPage } from '@fireflyai/backstage-plugin-firefly';
    
    // Add to your app's routes
    <Route path="/firefly" element={<FireflyPage />} />
  3. Add the Firefly icon to your sidebar:

    // In packages/app/src/components/Root/Root.tsx
    import ExtensionIcon from '@material-ui/icons/Extension';
    
    // Add to your sidebar items
    <SidebarItem icon={ExtensionIcon} to="firefly" text="Firefly" />
  4. Add the IaC coverage card to entity pages:

    // In packages/app/src/components/catalog/EntityPage.tsx
    import { EntityDependenciesIaCCoverageCard } from '@fireflyai/backstage-plugin-firefly';
    
    // Add to your entity page layout
    <Grid item md={4} xs={12}>
      <EntityDependenciesIaCCoverageCard />
    </Grid>

How It Works

Backend Plugin

The backend plugin connects to Firefly's API and imports your cloud resources as Backstage catalog entities. It creates:

  • Resource entities: Representing individual cloud resources

  • System entities: Representing cloud accounts

The plugin establishes relationships between these entities, enabling you to visualize dependencies between cloud resources and systems. These relationships help track ownership, dependencies, and provide a comprehensive view of your cloud infrastructure within the Backstage ecosystem.

The plugin automatically relates existing components in your catalog to their corresponding cloud resources using two methods:

  1. Tag-based correlation: Using the tagKeysIdentifiers configuration, the plugin finds components with matching tag key-value pairs.

  2. Name-based correlation: When correlateByComponentName is enabled, the plugin relates resources to components when a resource tag value matches a component name in your catalog.

Frontend Plugin

The frontend plugin provides:

  • A dedicated Firefly page (/firefly) with:

    • Overview of cloud resources and systems

    • IaC coverage metrics

    • Top components with unmanaged/drifted and overall resources

  • Entity page integration showing IaC coverage for each component

Best Practices

  • Configure appropriate filters to limit the number of imported resources

  • Use consistent tagging across your cloud resources to improve correlation

  • Set a reasonable interval for periodic checks based on your infrastructure change frequency

  • Add the Firefly cards to entity page for maximum visibility

Troubleshooting

If you encounter issues with the integration:

  1. Verify your Firefly API credentials are correct

  2. Check the Backstage logs for any error messages

  3. Ensure your configuration in app-config.yaml is properly formatted

  4. Verify network connectivity between your Backstage instance and Firefly

Read More

PreviousFirefly MCP

Last updated 1 month ago

Was this helpful?

Firefly Backstage Plugin GitHub Repository
Firefly Frontend Plugin
Firefly Backend Plugin