Apache Airflow logo

Backstage Apache Airflow Plugin

See Apache Airflow DAGs in Backstage

Created by Spotify

Available on Roadie

See the Apache Airflow Backstage plugin in action

Installation steps

Install the plugin

yarn add @backstage/plugin-apache-airflow

Import it into your Backstage application

// packages/app/src/App.tsx
import { ApacheAirflowPage } from '@backstage/plugin-apache-airflow';

Add the plugin page as a route

// packages/app/src/App.tsx
    ...
    <Route path="/settings" element={<UserSettingsPage />} />
+    <Route path="/apache-airflow" element={<ApacheAirflowPage />} />
</FlatRoutes>

Or, if you want, embed the DAGs into an existing page

import { ApacheAirflowDagTable } from '@backstage/plugin-apache-airflow';

export function SomeEntityPage(): JSX.Element {
return (
    <Grid item md={6} xs={12}>
    <ApacheAirflowDagTable
        dagIds={[
        'example_bash_operator',
        'example_branch_datetime_operator_2',
        'example_branch_labels',
        ]}
    />
    </Grid>
);
}

Add proxy configuration

# app-config.yaml
proxy:
  '/airflow':
      target: https://your.airflow.instance.com/api/v1
      headers:
          Authorization: Basic ${APACHE_AIRFLOW_BASIC_AUTH_TOKEN}

Get and provide a APACHE_AIRFLOW_BASIC_AUTH_TOKEN as an environment variable. Where the basic authorization token is the base64 encoding of the username and password of your instance.

echo -n "airflow:airflow" | base64 -w0

Found a mistake? Update these instructions.

Prefer a no-code Backstage setup?

Become a Backstage expert

To get the latest news, deep dives into Backstage features, and a roundup of recent open-source action, sign up for Roadie's Backstage Weekly. See recent editions.

We will never sell or share your email address.