airflow.git
3 months agoAdd note about image regeneration in June 2022 (#24524)
Jarek Potiuk [Thu, 23 Jun 2022 00:27:54 +0000 (02:27 +0200)] 
Add note about image regeneration in June 2022 (#24524)

The note is about image changes after refreshing are now better
organized (around date of the change) - this should be more useful
by the users who will look why their images have been refreshed.

Related to: #24516

3 months agoFix recording console for new rich-click 1.5 (#24611)
Jarek Potiuk [Wed, 22 Jun 2022 23:06:23 +0000 (01:06 +0200)] 
Fix recording console for new rich-click 1.5 (#24611)

3 months agoUpgrade FAB to 4.1.1 (#24399)
Jarek Potiuk [Wed, 22 Jun 2022 21:26:28 +0000 (23:26 +0200)] 
Upgrade FAB to 4.1.1 (#24399)

* Upgrade FAB to 4.1.1

The Flask Application Builder have been updated recently to
support a number of newer dependencies. This PR is the
attempt to migrate FAB to newer version.

This includes:

* update setup.py and setup.cfg upper and lower bounds to
  account for proper version of dependencies that
  FAB < 4.0.0 was blocking from upgrade
* added typed Flask application retrieval with a custom
  application fields available for MyPy typing checks.
* fix typing to account for typing hints added in multiple
  upgraded libraries optional values and content of request
  returned as Mapping
* switch to PyJWT 2.* by using non-deprecated "required" claim as
  list rather than separate fields
* add possibiliyt to install providers without constraints
  so that we could avoid errors on conflicting constraints when
  upgrade-to-newer-dependencies is used
* add pre-commit to check that 2.4+ only get_airflow_app is not
  used in providers
* avoid Bad Request in case the request sent to Flask 2.0 is not
  JSon content type
* switch imports of internal classes to direct packages
  where classes are available rather than from "airflow.models" to
  satisfy MyPY
* synchronize changes of FAB Security Manager 4.1.1 with our copy
  of the Security Manager.
* add error handling for a few "None" cases detected by MyPY
* corrected test cases that were broken by immutability of
  Flask 2 objects and better escaping done by Flask 2
* updated test cases to account for redirection to "path" rather
  than full URL by Flask2

Fixes: #22397

* fixup! Upgrade FAB to 4.1.1

3 months agoMigrate jsx files that affect run/task selection to tsx (#24509)
Brent Bovenzi [Wed, 22 Jun 2022 19:30:24 +0000 (15:30 -0400)] 
Migrate jsx files that affect run/task selection to tsx (#24509)

* convert all useSelection files to ts

Update grid data ts, remove some anys

* yarn, lint and tests

* convert statusbox to ts

* remove some anys, update instance tooltip

* fix types

* remove any, add comment for global vars

* fix url selection and grid/task defaults

* remove React.FC declarations

* specify tsconfig file path

* remove ts-loader

3 months agoUpdate breeze mypy check documentation (#24609)
Igor Tavares [Wed, 22 Jun 2022 19:28:27 +0000 (16:28 -0300)] 
Update breeze mypy check documentation (#24609)

3 months agoPatch sql_alchemy_conn if old Postgres schemes used (#24569)
Sergey Lyapustin [Wed, 22 Jun 2022 11:06:57 +0000 (13:06 +0200)] 
Patch sql_alchemy_conn if old Postgres schemes used (#24569)

3 months agoPattern parameter in S3ToSnowflakeOperator (#24571)
Andrey Anshin [Wed, 22 Jun 2022 07:49:02 +0000 (11:49 +0400)] 
Pattern parameter in S3ToSnowflakeOperator (#24571)

3 months agoRemove special serde logic for mapped op_kwargs (#23860)
Tzu-ping Chung [Wed, 22 Jun 2022 07:48:50 +0000 (15:48 +0800)] 
Remove special serde logic for mapped op_kwargs (#23860)

Co-authored-by: Daniel Standish <15932138+dstandish@users.noreply.github.com>
3 months agofix TestLocalTaskJob tests (#24432)
Andrey Anshin [Wed, 22 Jun 2022 06:15:49 +0000 (10:15 +0400)] 
fix TestLocalTaskJob tests (#24432)

3 months agoUpdate providers to use functools compat for ``cached_property`` (#24582)
Josh Fell [Wed, 22 Jun 2022 02:02:12 +0000 (22:02 -0400)] 
Update providers to use functools compat for ``cached_property`` (#24582)

3 months agoAmazon appflow (#24057)
Igor Tavares [Tue, 21 Jun 2022 23:14:46 +0000 (20:14 -0300)] 
Amazon appflow (#24057)

* Add Amazon AppFlow hook.

* Add Amazon AppFlow operators.

* Add Amazon AppFlow examples.

* Add Amazon Appflow docs.

* Apply comments/docs patterns.

* Removing the "private" attribute signal and more.

* Fix task_ids for example_appflow.

* Move datetime_to_epoch() to utils and more.

* Fix the AppflowBaseOperator name.

* Ignore AppflowBaseOperator during structure check.

* test_short_circuit refactor.

* Add get_airflow_version.

* Update airflow/providers/amazon/aws/hooks/appflow.py

Co-authored-by: Josh Fell <48934154+josh-fell@users.noreply.github.com>
* Update airflow/providers/amazon/aws/operators/appflow.py

Co-authored-by: Josh Fell <48934154+josh-fell@users.noreply.github.com>
* Update airflow/providers/amazon/aws/operators/appflow.py

Co-authored-by: Josh Fell <48934154+josh-fell@users.noreply.github.com>
* Update airflow/providers/amazon/aws/operators/appflow.py

Co-authored-by: Josh Fell <48934154+josh-fell@users.noreply.github.com>
* Update airflow/providers/amazon/aws/operators/appflow.py

Co-authored-by: Josh Fell <48934154+josh-fell@users.noreply.github.com>
* Update airflow/providers/amazon/aws/operators/appflow.py

Co-authored-by: Josh Fell <48934154+josh-fell@users.noreply.github.com>
* Addressing Josh's requests.

* Add cached_property to AppflowHook

* Update airflow/providers/amazon/aws/hooks/appflow.py

Co-authored-by: Josh Fell <48934154+josh-fell@users.noreply.github.com>
* Update airflow/providers/amazon/aws/operators/appflow.py

Co-authored-by: Josh Fell <48934154+josh-fell@users.noreply.github.com>
* Update airflow/providers/amazon/aws/operators/appflow.py

Co-authored-by: Josh Fell <48934154+josh-fell@users.noreply.github.com>
* Update Josh's comment.

* Update cached_property import.

* Fix mypy.

Co-authored-by: Josh Fell <48934154+josh-fell@users.noreply.github.com>
3 months agoAdd DagWarning model, and a check for missing pools (#23317)
Daniel Standish [Tue, 21 Jun 2022 18:55:20 +0000 (11:55 -0700)] 
Add DagWarning model, and a check for missing pools (#23317)

We can use this to track (and surface to the user in the web UI) configuration problems that don't rise to the level of failing the dag parse, such tasks that reference nonexistent pools.

3 months agoAdd test_connection method to Trino hook (#24583)
Phani Kumar [Tue, 21 Jun 2022 18:09:15 +0000 (23:39 +0530)] 
Add test_connection method to Trino hook (#24583)

3 months agoFix occasional test failures where pid matches part of another PID (#24584)
Jarek Potiuk [Tue, 21 Jun 2022 17:52:27 +0000 (19:52 +0200)] 
Fix occasional test failures where pid matches part of another PID (#24584)

Solves problems that intermittently fail our builds:

```
  '135' is contained here:
    ith pid: 10135
  ?            +++
```

3 months agoSwitch to building images in parallell (#24580)
Jarek Potiuk [Tue, 21 Jun 2022 15:58:54 +0000 (17:58 +0200)] 
Switch to building images in parallell (#24580)

In the new Breeze, switching to using parallelism is a ... breeze.

This PR adds the capability of building the images in parallel in Breeze
locally - for breeze command, but also uses this capability to build the
images in parallel in our CI. Our builds are always executed on
powerful, big machines with lots of CPU and docker run in memory
filesystem with 32GB RAM, so it should be possible to run all builds in
parallel on a single machine rather then spin off parallel machines to
run the builds using the matrix strategy of Github Actions.

Generally speaking - this will either speed up or get 4x cost saving for
the build steps for all the "full test needed" PRs as well as all the
main builds.

There are a number of savings and improvements we can achieve this way:

1) less overhead for starting and runnning the machines
2) seems that with the new buildkit, the parallel builds are not
   suffering from some sequential locks (as it used to be, so
   we are basically do the same job using 25% resources for building
   the images.
3) we will stop having random "one image failed to build" cases - they
   will all either fail or succeed.
4) Less checks in the output
5) Production builds will additionally gain from single CI image
   pulled in order to perform the preparation of the packages
   and single package preparation step - it will save 4-5 minutes
   per image.

The disadvantage is a less clear output of such parallel build where
outputs from multiple builds will be interleaved in one CI output.

3 months agoUse found pod for deletion in KubernetesPodOperator (#22092)
Michael Petro [Tue, 21 Jun 2022 15:51:20 +0000 (11:51 -0400)] 
Use found pod for deletion in KubernetesPodOperator (#22092)

Due to bad user configuration, it's possible that pod creation fails because pod with name already exists.  Then in cleanup, the pod that was already there is deleted.  When we use find_pod it looks up based on more than name, so we are confident if we found a pod there it's safe to delete.

3 months agoAdded instructions on what to do if your command images are regenerated (#24581)
Jarek Potiuk [Tue, 21 Jun 2022 13:59:43 +0000 (15:59 +0200)] 
Added instructions on what to do if your command images are regenerated (#24581)

In case there are conflicting changes to breeze command in several
PRs, you might get conflicting images printed. in such case you
should run `breeze regenerate-command-images`

3 months agoFix typo (#24568)
Jon Crall [Tue, 21 Jun 2022 13:13:33 +0000 (09:13 -0400)] 
Fix typo (#24568)

3 months agoSwitch Markdown engine to markdown-it-py (#19702)
Torbjørn Vatn [Tue, 21 Jun 2022 09:24:13 +0000 (11:24 +0200)] 
Switch Markdown engine to markdown-it-py (#19702)

3 months agoChange requests intersphinx inventory to 'stable' (#24575)
Tzu-ping Chung [Tue, 21 Jun 2022 07:40:23 +0000 (15:40 +0800)] 
Change requests intersphinx inventory to 'stable' (#24575)

It was using 'master', but the URL is no longer available. We could use
'main', but 'stable' seems much more sensible.

3 months agoAdd `on_kill()` to kill Trino query if the task is killed (#24559)
Phani Kumar [Mon, 20 Jun 2022 18:39:02 +0000 (00:09 +0530)] 
Add `on_kill()` to kill Trino query if the task is killed (#24559)

This PR is a follow up to PR #24415.
It adds on_kill method to the TrinoOperator to kill Trino query if Airflow task is killed

3 months agoClarify that users should not use Maria DB (#24556)
Jarek Potiuk [Mon, 20 Jun 2022 12:45:16 +0000 (14:45 +0200)] 
Clarify that users should not use Maria DB (#24556)

3 months agoFix the error caused by passing unused context in JiraSensor.poke (#23352)
Kian Eliasi [Mon, 20 Jun 2022 09:23:19 +0000 (13:53 +0430)] 
Fix the error caused by passing unused context in JiraSensor.poke (#23352)

* Fix the error caused by passing unused context in JiraSensor.poke

The sample ticket object used in the test is mocked more realistically and the original field_checker_func is used.

3 months agoMigrate Google example DAG oracle_to_gcs to new design AIP-47 (#24542)
Chenglong Yan [Mon, 20 Jun 2022 09:05:35 +0000 (17:05 +0800)] 
Migrate Google example DAG oracle_to_gcs to new design AIP-47 (#24542)

related: #22447, #22430

3 months agoUpdate description of installing providers separately from core (#24454)
Jarek Potiuk [Mon, 20 Jun 2022 08:09:56 +0000 (10:09 +0200)] 
Update description of installing providers separately from core (#24454)

The description of how to install providers separately from the
core was wrong. It suggested installing main constraints, but
in fact we are not able to give any guarantees when installing
providers this way so no constraints can guarantee consistent
set of dependencies and the user is on their own in this case.

This PR corrects the installation docs.

3 months agoDoc: Add hyperlinks to Github PRs for Release Notes (#24532)
Kaxil Naik [Mon, 20 Jun 2022 05:46:39 +0000 (06:46 +0100)] 
Doc: Add hyperlinks to Github PRs for Release Notes (#24532)

Co-authored-by: Tzu-ping Chung <uranusjr@gmail.com>
3 months agoAdd TrinoOperator (#24415)
Phani Kumar [Sun, 19 Jun 2022 23:08:14 +0000 (04:38 +0530)] 
Add TrinoOperator (#24415)

* Add TrinoOperator

* Enable multi query execution with TrinoOperator

3 months agoMigrate Google example DAG mysql_to_gcs to new design AIP-47 (#24540)
Chenglong Yan [Sun, 19 Jun 2022 22:56:08 +0000 (06:56 +0800)] 
Migrate Google example DAG mysql_to_gcs to new design AIP-47 (#24540)

related: #22447, #22430

3 months agoRe-serialize all DAGs on 'airflow db upgrade' (#24518)
Tzu-ping Chung [Sun, 19 Jun 2022 22:42:08 +0000 (06:42 +0800)] 
Re-serialize all DAGs on 'airflow db upgrade' (#24518)

3 months agoMake extra_args in S3Hook immutable between calls (#24527)
Andrey Anshin [Sun, 19 Jun 2022 22:41:36 +0000 (02:41 +0400)] 
Make extra_args in S3Hook immutable between calls (#24527)

3 months agoConvert sftp hook to use paramiko instead of pysftp (#24512)
Paul Williams [Sun, 19 Jun 2022 22:40:25 +0000 (18:40 -0400)] 
Convert sftp hook to use paramiko instead of pysftp (#24512)

3 months agoConvert SQS Sample DAG to System Test (#24513)
D. Ferruzzi [Sun, 19 Jun 2022 22:16:02 +0000 (15:16 -0700)] 
Convert SQS Sample DAG to System Test (#24513)

3 months agoMigrate Google search_ads DAG to new design AIP-47 (#24298)
Chenglong Yan [Sun, 19 Jun 2022 22:15:39 +0000 (06:15 +0800)] 
Migrate Google search_ads DAG to new design AIP-47 (#24298)

related: #22447, #22430

3 months agoClose the MySQL connections once operations are done. (#24508)
Pavel [Sun, 19 Jun 2022 22:15:01 +0000 (18:15 -0400)] 
Close the MySQL connections once operations are done. (#24508)

3 months agoGCSDeleteObjectsOperator empty prefix bug fix (#24353)
Daniel Lavedonio de Lima [Sun, 19 Jun 2022 22:07:56 +0000 (19:07 -0300)] 
GCSDeleteObjectsOperator empty prefix bug fix (#24353)

3 months agoMigrate Google gcs_to_sheets DAG to new design AIP-47 (#24501)
Chenglong Yan [Sun, 19 Jun 2022 22:06:46 +0000 (06:06 +0800)] 
Migrate Google gcs_to_sheets DAG to new design AIP-47 (#24501)

related: #22430, #22447

3 months agofix: RedshiftDataHook and RdsHook not use cached connection (#24387)
Andrey Anshin [Sun, 19 Jun 2022 21:32:51 +0000 (01:32 +0400)] 
fix: RedshiftDataHook and RdsHook not use cached connection (#24387)

3 months agoAdd missing types to FSHook (#24470)
Léni Marvaud [Sun, 19 Jun 2022 21:27:30 +0000 (23:27 +0200)] 
Add missing types to FSHook (#24470)

Fix mypy error :
```
error: Call to untyped function "FSHook" in typed context  [no-untyped-call]
```

When using :
```python
fs_hook = FSHook(fs_conn_id)
```

3 months agoFix bugs in URI constructor for MySQL connection (#24320)
Maksim [Sun, 19 Jun 2022 21:25:59 +0000 (00:25 +0300)] 
Fix bugs in URI constructor for MySQL connection (#24320)

* Fix bugs in URI constructor for MySQL connection

* Update unit tests

3 months agoAdd DeprecationWarning for column_transformations parameter in AutoML (#24467)
Maksim [Sun, 19 Jun 2022 21:25:04 +0000 (00:25 +0300)] 
Add DeprecationWarning for column_transformations parameter in AutoML (#24467)

3 months agoUpdate flask-appbuilder authlib/oauth dependency (#24516)
Jarek Potiuk [Sun, 19 Jun 2022 19:28:19 +0000 (21:28 +0200)] 
Update flask-appbuilder authlib/oauth dependency (#24516)

The dependency we have for flask-appbuilder oauth authentication
(for github/google authentication) should follow the limits
that flask-appbuilder current version has. We added authlib there
but apparently FAB currently limits authlib to <= 1.0 - we should
follow fab rather than have our own dependency here.

This has been pointed out in
https://github.com/dpgaspar/Flask-AppBuilder/issues/1861

3 months agoPreserve original order of providers' connection extra fields in UI (#24425)
Andrey Anshin [Sun, 19 Jun 2022 18:32:27 +0000 (22:32 +0400)] 
Preserve original order of providers' connection extra fields in UI (#24425)

* Preserve original order of providers' connection extra fields

* Sort widgets before printed in cli command `airflow providers widgets`

3 months agoAdd verification steps when releasing the images. (#24520)
Jarek Potiuk [Sun, 19 Jun 2022 14:16:59 +0000 (16:16 +0200)] 
Add verification steps when releasing the images. (#24520)

After the images are pushed in CI we are running the verification
of the AMD image now.

This cannot be really done during building and pushing the image,
because we are using multi-platform images using remote builders
so the image is not even available locally, so we need to actually
pull the images after they are built in order to verify them.

This PR adds those features:
* ability to pull images for verification with --pull-flag
* ability to verify slim images (regular tests are skipped and
  we only expect the preinstalled providers to be available
* the steps to verify the images (both regular and slim) are
  added to the workflow

3 months agoAdd imports to deferring code samples (#24544)
Bas Harenslak [Sun, 19 Jun 2022 08:53:15 +0000 (10:53 +0200)] 
Add imports to deferring code samples (#24544)

3 months agoGet rid of TimedJSONWebSignatureSerializer (#24519)
Jarek Potiuk [Sat, 18 Jun 2022 21:08:51 +0000 (23:08 +0200)] 
Get rid of TimedJSONWebSignatureSerializer (#24519)

The TimedJSONWebSignatureSerializer has been deprecated from the
itsdangerous library and they recommended to use dedicated
libraries for it.

https://github.com/pallets/itsdangerous/issues/129

Since we are going to move to FAB 4+ with #22397 where newer version of
itsdangerous is used, we need to switch to another library.

We are already using PyJWT so the choice is obvious.

Additionally to switching, the following improvements were done:

* the use of JWT claims has been fixed to follow JWT standard.
  We were using "iat" header wrongly. The specification of JWT only
  expects the header to be there and be valid UTC timestamp, but the
  claim does not impact maturity of the signature - the signature
  is valid if iat is in the future.
  Instead "nbf" - "not before" claim should be used to verify if the
  request is not coming from the future. We now require all claims
  to be present in the request.

* rather than using salt/signing_context we switched to standard
  JWT "audience" claim (same end result)

* we have now much better diagnostics on the server side of the
  reason why request is forbidden - explicit error messages
  are printed in server logs and details of the exception. This
  is secure, we do not spill the information about the reason
  to the client, it's only available in server logs, so there is
  no risk attacker could use it.

* the JWTSigner is "use-agnostic". We should be able to use the
  same class for any other signatures (Internal API from AIP-44)
  with just different audience

* Short, 5 seconds default clock skew is allowed, to account for
  systems that have "almost" synchronized time

* more tests addded with proper time freezing testing both
  expiry and immaturity of the request

This change is not a breaking one because the JWT authentication
details are not "public API" - but in case someone reverse engineered
our claims and implemented their own log file retrieval, we
should add a change in our changelog - therefore newsfragment
is added.

3 months agoMove LOAD_DEFAULT_CONNECTIONS env var to database config section in CI (#24536)
Josh Fell [Sat, 18 Jun 2022 19:34:24 +0000 (15:34 -0400)] 
Move LOAD_DEFAULT_CONNECTIONS env var to database config section in CI (#24536)

3 months agoFix mapped task immutability after clear (#23667)
Ephraim Anierobi [Sat, 18 Jun 2022 07:32:38 +0000 (08:32 +0100)] 
Fix mapped task immutability after clear (#23667)

We should be able to detect if the structure of mapped task has changed
and verify the integrity.

This PR ensures this
Co-authored-by: Tzu-ping Chung <uranusjr@gmail.com>
3 months agoUpdate `actual_file_to_check` with rendered `path` (#24451)
remem9527 [Fri, 17 Jun 2022 22:41:18 +0000 (18:41 -0400)] 
Update `actual_file_to_check` with rendered `path` (#24451)

3 months agoRename charts.css to chart.css (#24531)
Daniel Standish [Fri, 17 Jun 2022 21:00:35 +0000 (14:00 -0700)] 
Rename charts.css to chart.css (#24531)

Just a missed rename.

3 months agoRestore capability of reproducing CI failures using new Breeze (#24402)
Jarek Potiuk [Fri, 17 Jun 2022 20:08:10 +0000 (22:08 +0200)] 
Restore capability of reproducing CI failures using new Breeze (#24402)

The old breeze-legacy used to have a possibility of very easy
reproduction of CI failures by executing the right breeze command
that contained the commit hash of the PR being tested. This has
been broken for some time after we migrated to the new breeze,
but finally it was the time when it was needed again.

This PR brings back the capability by:

* addding --image-tag parameters for tests, shell and start-airflow
  commands
* if --image-tag is specified, then rather than building the
  image, it is pulled using the specified hash
* if --image-tag is specified, the local sources are not mounted
  to breeze when started, but the sources already embedded in the
  image are used ("skipped" set for --mount-sources).
* new "removed" command value is added to --mount-sources, it
  causes breeze command to remove the sources from the image (it
  is used when installing airflow during the tests for specified
  version (it's automatically used when --use-airflow-version
  is used).

3 months agoDon't rely on current ORM structure for db clean command (#23574)
Daniel Standish [Fri, 17 Jun 2022 19:46:16 +0000 (12:46 -0700)] 
Don't rely on current ORM structure for db clean command (#23574)

For command DB clean, by not relying on the ORM models, we will be able to use the command even when the metadatabase is not yet upgraded to the version of Airflow you have installed.

Additionally we archive all rows before deletion.

3 months agoRename grid.css to chart.css (#24529)
Ash Berlin-Taylor [Fri, 17 Jun 2022 17:39:14 +0000 (18:39 +0100)] 
Rename grid.css to chart.css (#24529)

Given it was no longer used in the new grid view and only the chart
pages, _and_ we want to have a new css file for the react grid
components it is better to rename this one now.

3 months agoDo not calculate grid root instances (#24528)
Brent Bovenzi [Fri, 17 Jun 2022 16:31:28 +0000 (12:31 -0400)] 
Do not calculate grid root instances (#24528)

* do not calculate grid root instances

* fix tests

3 months agoUpdate ui.rst (#24514)
Habibullah Oladepo [Fri, 17 Jun 2022 11:10:49 +0000 (12:10 +0100)] 
Update ui.rst (#24514)

Fix minor typos

3 months agoSeed log_template table (#24511)
Jed Cunningham [Fri, 17 Jun 2022 05:41:32 +0000 (23:41 -0600)] 
Seed log_template table (#24511)

Seed the log_template table with the default values pre 2.3.0 so log
retrieval still works post upgrade. This only worked previously if you
have the default in your config, now it works even if you don't.

3 months agoFix deprecated log_id_template value (#24506)
Jed Cunningham [Fri, 17 Jun 2022 01:49:40 +0000 (19:49 -0600)] 
Fix deprecated log_id_template value (#24506)

We had the wrong old default in our deprecated value upgrading logic, so
the 2.2.5 default wasn't actually being upgraded.

3 months agoFix toast messages (#24505)
Brent Bovenzi [Thu, 16 Jun 2022 20:36:21 +0000 (16:36 -0400)] 
Fix toast messages (#24505)

* update webpack-cli, eslint, stylelint, babel

* revert stylelint changes

* update more plugins

* update to webpack 5

* use portalProps to properly style toast msgs

3 months agoRestore tooltip animation (#24503)
Brent Bovenzi [Thu, 16 Jun 2022 19:19:56 +0000 (15:19 -0400)] 
Restore tooltip animation (#24503)

* update webpack-cli, eslint, stylelint, babel

* revert stylelint changes

* update more plugins

* update to webpack 5

* restore animation with framer-motion v6

3 months agoAdd indexes for CASCADE deletes for task_instance (#24488)
Daniel Standish [Thu, 16 Jun 2022 18:41:35 +0000 (11:41 -0700)] 
Add indexes for CASCADE deletes for task_instance (#24488)

When we add foreign keys with ON DELETE CASCADE, and we delete rows in the foreign table, the database needs to join back to the referencing table.  If there's no suitable index, then it can be slow to perform the deletes.

3 months agoUpgrade to webpack 5 (#24485)
Brent Bovenzi [Thu, 16 Jun 2022 18:35:32 +0000 (14:35 -0400)] 
Upgrade to webpack 5 (#24485)

* update webpack-cli, eslint, stylelint, babel

* revert stylelint changes

* update more plugins

* update to webpack 5

* remove all resolutions

3 months agoRemove internet explorer support (#24495)
Brent Bovenzi [Thu, 16 Jun 2022 16:35:44 +0000 (12:35 -0400)] 
Remove internet explorer support (#24495)

* remove internet explorer support

* remove from webpack

3 months agoCredit image used in tutorial.py (#24490)
Yasen Petrov [Thu, 16 Jun 2022 11:32:22 +0000 (13:32 +0200)] 
Credit image used in tutorial.py (#24490)

The image used in the example task documentation is [licensed under the Creative Commons license](https://xkcd.com/license.html). This change adds a mention of the author and a link to the license under the image.

3 months agoImprove production image release workflow (#24481)
Jarek Potiuk [Thu, 16 Jun 2022 08:50:19 +0000 (10:50 +0200)] 
Improve production image release workflow (#24481)

Few improvements:

* direct link to workflow in the docs
* "green" success screenshots (separate screenshot for rc)
* job and step names contain both Airflow version and python version
* running subsequent build with same version will cancel past
  in-progress build (in case you quickly make constraint fis for
  example and re-run)

3 months agoSmall cleanup of ``get_current_context()`` chapter (#24482)
Josh Fell [Thu, 16 Jun 2022 08:50:04 +0000 (04:50 -0400)] 
Small cleanup of ``get_current_context()`` chapter (#24482)

3 months agoReturn empty dict if Pod JSON encoding fails (#24478)
Daniel Standish [Wed, 15 Jun 2022 19:47:07 +0000 (12:47 -0700)] 
Return empty dict if Pod JSON encoding fails (#24478)

When UI unpickles executor_configs with outdated k8s objects it can run into the same issue as the scheduler does (see https://github.com/apache/airflow/issues/23727).

Our JSON encoder therefore needs to suppress encoding errors arising from pod serialization, and fallback to a default value.

3 months agoUse `get_hostname` instead of `socket.getfqdn` (#24260)
Jed Cunningham [Wed, 15 Jun 2022 19:45:15 +0000 (13:45 -0600)] 
Use `get_hostname` instead of `socket.getfqdn` (#24260)

We allow users to configure a different function to determine the
hostname, so we should use that consistently when we need the hostname.

3 months agoFix semver compare number for `jobs check` command (#24480)
Daniel Standish [Wed, 15 Jun 2022 19:34:29 +0000 (12:34 -0700)] 
Fix semver compare number for `jobs check` command (#24480)

From what I can tell this command was added in 2.1.0 not 2.0.0.

3 months agoRemove framer-motion from custom tooltip (#24449)
Brent Bovenzi [Wed, 15 Jun 2022 19:17:22 +0000 (15:17 -0400)] 
Remove framer-motion from custom tooltip (#24449)

* remove framer-motion from custom tooltip

* remove framer-motion type declaration file

3 months agoRevert "Fix await_container_completion condition (#23883)" (#24474)
Jed Cunningham [Wed, 15 Jun 2022 16:22:49 +0000 (10:22 -0600)] 
Revert "Fix await_container_completion condition (#23883)" (#24474)

This reverts commit 42abbf0d61f94ec50026af0c0f95eb378e403042.

3 months agoUpdate release docs for Google and Oracle providers (#24461) providers-google/8.1.0 providers-google/8.1.0rc1 providers-oracle/3.1.0 providers-oracle/3.1.0rc1
Jarek Potiuk [Wed, 15 Jun 2022 12:05:36 +0000 (14:05 +0200)] 
Update release docs for Google and Oracle providers (#24461)

3 months agoSpeed up grid_data endpoint by 10x (#24284)
Ash Berlin-Taylor [Wed, 15 Jun 2022 12:02:23 +0000 (13:02 +0100)] 
Speed up grid_data endpoint by 10x (#24284)

* Speed up grid_data endpoint by 10x

These changes make the endpoint go from almost 20s down to 1.5s and the
changes are two fold:

1. Keep datetimes as objects for as long as possible

   Previously we were converting start/end dates for a task group to a
   string, and then in the parent parsing it back to a datetime to find
   the min and max of all the child nodes.

   The fix for that was to leave it as a datetime (or a
   pendulum.DateTime technically) and use the existing
   `AirflowJsonEncoder` class to "correctly" encode these objects on
   output.

2. Reduce the number of DB queries from 1 per task to 1.

   The removed `get_task_summaries` function was called for each task,
   and was making a query to the database to find info for the given
   DagRuns.

   The helper function now makes just a single DB query for all
   tasks/runs and constructs a dict to efficiently look up the ti by
   run_id.

* Add support for mapped tasks in the grid data

* Don't fail when not all tasks have a finish date.

Note that this possibly has incorrect behaviour, in that the end_date of
a TaskGroup is set to the max of all the children's end dates, even if
some are still running. (This is the existing behaviour and is not
changed or altered by this change - limiting it to just performance
fixes)

3 months agoUse insert_job in the BigQueryToGCPOpertor and adjust links (#24416)
Łukasz Wyszomirski [Wed, 15 Jun 2022 09:45:08 +0000 (11:45 +0200)] 
Use insert_job in the BigQueryToGCPOpertor and adjust links (#24416)

* Use insert_job in the BigQueryToGCPOpertor and adjust links

3 months agoFirst attempt to have CI-controlled process of releasing PROD image (#24433)
Jarek Potiuk [Wed, 15 Jun 2022 09:42:41 +0000 (11:42 +0200)] 
First attempt to have CI-controlled process of releasing PROD image (#24433)

3 months agoDon't crash scheduler if exec config has old k8s objects (#24117)
Daniel Standish [Wed, 15 Jun 2022 04:30:53 +0000 (21:30 -0700)] 
Don't crash scheduler if exec config has old k8s objects (#24117)

From time to time k8s library objects change their attrs.  If executor config is stored with old version, and unpickled with new version, we can get attribute errors that can crash the scheduler (see https://github.com/apache/airflow/issues/23727).

Here we update handling so that we fail the task but don't crash the scheduler.

3 months agoDocs: Fix default 2.2.5 log_id_template (#24455)
Jed Cunningham [Tue, 14 Jun 2022 23:30:09 +0000 (17:30 -0600)] 
Docs: Fix default 2.2.5 log_id_template (#24455)

I accidentally got the wrong default for 2.2.5 when documenting how
to fix elasticsearch remote logging after upgrading to 2.3.0+.

3 months agoAdd CI-friendly progress output for tests (#24236)
Jarek Potiuk [Tue, 14 Jun 2022 20:32:49 +0000 (22:32 +0200)] 
Add CI-friendly progress output for tests (#24236)

This is the first step to run breeze tests in parallel in CI.
This flag adds "limited progress" output when running tests
which means that the runnig tests will just print few lines with
percent progress and color status indication from last few
progress lines of Pytest output, but when it completes, the whole output is
printed in a CI group - colored depending on status.

The final version (wnen we implement parallel test execution) should
also defer writing the output to until all tests are completed, but
this should be a follow-up PR.

3 months agoConvert Cloudformation Sample DAG to System Test (#24447)
D. Ferruzzi [Tue, 14 Jun 2022 20:26:51 +0000 (13:26 -0700)] 
Convert Cloudformation Sample DAG to System Test (#24447)

3 months ago`TI.log_url` fix for `map_index` (#24335)
fritz-astronomer [Tue, 14 Jun 2022 20:15:49 +0000 (16:15 -0400)] 
`TI.log_url` fix for `map_index` (#24335)

3 months agoClarify "significant" newsfragment vs significant newsfragment _type_ (#24450)
Daniel Standish [Tue, 14 Jun 2022 20:08:52 +0000 (13:08 -0700)] 
Clarify "significant" newsfragment vs significant newsfragment _type_ (#24450)

Previously was tiny bit ambiguous and could make it appear that any newsfragment type could have summary + body.  Also I remove the word "simply" just because it's a pet peeve of mine.

3 months agoVendor in the bitnami chart (#24395)
Jarek Potiuk [Tue, 14 Jun 2022 16:07:47 +0000 (18:07 +0200)] 
Vendor in the bitnami chart (#24395)

After the Bitnami fiasco
https://github.com/bitnami/charts/issues/10539

We lost trust in bitnami index being good and reliable source
of charts. That's why we vendored-in the postgres chart needed for
our Helm chart.

Fixes: #24037

3 months agoUpdate errors.rst (#24412)
dojoscan [Tue, 14 Jun 2022 15:18:52 +0000 (17:18 +0200)] 
Update errors.rst (#24412)

Fix wording in some sentences

3 months agoUpgrade to react 18 and chakra 2 (#24430)
Brent Bovenzi [Tue, 14 Jun 2022 15:13:15 +0000 (17:13 +0200)] 
Upgrade to react 18 and chakra 2 (#24430)

* Upgrade to react 18 and chakra 2

* upgrade emotion cache

* fix framer-motion and (some) testing issues

3 months agoUpdate Oracle library to latest version (#24311)
Leonard Meerwood [Tue, 14 Jun 2022 11:24:07 +0000 (21:24 +1000)] 
Update Oracle library to latest version (#24311)

3 months agoAdd AWS Batch & AWS CloudWatch Extra Links (#24406)
Andrey Anshin [Tue, 14 Jun 2022 11:23:08 +0000 (15:23 +0400)] 
Add AWS Batch & AWS CloudWatch Extra Links (#24406)

3 months agoGrid task logs filtering and local time (#24403)
pierrejeambrun [Tue, 14 Jun 2022 00:34:41 +0000 (08:34 +0800)] 
Grid task logs filtering and local time (#24403)

* Logs filtering + local datetime

* Add tests

* Reset fields on task change if not availables.

* Update following code review.

* Fix select width

3 months agofix typo in google provider additional extras (#24431)
Andrey Anshin [Mon, 13 Jun 2022 22:26:26 +0000 (02:26 +0400)] 
fix typo in google provider additional extras (#24431)

3 months agoAdd Trakken to list of companies using Airflow (#24429)
Ilias Troullinos [Mon, 13 Jun 2022 21:53:53 +0000 (23:53 +0200)] 
Add Trakken to list of companies using Airflow (#24429)

Co-authored-by: Ilias Troullinos <htrul18@gmail.com>
3 months agoAdd Flux to chart gitops docs (#24288)
Rafael Guimaraes Siqueira [Mon, 13 Jun 2022 21:52:37 +0000 (17:52 -0400)] 
Add Flux to chart gitops docs (#24288)

3 months agoAdd salesforce_default to List Connection (#24347)
ishiis [Mon, 13 Jun 2022 18:25:58 +0000 (03:25 +0900)] 
Add salesforce_default to List Connection (#24347)

* add salesforce_default to List Connection

* add attributes to salesforce_default

3 months agoImprove grid rendering performance with a custom tooltip (#24417)
Brent Bovenzi [Mon, 13 Jun 2022 18:23:53 +0000 (20:23 +0200)] 
Improve grid rendering performance with a custom tooltip (#24417)

* fully custom tooltip

* use a customized chakra tooltip

* update notice

3 months agoFix links to sources for examples (#24386)
Jarek Potiuk [Mon, 13 Jun 2022 17:38:20 +0000 (19:38 +0200)] 
Fix links to sources for examples (#24386)

The links to example sources in exampleinclude have been broken in a
number of providers and they were additionally broken by AIP-47.

This PR fixes it.

Fixes: #23632
Fixes: https://github.com/apache/airflow-site/issues/536

3 months agoRevert "Remove custom signal handling in Triggerer (#23274)" (#24390)
Jarek Potiuk [Mon, 13 Jun 2022 17:29:31 +0000 (19:29 +0200)] 
Revert "Remove custom signal handling in Triggerer (#23274)" (#24390)

This reverts commit 6bdbed6c43df3c5473b168a75c50e0139cc13e88.

3 months agoAdd note on subtle logical date change in 2.2.0 (#24413)
Tzu-ping Chung [Mon, 13 Jun 2022 14:42:24 +0000 (22:42 +0800)] 
Add note on subtle logical date change in 2.2.0 (#24413)

3 months agoAdd release cadence information to provider support in README (#24367)
Jarek Potiuk [Mon, 13 Jun 2022 09:08:29 +0000 (11:08 +0200)] 
Add release cadence information to provider support in README (#24367)

I noticed that we have not mentioned anywhere that release cadence
for providers is roughly monthly.

3 months agoClose #24303 (#24394)
Denis Samuylov [Mon, 13 Jun 2022 09:08:14 +0000 (11:08 +0200)] 
Close #24303 (#24394)

Provide details on how to pull airflow image from a private repository

3 months agoFix HttpHook.run_with_advanced_retry document error (#24380)
Chenglong Yan [Mon, 13 Jun 2022 07:14:32 +0000 (15:14 +0800)] 
Fix HttpHook.run_with_advanced_retry document error (#24380)

related: #9569

3 months agoThe timeouts for Helm tests are far too small for "full tests" (#24408)
Jarek Potiuk [Mon, 13 Jun 2022 07:07:58 +0000 (09:07 +0200)] 
The timeouts for Helm tests are far too small for "full tests" (#24408)

When "Full tests needed" are run, then the Helm tests take far
more time because they are running mor combinations of executor
and Python version. Such tests will timeout now.

This PR increases the timeout

3 months agoFix flaky order of returned dag runs (#24405)
Jarek Potiuk [Mon, 13 Jun 2022 07:04:07 +0000 (09:04 +0200)] 
Fix flaky order of returned dag runs (#24405)

There was no ordering on a query returning dag_runs when it comes
to grid view. This caused flaky tests but also it would have
caused problems with random reordering of reported dagruns in the
UI (it seems).

This change adds stable ordering on returned Dag Runs:

* by dag_run_id (ascending) asc

No need to filter by map_index as there will be always max one
returned TI from each dag run

3 months agoDebugExecutor use ti.run() instead of ti._run_raw_task (#24357)
Niko [Mon, 13 Jun 2022 07:02:56 +0000 (00:02 -0700)] 
DebugExecutor use ti.run() instead of ti._run_raw_task (#24357)

The DebugExecutor previously executed tasks by calling the "private"
ti._run_raw_task(...) method instead of ti.run(...). But the latter
contains the logic to increase task instance try_numbers when running,
thus tasks executed with the DebugExecutor were never getting their
try_numbers increased and for rescheduled tasks this led to off-by-one
errors (as the logic to reduce the try_number for the reschedule was
still working while the increase was not).

3 months agoExpose SQL to GCS Metadata (#24382)
Peter Wicks [Mon, 13 Jun 2022 06:55:12 +0000 (00:55 -0600)] 
Expose SQL to GCS Metadata (#24382)