This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a commit to branch providers-fab/v1-5
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/providers-fab/v1-5 by this
push:
new 77732d1618a Update dependencies for FAB provider to not be conflicting
with 2.11.1 (#53029)
77732d1618a is described below
commit 77732d1618a5a85435ae9c2875f7fe1488eaf2c3
Author: Jarek Potiuk <[email protected]>
AuthorDate: Sat Oct 4 23:44:26 2025 -0700
Update dependencies for FAB provider to not be conflicting with 2.11.1
(#53029)
There is an upcoming change in dependencies for Airflow 2.11 which
involves bumping a number of dependencies - including Werkzeug and
Flask - and we need to release FAB 1.5.4 to account for that.
---
airflow/utils/db.py | 2 +-
airflow/www/extensions/init_session.py | 2 +-
airflow/www/session.py | 28 +-
dev/breeze/doc/images/output-commands.svg | 317 +--------------------
dev/breeze/tests/test_packages.py | 15 +-
generated/provider_dependencies.json | 5 +-
generated/provider_dependencies.json.sha256sum | 1 +
hatch_build.py | 7 +-
providers/src/airflow/providers/fab/__init__.py | 2 +-
.../fab/auth_manager/security_manager/override.py | 2 +-
providers/src/airflow/providers/fab/provider.yaml | 6 +-
11 files changed, 54 insertions(+), 333 deletions(-)
diff --git a/airflow/utils/db.py b/airflow/utils/db.py
index a45b14ae666..f1a95bb88ef 100644
--- a/airflow/utils/db.py
+++ b/airflow/utils/db.py
@@ -744,7 +744,7 @@ def _get_flask_db(sql_database_uri):
flask_app.config["SQLALCHEMY_DATABASE_URI"] = sql_database_uri
flask_app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
db = SQLAlchemy(flask_app)
- AirflowDatabaseSessionInterface(app=flask_app, db=db, table="session",
key_prefix="")
+ AirflowDatabaseSessionInterface(app=flask_app, client=db, table="session",
key_prefix="")
return db
diff --git a/airflow/www/extensions/init_session.py
b/airflow/www/extensions/init_session.py
index fb26230c53b..349990a39a2 100644
--- a/airflow/www/extensions/init_session.py
+++ b/airflow/www/extensions/init_session.py
@@ -44,7 +44,7 @@ def init_airflow_session_interface(app):
elif selected_backend == "database":
app.session_interface = AirflowDatabaseSessionInterface(
app=app,
- db=None,
+ client=None,
permanent=permanent_cookie,
# Typically these would be configurable with Flask-Session,
# but we will set them explicitly instead as they don't make
diff --git a/airflow/www/session.py b/airflow/www/session.py
index 763b909ae0d..28c549fbf90 100644
--- a/airflow/www/session.py
+++ b/airflow/www/session.py
@@ -16,9 +16,15 @@
# under the License.
from __future__ import annotations
+from typing import TYPE_CHECKING
+
from flask import request
+from flask.json.tag import TaggedJSONSerializer
from flask.sessions import SecureCookieSessionInterface
-from flask_session.sessions import SqlAlchemySessionInterface
+from flask_session.sqlalchemy import SqlAlchemySessionInterface
+
+if TYPE_CHECKING:
+ from flask_session import Session
class SessionExemptMixin:
@@ -33,6 +39,26 @@ class SessionExemptMixin:
return super().save_session(*args, **kwargs)
+class AirflowTaggedJSONSerializer(TaggedJSONSerializer):
+ """
+ Adapter of flask's serializer for flask-session.
+
+ This serializer is used instead of MsgPackSerializer from flask-session,
+ because MsgPackSerializer does not support Markup objects which need to be
serialized in Airflow.
+
+ So we are using TaggedJSONSerializer which is compatible with Markup
objects but we pretend we have
+ the same interface as MsgPackSerializer (encode/decode methods) to be
compatible with flask-session.
+ """
+
+ def encode(self, session: Session) -> bytes:
+ """Serialize the session data."""
+ return self.dumps(session).encode()
+
+ def decode(self, data: bytes) -> Session:
+ """Deserialize the session data."""
+ return self.loads(data.decode())
+
+
class AirflowDatabaseSessionInterface(SessionExemptMixin,
SqlAlchemySessionInterface):
"""Session interface that exempts some routes and stores session data in
the database."""
diff --git a/dev/breeze/doc/images/output-commands.svg
b/dev/breeze/doc/images/output-commands.svg
index 12e276fe01a..1a4becaa2d6 100644
--- a/dev/breeze/doc/images/output-commands.svg
+++ b/dev/breeze/doc/images/output-commands.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 2002.0"
xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1482 123.19999999999999"
xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io -->
<style>
@@ -36,14 +36,11 @@
.breeze-help-r2 { fill: #d0b344 }
.breeze-help-r3 { fill: #c5c8c6;font-weight: bold }
.breeze-help-r4 { fill: #68a0b3;font-weight: bold }
-.breeze-help-r5 { fill: #868887 }
-.breeze-help-r6 { fill: #98a84b;font-weight: bold }
-.breeze-help-r7 { fill: #8d7b39 }
</style>
<defs>
<clipPath id="breeze-help-clip-terminal">
- <rect x="0" y="0" width="1463.0" height="1951.0" />
+ <rect x="0" y="0" width="1463.0" height="72.19999999999999" />
</clipPath>
<clipPath id="breeze-help-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -51,240 +48,9 @@
<clipPath id="breeze-help-line-1">
<rect x="0" y="25.9" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="breeze-help-line-2">
- <rect x="0" y="50.3" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-3">
- <rect x="0" y="74.7" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-4">
- <rect x="0" y="99.1" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-5">
- <rect x="0" y="123.5" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-6">
- <rect x="0" y="147.9" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-7">
- <rect x="0" y="172.3" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-8">
- <rect x="0" y="196.7" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-9">
- <rect x="0" y="221.1" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-10">
- <rect x="0" y="245.5" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-11">
- <rect x="0" y="269.9" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-12">
- <rect x="0" y="294.3" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-13">
- <rect x="0" y="318.7" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-14">
- <rect x="0" y="343.1" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-15">
- <rect x="0" y="367.5" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-16">
- <rect x="0" y="391.9" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-17">
- <rect x="0" y="416.3" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-18">
- <rect x="0" y="440.7" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-19">
- <rect x="0" y="465.1" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-20">
- <rect x="0" y="489.5" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-21">
- <rect x="0" y="513.9" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-22">
- <rect x="0" y="538.3" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-23">
- <rect x="0" y="562.7" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-24">
- <rect x="0" y="587.1" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-25">
- <rect x="0" y="611.5" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-26">
- <rect x="0" y="635.9" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-27">
- <rect x="0" y="660.3" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-28">
- <rect x="0" y="684.7" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-29">
- <rect x="0" y="709.1" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-30">
- <rect x="0" y="733.5" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-31">
- <rect x="0" y="757.9" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-32">
- <rect x="0" y="782.3" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-33">
- <rect x="0" y="806.7" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-34">
- <rect x="0" y="831.1" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-35">
- <rect x="0" y="855.5" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-36">
- <rect x="0" y="879.9" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-37">
- <rect x="0" y="904.3" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-38">
- <rect x="0" y="928.7" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-39">
- <rect x="0" y="953.1" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-40">
- <rect x="0" y="977.5" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-41">
- <rect x="0" y="1001.9" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-42">
- <rect x="0" y="1026.3" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-43">
- <rect x="0" y="1050.7" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-44">
- <rect x="0" y="1075.1" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-45">
- <rect x="0" y="1099.5" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-46">
- <rect x="0" y="1123.9" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-47">
- <rect x="0" y="1148.3" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-48">
- <rect x="0" y="1172.7" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-49">
- <rect x="0" y="1197.1" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-50">
- <rect x="0" y="1221.5" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-51">
- <rect x="0" y="1245.9" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-52">
- <rect x="0" y="1270.3" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-53">
- <rect x="0" y="1294.7" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-54">
- <rect x="0" y="1319.1" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-55">
- <rect x="0" y="1343.5" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-56">
- <rect x="0" y="1367.9" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-57">
- <rect x="0" y="1392.3" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-58">
- <rect x="0" y="1416.7" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-59">
- <rect x="0" y="1441.1" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-60">
- <rect x="0" y="1465.5" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-61">
- <rect x="0" y="1489.9" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-62">
- <rect x="0" y="1514.3" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-63">
- <rect x="0" y="1538.7" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-64">
- <rect x="0" y="1563.1" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-65">
- <rect x="0" y="1587.5" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-66">
- <rect x="0" y="1611.9" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-67">
- <rect x="0" y="1636.3" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-68">
- <rect x="0" y="1660.7" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-69">
- <rect x="0" y="1685.1" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-70">
- <rect x="0" y="1709.5" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-71">
- <rect x="0" y="1733.9" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-72">
- <rect x="0" y="1758.3" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-73">
- <rect x="0" y="1782.7" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-74">
- <rect x="0" y="1807.1" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-75">
- <rect x="0" y="1831.5" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-76">
- <rect x="0" y="1855.9" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-77">
- <rect x="0" y="1880.3" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-help-line-78">
- <rect x="0" y="1904.7" width="1464" height="24.65"/>
- </clipPath>
</defs>
- <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1"
x="1" y="1" width="1480" height="2000" rx="8"/><text class="breeze-help-title"
fill="#c5c8c6" text-anchor="middle" x="740" y="27">Breeze commands</text>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1"
x="1" y="1" width="1480" height="121.2" rx="8"/><text class="breeze-help-title"
fill="#c5c8c6" text-anchor="middle" x="740" y="27">Breeze commands</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -297,83 +63,6 @@
<text class="breeze-help-r1" x="1464" y="20" textLength="12.2"
clip-path="url(#breeze-help-line-0)">
</text><text class="breeze-help-r2" x="12.2" y="44.4" textLength="73.2"
clip-path="url(#breeze-help-line-1)">Usage:</text><text class="breeze-help-r3"
x="97.6" y="44.4" textLength="73.2"
clip-path="url(#breeze-help-line-1)">breeze</text><text class="breeze-help-r1"
x="183" y="44.4" textLength="12.2"
clip-path="url(#breeze-help-line-1)">[</text><text class="breeze-help-r4"
x="195.2" y="44.4" textLength="85.4"
clip-path="url(#breeze-help-line-1)">OPTIONS</text><text class="breeze-help-r1"
[...]
</text><text class="breeze-help-r1" x="1464" y="68.8" textLength="12.2"
clip-path="url(#breeze-help-line-2)">
-</text><text class="breeze-help-r5" x="0" y="93.2" textLength="24.4"
clip-path="url(#breeze-help-line-3)">╭─</text><text class="breeze-help-r5"
x="24.4" y="93.2" textLength="195.2"
clip-path="url(#breeze-help-line-3)"> Execution mode </text><text
class="breeze-help-r5" x="219.6" y="93.2" textLength="1220"
clip-path="url(#breeze-help-line-3)">────────────────────────────────────────────────────────────────────────────────────────────────────</text><text
class="breeze-help-r [...]
-</text><text class="breeze-help-r5" x="0" y="117.6" textLength="12.2"
clip-path="url(#breeze-help-line-4)">│</text><text class="breeze-help-r4"
x="24.4" y="117.6" textLength="97.6"
clip-path="url(#breeze-help-line-4)">--python</text><text
class="breeze-help-r6" x="366" y="117.6" textLength="24.4"
clip-path="url(#breeze-help-line-4)">-p</text><text class="breeze-help-r1"
x="414.8" y="117.6" textLength="732"
clip-path="url(#breeze-help-line-4)">Python major/minor version use
[...]
-</text><text class="breeze-help-r5" x="0" y="142" textLength="12.2"
clip-path="url(#breeze-help-line-5)">│</text><text class="breeze-help-r7"
x="414.8" y="142" textLength="732"
clip-path="url(#breeze-help-line-5)">(>3.9< | 3.10 | 3.11 | 3.12)                                </text><text
class="br [...]
-</text><text class="breeze-help-r5" x="0" y="166.4" textLength="12.2"
clip-path="url(#breeze-help-line-6)">│</text><text class="breeze-help-r5"
x="414.8" y="166.4" textLength="732"
clip-path="url(#breeze-help-line-6)">[default: 3.9]                                          
[...]
-</text><text class="breeze-help-r5" x="0" y="190.8" textLength="12.2"
clip-path="url(#breeze-help-line-7)">│</text><text class="breeze-help-r4"
x="24.4" y="190.8" textLength="158.6"
clip-path="url(#breeze-help-line-7)">--integration</text><text
class="breeze-help-r1" x="414.8" y="190.8" textLength="1024.8"
clip-path="url(#breeze-help-line-7)">Core Integrations to enable when running (can be more than one).     
[...]
-</text><text class="breeze-help-r5" x="0" y="215.2" textLength="12.2"
clip-path="url(#breeze-help-line-8)">│</text><text class="breeze-help-r7"
x="414.8" y="215.2" textLength="1024.8"
clip-path="url(#breeze-help-line-8)">(all | all-testable | cassandra | celery | drill | kafka | kerberos | keycloak |    </text><text
class="breeze-help-r5" x="1451.8" y="215.2" textLength="12.2"
clip-path="url(#b [...]
-</text><text class="breeze-help-r5" x="0" y="239.6" textLength="12.2"
clip-path="url(#breeze-help-line-9)">│</text><text class="breeze-help-r7"
x="414.8" y="239.6" textLength="1024.8"
clip-path="url(#breeze-help-line-9)">mongo | mssql | openlineage | otel | pinot | qdrant | redis | statsd | trino | ydb) </text><text
class="breeze-help-r5" x="1451.8" y="239.6" textLength="12.2"
clip-path="url(#b [...]
-</text><text class="breeze-help-r5" x="0" y="264" textLength="12.2"
clip-path="url(#breeze-help-line-10)">│</text><text class="breeze-help-r4"
x="24.4" y="264" textLength="317.2"
clip-path="url(#breeze-help-line-10)">--standalone-dag-processor</text><text
class="breeze-help-r1" x="414.8" y="264" textLength="573.4"
clip-path="url(#breeze-help-line-10)">Run standalone dag processor for start-airflow.</text><text
class="breeze-help-r5" x="1451.8" y="264" textLength= [...]
-</text><text class="breeze-help-r5" x="0" y="288.4" textLength="1464"
clip-path="url(#breeze-help-line-11)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-help-r1" x="1464" y="288.4" textLength="12.2"
clip-path="url(#breeze-help-line-11)">
-</text><text class="breeze-help-r5" x="0" y="312.8" textLength="24.4"
clip-path="url(#breeze-help-line-12)">╭─</text><text class="breeze-help-r5"
x="24.4" y="312.8" textLength="463.6"
clip-path="url(#breeze-help-line-12)"> Docker Compose selection and cleanup </text><text
class="breeze-help-r5" x="488" y="312.8" textLength="951.6"
clip-path="url(#breeze-help-line-12)">──────────────────────────────────────────────────────────────────────────────</text><text
[...]
-</text><text class="breeze-help-r5" x="0" y="337.2" textLength="12.2"
clip-path="url(#breeze-help-line-13)">│</text><text class="breeze-help-r4"
x="24.4" y="337.2" textLength="170.8"
clip-path="url(#breeze-help-line-13)">--project-name</text><text
class="breeze-help-r1" x="244" y="337.2" textLength="1195.6"
clip-path="url(#breeze-help-line-13)">Name of the docker-compose project to bring down. The `docker-compose` is for legacy&
[...]
-</text><text class="breeze-help-r5" x="0" y="361.6" textLength="12.2"
clip-path="url(#breeze-help-line-14)">│</text><text class="breeze-help-r1"
x="244" y="361.6" textLength="512.4"
clip-path="url(#breeze-help-line-14)">project name and you can use `breeze down </text><text
class="breeze-help-r4" x="756.4" y="361.6" textLength="170.8"
clip-path="url(#breeze-help-line-14)">--project-name</text><text
class="breeze-help-r1" x="927.2" y="361.6" textLen [...]
-</text><text class="breeze-help-r5" x="0" y="386" textLength="12.2"
clip-path="url(#breeze-help-line-15)">│</text><text class="breeze-help-r1"
x="244" y="386" textLength="1195.6"
clip-path="url(#breeze-help-line-15)">belonging to it.                                         
[...]
-</text><text class="breeze-help-r5" x="0" y="410.4" textLength="12.2"
clip-path="url(#breeze-help-line-16)">│</text><text class="breeze-help-r7"
x="244" y="410.4" textLength="1195.6"
clip-path="url(#breeze-help-line-16)">(breeze | pre-commit | docker-compose)                                   
[...]
-</text><text class="breeze-help-r5" x="0" y="434.8" textLength="12.2"
clip-path="url(#breeze-help-line-17)">│</text><text class="breeze-help-r5"
x="244" y="434.8" textLength="1195.6"
clip-path="url(#breeze-help-line-17)">[default: breeze]                                         
[...]
-</text><text class="breeze-help-r5" x="0" y="459.2" textLength="12.2"
clip-path="url(#breeze-help-line-18)">│</text><text class="breeze-help-r4"
x="24.4" y="459.2" textLength="158.6"
clip-path="url(#breeze-help-line-18)">--docker-host</text><text
class="breeze-help-r1" x="244" y="459.2" textLength="915"
clip-path="url(#breeze-help-line-18)">Optional - docker host to use when running docker commands. When set, the `</text><t
[...]
-</text><text class="breeze-help-r5" x="0" y="483.6" textLength="12.2"
clip-path="url(#breeze-help-line-19)">│</text><text class="breeze-help-r1"
x="244" y="483.6" textLength="1195.6"
clip-path="url(#breeze-help-line-19)">ignored when building images.                                      
[...]
-</text><text class="breeze-help-r5" x="0" y="508" textLength="12.2"
clip-path="url(#breeze-help-line-20)">│</text><text class="breeze-help-r7"
x="244" y="508" textLength="1195.6"
clip-path="url(#breeze-help-line-20)">(TEXT)                                             
[...]
-</text><text class="breeze-help-r5" x="0" y="532.4" textLength="1464"
clip-path="url(#breeze-help-line-21)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-help-r1" x="1464" y="532.4" textLength="12.2"
clip-path="url(#breeze-help-line-21)">
-</text><text class="breeze-help-r5" x="0" y="556.8" textLength="24.4"
clip-path="url(#breeze-help-line-22)">╭─</text><text class="breeze-help-r5"
x="24.4" y="556.8" textLength="122"
clip-path="url(#breeze-help-line-22)"> Database </text><text
class="breeze-help-r5" x="146.4" y="556.8" textLength="1293.2"
clip-path="url(#breeze-help-line-22)">──────────────────────────────────────────────────────────────────────────────────────────────────────────</text><text
class="breeze-help- [...]
-</text><text class="breeze-help-r5" x="0" y="581.2" textLength="12.2"
clip-path="url(#breeze-help-line-23)">│</text><text class="breeze-help-r4"
x="24.4" y="581.2" textLength="109.8"
clip-path="url(#breeze-help-line-23)">--backend</text><text
class="breeze-help-r6" x="268.4" y="581.2" textLength="24.4"
clip-path="url(#breeze-help-line-23)">-b</text><text class="breeze-help-r1"
x="488" y="581.2" textLength="951.6"
clip-path="url(#breeze-help-line-23)">Database backend to us
[...]
-</text><text class="breeze-help-r5" x="0" y="605.6" textLength="12.2"
clip-path="url(#breeze-help-line-24)">│</text><text class="breeze-help-r1"
x="488" y="605.6" textLength="951.6"
clip-path="url(#breeze-help-line-24)">invalid database configuration, meaning there will be no database available,  </text><text
class="breeze-help-r5" x="1451.8" y="605.6" textLength="12.2"
clip-path="url(#breeze-help-line-24)">│</text><text class="breez [...]
-</text><text class="breeze-help-r5" x="0" y="630" textLength="12.2"
clip-path="url(#breeze-help-line-25)">│</text><text class="breeze-help-r1"
x="488" y="630" textLength="951.6"
clip-path="url(#breeze-help-line-25)">and any attempts to connect to the Airflow database will fail.                </text><text
class="breeze-help-r5" x="1451.8" y="630" textLength="1 [...]
-</text><text class="breeze-help-r5" x="0" y="654.4" textLength="12.2"
clip-path="url(#breeze-help-line-26)">│</text><text class="breeze-help-r7"
x="488" y="654.4" textLength="951.6"
clip-path="url(#breeze-help-line-26)">(>sqlite< | mysql | postgres | none)                                 &#
[...]
-</text><text class="breeze-help-r5" x="0" y="678.8" textLength="12.2"
clip-path="url(#breeze-help-line-27)">│</text><text class="breeze-help-r5"
x="488" y="678.8" textLength="951.6"
clip-path="url(#breeze-help-line-27)">[default: sqlite]                                         
[...]
-</text><text class="breeze-help-r5" x="0" y="703.2" textLength="12.2"
clip-path="url(#breeze-help-line-28)">│</text><text class="breeze-help-r4"
x="24.4" y="703.2" textLength="219.6"
clip-path="url(#breeze-help-line-28)">--postgres-version</text><text
class="breeze-help-r6" x="268.4" y="703.2" textLength="24.4"
clip-path="url(#breeze-help-line-28)">-P</text><text class="breeze-help-r1"
x="488" y="703.2" textLength="305"
clip-path="url(#breeze-help-line-28)">Version of Postgres& [...]
-</text><text class="breeze-help-r5" x="0" y="727.6" textLength="12.2"
clip-path="url(#breeze-help-line-29)">│</text><text class="breeze-help-r4"
x="24.4" y="727.6" textLength="183"
clip-path="url(#breeze-help-line-29)">--mysql-version</text><text
class="breeze-help-r6" x="268.4" y="727.6" textLength="24.4"
clip-path="url(#breeze-help-line-29)">-M</text><text class="breeze-help-r1"
x="488" y="727.6" textLength="268.4"
clip-path="url(#breeze-help-line-29)">Version of MySQL u [...]
-</text><text class="breeze-help-r5" x="0" y="752" textLength="12.2"
clip-path="url(#breeze-help-line-30)">│</text><text class="breeze-help-r4"
x="24.4" y="752" textLength="122"
clip-path="url(#breeze-help-line-30)">--db-reset</text><text
class="breeze-help-r6" x="268.4" y="752" textLength="24.4"
clip-path="url(#breeze-help-line-30)">-d</text><text class="breeze-help-r1"
x="292.8" y="752" textLength="12.2"
clip-path="url(#breeze-help-line-30)">/</text><text class="breeze-help-r4"
x="305" [...]
-</text><text class="breeze-help-r5" x="0" y="776.4" textLength="1464"
clip-path="url(#breeze-help-line-31)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-help-r1" x="1464" y="776.4" textLength="12.2"
clip-path="url(#breeze-help-line-31)">
-</text><text class="breeze-help-r5" x="0" y="800.8" textLength="24.4"
clip-path="url(#breeze-help-line-32)">╭─</text><text class="breeze-help-r5"
x="24.4" y="800.8" textLength="488"
clip-path="url(#breeze-help-line-32)"> Build CI image (before entering shell) </text><text
class="breeze-help-r5" x="512.4" y="800.8" textLength="927.2"
clip-path="url(#breeze-help-line-32)">────────────────────────────────────────────────────────────────────────────</text><
[...]
-</text><text class="breeze-help-r5" x="0" y="825.2" textLength="12.2"
clip-path="url(#breeze-help-line-33)">│</text><text class="breeze-help-r4"
x="24.4" y="825.2" textLength="231.8"
clip-path="url(#breeze-help-line-33)">--github-repository</text><text
class="breeze-help-r6" x="292.8" y="825.2" textLength="24.4"
clip-path="url(#breeze-help-line-33)">-g</text><text class="breeze-help-r1"
x="341.6" y="825.2" textLength="585.6"
clip-path="url(#breeze-help-line-33)">GitHub repository [...]
-</text><text class="breeze-help-r5" x="0" y="849.6" textLength="12.2"
clip-path="url(#breeze-help-line-34)">│</text><text class="breeze-help-r4"
x="24.4" y="849.6" textLength="109.8"
clip-path="url(#breeze-help-line-34)">--builder</text><text
class="breeze-help-r1" x="341.6" y="849.6" textLength="756.4"
clip-path="url(#breeze-help-line-34)">Buildx builder used to perform `docker buildx build` commands.</text><text
class="breeze-help-r7" x="1110.2" [...]
-</text><text class="breeze-help-r5" x="0" y="874" textLength="12.2"
clip-path="url(#breeze-help-line-35)">│</text><text class="breeze-help-r5"
x="341.6" y="874" textLength="756.4"
clip-path="url(#breeze-help-line-35)">[default: autodetect]                                         </
[...]
-</text><text class="breeze-help-r5" x="0" y="898.4" textLength="12.2"
clip-path="url(#breeze-help-line-36)">│</text><text class="breeze-help-r4"
x="24.4" y="898.4" textLength="97.6"
clip-path="url(#breeze-help-line-36)">--use-uv</text><text
class="breeze-help-r1" x="122" y="898.4" textLength="12.2"
clip-path="url(#breeze-help-line-36)">/</text><text class="breeze-help-r4"
x="134.2" y="898.4" textLength="134.2"
clip-path="url(#breeze-help-line-36)">--no-use-uv</text><text class="breeze-he
[...]
-</text><text class="breeze-help-r5" x="0" y="922.8" textLength="12.2"
clip-path="url(#breeze-help-line-37)">│</text><text class="breeze-help-r4"
x="24.4" y="922.8" textLength="207.4"
clip-path="url(#breeze-help-line-37)">--uv-http-timeout</text><text
class="breeze-help-r1" x="341.6" y="922.8" textLength="829.6"
clip-path="url(#breeze-help-line-37)">Timeout for requests that UV makes (only used in case of UV builds).</text><text
[...]
-</text><text class="breeze-help-r5" x="0" y="947.2" textLength="12.2"
clip-path="url(#breeze-help-line-38)">│</text><text class="breeze-help-r5"
x="341.6" y="947.2" textLength="829.6"
clip-path="url(#breeze-help-line-38)">[default: 300; x>=1]                                       
[...]
-</text><text class="breeze-help-r5" x="0" y="971.6" textLength="1464"
clip-path="url(#breeze-help-line-39)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-help-r1" x="1464" y="971.6" textLength="12.2"
clip-path="url(#breeze-help-line-39)">
-</text><text class="breeze-help-r5" x="0" y="996" textLength="24.4"
clip-path="url(#breeze-help-line-40)">╭─</text><text class="breeze-help-r5"
x="24.4" y="996" textLength="183"
clip-path="url(#breeze-help-line-40)"> Other options </text><text
class="breeze-help-r5" x="207.4" y="996" textLength="1232.2"
clip-path="url(#breeze-help-line-40)">─────────────────────────────────────────────────────────────────────────────────────────────────────</text><text
class="breeze-help-r [...]
-</text><text class="breeze-help-r5" x="0" y="1020.4" textLength="12.2"
clip-path="url(#breeze-help-line-41)">│</text><text class="breeze-help-r4"
x="24.4" y="1020.4" textLength="256.2"
clip-path="url(#breeze-help-line-41)">--forward-credentials</text><text
class="breeze-help-r6" x="305" y="1020.4" textLength="24.4"
clip-path="url(#breeze-help-line-41)">-f</text><text class="breeze-help-r1"
x="353.8" y="1020.4" textLength="634.4"
clip-path="url(#breeze-help-line-41)">Forward local [...]
-</text><text class="breeze-help-r5" x="0" y="1044.8" textLength="12.2"
clip-path="url(#breeze-help-line-42)">│</text><text class="breeze-help-r4"
x="24.4" y="1044.8" textLength="122"
clip-path="url(#breeze-help-line-42)">--max-time</text><text
class="breeze-help-r1" x="353.8" y="1044.8" textLength="1049.2"
clip-path="url(#breeze-help-line-42)">Maximum time that the command should take - if it takes longer, the command 
[...]
-</text><text class="breeze-help-r5" x="0" y="1069.2" textLength="12.2"
clip-path="url(#breeze-help-line-43)">│</text><text class="breeze-help-r7"
x="353.8" y="1069.2" textLength="1049.2"
clip-path="url(#breeze-help-line-43)">(INTEGER RANGE)                                         &
[...]
-</text><text class="breeze-help-r5" x="0" y="1093.6" textLength="1464"
clip-path="url(#breeze-help-line-44)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-help-r1" x="1464" y="1093.6" textLength="12.2"
clip-path="url(#breeze-help-line-44)">
-</text><text class="breeze-help-r5" x="0" y="1118" textLength="24.4"
clip-path="url(#breeze-help-line-45)">╭─</text><text class="breeze-help-r5"
x="24.4" y="1118" textLength="195.2"
clip-path="url(#breeze-help-line-45)"> Common options </text><text
class="breeze-help-r5" x="219.6" y="1118" textLength="1220"
clip-path="url(#breeze-help-line-45)">────────────────────────────────────────────────────────────────────────────────────────────────────</text><text
class="breeze-hel [...]
-</text><text class="breeze-help-r5" x="0" y="1142.4" textLength="12.2"
clip-path="url(#breeze-help-line-46)">│</text><text class="breeze-help-r4"
x="24.4" y="1142.4" textLength="97.6"
clip-path="url(#breeze-help-line-46)">--answer</text><text
class="breeze-help-r6" x="158.6" y="1142.4" textLength="24.4"
clip-path="url(#breeze-help-line-46)">-a</text><text class="breeze-help-r1"
x="207.4" y="1142.4" textLength="317.2"
clip-path="url(#breeze-help-line-46)">Force answer to qu [...]
-</text><text class="breeze-help-r5" x="0" y="1166.8" textLength="12.2"
clip-path="url(#breeze-help-line-47)">│</text><text class="breeze-help-r4"
x="24.4" y="1166.8" textLength="109.8"
clip-path="url(#breeze-help-line-47)">--dry-run</text><text
class="breeze-help-r6" x="158.6" y="1166.8" textLength="24.4"
clip-path="url(#breeze-help-line-47)">-D</text><text class="breeze-help-r1"
x="207.4" y="1166.8" textLength="719.8"
clip-path="url(#breeze-help-line-47)">If dry-run is se [...]
-</text><text class="breeze-help-r5" x="0" y="1191.2" textLength="12.2"
clip-path="url(#breeze-help-line-48)">│</text><text class="breeze-help-r4"
x="24.4" y="1191.2" textLength="109.8"
clip-path="url(#breeze-help-line-48)">--verbose</text><text
class="breeze-help-r6" x="158.6" y="1191.2" textLength="24.4"
clip-path="url(#breeze-help-line-48)">-v</text><text class="breeze-help-r1"
x="207.4" y="1191.2" textLength="585.6"
clip-path="url(#breeze-help-line-48)">Print verbose informa [...]
-</text><text class="breeze-help-r5" x="0" y="1215.6" textLength="12.2"
clip-path="url(#breeze-help-line-49)">│</text><text class="breeze-help-r4"
x="24.4" y="1215.6" textLength="73.2"
clip-path="url(#breeze-help-line-49)">--help</text><text class="breeze-help-r6"
x="158.6" y="1215.6" textLength="24.4"
clip-path="url(#breeze-help-line-49)">-h</text><text class="breeze-help-r1"
x="207.4" y="1215.6" textLength="329.4"
clip-path="url(#breeze-help-line-49)">Show this message an [...]
-</text><text class="breeze-help-r5" x="0" y="1240" textLength="1464"
clip-path="url(#breeze-help-line-50)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-help-r1" x="1464" y="1240" textLength="12.2"
clip-path="url(#breeze-help-line-50)">
-</text><text class="breeze-help-r5" x="0" y="1264.4" textLength="24.4"
clip-path="url(#breeze-help-line-51)">╭─</text><text class="breeze-help-r5"
x="24.4" y="1264.4" textLength="244"
clip-path="url(#breeze-help-line-51)"> Developer commands </text><text
class="breeze-help-r5" x="268.4" y="1264.4" textLength="1171.2"
clip-path="url(#breeze-help-line-51)">────────────────────────────────────────────────────────────────────────────────────────────────</text><text
class="bree [...]
-</text><text class="breeze-help-r5" x="0" y="1288.8" textLength="12.2"
clip-path="url(#breeze-help-line-52)">│</text><text class="breeze-help-r4"
x="24.4" y="1288.8" textLength="280.6"
clip-path="url(#breeze-help-line-52)">start-airflow          </text><text
class="breeze-help-r1" x="329.4" y="1288.8" textLength="1110.2"
clip-path="url(#breeze-help-line-52)">Enter breeze environment and starts all Airflow
[...]
-</text><text class="breeze-help-r5" x="0" y="1313.2" textLength="12.2"
clip-path="url(#breeze-help-line-53)">│</text><text class="breeze-help-r1"
x="329.4" y="1313.2" textLength="1110.2"
clip-path="url(#breeze-help-line-53)">assets if contents of www directory changed.                                &
[...]
-</text><text class="breeze-help-r5" x="0" y="1337.6" textLength="12.2"
clip-path="url(#breeze-help-line-54)">│</text><text class="breeze-help-r4"
x="24.4" y="1337.6" textLength="280.6"
clip-path="url(#breeze-help-line-54)">static-checks          </text><text
class="breeze-help-r1" x="329.4" y="1337.6" textLength="1110.2"
clip-path="url(#breeze-help-line-54)">Run static checks.         
[...]
-</text><text class="breeze-help-r5" x="0" y="1362" textLength="12.2"
clip-path="url(#breeze-help-line-55)">│</text><text class="breeze-help-r4"
x="24.4" y="1362" textLength="280.6"
clip-path="url(#breeze-help-line-55)">build-docs             </text><text
class="breeze-help-r1" x="329.4" y="1362" textLength="1110.2"
clip-path="url(#breeze-help-line-55)">Build documents.        
[...]
-</text><text class="breeze-help-r5" x="0" y="1386.4" textLength="12.2"
clip-path="url(#breeze-help-line-56)">│</text><text class="breeze-help-r4"
x="24.4" y="1386.4" textLength="280.6"
clip-path="url(#breeze-help-line-56)">down                   </text><text
class="breeze-help-r1" x="329.4" y="1386.4" textLength="1110.2"
clip-path="url(#breeze-help-line-56)">Stop running breeze e [...]
-</text><text class="breeze-help-r5" x="0" y="1410.8" textLength="12.2"
clip-path="url(#breeze-help-line-57)">│</text><text class="breeze-help-r4"
x="24.4" y="1410.8" textLength="280.6"
clip-path="url(#breeze-help-line-57)">shell                  </text><text
class="breeze-help-r1" x="329.4" y="1410.8" textLength="1110.2"
clip-path="url(#breeze-help-line-57)">Enter breeze environment. 
[...]
-</text><text class="breeze-help-r5" x="0" y="1435.2" textLength="12.2"
clip-path="url(#breeze-help-line-58)">│</text><text class="breeze-help-r4"
x="24.4" y="1435.2" textLength="280.6"
clip-path="url(#breeze-help-line-58)">exec                   </text><text
class="breeze-help-r1" x="329.4" y="1435.2" textLength="1110.2"
clip-path="url(#breeze-help-line-58)">Joins the interactive  [...]
-</text><text class="breeze-help-r5" x="0" y="1459.6" textLength="12.2"
clip-path="url(#breeze-help-line-59)">│</text><text class="breeze-help-r4"
x="24.4" y="1459.6" textLength="280.6"
clip-path="url(#breeze-help-line-59)">compile-ui-assets      </text><text
class="breeze-help-r1" x="329.4" y="1459.6" textLength="1110.2"
clip-path="url(#breeze-help-line-59)">Compiles ui assets.            
[...]
-</text><text class="breeze-help-r5" x="0" y="1484" textLength="12.2"
clip-path="url(#breeze-help-line-60)">│</text><text class="breeze-help-r4"
x="24.4" y="1484" textLength="280.6"
clip-path="url(#breeze-help-line-60)">compile-www-assets     </text><text
class="breeze-help-r1" x="329.4" y="1484" textLength="1110.2"
clip-path="url(#breeze-help-line-60)">Compiles www assets.             
[...]
-</text><text class="breeze-help-r5" x="0" y="1508.4" textLength="12.2"
clip-path="url(#breeze-help-line-61)">│</text><text class="breeze-help-r4"
x="24.4" y="1508.4" textLength="280.6"
clip-path="url(#breeze-help-line-61)">cleanup                </text><text
class="breeze-help-r1" x="329.4" y="1508.4" textLength="1110.2"
clip-path="url(#breeze-help-line-61)">Cleans the cache of parameters,
[...]
-</text><text class="breeze-help-r5" x="0" y="1532.8" textLength="12.2"
clip-path="url(#breeze-help-line-62)">│</text><text class="breeze-help-r4"
x="24.4" y="1532.8" textLength="280.6"
clip-path="url(#breeze-help-line-62)">generate-migration-file</text><text
class="breeze-help-r1" x="329.4" y="1532.8" textLength="1110.2"
clip-path="url(#breeze-help-line-62)">Autogenerate the alembic migration file for the ORM changes.     &
[...]
-</text><text class="breeze-help-r5" x="0" y="1557.2" textLength="1464"
clip-path="url(#breeze-help-line-63)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-help-r1" x="1464" y="1557.2" textLength="12.2"
clip-path="url(#breeze-help-line-63)">
-</text><text class="breeze-help-r5" x="0" y="1581.6" textLength="24.4"
clip-path="url(#breeze-help-line-64)">╭─</text><text class="breeze-help-r5"
x="24.4" y="1581.6" textLength="219.6"
clip-path="url(#breeze-help-line-64)"> Testing commands </text><text
class="breeze-help-r5" x="244" y="1581.6" textLength="1195.6"
clip-path="url(#breeze-help-line-64)">──────────────────────────────────────────────────────────────────────────────────────────────────</text><text
class="bree [...]
-</text><text class="breeze-help-r5" x="0" y="1606" textLength="12.2"
clip-path="url(#breeze-help-line-65)">│</text><text class="breeze-help-r4"
x="24.4" y="1606" textLength="183"
clip-path="url(#breeze-help-line-65)">testing        </text><text
class="breeze-help-r1" x="231.8" y="1606" textLength="1207.8"
clip-path="url(#breeze-help-line-65)">Tools that developers can use to run tests     
[...]
-</text><text class="breeze-help-r5" x="0" y="1630.4" textLength="12.2"
clip-path="url(#breeze-help-line-66)">│</text><text class="breeze-help-r4"
x="24.4" y="1630.4" textLength="183"
clip-path="url(#breeze-help-line-66)">k8s            </text><text
class="breeze-help-r1" x="231.8" y="1630.4" textLength="1207.8"
clip-path="url(#breeze-help-line-66)">Tools that developers use to run Kubernetes te
[...]
-</text><text class="breeze-help-r5" x="0" y="1654.8" textLength="1464"
clip-path="url(#breeze-help-line-67)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-help-r1" x="1464" y="1654.8" textLength="12.2"
clip-path="url(#breeze-help-line-67)">
-</text><text class="breeze-help-r5" x="0" y="1679.2" textLength="24.4"
clip-path="url(#breeze-help-line-68)">╭─</text><text class="breeze-help-r5"
x="24.4" y="1679.2" textLength="195.2"
clip-path="url(#breeze-help-line-68)"> Image commands </text><text
class="breeze-help-r5" x="219.6" y="1679.2" textLength="1220"
clip-path="url(#breeze-help-line-68)">────────────────────────────────────────────────────────────────────────────────────────────────────</text><text
class="bree [...]
-</text><text class="breeze-help-r5" x="0" y="1703.6" textLength="12.2"
clip-path="url(#breeze-help-line-69)">│</text><text class="breeze-help-r4"
x="24.4" y="1703.6" textLength="207.4"
clip-path="url(#breeze-help-line-69)">ci-image         </text><text
class="breeze-help-r1" x="256.2" y="1703.6" textLength="1183.4"
clip-path="url(#breeze-help-line-69)">Tools that developers can use to manually manage CI&
[...]
-</text><text class="breeze-help-r5" x="0" y="1728" textLength="12.2"
clip-path="url(#breeze-help-line-70)">│</text><text class="breeze-help-r4"
x="24.4" y="1728" textLength="207.4"
clip-path="url(#breeze-help-line-70)">prod-image       </text><text
class="breeze-help-r1" x="256.2" y="1728" textLength="1183.4"
clip-path="url(#breeze-help-line-70)">Tools that developers can use to manually manage PROD images
[...]
-</text><text class="breeze-help-r5" x="0" y="1752.4" textLength="1464"
clip-path="url(#breeze-help-line-71)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-help-r1" x="1464" y="1752.4" textLength="12.2"
clip-path="url(#breeze-help-line-71)">
-</text><text class="breeze-help-r5" x="0" y="1776.8" textLength="24.4"
clip-path="url(#breeze-help-line-72)">╭─</text><text class="breeze-help-r5"
x="24.4" y="1776.8" textLength="353.8"
clip-path="url(#breeze-help-line-72)"> Release management commands </text><text
class="breeze-help-r5" x="378.2" y="1776.8" textLength="1061.4"
clip-path="url(#breeze-help-line-72)">───────────────────────────────────────────────────────────────────────────────────────</text><text
clas [...]
-</text><text class="breeze-help-r5" x="0" y="1801.2" textLength="12.2"
clip-path="url(#breeze-help-line-73)">│</text><text class="breeze-help-r4"
x="24.4" y="1801.2" textLength="280.6"
clip-path="url(#breeze-help-line-73)">release-management     </text><text
class="breeze-help-r1" x="329.4" y="1801.2" textLength="1110.2"
clip-path="url(#breeze-help-line-73)">Tools that release managers can use to prepare and manage
[...]
-</text><text class="breeze-help-r5" x="0" y="1825.6" textLength="12.2"
clip-path="url(#breeze-help-line-74)">│</text><text class="breeze-help-r4"
x="24.4" y="1825.6" textLength="280.6"
clip-path="url(#breeze-help-line-74)">sbom                   </text><text
class="breeze-help-r1" x="329.4" y="1825.6" textLength="1110.2"
clip-path="url(#breeze-help-line-74)">Tools that release ma [...]
-</text><text class="breeze-help-r5" x="0" y="1850" textLength="1464"
clip-path="url(#breeze-help-line-75)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-help-r1" x="1464" y="1850" textLength="12.2"
clip-path="url(#breeze-help-line-75)">
-</text><text class="breeze-help-r5" x="0" y="1874.4" textLength="24.4"
clip-path="url(#breeze-help-line-76)">╭─</text><text class="breeze-help-r5"
x="24.4" y="1874.4" textLength="195.2"
clip-path="url(#breeze-help-line-76)"> Other commands </text><text
class="breeze-help-r5" x="219.6" y="1874.4" textLength="1220"
clip-path="url(#breeze-help-line-76)">────────────────────────────────────────────────────────────────────────────────────────────────────</text><text
class="bree [...]
-</text><text class="breeze-help-r5" x="0" y="1898.8" textLength="12.2"
clip-path="url(#breeze-help-line-77)">│</text><text class="breeze-help-r4"
x="24.4" y="1898.8" textLength="122"
clip-path="url(#breeze-help-line-77)">setup     </text><text
class="breeze-help-r1" x="170.8" y="1898.8" textLength="1268.8"
clip-path="url(#breeze-help-line-77)">Tools that developers can use to configure Breeze      &
[...]
-</text><text class="breeze-help-r5" x="0" y="1923.2" textLength="12.2"
clip-path="url(#breeze-help-line-78)">│</text><text class="breeze-help-r4"
x="24.4" y="1923.2" textLength="122"
clip-path="url(#breeze-help-line-78)">ci        </text><text
class="breeze-help-r1" x="170.8" y="1923.2" textLength="1268.8"
clip-path="url(#breeze-help-line-78)">Tools that CI workflows use to cleanup/manage CI environment 
[...]
-</text><text class="breeze-help-r5" x="0" y="1947.6" textLength="1464"
clip-path="url(#breeze-help-line-79)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-help-r1" x="1464" y="1947.6" textLength="12.2"
clip-path="url(#breeze-help-line-79)">
</text>
</g>
</g>
diff --git a/dev/breeze/tests/test_packages.py
b/dev/breeze/tests/test_packages.py
index f52ff38a0ed..fc1ae484335 100644
--- a/dev/breeze/tests/test_packages.py
+++ b/dev/breeze/tests/test_packages.py
@@ -170,8 +170,9 @@ def test_get_documentation_package_path():
"apache-airflow-providers-common-compat>=1.2.1",
"apache-airflow>=2.9.0",
"flask-appbuilder==4.5.3",
- "flask-login>=0.6.2",
- "flask>=2.2,<2.3",
+ "flask-login>=0.6.3",
+ "flask-session>=0.8.0",
+ "flask>=2.2,<3",
"google-re2>=1.0",
"jmespath>=0.7.0",
""",
@@ -184,8 +185,9 @@ def test_get_documentation_package_path():
"apache-airflow-providers-common-compat>=1.2.1.dev0",
"apache-airflow>=2.9.0.dev0",
"flask-appbuilder==4.5.3",
- "flask-login>=0.6.2",
- "flask>=2.2,<2.3",
+ "flask-login>=0.6.3",
+ "flask-session>=0.8.0",
+ "flask>=2.2,<3",
"google-re2>=1.0",
"jmespath>=0.7.0",
""",
@@ -198,8 +200,9 @@ def test_get_documentation_package_path():
"apache-airflow-providers-common-compat>=1.2.1b0",
"apache-airflow>=2.9.0b0",
"flask-appbuilder==4.5.3",
- "flask-login>=0.6.2",
- "flask>=2.2,<2.3",
+ "flask-login>=0.6.3",
+ "flask-session>=0.8.0",
+ "flask>=2.2,<3",
"google-re2>=1.0",
"jmespath>=0.7.0",
""",
diff --git a/generated/provider_dependencies.json
b/generated/provider_dependencies.json
index fda1b91ba13..f7fe2dff823 100644
--- a/generated/provider_dependencies.json
+++ b/generated/provider_dependencies.json
@@ -578,8 +578,9 @@
"apache-airflow-providers-common-compat>=1.2.1",
"apache-airflow>=2.9.0",
"flask-appbuilder==4.5.3",
- "flask-login>=0.6.2",
- "flask>=2.2,<2.3",
+ "flask-login>=0.6.3",
+ "flask-session>=0.8.0",
+ "flask>=2.2,<3",
"google-re2>=1.0",
"jmespath>=0.7.0"
],
diff --git a/generated/provider_dependencies.json.sha256sum
b/generated/provider_dependencies.json.sha256sum
new file mode 100644
index 00000000000..f5dce72eb39
--- /dev/null
+++ b/generated/provider_dependencies.json.sha256sum
@@ -0,0 +1 @@
+0a593df5fc4cf8f8ba38f9ac200287b61113bff8d88e8834fe1bc25d55b2c32d
diff --git a/hatch_build.py b/hatch_build.py
index bb8f0005065..900a96656df 100644
--- a/hatch_build.py
+++ b/hatch_build.py
@@ -377,14 +377,13 @@ DEPENDENCIES = [
"eval-type-backport>=0.2.0",
"fastapi[standard]>=0.112.2",
"flask-caching>=2.0.0",
- # Flask-Session 0.6 add new arguments into the SqlAlchemySessionInterface
constructor as well as
- # all parameters now are mandatory which make
AirflowDatabaseSessionInterface incompatible with this version.
- "flask-session>=0.4.0,<0.6",
"flask-wtf>=1.1.0",
# Flask 2.3 is scheduled to introduce a number of deprecation removals -
some of them might be breaking
# for our dependencies - notably `_app_ctx_stack` and `_request_ctx_stack`
removals.
# We should remove the limitation after 2.3 is released and our
dependencies are updated to handle it
- "flask>=2.2.1,<2.3",
+ "flask-login>=0.6.3",
+ "flask-session>=0.8.0",
+ "flask>=2.2,<3",
"fsspec>=2023.10.0",
"gitpython>=3.1.40",
'google-re2>=1.0;python_version<"3.12"',
diff --git a/providers/src/airflow/providers/fab/__init__.py
b/providers/src/airflow/providers/fab/__init__.py
index 544c4ec2f02..60fe1b0f9e9 100644
--- a/providers/src/airflow/providers/fab/__init__.py
+++ b/providers/src/airflow/providers/fab/__init__.py
@@ -29,7 +29,7 @@ from airflow import __version__ as airflow_version
__all__ = ["__version__"]
-__version__ = "1.5.3"
+__version__ = "1.5.4"
if
packaging.version.parse(packaging.version.parse(airflow_version).base_version)
< packaging.version.parse(
"2.9.0"
diff --git
a/providers/src/airflow/providers/fab/auth_manager/security_manager/override.py
b/providers/src/airflow/providers/fab/auth_manager/security_manager/override.py
index e3e36a667c9..6b65981ada1 100644
---
a/providers/src/airflow/providers/fab/auth_manager/security_manager/override.py
+++
b/providers/src/airflow/providers/fab/auth_manager/security_manager/override.py
@@ -556,7 +556,7 @@ class
FabAirflowSecurityManagerOverride(AirflowSecurityManagerV2):
def reset_user_sessions(self, user: User) -> None:
if isinstance(self.appbuilder.get_app.session_interface,
AirflowDatabaseSessionInterface):
interface = self.appbuilder.get_app.session_interface
- session = interface.db.session
+ session = interface.client.session
user_session_model = interface.sql_session_model
num_sessions = session.query(user_session_model).count()
if num_sessions > MAX_NUM_DATABASE_USER_SESSIONS:
diff --git a/providers/src/airflow/providers/fab/provider.yaml
b/providers/src/airflow/providers/fab/provider.yaml
index 28f0326d070..f36519ff278 100644
--- a/providers/src/airflow/providers/fab/provider.yaml
+++ b/providers/src/airflow/providers/fab/provider.yaml
@@ -32,6 +32,7 @@ source-date-epoch: 1738677661
# note that those versions are maintained by release manager - do not update
them manually
versions:
+ - 1.5.4
- 1.5.3
- 1.5.2
- 1.5.1
@@ -53,14 +54,15 @@ versions:
dependencies:
- apache-airflow>=2.9.0
- apache-airflow-providers-common-compat>=1.2.1
- - flask>=2.2,<2.3
+ - flask-login>=0.6.3
+ - flask-session>=0.8.0
+ - flask>=2.2,<3
# We are tightly coupled with FAB version as we vendored-in part of FAB code
related to security manager
# This is done as part of preparation to removing FAB as dependency, but we
are not ready for it yet
# Every time we update FAB version here, please make sure that you review
the classes and models in
# `airflow/providers/fab/auth_manager/security_manager/override.py` with
their upstream counterparts.
# In particular, make sure any breaking changes, for example any new
methods, are accounted for.
- flask-appbuilder==4.5.3
- - flask-login>=0.6.2
- google-re2>=1.0
- jmespath>=0.7.0