Skip to content

chore(deps): update all non-major docker-compose dependencies to v3.2.2#296

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/all-non-major-docker-compose-dependencies
Open

chore(deps): update all non-major docker-compose dependencies to v3.2.2#296
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/all-non-major-docker-compose-dependencies

Conversation

@renovate
Copy link
Copy Markdown
Contributor

@renovate renovate Bot commented May 29, 2026

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Update Change
apache/airflow (source) minor 3.1.83.2.2
apache/airflow (source) minor 3.1.63.2.2

Release Notes

apache/airflow (apache/airflow)

v3.2.2

Compare Source

Significant Changes
^^^^^^^^^^^^^^^^^^^

  • The SMTP STARTTLS upgrade performed by airflow.utils.email.send_email now validates the SMTP server's certificate against the system's trusted CA bundle by default. Previously the starttls() call was made without an SSL context, so any certificate was accepted.
    Deployments that intentionally point Airflow at an SMTP server with a self-signed or otherwise non-validating certificate and need to preserve the previous behaviour must set email.ssl_context = "none" in airflow.cfg. The "default" value (now also the default when the option is unset) uses :func:ssl.create_default_context. Previously this option applied only to the SMTP_SSL path; it now applies to the STARTTLS path as well. (#​65346)

  • In #​64963, the Airflow UI switched from full-match *_pattern REST API query parameters to the new index-friendly *_prefix_pattern parameters on list endpoints. This is a behavioral change for search-as-you-type filters in the UI: matches are prefix-based (LIKE 'term%' via a range scan) instead of substring-based (ILIKE '%term%'), which means the database can use B-tree indexes and search stays fast on large deployments. The REST API itself keeps both forms: existing *_pattern parameters still behave exactly as before.
    In #​66015, a per-search-bar "Match anywhere" toggle was added so users who relied on the previous substring behavior can opt back into it from the UI. Each search input and each text filter pill now has a small regex-icon toggle next to the value; flipping it on switches that input from *_prefix_pattern to *_pattern. (#​66015)

  • Fix triggerer race condition and deadlock that caused deferred tasks to stall indefinitely

    Triggers that call synchronous SDK methods (e.g. get_task_states used by
    safe_to_cancel in several Google provider operators) could crash the triggerer's
    internal subprocess. The triggerer would then continue to heartbeat normally —
    appearing healthy to the scheduler — while silently processing zero triggers, causing
    every deferred task to time out. This was first reported in issue #​64620; a
    partial fix shipped in Airflow 3.2.1 (#​64882) but introduced a new deadlock
    with the same visible symptom under load.

    Both issues are fixed by replacing the lock-based serialization with response
    multiplexing: each request now carries a unique ID and the response is routed back to
    the correct caller, so concurrent requests from trigger threads no longer contend or
    deadlock regardless of how many triggers are running or what SDK methods they call.

    New: triggerer subprocess watchdog

    Even with the race fixed, a trigger that blocks the event loop (e.g. by calling
    time.sleep() or performing blocking I/O directly in async def run()) would
    previously leave the triggerer appearing healthy indefinitely.

    A new [triggerer] runner_health_check_threshold config option (default: 30 seconds)
    adds a watchdog: if the triggerer subprocess goes silent for longer than the threshold,
    the parent process stops updating the heartbeat so the scheduler can detect the hang and
    reassign triggers rather than waiting for them to individually time out. Set the option
    to 0 to disable the watchdog. (#​66412)

  • Tighten [core] allowed_deserialization_classes_regexp to require full-string matches

    Patterns in [core] allowed_deserialization_classes_regexp are now matched
    against the entire classname using re.fullmatch() instead of re.match().
    Previously a pattern such as airflow\.models\.Variable admitted not only
    the intended class but also names that started with it
    (e.g. airflow.models.Variable_Malicious), because re.match only anchors
    at the start of the string.

    The default value of this option is empty, so out-of-the-box deployments are
    unaffected. Deployments that configured this option with patterns relying on
    prefix-match semantics — for example airflow\.models\. to mean "any class
    under airflow.models" — must add .* to the pattern
    (airflow\.models\..*) to retain the previous behaviour. (#​66499)

  • Custom deadline reference classes must now be registered via the new deadline_references attribute on AirflowPlugin, matching the existing pattern for custom timetables and custom partition mappers. To use a custom DeadlineReference subclass, register it in a plugin's deadline_references list. Custom references that are not registered will raise DeadlineReferenceNotRegistered at deserialization. (#​66737)

Bug Fixes
^^^^^^^^^

Miscellaneous
^^^^^^^^^^^^^

Doc-only Changes
^^^^^^^^^^^^^^^^

v3.2.1

Compare Source

Significant Changes
^^^^^^^^^^^^^^^^^^^

  • Users who only have read access to DAGs will no longer be able to fetch data from the /dags endpoint, as it now requires additional permissions (DagAccessEntity.RUN, DagAccessEntity.HITL_DETAIL, and DagAccessEntity.TASK_INSTANCE). This change was made because the endpoint returns aggregated data from these multiple entities. Please update your custom user roles to include read access for DAG Runs, Task Instances, and HITL Details if those users should still have access to the /dags endpoint. (#​64822)

Improvements
^^^^^^^^^^^^

  • Allow UI theme config with only CSS overrides, icon only, or empty {} to restore OSS defaults. The tokens field is now optional in the theme configuration. (#​64552)

Bug Fixes
^^^^^^^^^

Miscellaneous
^^^^^^^^^^^^^

Doc-only Changes
^^^^^^^^^^^^^^^^

  • Add missing Polish translations to reach 100% coverage (#​65272)
  • Add FAQ entry for API server memory growth with gunicorn worker recycling (#​65036) (#​65037)
  • Remove outdated reference to Dag Dependencies view (#​64787) (#​64911)
  • Add JWT authentication docs and strengthen security model (#​64760) (#​64849)
  • Add missing Catalan translations to reach 100% coverage (#​65078) (#​65389)
  • Add missing German translations to close translation gaps (#​65332)

v3.2.0

Compare Source

Significant Changes
^^^^^^^^^^^^^^^^^^^

Asset Partitioning
""""""""""""""""""

The headline feature of Airflow 3.2.0 is asset partitioning — a major evolution of data-aware
scheduling. Instead of triggering Dags based on an entire asset, you can now schedule downstream
processing based on specific partitions of data. Only the relevant slice of data triggers downstream
work, making pipeline orchestration far more efficient and precise.

This matters when working with partitioned data lakes — date-partitioned S3 paths, Hive table
partitions, BigQuery table partitions, or any other partitioned data store. Previously, any update
to an asset triggered all downstream Dags regardless of which partition changed. Now only the right
work gets triggered at the right time.

For detailed usage instructions, see :doc:/authoring-and-scheduling/assets.

Multi-Team Deployments
""""""""""""""""""""""

Airflow 3.2 introduces multi-team support, allowing organizations to run multiple isolated teams within a single Airflow deployment.
Each team can have its own Dags, connections, variables, pools, and executors— enabling true resource and permission isolation without requiring separate Airflow instances per team.

This is particularly valuable for platform teams that serve multiple data engineering or data science teams from shared infrastructure, while maintaining strong boundaries between teams' resources and access.

For detailed usage instructions, see :doc:/core-concepts/multi-team.

.. warning::

Multi-Team Deployments are experimental in 3.2.0 and may change in future versions based on
user feedback.

Synchronous callback support for Deadline Alerts
""""""""""""""""""""""""""""""""""""""""""""""""

Deadline Alerts now support synchronous callbacks via SyncCallback in addition to the existing
asynchronous AsyncCallback. Synchronous callbacks are executed by the executor (rather than
the triggerer), and can optionally target a specific executor via the executor parameter.

A Dag can also define multiple Deadline Alerts by passing a list to the deadline parameter,
and each alert can use either callback type.

.. warning::

Deadline Alerts are experimental in 3.2.0 and may change in future versions based on
user feedback. Synchronous deadline callbacks (SyncCallback) do not currently
support Connections stored in the Airflow metadata database.

For detailed usage instructions, see :doc:/howto/deadline-alerts.

UI Enhancements & Performance
"""""""""""""""""""""""""""""

  • Grid View Virtualization:
    The Grid view now uses virtualization -- only visible rows are rendered to the DOM. This dramatically improves performance when viewing Dags with large numbers of task runs, reducing render time and memory usage for complex Dags. (#​60241)

  • XCom Management in the UI:
    You can now add, edit, and delete XCom values directly from the Airflow UI. This makes it much easier to debug and manage XCom state during development and day-to-day operations without needing CLI commands. (#​58921)

  • HITL Detail History:
    The Human-in-the-Loop approval interface now includes a full history view, letting operators and reviewers see the complete audit trail of approvals and rejections for any task. (#​56760, #​55952)

  • Gantt Chart Improvements:

    • All task tries displayed: Gantt chart now shows every attempt, not just the latest
    • Task display names in Gantt: task_display_name shown for better readability (#​61438)
    • ISO dates in Gantt: Cross-browser consistent date format (#​61250)
    • Fixed null datetime crash: Gantt chart no longer crashes on tasks with null datetime fields

New --only-idle flag for the scheduler CLI
"""""""""""""""""""""""""""""""""""""""""""""""

The airflow scheduler command has a new --only-idle flag that only counts runs when the
scheduler is idle. This helps users run the scheduler once and process all triggered Dags and
queued tasks. It requires and complements the --num-runs flag so one can set a small value
instead of guessing how many iterations the scheduler needs.

Replace per-run TI summary requests with a single NDJSON stream
""""""""""""""""

Note

PR body was truncated to here.


Configuration

📅 Schedule: (in timezone Europe/Berlin)

  • Branch creation
    • Between 06:00 PM and 09:59 PM, only on Friday (* 18-21 * * 5)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot added the deps label May 29, 2026
@renovate renovate Bot changed the title chore(deps): update apache/airflow docker tag to v3.2.2 chore(deps): update all non-major docker-compose dependencies to v3.2.2 Jun 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants