Skip to content

Commit 3ee5448

Browse files
committed
Hide individual Public Interface subsections from sidebar navigation
1 parent f197e58 commit 3ee5448

File tree

1 file changed

+38
-65
lines changed

1 file changed

+38
-65
lines changed

airflow-core/docs/public-airflow-interface.rst

Lines changed: 38 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,9 @@ Public Interface for Airflow 3.0+
2626
`Airflow 2.11 Public Interface Documentation <https://airflow.apache.org/docs/apache-airflow/2.11.0/public-airflow-interface.html>`_
2727
for the legacy interface.
2828

29-
Public Interface of Airflow
30-
...........................
29+
30+
31+
**Public Interface of Airflow**
3132

3233
The Public Interface of Apache Airflow is the collection of interfaces and behaviors in Apache Airflow
3334
whose changes are governed by semantic versioning. A user interacts with Airflow's public interface
@@ -44,8 +45,7 @@ from task code is no longer allowed. Instead, use the :doc:`Stable REST API <sta
4445

4546
For comprehensive Task SDK documentation, see the `Task SDK Reference <https://airflow.apache.org/docs/task-sdk/stable/>`_.
4647

47-
Using Airflow Public Interfaces
48-
===============================
48+
**Using Airflow Public Interfaces**
4949

5050
.. note::
5151

@@ -87,8 +87,7 @@ in details (such as output format and available flags) so if you want to rely on
8787
way, the Stable REST API is recommended.
8888

8989

90-
Using the Public Interface for Dag authors
91-
==========================================
90+
**Using the Public Interface for Dag authors**
9291

9392
The primary interface for Dag authors is the :doc:`airflow.sdk namespace <core-concepts/taskflow>`.
9493
This provides a stable, well-defined interface for creating DAGs and tasks that is not subject to internal
@@ -140,8 +139,7 @@ All DAGs should update imports to use ``airflow.sdk`` instead of referencing int
140139
Legacy import paths (e.g., ``airflow.models.dag.DAG``, ``airflow.decorator.task``) are deprecated and will be
141140
removed in a future Airflow version.
142141

143-
Dags
144-
====
142+
**Dags**
145143

146144
The DAG is Airflow's core entity that represents a recurring workflow. You can create a DAG by
147145
instantiating the :class:`~airflow.sdk.DAG` class in your DAG file. Dags can also have parameters
@@ -153,7 +151,7 @@ from the airflow.sdk namespace.
153151
Airflow has a set of example dags that you can use to learn how to write dags
154152

155153
.. toctree::
156-
:includehidden:
154+
:hidden:
157155
:glob:
158156
:maxdepth: 1
159157

@@ -180,8 +178,7 @@ References for the modules used in dags are here:
180178

181179
.. _pythonapi:operators:
182180

183-
Operators
184-
=========
181+
**Operators**
185182

186183
The base classes :class:`~airflow.sdk.BaseOperator` and :class:`~airflow.sdk.BaseSensorOperator` are public and may be extended to make new operators.
187184

@@ -190,8 +187,7 @@ from the airflow.sdk namespace.
190187

191188
Subclasses of BaseOperator which are published in Apache Airflow are public in *behavior* but not in *structure*. That is to say, the Operator's parameters and behavior is governed by semver but the methods are subject to change at any time.
192189

193-
Task Instances
194-
==============
190+
**Task Instances**
195191

196192
Task instances are the individual runs of a single task in a DAG (in a DAG Run). Task instances are accessed through
197193
the Task Context via :func:`~airflow.sdk.get_current_context`. Direct database access is not possible.
@@ -200,8 +196,7 @@ the Task Context via :func:`~airflow.sdk.get_current_context`. Direct database a
200196
Task Context is part of the airflow.sdk namespace.
201197
For detailed API documentation, see the `Task SDK Reference <https://airflow.apache.org/docs/task-sdk/stable/>`_.
202198

203-
Task Instance Keys
204-
==================
199+
**Task Instance Keys**
205200

206201
Task instance keys are unique identifiers of task instances in a DAG (in a DAG Run). A key is a tuple that consists of
207202
``dag_id``, ``task_id``, ``run_id``, ``try_number``, and ``map_index``.
@@ -237,8 +232,7 @@ Example of accessing task instance information through Task Context:
237232

238233
.. _pythonapi:hooks:
239234

240-
Hooks
241-
=====
235+
**Hooks**
242236

