See the Apache Airflow Backstage plugin in action
Request a Roadie demoInstallation 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?
Request a Roadie demoBecome 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.