This is an automated email from the ASF dual-hosted git repository. kaxilnaik pushed a commit to branch v3-1-test in repository https://gitbox.apache.org/repos/asf/airflow.git
commit c17fba57937cb28da75e8d5bb8ec0d90aba6fcf1 Author: Jed Cunningham <[email protected]> AuthorDate: Mon Sep 22 15:53:29 2025 -0600 Fix left navigation and public interface docs in core docs (#55967) We've accidentally hidden all of the subpages in the left nav of the core docs, meaning, you couldnt even navigate to the upgrading docs. Oops. This fixes that, and also fixes the public interface docs that led to the mistake initially. (cherry picked from commit b3dad0969e112a55be5f842c6bf21334fd5f2d35) --- airflow-core/docs/index.rst | 3 -- airflow-core/docs/public-airflow-interface.rst | 69 +++++++++++--------------- 2 files changed, 29 insertions(+), 43 deletions(-) diff --git a/airflow-core/docs/index.rst b/airflow-core/docs/index.rst index cf34b0da8ea..fc2d641d306 100644 --- a/airflow-core/docs/index.rst +++ b/airflow-core/docs/index.rst @@ -144,13 +144,10 @@ experience is continuously improving, but defining workflows as code is central .. toctree:: :hidden: :caption: Content - :titlesonly: - :maxdepth: 1 Overview <self> start installation/index - installation/upgrading_to_airflow3 security/index tutorial/index howto/index diff --git a/airflow-core/docs/public-airflow-interface.rst b/airflow-core/docs/public-airflow-interface.rst index 9abe6cbd5cb..a4221e4c3fe 100644 --- a/airflow-core/docs/public-airflow-interface.rst +++ b/airflow-core/docs/public-airflow-interface.rst @@ -15,9 +15,8 @@ specific language governing permissions and limitations under the License. -===================================== Public Interface for Airflow 3.0+ -===================================== +================================= .. warning:: @@ -27,9 +26,6 @@ Public Interface for Airflow 3.0+ `Airflow 2.11 Public Interface Documentation <https://airflow.apache.org/docs/apache-airflow/2.11.0/public-airflow-interface.html>`_ for the legacy interface. -Public Interface of Airflow -........................... - The Public Interface of Apache Airflow is the collection of interfaces and behaviors in Apache Airflow whose changes are governed by semantic versioning. A user interacts with Airflow's public interface by creating and managing Dags, managing tasks and dependencies, @@ -46,7 +42,7 @@ from task code is no longer allowed. Instead, use the :doc:`Stable REST API <sta For comprehensive Task SDK documentation, see the `Task SDK Reference <https://airflow.apache.org/docs/task-sdk/stable/>`_. Using Airflow Public Interfaces -=============================== +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. note:: @@ -89,7 +85,7 @@ way, the Stable REST API is recommended. Using the Public Interface for Dag authors -========================================== +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The primary interface for Dag authors is the :doc:`airflow.sdk namespace <core-concepts/taskflow>`. This provides a stable, well-defined interface for creating Dags and tasks that is not subject to internal @@ -142,7 +138,7 @@ Legacy import paths (e.g., ``airflow.models.dag.DAG``, ``airflow.decorator.task` removed in a future Airflow version. Dags -==== +---- The Dag is Airflow's core entity that represents a recurring workflow. You can create a Dag by instantiating the :class:`~airflow.sdk.DAG` class in your Dag file. Dags can also have parameters @@ -156,7 +152,6 @@ Airflow has a set of example Dags that you can use to learn how to write Dags .. toctree:: :includehidden: :glob: - :hidden: :maxdepth: 1 _api/airflow/example_dags/index @@ -183,7 +178,7 @@ References for the modules used in Dags are here: .. _pythonapi:operators: Operators -========= +--------- The base classes :class:`~airflow.sdk.BaseOperator` and :class:`~airflow.sdk.BaseSensorOperator` are public and may be extended to make new operators. @@ -193,7 +188,7 @@ from the airflow.sdk namespace. 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. Task Instances -============== +-------------- Task instances are the individual runs of a single task in a Dag (in a Dag Run). Task instances are accessed through the Task Context via :func:`~airflow.sdk.get_current_context`. Direct database access is not possible. @@ -203,7 +198,7 @@ the Task Context via :func:`~airflow.sdk.get_current_context`. Direct database a For detailed API documentation, see the `Task SDK Reference <https://airflow.apache.org/docs/task-sdk/stable/>`_. Task Instance Keys -================== +------------------ Task instance keys are unique identifiers of task instances in a Dag (in a Dag Run). A key is a tuple that consists of ``dag_id``, ``task_id``, ``run_id``, ``try_number``, and ``map_index``. @@ -240,7 +235,7 @@ Example of accessing task instance information through Task Context: .. _pythonapi:hooks: Hooks -===== +----- Hooks are interfaces to external platforms and databases, implementing a common interface when possible and acting as building blocks for operators. All hooks @@ -252,13 +247,12 @@ by extending them: .. toctree:: :includehidden: :glob: - :hidden: :maxdepth: 1 _api/airflow/hooks/index Public Airflow utilities -======================== +^^^^^^^^^^^^^^^^^^^^^^^^ When writing or extending Hooks and Operators, Dag authors and developers can use the following classes: @@ -309,7 +303,7 @@ Reference for classes used for the utilities are here: Public Exceptions -================= +^^^^^^^^^^^^^^^^^ When writing the custom Operators and Hooks, you can handle and raise public Exceptions that Airflow exposes: @@ -317,25 +311,23 @@ exposes: .. toctree:: :includehidden: :glob: - :hidden: :maxdepth: 1 _api/airflow/exceptions/index Public Utility classes -====================== +^^^^^^^^^^^^^^^^^^^^^^ .. toctree:: :includehidden: :glob: - :hidden: :maxdepth: 1 _api/airflow/utils/state/index Using Public Interface to extend Airflow capabilities -===================================================== +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Airflow uses Plugin mechanism to extend Airflow platform capabilities. They allow to extend Airflow UI but also they are the way to expose the below customizations (Triggers, Timetables, Listeners, etc.). @@ -348,7 +340,7 @@ that do not require plugins - you can read more about them in :doc:`howto/custom Here are the ways how Plugins can be used to extend Airflow: Triggers -======== +-------- Airflow uses Triggers to implement ``asyncio`` compatible Deferrable Operators. All Triggers derive from :class:`~airflow.triggers.base.BaseTrigger`. @@ -359,7 +351,6 @@ by extending them: .. toctree:: :includehidden: :glob: - :hidden: :maxdepth: 1 _api/airflow/triggers/index @@ -367,7 +358,7 @@ by extending them: You can read more about Triggers in :doc:`authoring-and-scheduling/deferring`. Timetables -========== +---------- Custom timetable implementations provide Airflow's scheduler additional logic to schedule Dag runs in ways not possible with built-in schedule expressions. @@ -378,7 +369,6 @@ by extending them: .. toctree:: :includehidden: - :hidden: :maxdepth: 1 _api/airflow/timetables/index @@ -386,7 +376,7 @@ by extending them: You can read more about Timetables in :doc:`howto/timetable`. Listeners -========= +--------- Listeners enable you to respond to Dag/Task lifecycle events. @@ -400,7 +390,7 @@ can be implemented to respond to Dag/Task lifecycle events. You can read more about Listeners in :doc:`administration-and-deployment/listeners`. Extra Links -=========== +----------- Extra links are dynamic links that could be added to Airflow independently from custom Operators. Normally they can be defined by the Operators, but plugins allow you to override the links on a global level. @@ -408,7 +398,7 @@ they can be defined by the Operators, but plugins allow you to override the link You can read more about the Extra Links in :doc:`/howto/define-extra-link`. Using Public Interface to integrate with external services and applications -=========================================================================== +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Tasks in Airflow can orchestrate external services via Hooks and Operators. The core functionality of @@ -417,7 +407,7 @@ You can read more about providers :doc:`providers <apache-airflow-providers:inde extensions they can provide in :doc:`providers <apache-airflow-providers:core-extensions/index>`. Executors -========= +--------- Executors are the mechanism by which task instances get run. All executors are derived from :class:`~airflow.executors.base_executor.BaseExecutor`. There are several @@ -437,7 +427,7 @@ You can read more about executors and how to write your own in :doc:`core-concep executors, and custom executors could not provide full functionality that built-in executors had. Secrets Backends -================ +---------------- Airflow can be configured to rely on secrets backends to retrieve :class:`~airflow.sdk.Connection` and :class:`~airflow.sdk.Variable`. @@ -448,7 +438,6 @@ All Secrets Backend implementations are public. You can extend their functionali .. toctree:: :includehidden: :glob: - :hidden: :maxdepth: 1 _api/airflow/secrets/index @@ -458,7 +447,7 @@ You can also find all the available Secrets Backends implemented in community pr in :doc:`apache-airflow-providers:core-extensions/secrets-backends`. Auth managers -============= +------------- Auth managers are responsible of user authentication and user authorization in Airflow. All auth managers are derived from :class:`~airflow.api_fastapi.auth.managers.base_auth_manager.BaseAuthManager`. @@ -469,21 +458,21 @@ public, but the different implementations of auth managers are not (i.e. FabAuth You can read more about auth managers and how to write your own in :doc:`core-concepts/auth-manager/index`. Connections -=========== +----------- When creating Hooks, you can add custom Connections. You can read more about connections in :doc:`apache-airflow-providers:core-extensions/connections` for available Connections implemented in the community providers. Extra Links -=========== +----------- When creating Hooks, you can add custom Extra Links that are displayed when the tasks are run. You can find out more about extra links in :doc:`apache-airflow-providers:core-extensions/extra-links` that also shows available extra links implemented in the community providers. Logging and Monitoring -====================== +---------------------- You can extend the way how logs are written by Airflow. You can find out more about log writing in :doc:`administration-and-deployment/logging-monitoring/index`. @@ -492,7 +481,7 @@ The :doc:`apache-airflow-providers:core-extensions/logging` that also shows avai implemented in the community providers. Decorators -========== +---------- Dag authors can use decorators to author Dags using the :doc:`TaskFlow <core-concepts/taskflow>` concept. All Decorators derive from :class:`~airflow.sdk.bases.decorator.TaskDecorator`. @@ -512,24 +501,24 @@ by extending them: You can read more about creating custom Decorators in :doc:`howto/create-custom-decorator`. Email notifications -=================== +------------------- Airflow has a built-in way of sending email notifications and it allows to extend it by adding custom email notification classes. You can read more about email notifications in :doc:`howto/email-config`. Notifications -============= +------------- Airflow has a built-in extensible way of sending notifications using the various ``on_*_callback``. You can read more about notifications in :doc:`howto/notifications`. Cluster Policies -================ +---------------- Cluster Policies are the way to dynamically apply cluster-wide policies to the Dags being parsed or tasks being executed. You can read more about Cluster Policies in :doc:`administration-and-deployment/cluster-policies`. Lineage -======= +------- Airflow can help track origins of data, what happens to it and where it moves over time. You can read more about lineage in :doc:`administration-and-deployment/lineage`. @@ -538,7 +527,7 @@ about lineage in :doc:`administration-and-deployment/lineage`. What is not part of the Public Interface of Apache Airflow? -=========================================================== +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Everything not mentioned in this document should be considered as non-Public Interface.