243237
Hooks are interfaces to external platforms and databases, implementing a common
244238
interface when possible and acting as building blocks for operators. All hooks
@@ -248,14 +242,13 @@ Airflow has a set of Hooks that are considered public. You are free to extend th
248242
by extending them:
249243

250244
.. toctree::
251-
:includehidden:
245+
:hidden:
252246
:glob:
253247
:maxdepth: 1
254248

255249
_api/airflow/hooks/index
256250

257-
Public Airflow utilities
258-
========================
251+
**Public Airflow utilities**
259252

260253
When writing or extending Hooks and Operators, Dag authors and developers can
261254
use the following classes:
@@ -305,32 +298,29 @@ Reference for classes used for the utilities are here:
305298
For detailed API documentation, see the `Task SDK Reference <https://airflow.apache.org/docs/task-sdk/stable/>`_.
306299

307300

308-
Public Exceptions
309-
=================
301+
**Public Exceptions**
310302

311303
When writing the custom Operators and Hooks, you can handle and raise public Exceptions that Airflow
312304
exposes:
313305

314306
.. toctree::
315-
:includehidden:
307+
:hidden:
316308
:glob:
317309
:maxdepth: 1
318310

319311
_api/airflow/exceptions/index
320312

321-
Public Utility classes
322-
======================
313+
**Public Utility classes**
323314

324315
.. toctree::
325-
:includehidden:
316+
:hidden:
326317
:glob:
327318
:maxdepth: 1
328319

329320
_api/airflow/utils/state/index
330321

331322

332-
Using Public Interface to extend Airflow capabilities
333-
=====================================================
323+
**Using Public Interface to extend Airflow capabilities**
334324

335325
Airflow uses Plugin mechanism to extend Airflow platform capabilities. They allow to extend
336326
Airflow UI but also they are the way to expose the below customizations (Triggers, Timetables, Listeners, etc.).
@@ -342,8 +332,7 @@ that do not require plugins - you can read more about them in :doc:`howto/custom
342332

343333
Here are the ways how Plugins can be used to extend Airflow:
344334

345-
Triggers
346-
========
335+
**Triggers**
347336

348337
Airflow uses Triggers to implement ``asyncio`` compatible Deferrable Operators.
349338
All Triggers derive from :class:`~airflow.triggers.base.BaseTrigger`.
@@ -352,16 +341,15 @@ Airflow has a set of Triggers that are considered public. You are free to extend
352341
by extending them:
353342

354343
.. toctree::
355-
:includehidden:
344+
:hidden:
356345
:glob:
357346
:maxdepth: 1
358347

359348
_api/airflow/triggers/index
360349

361350
You can read more about Triggers in :doc:`authoring-and-scheduling/deferring`.
362351

363-
Timetables
364-
==========
352+
**Timetables**
365353

366354
Custom timetable implementations provide Airflow's scheduler additional logic to
367355
schedule DAG runs in ways not possible with built-in schedule expressions.
@@ -371,15 +359,14 @@ Airflow has a set of Timetables that are considered public. You are free to exte
371359
by extending them:
372360

373361
.. toctree::
374-
:includehidden:
362+
:hidden:
375363
:maxdepth: 1
376364

377365
_api/airflow/timetables/index
378366

379367
You can read more about Timetables in :doc:`howto/timetable`.
380368

381-
Listeners
382-
=========
369+
**Listeners**
383370

384371
Listeners enable you to respond to DAG/Task lifecycle events.
385372

@@ -392,25 +379,22 @@ can be implemented to respond to DAG/Task lifecycle events.
392379

393380
You can read more about Listeners in :doc:`administration-and-deployment/listeners`.
394381

395-
Extra Links
396-
===========
382+
**Extra Links**
397383

398384
Extra links are dynamic links that could be added to Airflow independently from custom Operators. Normally
399385
they can be defined by the Operators, but plugins allow you to override the links on a global level.
400386

401387
You can read more about the Extra Links in :doc:`/howto/define-extra-link`.
402388

403-
Using Public Interface to integrate with external services and applications
404-
===========================================================================
389+
**Using Public Interface to integrate with external services and applications**
405390

406391

407392
Tasks in Airflow can orchestrate external services via Hooks and Operators. The core functionality of
408393
Airflow (such as authentication) can also be extended to leverage external services.
409394
You can read more about providers :doc:`providers <apache-airflow-providers:index>` and core
410395
extensions they can provide in :doc:`providers <apache-airflow-providers:core-extensions/index>`.
411396

412-
Executors
413-
=========
397+
**Executors**
414398

415399
Executors are the mechanism by which task instances get run. All executors are
416400
derived from :class:`~airflow.executors.base_executor.BaseExecutor`. There are several
@@ -429,8 +413,7 @@ You can read more about executors and how to write your own in :doc:`core-concep
429413
of people did, but there were some hard-coded behaviours that preferred in-built
430414
executors, and custom executors could not provide full functionality that built-in executors had.
431415

