apache-airflow-providers-fab 1.5.1rc1__py3-none-any.whl → 1.5.2rc1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -29,7 +29,7 @@ from airflow import __version__ as airflow_version
29
29
 
30
30
  __all__ = ["__version__"]
31
31
 
32
- __version__ = "1.5.1"
32
+ __version__ = "1.5.2"
33
33
 
34
34
  if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
35
35
  "2.9.0"
@@ -20,13 +20,17 @@ from __future__ import annotations
20
20
  import os
21
21
  from contextlib import contextmanager
22
22
  from functools import lru_cache
23
+ from os.path import isabs
23
24
  from typing import TYPE_CHECKING, Generator
24
25
 
25
26
  from flask import Flask
26
27
 
27
28
  import airflow
28
29
  from airflow.configuration import conf
30
+ from airflow.exceptions import AirflowConfigException
31
+ from airflow.www.app import make_url
29
32
  from airflow.www.extensions.init_appbuilder import init_appbuilder
33
+ from airflow.www.extensions.init_session import init_airflow_session_interface
30
34
  from airflow.www.extensions.init_views import init_plugins
31
35
 
32
36
  if TYPE_CHECKING:
@@ -38,6 +42,7 @@ def _return_appbuilder(app: Flask) -> AirflowAppBuilder:
38
42
  """Return an appbuilder instance for the given app."""
39
43
  init_appbuilder(app)
40
44
  init_plugins(app)
45
+ init_airflow_session_interface(app)
41
46
  return app.appbuilder # type: ignore[attr-defined]
42
47
 
43
48
 
@@ -49,4 +54,12 @@ def get_application_builder() -> Generator[AirflowAppBuilder, None, None]:
49
54
  with flask_app.app_context():
50
55
  # Enable customizations in webserver_config.py to be applied via Flask.current_app.
51
56
  flask_app.config.from_pyfile(webserver_config, silent=True)
57
+ flask_app.config["SQLALCHEMY_DATABASE_URI"] = conf.get("database", "SQL_ALCHEMY_CONN")
58
+ url = make_url(flask_app.config["SQLALCHEMY_DATABASE_URI"])
59
+ if url.drivername == "sqlite" and url.database and not isabs(url.database):
60
+ raise AirflowConfigException(
61
+ f'Cannot use relative path: `{conf.get("database", "SQL_ALCHEMY_CONN")}` to connect to sqlite. '
62
+ "Please use absolute path such as `sqlite:////tmp/airflow.db`."
63
+ )
64
+ flask_app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
52
65
  yield _return_appbuilder(flask_app)
@@ -576,6 +576,7 @@ class FabAirflowSecurityManagerOverride(AirflowSecurityManagerV2):
576
576
  session_details = interface.serializer.loads(want_bytes(s.data))
577
577
  if session_details.get("_user_id") == user.id:
578
578
  session.delete(s)
579
+ session.commit()
579
580
  else:
