Skip to content

Commit e6e3370

Browse files
Lohith625kaxiljschefflbbovenzi
authored
docs:improve plugin system documentation for clarity and completeness (apache#56177)
* docs:improve plugin system documentation for clarity and completeness * Apply suggestion from @kaxil * Review feedback Co-authored-by: Brent Bovenzi <brent.bovenzi@gmail.com> --------- Co-authored-by: Kaxil Naik <kaxilnaik@gmail.com> Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com> Co-authored-by: Brent Bovenzi <brent.bovenzi@gmail.com>
1 parent d7b440b commit e6e3370

File tree

1 file changed

+32
-3
lines changed
  • airflow-core/docs/administration-and-deployment

1 file changed

+32
-3
lines changed

airflow-core/docs/administration-and-deployment/plugins.rst

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ Airflow has a simple plugin manager built-in that can integrate external
2424
features 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+
2730
The python modules in the ``plugins`` folder get imported, and **macros** and web **views**
2831
get 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+
6985
When are plugins (re)loaded?
7086
----------------------------
7187

7288
Plugins are by default lazily loaded and once loaded, they are never reloaded (except the UI plugins are
7389
automatically loaded in Webserver). To load them at the
7490
start 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
7793
code you will need to restart those processes. However, it will not be reflected in new running tasks until after the scheduler boots.
7894

7995
By 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

152168
Make 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

Comments
 (0)