diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index cb0545eddffa6..7cf0454780bdd 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -372,6 +372,13 @@ repos:
require_serial: true
files: ^airflow/providers/.*\.py$
additional_dependencies: ['rich>=12.4.4']
+ - id: check-provider-yaml-value-importable
+ name: Check values in provider.yaml are importable
+ entry: ./scripts/ci/pre_commit/pre_commit_provider_import_path_exists.py
+ language: python
+ pass_filenames: true
+ files: ^airflow/providers/.*$
+ additional_dependencies: ['pyyaml']
- id: update-local-yml-file
name: Update mounts in the local yml file
entry: ./scripts/ci/pre_commit/pre_commit_local_yml_mounts.py
diff --git a/STATIC_CODE_CHECKS.rst b/STATIC_CODE_CHECKS.rst
index 9b5d1d8df7aaf..205e7eebabada 100644
--- a/STATIC_CODE_CHECKS.rst
+++ b/STATIC_CODE_CHECKS.rst
@@ -219,6 +219,8 @@ require Breeze Docker image to be built locally.
+-----------------------------------------------------------+--------------------------------------------------------------+---------+
| check-provider-yaml-valid | Validate provider.yaml files | * |
+-----------------------------------------------------------+--------------------------------------------------------------+---------+
+| check-provider-yaml-value-importable | Check values in provider.yaml are importable | |
++-----------------------------------------------------------+--------------------------------------------------------------+---------+
| check-providers-init-file-missing | Provider init file is missing | |
+-----------------------------------------------------------+--------------------------------------------------------------+---------+
| check-providers-subpackages-init-file-exist | Provider subpackage init files are there | |
diff --git a/airflow/providers/apache/pinot/provider.yaml b/airflow/providers/apache/pinot/provider.yaml
index 51146a1e6aa69..3c10b9c05f818 100644
--- a/airflow/providers/apache/pinot/provider.yaml
+++ b/airflow/providers/apache/pinot/provider.yaml
@@ -59,5 +59,7 @@ hooks:
- airflow.providers.apache.pinot.hooks.pinot
connection-types:
- - hook-class-name: airflow.providers.apache.pinot.hooks.pinot.PinotHook
+ - hook-class-name: airflow.providers.apache.pinot.hooks.pinot.PinotDbApiHook
connection-type: pinot
+ - hook-class-name: airflow.providers.apache.pinot.hooks.pinot.PinotAdminHook
+ connection-type: pinot_admin
diff --git a/airflow/providers/redis/provider.yaml b/airflow/providers/redis/provider.yaml
index cb2c85d3c855a..98797d4663f30 100644
--- a/airflow/providers/redis/provider.yaml
+++ b/airflow/providers/redis/provider.yaml
@@ -68,4 +68,4 @@ connection-types:
connection-type: redis
logging:
- - airflow.providers.redis.redis_task_handler.RedisTaskHandler
+ - airflow.providers.redis.log.redis_task_handler.RedisTaskHandler
diff --git a/airflow/providers/slack/provider.yaml b/airflow/providers/slack/provider.yaml
index b6195dc04a8d4..9f46d284d40cb 100644
--- a/airflow/providers/slack/provider.yaml
+++ b/airflow/providers/slack/provider.yaml
@@ -82,4 +82,4 @@ connection-types:
connection-type: slackwebhook
notifications:
- - airflow.providers.slack.notifications.slack_notifier.SlackNotifier
+ - airflow.providers.slack.notifications.slack.SlackNotifier
diff --git a/dev/breeze/src/airflow_breeze/pre_commit_ids.py b/dev/breeze/src/airflow_breeze/pre_commit_ids.py
index 79e0cecba88c9..6dd7d693ad9e5 100644
--- a/dev/breeze/src/airflow_breeze/pre_commit_ids.py
+++ b/dev/breeze/src/airflow_breeze/pre_commit_ids.py
@@ -63,6 +63,7 @@
"check-pre-commit-information-consistent",
"check-provide-create-sessions-imports",
"check-provider-yaml-valid",
+ "check-provider-yaml-value-importable",
"check-providers-init-file-missing",
"check-providers-subpackages-init-file-exist",
"check-pydevd-left-in-code",
diff --git a/images/breeze/output-commands-hash.txt b/images/breeze/output-commands-hash.txt
index 5c81b1f82538e..3017edbd264a2 100644
--- a/images/breeze/output-commands-hash.txt
+++ b/images/breeze/output-commands-hash.txt
@@ -64,7 +64,7 @@ setup:version:be116d90a21c2afe01087f7609774e1e
setup:fd391bab5277ad3aca65987a84144d51
shell:c7adf57a354ecb496ae12fc0b9eaea80
start-airflow:23df4528b3972977e58f7d29336500f7
-static-checks:5ded21248cd4f5617779f58ecf6c554c
+static-checks:3c6b570f3a05f12cc08eb0d0d2462c29
testing:docker-compose-tests:0c810047fc66a0cfe91119e2d08b3507
testing:helm-tests:8e491da2e01ebd815322c37562059d77
testing:integration-tests:f2a400ac9f722b9c279abbd4e3313e71
diff --git a/images/breeze/output-commands.svg b/images/breeze/output-commands.svg
index 51829ca34b0dc..8b9d38fa91877 100644
--- a/images/breeze/output-commands.svg
+++ b/images/breeze/output-commands.svg
@@ -35,8 +35,8 @@
.breeze-help-r1 { fill: #c5c8c6;font-weight: bold }
.breeze-help-r2 { fill: #c5c8c6 }
.breeze-help-r3 { fill: #d0b344;font-weight: bold }
-.breeze-help-r4 { fill: #68a0b3;font-weight: bold }
-.breeze-help-r5 { fill: #868887 }
+.breeze-help-r4 { fill: #868887 }
+.breeze-help-r5 { fill: #68a0b3;font-weight: bold }
.breeze-help-r6 { fill: #98a84b;font-weight: bold }
.breeze-help-r7 { fill: #8d7b39 }
@@ -217,59 +217,59 @@
-Usage: breeze [OPTIONS] COMMAND [ARGS]...
+Usage: breeze [OPTIONS] COMMAND [ARGS]...
-╭─ Basic flags ────────────────────────────────────────────────────────────────────────────────────────────────────────╮
-│--python-pPython major/minor version used in Airflow image for images.(>3.8< | 3.9 | 3.10 | 3.11)│
-│[default: 3.8] │
-│--backend-bDatabase backend to use.(>sqlite< | mysql | postgres | mssql)[default: sqlite]│
-│--postgres-version-PVersion of Postgres used.(>11< | 12 | 13 | 14 | 15)[default: 11]│
-│--mysql-version-MVersion of MySQL used.(>5.7< | 8.0 | 8.1)[default: 5.7]│
-│--mssql-version-SVersion of MsSQL used.(>2017-latest< | 2019-latest)[default: 2017-latest]│
-│--integrationIntegration(s) to enable when running (can be more than one). │
-│(all | all-testable | cassandra | celery | kafka | kerberos | mongo | otel | pinot | │
-│statsd | statsd | trino) │
-│--forward-credentials-fForward local credentials to container when running.│
-│--db-reset-dReset DB when entering the container.│
-│--max-timeMaximum time that the command should take - if it takes longer, the command will fail.│
-│(INTEGER RANGE) │
-│--github-repository-gGitHub repository used to pull, push run images.(TEXT)[default: apache/airflow]│
-│--builderBuildx builder used to perform `docker buildx build` commands.(TEXT)│
-│[default: autodetect] │
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
-╭─ Common options ─────────────────────────────────────────────────────────────────────────────────────────────────────╮
-│--verbose-vPrint verbose information about performed steps.│
-│--dry-run-DIf dry-run is set, commands are only printed, not executed.│
-│--answer-aForce answer to questions.(y | n | q | yes | no | quit)│
-│--help-hShow this message and exit.│
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
-╭─ Developer commands ─────────────────────────────────────────────────────────────────────────────────────────────────╮
-│start-airflow Enter breeze environment and starts all Airflow components in the tmux session. Compile assets │
-│if contents of www directory changed. │
-│static-checks Run static checks. │
-│build-docs Build documents. │
-│down Stop running breeze environment. │
-│shell Enter breeze environment. this is the default command use when no other is selected. │
-│exec Joins the interactive shell of running airflow container. │
-│compile-www-assetsCompiles www assets. │
-│cleanup Cleans the cache of parameters, docker cache and optionally built CI/PROD images. │
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
-╭─ Testing commands ───────────────────────────────────────────────────────────────────────────────────────────────────╮
-│testing Tools that developers can use to run tests │
-│k8s Tools that developers use to run Kubernetes tests │
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
-╭─ Image commands ─────────────────────────────────────────────────────────────────────────────────────────────────────╮
-│ci-image Tools that developers can use to manually manage CI images │
-│prod-image Tools that developers can use to manually manage PROD images │
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
-╭─ Release management commands ────────────────────────────────────────────────────────────────────────────────────────╮
-│release-management Tools that release managers can use to prepare and manage Airflow releases │
-│sbom Tools that release managers can use to prepare sbom information │
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
-╭─ Other commands ─────────────────────────────────────────────────────────────────────────────────────────────────────╮
-│setup Tools that developers can use to configure Breeze │
-│ci Tools that CI workflows use to cleanup/manage CI environment │
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─ Basic flags ────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│--python-pPython major/minor version used in Airflow image for images.(>3.8< | 3.9 | 3.10 | 3.11)│
+│[default: 3.8] │
+│--backend-bDatabase backend to use.(>sqlite< | mysql | postgres | mssql)[default: sqlite]│
+│--postgres-version-PVersion of Postgres used.(>11< | 12 | 13 | 14 | 15)[default: 11]│
+│--mysql-version-MVersion of MySQL used.(>5.7< | 8.0 | 8.1)[default: 5.7]│
+│--mssql-version-SVersion of MsSQL used.(>2017-latest< | 2019-latest)[default: 2017-latest]│
+│--integrationIntegration(s) to enable when running (can be more than one). │
+│(all | all-testable | cassandra | celery | kafka | kerberos | mongo | otel | pinot | │
+│statsd | statsd | trino) │
+│--forward-credentials-fForward local credentials to container when running.│
+│--db-reset-dReset DB when entering the container.│
+│--max-timeMaximum time that the command should take - if it takes longer, the command will fail.│
+│(INTEGER RANGE) │
+│--github-repository-gGitHub repository used to pull, push run images.(TEXT)[default: apache/airflow]│
+│--builderBuildx builder used to perform `docker buildx build` commands.(TEXT)│
+│[default: autodetect] │
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─ Common options ─────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│--verbose-vPrint verbose information about performed steps.│
+│--dry-run-DIf dry-run is set, commands are only printed, not executed.│
+│--answer-aForce answer to questions.(y | n | q | yes | no | quit)│
+│--help-hShow this message and exit.│
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─ Developer commands ─────────────────────────────────────────────────────────────────────────────────────────────────╮
+│start-airflow Enter breeze environment and starts all Airflow components in the tmux session. Compile assets │
+│if contents of www directory changed. │
+│static-checks Run static checks. │
+│build-docs Build documents. │
+│down Stop running breeze environment. │
+│shell Enter breeze environment. this is the default command use when no other is selected. │
+│exec Joins the interactive shell of running airflow container. │
+│compile-www-assetsCompiles www assets. │
+│cleanup Cleans the cache of parameters, docker cache and optionally built CI/PROD images. │
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─ Testing commands ───────────────────────────────────────────────────────────────────────────────────────────────────╮
+│testing Tools that developers can use to run tests │
+│k8s Tools that developers use to run Kubernetes tests │
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─ Image commands ─────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│ci-image Tools that developers can use to manually manage CI images │
+│prod-image Tools that developers can use to manually manage PROD images │
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─ Release management commands ────────────────────────────────────────────────────────────────────────────────────────╮
+│release-management Tools that release managers can use to prepare and manage Airflow releases │
+│sbom Tools that release managers can use to prepare sbom information │
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─ Other commands ─────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│setup Tools that developers can use to configure Breeze │
+│ci Tools that CI workflows use to cleanup/manage CI environment │
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
diff --git a/images/breeze/output_static-checks.svg b/images/breeze/output_static-checks.svg
index 9c029a855df92..eb0eec021eba3 100644
--- a/images/breeze/output_static-checks.svg
+++ b/images/breeze/output_static-checks.svg
@@ -1,4 +1,4 @@
-