apache-airflow-providers-fab 2.0.0rc2__py3-none-any.whl → 2.0.0rc4__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.
@@ -48,7 +48,7 @@
48
48
  "copy-webpack-plugin": "^13.0.0",
49
49
  "css-loader": "7.1.2",
50
50
  "css-minimizer-webpack-plugin": "^7.0.2",
51
- "eslint": "^9.23.0",
51
+ "eslint": "^9.24.0",
52
52
  "eslint-config-prettier": "^10.1.1",
53
53
  "eslint-plugin-html": "^8.1.2",
54
54
  "eslint-plugin-import": "^2.27.5",
@@ -59,10 +59,10 @@
59
59
  "moment": "^2.29.4",
60
60
  "moment-locales-webpack-plugin": "^1.2.0",
61
61
  "prettier": "^3.5.3",
62
- "stylelint": "^16.17.0",
62
+ "stylelint": "^16.18.0",
63
63
  "terser-webpack-plugin": "<6.0.0",
64
64
  "url-loader": "4.1.1",
65
- "webpack": "^5.98.0",
65
+ "webpack": "^5.99.5",
66
66
  "webpack-cli": "^6.0.1",
67
67
  "webpack-license-plugin": "^4.2.1",
68
68
  "webpack-manifest-plugin": "^5.0.1"
@@ -17,6 +17,7 @@
17
17
  # under the License.
18
18
  from __future__ import annotations
19
19
 
20
+ import logging
20
21
  from typing import TYPE_CHECKING, Any
21
22
 
22
23
  from flask_appbuilder.models.filters import BaseFilter
@@ -28,6 +29,7 @@ from sqlalchemy import types
28
29
  from sqlalchemy.ext.associationproxy import AssociationProxy
29
30
 
30
31
  from airflow.api_fastapi.app import get_auth_manager
