LogoLogo
  • Welcome to Firefly Documentation
  • Introduction
    • What is Firefly?
    • Who is Firefly for?
    • Why use Firefly?
    • Terminology (Glossary)
  • Key Features
    • Infrastructure-as-Code Automation
    • Cloud Asset Inventory
    • Drift Detection & Remediation
    • Policy-as-Code for Compliance & Governance
    • Cost Visibility & Optimization
    • AI Assistant
    • ChatOps Integration
  • Getting Started
    • Account Setup & Onboarding
    • Connecting Cloud Accounts
    • UI Walkthrough & Navigation
    • First Steps in Firefly
  • Detailed Guides
    • Dashboard Overview
    • Cloud Asset Inventory
      • Remediating Drifts
      • Deleting Assets
      • Creating IaC-Ignore Rules
      • Creating Exclude-Drift Rules
    • Policy & Governance
      • Creating Policy-as-Code Governance Rules
      • Remediating Policy Violations
    • Workflows & Guardrails
      • Creating Workflows
      • Creating Guardrail Rules
    • Codification
    • Self-Service
    • IaC Explorer
    • Event Center
    • Backup and Disaster Recovery
    • Notifications
    • User Management
    • SSO Configuration
  • Integrations
    • Integrations Overview
    • Integrating Data Sources
      • AWS
      • Azure
      • Google Cloud
      • Kubernetes
      • Akamai
      • Datadog
      • New Relic
      • Okta
      • GitHub
      • Cloudflare
      • NS1
      • PagerDuty
      • MongoDB Atlas
      • HashiCorp Vault
    • Integrating IaC Remote State
      • Terraform Cloud
      • Google Cloud Storage
      • env0
      • HashiCorp Consul
      • Firefly States Redactor
    • Integrating Version Control
      • GitHub
      • GitLab
      • Azure DevOps
      • CodeCommit
      • Bitbucket
    • Integrating Notifications
      • Slack
      • Microsoft Teams
      • PagerDuty
      • Opsgenie
      • Torq
      • Webex
      • Google Chat
      • Webhook
    • Integrating Project Management
      • Jira
      • ServiceNow
    • Integrating Workflows with CI/CD
    • Integrating Backstage
    • Integrating MCP
  • Use Cases & Best Practices
    • Cloud Governance & Visibility
    • Cost Optimization Strategies
    • Compliance and Security Best Practices
    • Infrastructure Automation & Self-Service
    • Best Practices and Implementation Tips
  • Analytics & Reporting
    • Analytics Dashboard Overview
    • Using Analytics for Improvement
    • Exporting and Sharing Reports
    • Analytics Security and Privacy
  • Code Snippets & Examples
    • Terraform Snippet for an AWS EC2 Instance (Codified via Firefly)
    • Example Rego Policy (OPA) for a Custom Rule
    • GitHub Actions Workflow YAML for Firefly Integration
    • JSON Output Example: Exporting Inventory
  • Troubleshooting & FAQs
    • Common Issues and Solutions
    • FAQs
  • General Information
    • Firefly API
      • Authentication
      • Inventory
      • Codification
      • Workflows
      • Self-Service
      • Policy & Governance
      • IaC Explorer
      • Event Center
      • Backup & Disaster Recovery
      • Notifications
      • Integrations
      • Identity & Access Management
    • Security & Compliance
    • Pricing Tiers & Add-ons
    • Contacting Support
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
  • Demo
  • Best Practices
  • Troubleshooting
  • Read More

Was this helpful?

  1. Integrations

Integrating Backstage

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

Demo

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

PreviousIntegrating Workflows with CI/CDNextIntegrating MCP

Last updated 1 month ago

Was this helpful?

Video
Firefly Backstage Plugin GitHub Repository
Firefly Frontend Plugin
Firefly Backend Plugin