@@ -24,6 +24,9 @@ Airflow has a simple plugin manager built-in that can integrate external
2424features to its core by simply dropping files in your
2525``$AIRFLOW_HOME/plugins `` folder.
2626
27+ Since Airflow 3.1, the plugin system supports new features such as React apps, FastAPI endpoints,
28+ and middleware, making it easier to extend Airflow and build rich custom integrations.
29+
2730The python modules in the ``plugins `` folder get imported, and **macros ** and web **views **
2831get integrated to Airflow's main collections and become available for use.
2932
@@ -48,7 +51,7 @@ Examples:
4851
4952* A set of tools to parse Hive logs and expose Hive metadata (CPU /IO / phases/ skew /...)
5053* An anomaly detection framework, allowing people to collect metrics, set thresholds and alerts
51- * An auditing tool, helping understand who accesses what
54+ * An auditing tool, helping to understand who accesses what
5255* A config-driven SLA monitoring tool, allowing you to set monitored tables and at what time
5356 they should land, alert people, and expose visualizations of outages
5457
@@ -61,19 +64,32 @@ Airflow has many components that can be reused when building an application:
6164* A metadata database to store your models
6265* Access to your databases, and knowledge of how to connect to them
6366* An array of workers that your application can push workload to
64- * Airflow is deployed, you can just piggy back on its deployment logistics
67+ * Airflow is deployed, you can just piggyback on its deployment logistics
6568* Basic charting capabilities, underlying libraries and abstractions
6669
6770.. _plugins:loading :
6871
72+ Available Building Blocks
73+ -------------------------
74+
75+ Airflow plugins can register the following components:
76+
77+ * *External Views * – Add buttons/tabs linking to new pages in the UI.
78+ * *React Apps * – Embed custom React apps inside the Airflow UI (new in Airflow 3.1).
79+ * *FastAPI Apps * – Add custom API endpoints.
80+ * *FastAPI Middlewares * – Intercept and modify API requests/responses.
81+ * *Macros * – Define reusable Python functions available in DAG templates.
82+ * *Operator Extra Links * – Add custom buttons in the task details view.
83+ * *Timetables & Listeners * – Implement custom scheduling logic and event hooks.
84+
6985When are plugins (re)loaded?
7086----------------------------
7187
7288Plugins are by default lazily loaded and once loaded, they are never reloaded (except the UI plugins are
7389automatically loaded in Webserver). To load them at the
7490start of each Airflow process, set ``[core] lazy_load_plugins = False `` in ``airflow.cfg ``.
7591
76- This means that if you make any changes to plugins and you want the webserver or scheduler to use that new
92+ This means that if you make any changes to plugins, and you want the webserver or scheduler to use that new
7793code you will need to restart those processes. However, it will not be reflected in new running tasks until after the scheduler boots.
7894
7995By default, task execution uses forking. This avoids the slowdown associated with creating a new Python interpreter
@@ -151,6 +167,19 @@ additional initialization. Please note ``name`` inside this class must be specif
151167
152168Make sure you restart the webserver and scheduler after making changes to plugins so that they take effect.
153169
170+ Plugin Management Interface
171+ ---------------------------
172+
173+ Airflow 3.1 introduces a Plugin Management Interface, available under *Admin → Plugins * in the Airflow UI.
174+ This page allows you to view installed plugins.
175+
176+ ...
177+
178+ External Views
179+ --------------
180+
181+ External views can also be embedded directly into the Airflow UI using iframes by providing a ``url_route `` value.
182+ This allows you to render the view inline instead of opening it in a new browser tab.
154183
155184.. _plugin-example :
156185
0 commit comments