580
581
  self._cli_safe_flash(
581
582
  "Since you are using `securecookie` session backend mechanism, we cannot prevent "
@@ -28,8 +28,9 @@ def get_provider_info():
28
28
  "name": "Fab",
29
29
  "description": "`Flask App Builder <https://flask-appbuilder.readthedocs.io/>`__\n",
30
30
  "state": "ready",
31
- "source-date-epoch": 1731570160,
31
+ "source-date-epoch": 1735219867,
32
32
  "versions": [
33
+ "1.5.2",
33
34
  "1.5.1",
34
35
  "1.5.0",
35
36
  "1.4.1",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: apache-airflow-providers-fab
3
- Version: 1.5.1rc1
3
+ Version: 1.5.2rc1
4
4
  Summary: Provider package apache-airflow-providers-fab for Apache Airflow
5
5
  Keywords: airflow-provider,fab,airflow,integration
6
6
  Author-email: Apache Software Foundation <dev@airflow.apache.org>
@@ -30,8 +30,8 @@ Requires-Dist: jmespath>=0.7.0
30
30
  Requires-Dist: apache-airflow-providers-common-compat ; extra == "common-compat"
31
31
  Requires-Dist: kerberos>=1.3.0 ; extra == "kerberos"
32
32
  Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
33
- Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-fab/1.5.1/changelog.html
34
- Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-fab/1.5.1
33
+ Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-fab/1.5.2/changelog.html
34
+ Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-fab/1.5.2
35
35
  Project-URL: Slack Chat, https://s.apache.org/airflow-slack
36
36
  Project-URL: Source Code, https://github.com/apache/airflow
37
37
  Project-URL: Twitter, https://twitter.com/ApacheAirflow
@@ -83,7 +83,7 @@ Provides-Extra: kerberos
83
83
 
84
84
  Package ``apache-airflow-providers-fab``
85
85
 
86
- Release: ``1.5.1.rc1``
86
+ Release: ``1.5.2.rc1``
87
87
 
88
88
 
89
89
  `Flask App Builder <https://flask-appbuilder.readthedocs.io/>`__
@@ -96,7 +96,7 @@ This is a provider package for ``fab`` provider. All classes for this provider p
96
96
  are in ``airflow.providers.fab`` python package.
97
97
 
98
98
  You can find package information and changelog for the provider
99
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-fab/1.5.1/>`_.
99
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-fab/1.5.2/>`_.
100
100
 
101
101
  Installation
102
102
  ------------
@@ -142,4 +142,4 @@ Dependent package
142
142
  ================================================================================================================== =================
143
143
 
144
144
  The changelog for the provider package can be found in the
145
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/1.5.1/changelog.html>`_.
145
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/1.5.2/changelog.html>`_.
@@ -1,7 +1,7 @@
1
1
  airflow/providers/fab/LICENSE,sha256=FFb4jd2AXnOOf7XLP04pQW6jbdhG49TxlGY6fFpCV1Y,13609
2
- airflow/providers/fab/__init__.py,sha256=VOM-leCB1WztvLNEzbbOMeFtau7c1BfzzS1ZwHU9ir8,1490
2
+ airflow/providers/fab/__init__.py,sha256=BXCzKs2Purq81RNg5aat0ZPUN_Y-PPNuHwfQkI2C2aw,1490
3
3
  airflow/providers/fab/alembic.ini,sha256=_1SvObfjMAkuD7DN5VR2S6Rd7_F81pORZT-w7GJldIA,4461
4
- airflow/providers/fab/get_provider_info.py,sha256=mZIABlMPe9GVHXYRu-2_OQxy7f2E8tJlAT8-Zw-E7VM,3475
4
+ airflow/providers/fab/get_provider_info.py,sha256=rNDaZNBCCYqP4K2bnsMf7hdNiYJ-Fd18fAMdOf5I-Q4,3496
5
5
  airflow/providers/fab/auth_manager/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
6
6
  airflow/providers/fab/auth_manager/fab_auth_manager.py,sha256=nPjgvvCnXfV0W5qzUXy6XqdCaJYsQpdoPzaYqnQuwWw,23164
7
7
  airflow/providers/fab/auth_manager/api/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
@@ -19,7 +19,7 @@ airflow/providers/fab/auth_manager/cli_commands/definition.py,sha256=XIAPqoHwkFH
19
19
  airflow/providers/fab/auth_manager/cli_commands/role_command.py,sha256=4w1tHTR5gBbsymeqGIJ4Rs8CmGdw0l49y58pfI0DB_s,9098
20
20
  airflow/providers/fab/auth_manager/cli_commands/sync_perm_command.py,sha256=VpW-rWhgHAL_ReU66D_BrsxlXQN4okfxzj6dyE5IfwA,1663
21
21
  airflow/providers/fab/auth_manager/cli_commands/user_command.py,sha256=DMsGccMSs2u0cn1dQgRYkJoG37JhEE-m9dtn-sWEOXw,10275
22
- airflow/providers/fab/auth_manager/cli_commands/utils.py,sha256=yr4CMaP5Y6-0mRwsPl62aPEoiys8ImyOlO0e9CLyrGY,2043
22
+ airflow/providers/fab/auth_manager/cli_commands/utils.py,sha256=cn9rlhb1NKSjgQN8ARviYWmoQINLr9jLMQM8Sf_Jf9k,2842
23
23
  airflow/providers/fab/auth_manager/decorators/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
24
24
  airflow/providers/fab/auth_manager/decorators/auth.py,sha256=Z4_xiS1N1E0MqDP9OxHx_YJvKe0sH15afP0tn5LP3Ss,4948
25
25
  airflow/providers/fab/auth_manager/models/__init__.py,sha256=KZl07tphFlZ8kTnsV8k7eTMilaWtd6rV-RjtWOkb13E,9243
@@ -32,7 +32,7 @@ airflow/providers/fab/auth_manager/schemas/role_and_permission_schema.py,sha256=
32
32
  airflow/providers/fab/auth_manager/schemas/user_schema.py,sha256=ap0A09dYmzAbSHI88_5j0Ysx0Z1G0rKSNau5lEi_CFc,2383
33
33
  airflow/providers/fab/auth_manager/security_manager/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
34
34
  airflow/providers/fab/auth_manager/security_manager/constants.py,sha256=x1Sjl_Mu3wmaSy3NFZlHxK2z-juzWmMs1SrzJ0aiBBQ,907
35
- airflow/providers/fab/auth_manager/security_manager/override.py,sha256=IgwSbtUkc6OZQ6TOsiuT6g_dTWV5kXX8AJyda3xtuQ4,115964
35
+ airflow/providers/fab/auth_manager/security_manager/override.py,sha256=pjFFVig7XvlgiWkjcbkjHqZr3OI5HFoEpuT83ogith0,115997
36
36
  airflow/providers/fab/auth_manager/views/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
37
37
  airflow/providers/fab/auth_manager/views/permissions.py,sha256=k5APUTqqKZqMxCWlKrUEgqdDVrGa9719HJ3UmFpiSLc,2886
38
38
  airflow/providers/fab/auth_manager/views/roles_list.py,sha256=o_VqnLbQa4sisKxLwyx6VCl3HmvjKcjkrJG23R81FMQ,1494
@@ -45,7 +45,7 @@ airflow/providers/fab/migrations/env.py,sha256=wbgFowVIf-wY1L-DqD2f8wiuTeXNDKeAU
45
45
  airflow/providers/fab/migrations/script.py.mako,sha256=_krfPtzv1Unme2b9MCHPgXo0g73HcN2_zDgz3co2N4M,1353
46
46
  airflow/providers/fab/migrations/versions/0001_1_4_0_placeholder_migration.py,sha256=wLZiBiWjfSofXZ4jXMjpEKkIc3jI0a6hpJ73xEYAzss,1370
47
47
  airflow/providers/fab/migrations/versions/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
48
- apache_airflow_providers_fab-1.5.1rc1.dist-info/entry_points.txt,sha256=m05kASp7vFi0ZmQ--CFp7GeJpPL7UT2RQF8EEP5XRX8,99
49
- apache_airflow_providers_fab-1.5.1rc1.dist-info/WHEEL,sha256=CpUCUxeHQbRN5UGRQHYRJorO5Af-Qy_fHMctcQ8DSGI,82
50
- apache_airflow_providers_fab-1.5.1rc1.dist-info/METADATA,sha256=V3-GOE4X1BjBX6wcX_0xPeGrjPfzgs9hg9LK8SXTVF0,6571
51
- apache_airflow_providers_fab-1.5.1rc1.dist-info/RECORD,,
48
+ apache_airflow_providers_fab-1.5.2rc1.dist-info/entry_points.txt,sha256=m05kASp7vFi0ZmQ--CFp7GeJpPL7UT2RQF8EEP5XRX8,99
49
+ apache_airflow_providers_fab-1.5.2rc1.dist-info/WHEEL,sha256=CpUCUxeHQbRN5UGRQHYRJorO5Af-Qy_fHMctcQ8DSGI,82
50
+ apache_airflow_providers_fab-1.5.2rc1.dist-info/METADATA,sha256=QgPZxx5YpEhAjNIegz8OSifHDhOSM8Lz6Cfs5XhUkCo,6571
51
+ apache_airflow_providers_fab-1.5.2rc1.dist-info/RECORD,,