432-
Secrets Backends
433-
================
416+
**Secrets Backends**
434417

435418
Airflow can be configured to rely on secrets backends to retrieve
436419
:class:`~airflow.sdk.Connection` and :class:`~airflow.sdk.Variable`.
@@ -439,7 +422,7 @@ All secrets backends derive from :class:`~airflow.secrets.base_secrets.BaseSecre
439422
All Secrets Backend implementations are public. You can extend their functionality:
440423

441424
.. toctree::
442-
:includehidden:
425+
:hidden:
443426
:glob:
444427
:maxdepth: 1
445428

@@ -449,8 +432,7 @@ You can read more about Secret Backends in :doc:`security/secrets/secrets-backen
449432
You can also find all the available Secrets Backends implemented in community providers
450433
in :doc:`apache-airflow-providers:core-extensions/secrets-backends`.
451434

452-
Auth managers
453-
=============
435+
**Auth managers**
454436

455437
Auth managers are responsible of user authentication and user authorization in Airflow. All auth managers are
456438
derived from :class:`~airflow.api_fastapi.auth.managers.base_auth_manager.BaseAuthManager`.
@@ -460,31 +442,27 @@ public, but the different implementations of auth managers are not (i.e. FabAuth
460442

461443
You can read more about auth managers and how to write your own in :doc:`core-concepts/auth-manager/index`.
462444

463-
Connections
464-
===========
445+
**Connections**
465446

466447
When creating Hooks, you can add custom Connections. You can read more
467448
about connections in :doc:`apache-airflow-providers:core-extensions/connections` for available
468449
Connections implemented in the community providers.
469450

470-
Extra Links
471-
===========
451+
**Extra Links**
472452

473453
When creating Hooks, you can add custom Extra Links that are displayed when the tasks are run.
474454
You can find out more about extra links in :doc:`apache-airflow-providers:core-extensions/extra-links`
475455
that also shows available extra links implemented in the community providers.
476456

477-
Logging and Monitoring
478-
======================
457+
**Logging and Monitoring**
479458

480459
You can extend the way how logs are written by Airflow. You can find out more about log writing in
481460
:doc:`administration-and-deployment/logging-monitoring/index`.
482461

483462
The :doc:`apache-airflow-providers:core-extensions/logging` that also shows available log writers
484463
implemented in the community providers.
485464

486-
Decorators
487-
==========
465+
**Decorators**
488466
Dag authors can use decorators to author dags using the :doc:`TaskFlow <core-concepts/taskflow>` concept.
489467
All Decorators derive from :class:`~airflow.sdk.bases.decorator.TaskDecorator`.
490468

@@ -503,34 +481,29 @@ by extending them:
503481

504482
You can read more about creating custom Decorators in :doc:`howto/create-custom-decorator`.
505483

506-
Email notifications
507-
===================
484+
**Email notifications**
508485

509486
Airflow has a built-in way of sending email notifications and it allows to extend it by adding custom
510487
email notification classes. You can read more about email notifications in :doc:`howto/email-config`.
511488

512-
Notifications
513-
=============
489+
**Notifications**
514490
Airflow has a built-in extensible way of sending notifications using the various ``on_*_callback``. You can read more
515491
about notifications in :doc:`howto/notifications`.
516492

517-
Cluster Policies
518-
================
493+
**Cluster Policies**
519494

520495
Cluster Policies are the way to dynamically apply cluster-wide policies to the dags being parsed or tasks
521496
being executed. You can read more about Cluster Policies in :doc:`administration-and-deployment/cluster-policies`.
522497

523-
Lineage
524-
=======
498+
**Lineage**
525499

526500
Airflow can help track origins of data, what happens to it and where it moves over time. You can read more
527501
about lineage in :doc:`administration-and-deployment/lineage`.
528502

529503

530504

531505

532-
What is not part of the Public Interface of Apache Airflow?
533-
===========================================================
506+
**What is not part of the Public Interface of Apache Airflow?**
534507

535508
Everything not mentioned in this document should be considered as non-Public Interface.
536509

0 commit comments

Comments
 (0)