32
+ from airflow.configuration import conf
31
33
  from airflow.providers.fab.www.security.permissions import (
32
34
  ACTION_CAN_ACCESS_MENU,
33
35
  ACTION_CAN_CREATE,
@@ -51,6 +53,20 @@ _MAP_METHOD_NAME_TO_FAB_ACTION_NAME: dict[ResourceMethod, str] = {
51
53
  "DELETE": ACTION_CAN_DELETE,
52
54
  "MENU": ACTION_CAN_ACCESS_MENU,
53
55
  }
56
+ log = logging.getLogger(__name__)
57
+
58
+
59
+ def get_session_lifetime_config():
60
+ """Get session timeout configs and handle outdated configs gracefully."""
61
+ session_lifetime_minutes = conf.get("fab", "session_lifetime_minutes", fallback=None)
62
+ minutes_per_day = 24 * 60
63
+ if not session_lifetime_minutes:
64
+ session_lifetime_days = 30
65
+ session_lifetime_minutes = minutes_per_day * session_lifetime_days
66
+
67
+ log.debug("User session lifetime is set to %s minutes.", session_lifetime_minutes)
68
+
69
+ return int(session_lifetime_minutes)
54
70
 
55
71
 
56
72
  def get_fab_auth_manager() -> FabAuthManager:
@@ -75,7 +75,7 @@ class FabIndexView(IndexView):
75
75
 
76
76
  return response
77
77
  else:
78
- return redirect(conf.get("api", "base_url"), code=302)
78
+ return redirect(conf.get("api", "base_url", fallback="/"), code=302)
79
79
 
80
80
 
81
81
  def show_traceback(error):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apache-airflow-providers-fab
3
- Version: 2.0.0rc2
3
+ Version: 2.0.0rc4
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>
@@ -20,7 +20,7 @@ Classifier: Programming Language :: Python :: 3.10
20
20
  Classifier: Programming Language :: Python :: 3.11
21
21
  Classifier: Programming Language :: Python :: 3.12
22
22
  Classifier: Topic :: System :: Monitoring
23
- Requires-Dist: apache-airflow>=3.0.0.dev0
23
+ Requires-Dist: apache-airflow>=3.0.0rc0
24
24
  Requires-Dist: apache-airflow-providers-common-compat>=1.2.1rc0
25
25
  Requires-Dist: blinker>=1.6.2
26
26
  Requires-Dist: flask>=2.2.1,<2.3
@@ -31,6 +31,7 @@ Requires-Dist: flask-wtf>=1.1.0
31
31
  Requires-Dist: connexion[flask]>=2.14.2,<3.0
32
32
  Requires-Dist: jmespath>=0.7.0
33
33
  Requires-Dist: werkzeug>=2.2,<4
34
+ Requires-Dist: wtforms>=3.0,<4
34
35
  Requires-Dist: kerberos>=1.3.0 ; extra == "kerberos"
35
36
  Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
36
37
  Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-fab/2.0.0/changelog.html
@@ -96,7 +97,7 @@ Requirements
96
97
  ========================================== ==================
97
98
  PIP package Version required
98
99
  ========================================== ==================
99
- ``apache-airflow`` ``>=3.0.0.dev0``
100
+ ``apache-airflow`` ``>=3.0.0``
100
101
  ``apache-airflow-providers-common-compat`` ``>=1.2.1``
101
102
  ``blinker`` ``>=1.6.2``
102
103
  ``flask`` ``>=2.2.1,<2.3``
@@ -107,6 +108,7 @@ PIP package Version required
107
108
  ``connexion[flask]`` ``>=2.14.2,<3.0``
108
109
  ``jmespath`` ``>=0.7.0``
109
110
  ``werkzeug`` ``>=2.2,<4``
111
+ ``wtforms`` ``>=3.0,<4``
110
112
  ========================================== ==================
111
113
 
112
114
  Cross provider package dependencies
@@ -1,9 +1,9 @@
1
1
  airflow/providers/fab/LICENSE,sha256=gXPVwptPlW1TJ4HSuG5OMPg-a3h43OGMkZRR1rpwfJA,10850
2
- airflow/providers/fab/__init__.py,sha256=XfPbA_RY3CtuASSD_ZA32yNOhy8KxVVn8HOjx9JJefA,1500
2
+ airflow/providers/fab/__init__.py,sha256=bBthzGfg08N53PgXbtsOBKt1Xr0sH_NhfEGCL-Oeons,1490
3
3
  airflow/providers/fab/alembic.ini,sha256=_1SvObfjMAkuD7DN5VR2S6Rd7_F81pORZT-w7GJldIA,4461
4
- airflow/providers/fab/get_provider_info.py,sha256=EfNgZbkd_Tduyl9vETunJ8j5Qr7B9Cp2Md0hk8v11oc,4067
4
+ airflow/providers/fab/get_provider_info.py,sha256=I1fRKp4u-vUmSjoVyFmdD_spXfWhmdIqtlnWe2F5m40,5149
5
5
  airflow/providers/fab/auth_manager/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
6
- airflow/providers/fab/auth_manager/fab_auth_manager.py,sha256=N4jaAmJe2yE8A0p2Ai6tMqa-stOVft1acayHHTPnqw8,25728
6
+ airflow/providers/fab/auth_manager/fab_auth_manager.py,sha256=4gwd5En0e0fviMGdd4BphN-S1cgykzk2RLcbsc8IOns,25843
7
7
  airflow/providers/fab/auth_manager/api/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
8
8
  airflow/providers/fab/auth_manager/api/auth/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
9
9
  airflow/providers/fab/auth_manager/api/auth/backend/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
@@ -28,7 +28,7 @@ airflow/providers/fab/auth_manager/cli_commands/definition.py,sha256=XIAPqoHwkFH
28
28
  airflow/providers/fab/auth_manager/cli_commands/role_command.py,sha256=4w1tHTR5gBbsymeqGIJ4Rs8CmGdw0l49y58pfI0DB_s,9098
29
29
  airflow/providers/fab/auth_manager/cli_commands/sync_perm_command.py,sha256=VpW-rWhgHAL_ReU66D_BrsxlXQN4okfxzj6dyE5IfwA,1663
30
30
  airflow/providers/fab/auth_manager/cli_commands/user_command.py,sha256=jkJZnuw17YGTCuUZHtnkSQ6pcUr38nDHetuRdV-0N5o,10273
31
- airflow/providers/fab/auth_manager/cli_commands/utils.py,sha256=tT0uQios1VE3aCU-hbhA2OuaproNSN-uSOssaO208Ng,2927
31
+ airflow/providers/fab/auth_manager/cli_commands/utils.py,sha256=4MK6IYGtI8CtYPZSgj25IJL--42_gGUmQ72m47MYq7M,2921
32
32
  airflow/providers/fab/auth_manager/models/__init__.py,sha256=Maaid2MjfR3wswj5SsbfBc-VEqgKbbCgny1JLk5Aqaw,9255
33
33
  airflow/providers/fab/auth_manager/models/anonymous_user.py,sha256=mGLV26biw5db6hymFZ6qL7oCyVNaLduwDWS0kYuMZDg,1886
34
34
  airflow/providers/fab/auth_manager/models/db.py,sha256=zKwih8X_nh82jbNfiiucn6Spxshp5Vz_JNqTdCCJ0Ws,4973
@@ -39,7 +39,7 @@ airflow/providers/fab/auth_manager/schemas/role_and_permission_schema.py,sha256=
39
39
  airflow/providers/fab/auth_manager/schemas/user_schema.py,sha256=MLnZotQqAg_BFvJunrSwbwur5CaTjk1ww3eCI3aPT6Y,2401
40
40
  airflow/providers/fab/auth_manager/security_manager/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
41
41
  airflow/providers/fab/auth_manager/security_manager/constants.py,sha256=x1Sjl_Mu3wmaSy3NFZlHxK2z-juzWmMs1SrzJ0aiBBQ,907
42
- airflow/providers/fab/auth_manager/security_manager/override.py,sha256=zlF2KQjsSTr16aT_dCP1vYjIv2XgNb8uyV5koZkRIas,92314
42
+ airflow/providers/fab/auth_manager/security_manager/override.py,sha256=lNmjFrkjL0tvnYugie4VZ42pUA6jW4RsGoCRzXNlukA,97281
43
43
  airflow/providers/fab/auth_manager/views/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
44
44
  airflow/providers/fab/auth_manager/views/permissions.py,sha256=CT6jMCDHtirs0Qe4Penb6VwQq1yZeZ1lOLZITIlVqm4,2904
45
45
  airflow/providers/fab/auth_manager/views/roles_list.py,sha256=DwJ1iOCfpbxsWTEFWjW5_Jo3fmrZwxj1rPeflTaSg7A,1512
@@ -54,16 +54,16 @@ airflow/providers/fab/migrations/versions/0001_1_4_0_placeholder_migration.py,sh
54
54
  airflow/providers/fab/migrations/versions/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
55
55
  airflow/providers/fab/www/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
56
56
  airflow/providers/fab/www/airflow_flask_app.py,sha256=-JPQ-mS1kKEj5adENnoVSD4LaFrh36l1THnVhFYF8d4,1057
57
- airflow/providers/fab/www/app.py,sha256=wc-szaH4zg1QJ_WeATQz5DF_9urDjt3T_9Rpt-KNcnc,4485
57
+ airflow/providers/fab/www/app.py,sha256=RhUCSxS4Sivwu7aeLOqIVADszBh9uWOs1oni99FY9Rk,4951
58
58
  airflow/providers/fab/www/auth.py,sha256=FbDJOlfO70cg1OatrWZOiiNsjPlDWnuh5QLu-iEXH9A,12659
59
59
  airflow/providers/fab/www/constants.py,sha256=VUg48B-EZAUZ2IIdmL31Iv0lRlP0yLNPNTufB7rsWr0,1352
60
- airflow/providers/fab/www/package-lock.json,sha256=NQqKLv7K7gvULRxsc4CrhuHdHDosbS9-73wdAJb87oE,355339
61
- airflow/providers/fab/www/package.json,sha256=8APH8BXfN1JGsDgy89RBocqKiOfZKVHTr8Jb2DkSHas,2357
60
+ airflow/providers/fab/www/package-lock.json,sha256=kbZdRu-c51C2FpNXnVLV4kisr8VjtIDOjaT0DbGlUbc,328250
61
+ airflow/providers/fab/www/package.json,sha256=Z7P02yIy22rlcD6Qm0KCOK8c9cZuxu1-sLuUizi9tC4,2357
62
62
  airflow/providers/fab/www/security_appless.py,sha256=J0OJGRPq6NK2vY6qfMRvyMUEc-E59vXucquQdjgsndY,1655
63
63
  airflow/providers/fab/www/security_manager.py,sha256=Zr6xqjego7Z1-1h2HHyWLt1ZBKG8yHHmNPfEXNxXaRY,4850
64
64
  airflow/providers/fab/www/session.py,sha256=qyy8ipXLe4qH7D52tH3aKY6hyJNJ5tUfHel7_1S4BGg,1741
65
- airflow/providers/fab/www/utils.py,sha256=N95_hNDmNFR0HNWJfuVfHGBVy6Z3nF0r8MVSZrgCmMc,9382
66
- airflow/providers/fab/www/views.py,sha256=oYec6r4nayWIM2LyByjh3a6iXFu7aOqAqnFUY1mG1BA,4736
65
+ airflow/providers/fab/www/utils.py,sha256=9D_ESPV6ar5GOenD2Jm-lS7pW78yzxCWC5N-3kgMem8,9982
66
+ airflow/providers/fab/www/views.py,sha256=-xTQPTerP3vVLbWy6GvT_FI3c1yV3qY7lCR9gioZPNA,4750
67
67
  airflow/providers/fab/www/webpack.config.js,sha256=_TYJ8cnmJW0vxb87xY4eNr9ZE7G5NFUPuiXvpF6SKys,6124
68
68
  airflow/providers/fab/www/api_connexion/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
69
69
  airflow/providers/fab/www/api_connexion/exceptions.py,sha256=j0S90JH6Q5hnkshfiZot7Yb9hAvFs1JON0EYjW2bxW0,5783
@@ -71,11 +71,11 @@ airflow/providers/fab/www/api_connexion/parameters.py,sha256=9XbKYdjpQ9KesyPK6Eb
71
71
  airflow/providers/fab/www/api_connexion/security.py,sha256=tc6IA-lFVovRWV6ETQdAleq73scapD_1kUPQcn4rwH8,3063
72
72
  airflow/providers/fab/www/api_connexion/types.py,sha256=FY96u5nR-ByiKBhoxC_kKVoXalH9GDhexXIGmCbBmKw,1094
73
73
  airflow/providers/fab/www/extensions/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
74
- airflow/providers/fab/www/extensions/init_appbuilder.py,sha256=raB0cXym5RcOK1cgLp3OnjskYsomOtapFt0pDIXBnWE,22074
74
+ airflow/providers/fab/www/extensions/init_appbuilder.py,sha256=ZktxW33J4nHDpoXRJtrJP3L88mscxirlE83JAJZAKbs,22172
75
75
  airflow/providers/fab/www/extensions/init_jinja_globals.py,sha256=TfNOEsdLg9mflzDz6hU7lB2ZMkEJvgr-ruB6qKBBLoI,3199
76
76
  airflow/providers/fab/www/extensions/init_manifest_files.py,sha256=DLeAcH2zMGbT-eDLYdXztP7HJG7H-e1jmSTolimZeAI,2125
77
77
  airflow/providers/fab/www/extensions/init_security.py,sha256=sDwMjNMMQgyn2tsQAVkNHArPVbWe9qua66iOO59YGoU,2110
78
- airflow/providers/fab/www/extensions/init_session.py,sha256=8oEf0GNncBZ8CN3GPKrwzV6R7s54SUTyO7ZbK47KATo,2648
78
+ airflow/providers/fab/www/extensions/init_session.py,sha256=y8zUVSngawNhkO4egEkhrQ_2v03wCeDjm8LUaNY0sZ8,2637
79
79
  airflow/providers/fab/www/extensions/init_views.py,sha256=OiLfHshii7R1s3lOpTQEzs2syIq-5Arm4Gt-AXGxsKI,6447
80
80
  airflow/providers/fab/www/security/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
81
81
  airflow/providers/fab/www/security/permissions.py,sha256=5Srt7nuYHOOee439CHKJ74FnCgYkesG32a_6WFCXcOA,4537
@@ -119,7 +119,7 @@ airflow/providers/fab/www/templates/appbuilder/index.html,sha256=ZaZsNdD8fCENqdn
119
119
  airflow/providers/fab/www/templates/appbuilder/navbar.html,sha256=N3KTgWFw720Hyr3NGYz787oRYLGQXDrRW1mLXIABLxc,10236
120
120
  airflow/providers/fab/www/templates/appbuilder/navbar_menu.html,sha256=WWQ-_QLMqcW4Cpx_1_yulaQO-soD6ztnY2zfmBAUAGI,2034
121
121
  airflow/providers/fab/www/templates/appbuilder/navbar_right.html,sha256=qrwZDBbzLi4yhLrfai842MJDdQ4C31Xz9hJ3NoG5mo0,2488
122
- apache_airflow_providers_fab-2.0.0rc2.dist-info/entry_points.txt,sha256=m05kASp7vFi0ZmQ--CFp7GeJpPL7UT2RQF8EEP5XRX8,99
123
- apache_airflow_providers_fab-2.0.0rc2.dist-info/WHEEL,sha256=_2ozNFCLWc93bK4WKHCO-eDUENDlo-dgc9cU3qokYO4,82
124
- apache_airflow_providers_fab-2.0.0rc2.dist-info/METADATA,sha256=mt44Zmh5nxgWGJdlB-APhmXhnMP05C4nUqoiz8ig9QM,6005
125
- apache_airflow_providers_fab-2.0.0rc2.dist-info/RECORD,,
122
+ apache_airflow_providers_fab-2.0.0rc4.dist-info/entry_points.txt,sha256=m05kASp7vFi0ZmQ--CFp7GeJpPL7UT2RQF8EEP5XRX8,99
123
+ apache_airflow_providers_fab-2.0.0rc4.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
124
+ apache_airflow_providers_fab-2.0.0rc4.dist-info/METADATA,sha256=eos_T7JlJUryv5r9NzAJZNwwi0IHjq9I1PlB_bS2lig,6086
125
+ apache_airflow_providers_fab-2.0.0rc4.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: flit 3.11.0
2
+ Generator: flit 3.12.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any