chore(deps): update all non-major docker-compose dependencies to v3.2.2#296
Open
renovate[bot] wants to merge 1 commit into
Open
chore(deps): update all non-major docker-compose dependencies to v3.2.2#296renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
3.1.8→3.2.23.1.6→3.2.2Release Notes
apache/airflow (apache/airflow)
v3.2.2Compare Source
Significant Changes
^^^^^^^^^^^^^^^^^^^
The SMTP STARTTLS upgrade performed by
airflow.utils.email.send_emailnow validates the SMTP server's certificate against the system's trusted CA bundle by default. Previously thestarttls()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"inairflow.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 theSMTP_SSLpath; it now applies to the STARTTLS path as well. (#65346)In #64963, the Airflow UI switched from full-match
*_patternREST API query parameters to the new index-friendly*_prefix_patternparameters 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*_patternparameters 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_patternto*_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_statesused bysafe_to_cancelin several Google provider operators) could crash the triggerer'sinternal 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 inasync def run()) wouldpreviously leave the triggerer appearing healthy indefinitely.
A new
[triggerer] runner_health_check_thresholdconfig 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
0to disable the watchdog. (#66412)Tighten
[core] allowed_deserialization_classes_regexpto require full-string matchesPatterns in
[core] allowed_deserialization_classes_regexpare now matchedagainst the entire classname using
re.fullmatch()instead ofre.match().Previously a pattern such as
airflow\.models\.Variableadmitted not onlythe intended class but also names that started with it
(e.g.
airflow.models.Variable_Malicious), becausere.matchonly anchorsat 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 classunder
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_referencesattribute onAirflowPlugin, matching the existing pattern for custom timetables and custom partition mappers. To use a customDeadlineReferencesubclass, register it in a plugin'sdeadline_referenceslist. Custom references that are not registered will raiseDeadlineReferenceNotRegisteredat deserialization. (#66737)Bug Fixes
^^^^^^^^^
Callback.handle_eventtriggerer crash when OpenTelemetry metrics receive dict typed tag values (#67527) (#67529)modulepreload hrefsto the api-server static path (#67548) (#67556)external_executor_idwith multiple executors on PostgreSQL (#67388) (#67458)starlette>=1.0.1for Host-header parsing fix andcadwyn>=6.1.1for compatibility(#67326) (#67460)
ti_update_statecaused by FOR UPDATE locking dag_run (#67246) (#67264)getLatestRunInfoon paused Dags with no active runs (#67249) (#67256)_collect_teams_to_checkandrequires_access_backfillagainst malformed request bodies (#66504) (#67182)ValueErrorwhen supervisor force-closes stuck sockets after timeout (#67115) (#67162)XComPATCH/POST to store native values instead ofjson.dumpsoutput (#64220) (#67116)max_active_runslost during Dag serialization when value equals schema default (#65310) (#67097)serialize_template_fieldhandling callable value in dict (#63871) (#67092)ArgNotSetreprto use stable string instead of memory address (#65222) (#66897)XComupdate payload (#65915) (#66913)removeprefix(#66749) (#66772)SIGSEGVin task execution by usingfork+exec(#64874) (#66872)run_after(#65207) (#66863)pod_overrideserialization in Dag details and executor path (#65407) (#66898)pool_recycleandpool_pre_pingconfiguration (#65276) (#66866)viewports(#65899) (#66975)DagVersionwhen clearing tasks with run on latest version (#65835) (#66901)DagRunalready in target state (#66198) (#66919)LocalExecutorcaused by unreleased file descriptor locks (#65121) (#66887)DagCalendarTabbackground color retrieval and loading overlay handling (#64189) (#66860)lazyMountcausing JSON editor infinite loading (#65969) (#66828)ConnectionFormcrashing when connection has invalid extra JSON (#66593) (#66831)PermissionErrorininit_log_folderfor mounted filesystems (#63878) (#66733)StaleDataErrorinverify_integrity(#64503) (#66727)/tmpfile leak when API server streams large task logs (#66450) (#66667)XComprior-dates lookup for duplicaterun_idacross Dags (#65227) (#66646)/required_actionslisting to show mapped task instances (#66433) (#66482)bundle_versionwhen versioning disabled (#66485) (#66518)Next Runtimestamp for paused Dags (#66552) (#66568)DagRunstate is expired (#66339) (#66347)partition_dateon partitioned backfill runs (#65998) (#66409)remote_task_handler_kwargspassing handler params toRemoteLogIO(#65957) (#66440)upstream_failedfromfailedin normal vision (#66324) (#66365)SearchBarinput rewind (#66284) (#66359)logical_datewhen previousdata_intervalis zero-length (#66132) (#66263)autoincrementsequence oncallback_requestdowngrade (#65230) (#66189)source_aliasesinprocess_executor_events(#65422) (#66191)dagRunsAPI to honorstart_date_gtefilter correctly (#66045) (#66098)UniqueViolationcrash on downgrade from 3.2.0 to 3.1.x (#65688) (#66003)ti.hostnameis empty (#64285) (#65583)yearfield unmodifiable (#63885) (#65890)TypeErrorcrashes on/users/listand/roles/listin FAB UI caused by concurrent API schema requests (#63986) (#65892)PoolBarlinks using wrong query params for task instances filtering (#64182) (#65896)pathlibsys.internin long-running processes (#65706) (#65855)external_executor_idat queuing time to prevent duplicate execution on scheduler crash (#65594) (#65711)ti.start_dateshowing deferral-resume time instead of original start time (#63247) (#65491)map_indexbounds validation (#64133) (#65479)XComnavigation from Grid (#65192) (#65322)is_url_safeto reject URLs with///(#65557) (#65737)run_id_patternpipe OR operator dropping single-term edge cases (#65190) (#65565)structure_dataendpoint (#65342) (#65534)partitioned_dag_runsendpoints (#65344) (#65538)PATCH /dagspagination bug and document wildcarddag_id_pattern(#65309)Secureflag when request is HTTPS (#65348) (#65363)relative_filelocand bundle (#65329) (#65343)Miscellaneous
^^^^^^^^^^^^^
requires_access_event_logtoGET /eventLogslist endpoint (#67185) (#67211)Named*Logger.nameworking across structlog releases (#66875) (#67088)Checkbox(#66714) (#66826)ti_id,task_id, etc.) once, not on every log line (#66036) (#66421)TriggerDagRunOperator(#65747) (#66378)isExpandedprop on JSON expand/collapse buttons (#66340) (#66364)try_numberto extra links API (#65661) (#66171)DagBag(#65775) (#65966)get_dag_runsendpoint (#65604) (#65746)XComentries in the REST API and UI (#65418) (#65600)get_task_instancesendpoint (#64845) (#65405)ti_summariesand grid runs queries (#64034) (#67014)from_timestampfrom Task SDK timezone module (#67321) (#67331)Doc-only Changes
^^^^^^^^^^^^^^^^
plugins_managerdocs (#67101) (#67114)(fr)UI translations to 100% coverage (#67241)airflow-core(#66703) (#66740)create_cron_data_intervals(#66458)zh-TWtranslations (#66401)core_api(#66211) (#66304)airflow-core/src/airflow/api(#66200) (#66214)BashOperatordocument (#64129) (#65850)v3.2.1Compare Source
Significant Changes
^^^^^^^^^^^^^^^^^^^
/dagsendpoint, as it now requires additional permissions (DagAccessEntity.RUN,DagAccessEntity.HITL_DETAIL, andDagAccessEntity.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/dagsendpoint. (#64822)Improvements
^^^^^^^^^^^^
{}to restore OSS defaults. Thetokensfield is now optional in the theme configuration. (#64552)Bug Fixes
^^^^^^^^^
DEFAULT_LOGGING_CONFIGto use rightkwargs(#65412) (#65424)dispose_orm()not disposing async engine on shutdown (#65274) (#65284)get_team_name_depcreating wasted async sessions whenmulti_team=False(#65275) (#65282)disable_sqlite_fkeysto migration 0108 (#65288) (#65290)UPDATEto avoid row lock in the common case (#65029) (#65137)dropdownsin connection forms (#65007) (#65085) (#65138)SearchBarvalue not syncing withdefaultValuechanges (#65054) (#65140)$AIRFLOW_CONFIGenv (#64936) (#65200)Sessionstaying opened between yields (#65179) (#65195)Sessionleak fromStreamingResponseAPI endpoints (#65162) (#65193)_tokencookie exists from older Airflow instance (#64955) (#65177)@taskdecorator to validate operator arg types at decoration time (#65041) (#65050)is_alivedefault toNoneinjobs listCLI (#65065) (#65091)dag_idinget_task_instance(#64957) (#64968) (#65067)debounceon clear to prevent stale search value (#64893) (#64907)CommsDecoder(#64894) (#64946)UPDATEs insidedisable_sqlite_fkeysin migration 0097 (#64876) (#64940)TIexists in TIH (#61631) (#64693)SerializedDagModel(#64322) (#64738)TypeErrorinGET /dags/{dag_id}/taskswhenorder_byfield hasNonevalues (#64384) (#64587)DagRun(#64752) (#64853)connections importreturning non-zero exit code on failure (#64416) (#64449)targetand addrelattributes (#64542) (#64772)DagVersionSelectoptions not filtered by selectedDagRun(#64736) (#64771)start_datein example DAGs to avoid timezone conversion overflow (#63882) (#64758)AirflowPluginnot re-exported, causing mypy errors in plugins (#65132) (#65163)apache-airflow-providers-fabminimum version to preventconnexionimport error on Python 3.13 (#65523) (#65524)Miscellaneous
^^^^^^^^^^^^^
TriggerCommsDecodersync req-res cycle (#64882) (#65285)write_to_ossupport for writing task logs to OpenSearch (#64364) (#65201)airflow_local_settings.py(#64764) (#65003)Doc-only Changes
^^^^^^^^^^^^^^^^
v3.2.0Compare 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
SyncCallbackin addition to the existingasynchronous
AsyncCallback. Synchronous callbacks are executed by the executor (rather thanthe triggerer), and can optionally target a specific executor via the
executorparameter.A Dag can also define multiple Deadline Alerts by passing a list to the
deadlineparameter,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 currentlysupport 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:
New
--only-idleflag for the scheduler CLI"""""""""""""""""""""""""""""""""""""""""""""""
The
airflow schedulercommand has a new--only-idleflag that only counts runs when thescheduler is idle. This helps users run the scheduler once and process all triggered Dags and
queued tasks. It requires and complements the
--num-runsflag so one can set a small valueinstead of guessing how many iterations the scheduler needs.
Replace per-run TI summary requests with a single NDJSON stream
""""""""""""""""
Configuration
📅 Schedule: (in timezone Europe/Berlin)
* 18-21 * * 5)🚦 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.
This PR was generated by Mend Renovate. View the repository job log.