0.2.25 • Published 18 days ago

@backstage/plugin-apache-airflow v0.2.25

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
18 days ago

Apache Airflow Plugin

Welcome to the apache-airflow plugin!

Feature Requests & Ideas

  • Add support for running multiple instances of Airflow for monitoring various deployment stages or business domains. (Suggested by @JGoldman110)
  • Make owner chips in the DAG table clickable, resolving to a user or group in the entity catalog. (Suggested by @julioz)

Installation

  1. Install the plugin with yarn in the root of your Backstage directory
yarn --cwd packages/app add @backstage/plugin-apache-airflow
  1. Import and use the plugin extension in spp/src/App.tsx
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -86,6 +86,7 @@ import { providers } from './identityProviders';
 import * as plugins from './plugins';

 import { techDocsPage } from './components/techdocs/TechDocsPage';
+import { ApacheAirflowPage } from '@backstage/plugin-apache-airflow';

 const app = createApp({
   apis,
@@ -203,6 +204,7 @@ const routes = (
       element={<CostInsightsLabelDataflowInstructionsPage />}
     />
     <Route path="/settings" element={<UserSettingsPage />} />
+    <Route path="/apache-airflow" element={<ApacheAirflowPage />} />
   </FlatRoutes>
 );

Configuration

For links to the Airflow instance, the baseUrl must be defined in app-config.yaml.

apacheAirflow:
  baseUrl: https://your.airflow.instance.com

This plugin uses the Backstage proxy to securely communicate with the Apache Airflow API. Add the following to your app-config.yaml to enable this configuration:

proxy:
  '/airflow':
    target: https://your.airflow.instance.com/api/v1
    headers:
      Authorization: ${AIRFLOW_BASIC_AUTH_HEADER}

In your production deployment of Backstage, you would also need to ensure that you've set the AIRFLOW_BASIC_AUTH_HEADER environment variable before starting the backend.

While working locally, you may wish to hard-code your API key in your app-config.local.yaml like this:

# app-config.local.yaml
proxy:
  '/airflow':
    target: http://localhost:8080/api/v1
    headers:
      Authorization: Basic YWlyZmxvdzphaXJmbG93

Where the basic authorization token is the base64 encoding of the username and password of your instance.

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

Development

For local development, you can setup a local Airflow instance for development purposes by running Airflow with Docker Compose.

To verify that Airflow is running, and the API is functioning as expected, you can run the following curl command:

curl -X GET \
    --user "airflow:airflow" \
    localhost:8080/api/v1/dags

To run the Backstage proxy, you will have to run start the example-backend plugin.

yarn workspace example-backend start

To verify that the proxy is configured correctly, you can curl the Backstage proxy endpoint. If using basic authentication, you will have to base64 encode the username and password:

curl http://localhost:7007/api/proxy/airflow/dags

And finally, to run an instance of this plugin, you can run:

yarn start
0.2.25

21 days ago

0.2.24

24 days ago

0.2.24-next.0

1 month ago

0.2.23

1 month ago

0.2.22

2 months ago

0.2.21

2 months ago

0.2.21-next.2

2 months ago

0.2.21-next.1

2 months ago

0.2.21-next.0

2 months ago

0.2.20

3 months ago

0.2.20-next.2

3 months ago

0.2.20-next.1

3 months ago

0.2.20-next.0

3 months ago

0.2.19

4 months ago

0.2.19-next.1

4 months ago

0.2.19-next.0

5 months ago

0.2.18

5 months ago

0.2.18-next.3

5 months ago

0.2.18-next.2

5 months ago

0.2.18-next.1

5 months ago

0.2.13-next.2

10 months ago

0.2.13-next.1

10 months ago

0.2.17-next.2

6 months ago

0.2.17-next.0

7 months ago

0.2.17-next.1

6 months ago

0.2.18-next.0

6 months ago

0.2.14-next.1

9 months ago

0.2.14-next.0

10 months ago

0.2.16-next.0

8 months ago

0.2.16-next.1

7 months ago

0.2.16-next.2

7 months ago

0.2.15-next.1

8 months ago

0.2.15-next.0

9 months ago

0.2.15-next.3

8 months ago

0.2.15-next.2

8 months ago

0.2.17

6 months ago

0.2.16

7 months ago

0.2.15

8 months ago

0.2.14

9 months ago

0.2.13

10 months ago

0.2.13-next.0

11 months ago

0.2.12

11 months ago

0.2.12-next.2

11 months ago

0.2.12-next.3

11 months ago

0.2.11-next.1

1 year ago

0.2.11-next.0

1 year ago

0.2.11

12 months ago

0.2.12-next.1

12 months ago

0.2.12-next.0

12 months ago

0.2.10-next.3

1 year ago

0.2.10

1 year ago

0.2.9-next.1

1 year ago

0.2.9-next.2

1 year ago

0.2.9-next.0

1 year ago

0.2.10-next.2

1 year ago

0.2.10-next.1

1 year ago

0.2.10-next.0

1 year ago

0.2.9

1 year ago

0.2.8

1 year ago

0.2.8-next.1

1 year ago

0.2.8-next.0

1 year ago

0.2.7-next.2

1 year ago

0.2.7-next.1

1 year ago

0.2.7

1 year ago

0.2.5-next.0

1 year ago

0.2.5-next.2

1 year ago

0.2.5-next.1

1 year ago

0.2.5-next.4

1 year ago

0.2.5-next.3

1 year ago

0.2.7-next.0

1 year ago

0.2.4-next.0

2 years ago

0.2.4-next.1

2 years ago

0.2.6

1 year ago

0.2.3

2 years ago

0.2.5

1 year ago

0.2.4

1 year ago

0.2.3-next.2

2 years ago

0.2.3-next.1

2 years ago

0.2.3-next.0

2 years ago

0.2.2-next.3

2 years ago

0.2.2-next.2

2 years ago

0.2.2-next.1

2 years ago

0.2.2-next.0

2 years ago

0.2.2

2 years ago

0.1.14-next.1

2 years ago

0.1.14-next.0

2 years ago

0.2.0-next.3

2 years ago

0.2.0-next.2

2 years ago

0.2.1-next.1

2 years ago

0.2.0-next.1

2 years ago

0.2.1-next.0

2 years ago

0.1.15-next.0

2 years ago

0.1.14

2 years ago

0.2.1

2 years ago

0.2.0

2 years ago

0.1.13-next.0

2 years ago

0.1.13

2 years ago

0.1.10

2 years ago

0.1.11

2 years ago

0.1.12

2 years ago

0.1.12-next.1

2 years ago

0.1.12-next.0

2 years ago

0.1.10-next.0

2 years ago

0.1.9

2 years ago

0.1.8

2 years ago

0.1.7

2 years ago

0.1.6

2 years ago

0.1.6-next.0

2 years ago

0.1.5

2 years ago

0.1.5-next.0

2 years ago

0.1.4

2 years ago

0.1.4-next.0

2 years ago

0.1.3

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago

0.0.0

2 years ago