A Python package for embedding dashboards in Apache Airflow UI. This plugin allows you to easily integrate Metabase, Datadog and Grafana dashboards into your Airflow environment, providing a seamless way to view data visualizations alongside your workflows.
- Easy Dashboard Integration: Embed Metabase dashboards directly into Apache Airflow UI
- Flexible Configuration: Customize menu labels and authentication tokens
- Multiple Airflow Versions Support: Compatible with Airflow 2.x and 3.x
- Secure Access: Supports Metabase token-based authentication for private dashboards
Install the package using pip:
pip install airflow-embedashOr in development mode:
pip install -e .-
Configure Metabase Settings: Set the required Airflow variables:
embeded_dashboards_metabase_token: Your Metabase API token for private dashboards
-
Configure Menu Label:
- Default menu label is "Dashboards"
- Override by setting the
embeded_dashboards_menu_labelenvironment variable
-
Add new dashboards
- Go to settings menu and add new dashboard
- Restart the service
airflow_embedash/
├── __init__.py # Package initialization
├── plugin/ # Plugin implementation directory
│ ├── __init__.py # Plugin entry point
│ ├── airflow2.py # Airflow 2.x compatibility layer
│ └── templates/ # HTML templates for dashboard views
│ ├── add_dashboard.html # Add dashboard form
│ ├── edit_dashboard.html # Edit dashboard form
│ ├── settings.html # Settings view
│ ├── view_not_set_up.html # Not configured view
│ └── view.html # Main dashboard view
└── plugin/__init__.py # Plugin initialization
To contribute to this project:
- Fork the repository
- Create a feature branch
- Make your changes
- Ensure all tests pass:
make test - Submit a pull request
The project includes development containers and Docker configurations:
-
Using Docker:
docker-compose up -d
-
Local Development:
- Install development dependencies:
pip install -e ".[dev]" - Run tests:
make test
- Install development dependencies:
| Variable | Description | Required |
|---|---|---|
embeded_dashboards_metabase_token |
Metabase API token for private dashboards | Optional |
embeded_dashboards_menu_label |
Custom menu label in Airflow UI | Optional |
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch
- Make your changes with tests
- Submit a pull request
This project is licensed under the MIT License.