apache-airflow-providers-fab 2.0.0rc4__py3-none-any.whl → 2.0.1__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.
- airflow/providers/fab/__init__.py +1 -1
- airflow/providers/fab/auth_manager/api/auth/backend/basic_auth.py +1 -2
- airflow/providers/fab/auth_manager/api/auth/backend/kerberos_auth.py +2 -2
- airflow/providers/fab/auth_manager/api_fastapi/services/login.py +1 -2
- airflow/providers/fab/auth_manager/fab_auth_manager.py +17 -18
- airflow/providers/fab/auth_manager/security_manager/override.py +15 -22
- airflow/providers/fab/www/auth.py +6 -8
- airflow/providers/fab/www/extensions/init_appbuilder.py +1 -2
- airflow/providers/fab/www/extensions/init_jinja_globals.py +0 -12
- airflow/providers/fab/www/extensions/init_views.py +2 -4
- airflow/providers/fab/www/package-lock.json +4 -4
- airflow/providers/fab/www/package.json +1 -1
- airflow/providers/fab/www/templates/airflow/main.html +0 -14
- airflow/providers/fab/www/templates/appbuilder/navbar.html +1 -1
- airflow/providers/fab/www/views.py +2 -3
- {apache_airflow_providers_fab-2.0.0rc4.dist-info → apache_airflow_providers_fab-2.0.1.dist-info}/METADATA +10 -8
- {apache_airflow_providers_fab-2.0.0rc4.dist-info → apache_airflow_providers_fab-2.0.1.dist-info}/RECORD +23 -21
- apache_airflow_providers_fab-2.0.1.dist-info/licenses/3rd-party-licenses/LICENSES-ui.txt +87 -0
- apache_airflow_providers_fab-2.0.1.dist-info/licenses/NOTICE +14 -0
- /airflow/providers/fab/auth_manager/api_fastapi/openapi/{v1-generated.yaml → v1-fab-auth-manager-generated.yaml} +0 -0
- /airflow/providers/fab/auth_manager/openapi/{v1.yaml → v1-flask-api.yaml} +0 -0
- {apache_airflow_providers_fab-2.0.0rc4.dist-info → apache_airflow_providers_fab-2.0.1.dist-info}/WHEEL +0 -0
- {apache_airflow_providers_fab-2.0.0rc4.dist-info → apache_airflow_providers_fab-2.0.1.dist-info}/entry_points.txt +0 -0
@@ -29,7 +29,7 @@ from airflow import __version__ as airflow_version
|
|
29
29
|
|
30
30
|
__all__ = ["__version__"]
|
31
31
|
|
32
|
-
__version__ = "2.0.
|
32
|
+
__version__ = "2.0.1"
|
33
33
|
|
34
34
|
if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
|
35
35
|
"3.0.0"
|
@@ -63,7 +63,6 @@ def requires_authentication(function: T):
|
|
63
63
|
def decorated(*args, **kwargs):
|
64
64
|
if auth_current_user() is not None or current_app.config.get("AUTH_ROLE_PUBLIC", None):
|
65
65
|
return function(*args, **kwargs)
|
66
|
-
|
67
|
-
return Response("Unauthorized", 401, {"WWW-Authenticate": "Basic"})
|
66
|
+
return Response("Unauthorized", 401, {"WWW-Authenticate": "Basic"})
|
68
67
|
|
69
68
|
return cast("T", decorated)
|
@@ -101,7 +101,7 @@ def _gssapi_authenticate(token) -> _KerberosAuth | None:
|
|
101
101
|
user=kerberos.authGSSServerUserName(state),
|
102
102
|
token=kerberos.authGSSServerResponse(state),
|
103
103
|
)
|
104
|
-
|
104
|
+
if return_code == kerberos.AUTH_GSS_CONTINUE:
|
105
105
|
return _KerberosAuth(return_code=return_code)
|
106
106
|
return _KerberosAuth(return_code=return_code)
|
107
107
|
except kerberos.GSSError:
|
@@ -139,7 +139,7 @@ def requires_authentication(function: T, find_user: Callable[[str], BaseUser] |
|
|
139
139
|
if auth.token is not None:
|
140
140
|
response.headers["WWW-Authenticate"] = f"negotiate {auth.token}"
|
141
141
|
return response
|
142
|
-
|
142
|
+
if auth.return_code != kerberos.AUTH_GSS_CONTINUE:
|
143
143
|
return _forbidden()
|
144
144
|
return _unauthorized()
|
145
145
|
|
@@ -54,5 +54,4 @@ class FABAuthManagerLogin:
|
|
54
54
|
user=user, expiration_time_in_seconds=expiration_time_in_seconds
|
55
55
|
)
|
56
56
|
)
|
57
|
-
|
58
|
-
raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Invalid password")
|
57
|
+
raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Invalid password")
|
@@ -233,7 +233,7 @@ class FabAuthManager(BaseAuthManager[User]):
|
|
233
233
|
|
234
234
|
def get_api_endpoints(self) -> None | Blueprint:
|
235
235
|
folder = Path(__file__).parents[0].resolve() # this is airflow/auth/managers/fab/
|
236
|
-
with folder.joinpath("openapi", "v1.yaml").open() as f:
|
236
|
+
with folder.joinpath("openapi", "v1-flask-api.yaml").open() as f:
|
237
237
|
specification = safe_load(f)
|
238
238
|
return FlaskApi(
|
239
239
|
specification=specification,
|
@@ -329,24 +329,23 @@ class FabAuthManager(BaseAuthManager[User]):
|
|
329
329
|
if not access_entity:
|
330
330
|
# Scenario 1
|
331
331
|
return self._is_authorized_dag(method=method, details=details, user=user)
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
(
|
344
|
-
|
345
|
-
|
346
|
-
else self._is_authorized_dag_run(method=method, details=details, user=user)
|
347
|
-
)
|
348
|
-
for resource_type in resource_types
|
332
|
+
# Scenario 2
|
333
|
+
resource_types = self._get_fab_resource_types(access_entity)
|
334
|
+
dag_method: ResourceMethod = "GET" if method == "GET" else "PUT"
|
335
|
+
|
336
|
+
if (details and details.id) and not self._is_authorized_dag(
|
337
|
+
method=dag_method, details=details, user=user
|
338
|
+
):
|
339
|
+
return False
|
340
|
+
|
341
|
+
return all(
|
342
|
+
(
|
343
|
+
self._is_authorized(method=method, resource_type=resource_type, user=user)
|
344
|
+
if resource_type != RESOURCE_DAG_RUN or not hasattr(permissions, "resource_name")
|
345
|
+
else self._is_authorized_dag_run(method=method, details=details, user=user)
|
349
346
|
)
|
347
|
+
for resource_type in resource_types
|
348
|
+
)
|
350
349
|
|
351
350
|
def is_authorized_backfill(
|
352
351
|
self,
|
@@ -1401,12 +1401,11 @@ class FabAirflowSecurityManagerOverride(AirflowSecurityManagerV2):
|
|
1401
1401
|
.filter(func.lower(self.user_model.username) == func.lower(username))
|
1402
1402
|
.one_or_none()
|
1403
1403
|
)
|
1404
|
-
|
1405
|
-
|
1406
|
-
|
1407
|
-
|
1408
|
-
|
1409
|
-
)
|
1404
|
+
return (
|
1405
|
+
self.get_session.query(self.user_model)
|
1406
|
+
.filter(func.lower(self.user_model.username) == func.lower(username))
|
1407
|
+
.one_or_none()
|
1408
|
+
)
|
1410
1409
|
except MultipleResultsFound:
|
1411
1410
|
log.error("Multiple results found for user %s", username)
|
1412
1411
|
return None
|
@@ -1883,8 +1882,7 @@ class FabAirflowSecurityManagerOverride(AirflowSecurityManagerV2):
|
|
1883
1882
|
self._rotate_session_id()
|
1884
1883
|
self.update_user_auth_stat(user)
|
1885
1884
|
return user
|
1886
|
-
|
1887
|
-
return None
|
1885
|
+
return None
|
1888
1886
|
|
1889
1887
|
except ldap.LDAPError as e:
|
1890
1888
|
msg = None
|
@@ -1893,9 +1891,8 @@ class FabAirflowSecurityManagerOverride(AirflowSecurityManagerV2):
|
|
1893
1891
|
if (msg is not None) and ("desc" in msg):
|
1894
1892
|
log.error(LOGMSG_ERR_SEC_AUTH_LDAP, e.message["desc"])
|
1895
1893
|
return None
|
1896
|
-
|
1897
|
-
|
1898
|
-
return None
|
1894
|
+
log.error(e)
|
1895
|
+
return None
|
1899
1896
|
|
1900
1897
|
def check_password(self, username, password) -> bool:
|
1901
1898
|
"""
|
@@ -1933,14 +1930,13 @@ class FabAirflowSecurityManagerOverride(AirflowSecurityManagerV2):
|
|
1933
1930
|
)
|
1934
1931
|
log.info(LOGMSG_WAR_SEC_LOGIN_FAILED, username)
|
1935
1932
|
return None
|
1936
|
-
|
1933
|
+
if check_password_hash(user.password, password):
|
1937
1934
|
self._rotate_session_id()
|
1938
1935
|
self.update_user_auth_stat(user, True)
|
1939
1936
|
return user
|
1940
|
-
|
1941
|
-
|
1942
|
-
|
1943
|
-
return None
|
1937
|
+
self.update_user_auth_stat(user, False)
|
1938
|
+
log.info(LOGMSG_WAR_SEC_LOGIN_FAILED, username)
|
1939
|
+
return None
|
1944
1940
|
|
1945
1941
|
def set_oauth_session(self, provider, oauth_response):
|
1946
1942
|
"""Set the current session with OAuth user secrets."""
|
@@ -2033,8 +2029,7 @@ class FabAirflowSecurityManagerOverride(AirflowSecurityManagerV2):
|
|
2033
2029
|
self._rotate_session_id()
|
2034
2030
|
self.update_user_auth_stat(user)
|
2035
2031
|
return user
|
2036
|
-
|
2037
|
-
return None
|
2032
|
+
return None
|
2038
2033
|
|
2039
2034
|
def get_oauth_user_info(self, provider: str, resp: dict[str, Any]) -> dict[str, Any]:
|
2040
2035
|
"""
|
@@ -2108,8 +2103,7 @@ class FabAirflowSecurityManagerOverride(AirflowSecurityManagerV2):
|
|
2108
2103
|
"email": data["email"],
|
2109
2104
|
"role_keys": data.get("groups", []),
|
2110
2105
|
}
|
2111
|
-
|
2112
|
-
log.error(data.get("error_description"))
|
2106
|
+
log.error(data.get("error_description"))
|
2113
2107
|
return {}
|
2114
2108
|
# for Auth0
|
2115
2109
|
if provider == "auth0":
|
@@ -2147,8 +2141,7 @@ class FabAirflowSecurityManagerOverride(AirflowSecurityManagerV2):
|
|
2147
2141
|
"role_keys": me.get("groups", []),
|
2148
2142
|
}
|
2149
2143
|
|
2150
|
-
|
2151
|
-
return {}
|
2144
|
+
return {}
|
2152
2145
|
|
2153
2146
|
@staticmethod
|
2154
2147
|
def oauth_token_getter():
|
@@ -91,9 +91,8 @@ def has_access_with_pk(f):
|
|
91
91
|
resource_pk=kwargs.get("pk"),
|
92
92
|
):
|
93
93
|
return f(self, *args, **kwargs)
|
94
|
-
|
95
|
-
|
96
|
-
flash(as_unicode(FLAMSG_ERR_SEC_ACCESS_DENIED), "danger")
|
94
|
+
log.warning(LOGMSG_ERR_SEC_ACCESS_DENIED, permission_str, self.__class__.__name__)
|
95
|
+
flash(as_unicode(FLAMSG_ERR_SEC_ACCESS_DENIED), "danger")
|
97
96
|
return redirect(get_auth_manager().get_url_login(next_url=request.url))
|
98
97
|
|
99
98
|
f._permission_name = permission_str
|
@@ -139,7 +138,7 @@ def _has_access(*, is_authorized: bool, func: Callable, args, kwargs):
|
|
139
138
|
"""
|
140
139
|
if is_authorized:
|
141
140
|
return func(*args, **kwargs)
|
142
|
-
|
141
|
+
if get_fab_auth_manager().is_logged_in() and not get_auth_manager().is_authorized_view(
|
143
142
|
access_view=AccessView.WEBSITE,
|
144
143
|
user=get_fab_auth_manager().get_user(),
|
145
144
|
):
|
@@ -151,11 +150,10 @@ def _has_access(*, is_authorized: bool, func: Callable, args, kwargs):
|
|
151
150
|
),
|
152
151
|
403,
|
153
152
|
)
|
154
|
-
|
153
|
+
if not get_fab_auth_manager().is_logged_in():
|
155
154
|
return redirect(get_auth_manager().get_url_login(next_url=request.url))
|
156
|
-
|
157
|
-
|
158
|
-
flash(access_denied, "danger")
|
155
|
+
access_denied = get_access_denied_message()
|
156
|
+
flash(access_denied, "danger")
|
159
157
|
return redirect(url_for("FabIndexView.index"))
|
160
158
|
|
161
159
|
|
@@ -23,7 +23,6 @@ import pendulum
|
|
23
23
|
import airflow
|
24
24
|
from airflow.api_fastapi.app import get_auth_manager
|
25
25
|
from airflow.configuration import conf
|
26
|
-
from airflow.settings import STATE_COLORS
|
27
26
|
from airflow.utils.net import get_hostname
|
28
27
|
from airflow.utils.platform import get_airflow_git_version
|
29
28
|
|
@@ -38,14 +37,6 @@ def init_jinja_globals(app, enable_plugins: bool):
|
|
38
37
|
elif server_timezone == "utc":
|
39
38
|
server_timezone = "UTC"
|
40
39
|
|
41
|
-
default_ui_timezone = conf.get("webserver", "default_ui_timezone")
|
42
|
-
if default_ui_timezone == "system":
|
43
|
-
default_ui_timezone = pendulum.local_timezone().name # type: ignore[operator]
|
44
|
-
elif default_ui_timezone == "utc":
|
45
|
-
default_ui_timezone = "UTC"
|
46
|
-
if not default_ui_timezone:
|
47
|
-
default_ui_timezone = server_timezone
|
48
|
-
|
49
40
|
expose_hostname = conf.getboolean("webserver", "EXPOSE_HOSTNAME")
|
50
41
|
hostname = get_hostname() if expose_hostname else "redact"
|
51
42
|
|
@@ -60,14 +51,11 @@ def init_jinja_globals(app, enable_plugins: bool):
|
|
60
51
|
def prepare_jinja_globals():
|
61
52
|
extra_globals = {
|
62
53
|
"server_timezone": server_timezone,
|
63
|
-
"default_ui_timezone": default_ui_timezone,
|
64
54
|
"hostname": hostname,
|
65
55
|
"navbar_color": conf.get("webserver", "NAVBAR_COLOR"),
|
66
56
|
"navbar_text_color": conf.get("webserver", "NAVBAR_TEXT_COLOR"),
|
67
57
|
"navbar_hover_color": conf.get("webserver", "NAVBAR_HOVER_COLOR"),
|
68
58
|
"navbar_text_hover_color": conf.get("webserver", "NAVBAR_TEXT_HOVER_COLOR"),
|
69
|
-
"navbar_logo_text_color": conf.get("webserver", "NAVBAR_LOGO_TEXT_COLOR"),
|
70
|
-
"state_color_mapping": STATE_COLORS,
|
71
59
|
"airflow_version": airflow_version,
|
72
60
|
"git_version": git_version,
|
73
61
|
"show_plugin_message": enable_plugins,
|
@@ -146,15 +146,13 @@ def init_api_error_handlers(app: Flask) -> None:
|
|
146
146
|
# i.e. "no route for it" defined, need to be handled
|
147
147
|
# here on the application level
|
148
148
|
return common_error_handler(ex)
|
149
|
-
|
150
|
-
return views.not_found(ex)
|
149
|
+
return views.not_found(ex)
|
151
150
|
|
152
151
|
@app.errorhandler(405)
|
153
152
|
def _handle_method_not_allowed(ex):
|
154
153
|
if any([request.path.startswith(p) for p in base_paths]):
|
155
154
|
return common_error_handler(ex)
|
156
|
-
|
157
|
-
return views.method_not_allowed(ex)
|
155
|
+
return views.method_not_allowed(ex)
|
158
156
|
|
159
157
|
app.register_error_handler(ProblemException, common_error_handler)
|
160
158
|
|
@@ -23,7 +23,7 @@
|
|
23
23
|
"css-loader": "7.1.2",
|
24
24
|
"css-minimizer-webpack-plugin": "^7.0.2",
|
25
25
|
"eslint": "^9.24.0",
|
26
|
-
"eslint-config-prettier": "^10.1.
|
26
|
+
"eslint-config-prettier": "^10.1.2",
|
27
27
|
"eslint-plugin-html": "^8.1.2",
|
28
28
|
"eslint-plugin-import": "^2.27.5",
|
29
29
|
"eslint-plugin-node": "^11.1.0",
|
@@ -4010,9 +4010,9 @@
|
|
4010
4010
|
}
|
4011
4011
|
},
|
4012
4012
|
"node_modules/eslint-config-prettier": {
|
4013
|
-
"version": "10.1.
|
4014
|
-
"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.
|
4015
|
-
"integrity": "sha512-
|
4013
|
+
"version": "10.1.2",
|
4014
|
+
"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.2.tgz",
|
4015
|
+
"integrity": "sha512-Epgp/EofAUeEpIdZkW60MHKvPyru1ruQJxPL+WIycnaPApuseK0Zpkrh/FwL9oIpQvIhJwV7ptOy0DWUjTlCiA==",
|
4016
4016
|
"dev": true,
|
4017
4017
|
"license": "MIT",
|
4018
4018
|
"bin": {
|
@@ -49,7 +49,7 @@
|
|
49
49
|
"css-loader": "7.1.2",
|
50
50
|
"css-minimizer-webpack-plugin": "^7.0.2",
|
51
51
|
"eslint": "^9.24.0",
|
52
|
-
"eslint-config-prettier": "^10.1.
|
52
|
+
"eslint-config-prettier": "^10.1.2",
|
53
53
|
"eslint-plugin-html": "^8.1.2",
|
54
54
|
"eslint-plugin-import": "^2.27.5",
|
55
55
|
"eslint-plugin-node": "^11.1.0",
|
@@ -35,20 +35,6 @@
|
|
35
35
|
<link rel="stylesheet" type="text/css" href="{{ url_for_asset('main.css') }}">
|
36
36
|
<link rel="stylesheet" type="text/css" href="{{ url_for_asset('loadingDots.css') }}">
|
37
37
|
<link rel="stylesheet" type="text/css" href="{{ url_for_asset('jquery-ui.min.css') }}">
|
38
|
-
<style type="text/css">
|
39
|
-
{% for state, state_color in state_color_mapping.items() %}
|
40
|
-
span.{{state}} {
|
41
|
-
background-color: {{state_color}};
|
42
|
-
}
|
43
|
-
{% endfor %}
|
44
|
-
.navbar-nav > li > a {
|
45
|
-
color: {{ navbar_text_color }};
|
46
|
-
}
|
47
|
-
.navbar-nav > li > a:hover {
|
48
|
-
background-color: {{ navbar_hover_color }};
|
49
|
-
color: {{ navbar_text_hover_color }};
|
50
|
-
}
|
51
|
-
</style>
|
52
38
|
<link rel="icon" type="image/png" href="{{ url_for('static', filename='pin_32.png') }}">
|
53
39
|
{% endblock %}
|
54
40
|
|
@@ -41,7 +41,7 @@
|
|
41
41
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.4028 16.9752C6.32267 15.0072 10.1207 14.0942 17.953 17.867C15.2128 11.7354 11.6107 9.58661 10.5795 10.6437L4.4028 16.9752Z" fill="#0cb6ff"/>
|
42
42
|
<path d="M17.9649 18.6209C18.3825 18.6157 18.7169 18.273 18.7117 17.8553C18.7065 17.4377 18.3638 17.1034 17.9462 17.1085C17.5285 17.1137 17.1942 17.4564 17.1994 17.8741C17.2045 18.2917 17.5473 18.626 17.9649 18.6209Z" fill="#4a4848"/>
|
43
43
|
</g>
|
44
|
-
<path d="M38.9349 24.0977C38.8442 24.0977 38.765 24.0636 38.6969 23.9957C38.629 23.9276 38.5949 23.8484 38.5949 23.7577C38.5949 23.6669 38.6006 23.6048 38.612 23.5707L42.8273 12.5738C42.9178 12.3245 43.0992 12.1999 43.3712 12.1999H44.5269C44.7988 12.1999 44.98 12.3245 45.0708 12.5738L49.269 23.5707L49.3029 23.7577C49.3029 23.8484 49.269 23.9276 49.2009 23.9957C49.133 24.0636 49.0536 24.0977 48.9631 24.0977H48.0962C47.9715 24.0977 47.8753 24.0693 47.8072 24.0128C47.7393 23.9447 47.6938 23.8768 47.6712 23.8087L46.7364 21.3952H41.1616L40.2266 23.8087C40.204 23.8768 40.153 23.9447 40.0738 24.0128C40.0057 24.0693 39.915 24.0977 39.8018 24.0977H38.9349ZM46.2435 19.9334L43.949 13.8995L41.6545 19.9334H46.2435ZM51.1544 13.6106C51.041 13.6106 50.9447 13.5766 50.8653 13.5086C50.7972 13.4293 50.7633 13.333 50.7633 13.2197V12.3018C50.7633 12.1885 50.7972 12.0922 50.8653 12.0129C50.9447 11.9336 51.041 11.8939 51.1544 11.8939H52.2251C52.3384 11.8939 52.4347 11.9336 52.5139 12.0129C52.5933 12.0922 52.633 12.1885 52.633 12.3018V13.2197C52.633 13.333 52.5933 13.4293 52.5139 13.5086C52.4347 13.5766 52.3384 13.6106 52.2251 13.6106H51.1544ZM51.2903 24.0977C51.177 24.0977 51.0807 24.0636 51.0013 23.9957C50.9332 23.9163 50.8993 23.82 50.8993 23.7066V15.6502C50.8993 15.5369 50.9332 15.4462 51.0013 15.3783C51.0807 15.299 51.177 15.2593 51.2903 15.2593H52.106C52.2193 15.2593 52.3101 15.299 52.3779 15.3783C52.4574 15.4462 52.4971 15.5369 52.4971 15.6502V23.7066C52.4971 23.82 52.4574 23.9163 52.3779 23.9957C52.3101 24.0636 52.2193 24.0977 52.106 24.0977H51.2903ZM55.4067 24.0977C55.2933 24.0977 55.1971 24.0636 55.1176 23.9957C55.0498 23.9163 55.0158 23.82 55.0158 23.7066V15.6672C55.0158 15.5539 55.0498 15.4576 55.1176 15.3783C55.1971 15.299 55.2933 15.2593 55.4067 15.2593H56.1886C56.3017 15.2593 56.3982 15.299 56.4774 15.3783C56.5568 15.4576 56.5965 15.5539 56.5965 15.6672V16.4151C57.061 15.6446 57.8543 15.2593 58.976 15.2593H59.6388C59.7522 15.2593 59.8429 15.299 59.9108 15.3783C59.9902 15.4462 60.0297 15.5369 60.0297 15.6502V16.3471C60.0297 16.4604 59.9902 16.5511 59.9108 16.619C59.8429 16.687 59.7522 16.721 59.6388 16.721H58.6191C58.0071 16.721 57.5255 16.9023 57.1744 17.2649C56.823 17.6163 56.6473 18.0978 56.6473 18.7096V23.7066C56.6473 23.82 56.6078 23.9163 56.5284 23.9957C56.449 24.0636 56.3528 24.0977 56.2394 24.0977H55.4067ZM62.7472 24.0977C62.634 24.0977 62.5376 24.0636 62.4584 23.9957C62.3903 23.9163 62.3563 23.82 62.3563 23.7066V16.619H60.9116C60.7982 16.619 60.702 16.585 60.6228 16.5171C60.5547 16.4377 60.5207 16.3414 60.5207 16.2281V15.6502C60.5207 15.5369 60.5547 15.4462 60.6228 15.3783C60.702 15.299 60.7982 15.2593 60.9116 15.2593H62.3563V14.4094C62.3563 12.4832 63.3308 11.52 65.2797 11.52H66.2316C66.3449 11.52 66.4356 11.5597 66.5035 11.639C66.5829 11.707 66.6226 11.7976 66.6226 11.9109V12.4888C66.6226 12.6021 66.5829 12.6984 66.5035 12.7778C66.4356 12.8457 66.3449 12.8797 66.2316 12.8797H65.3139C64.8039 12.8797 64.447 13.0157 64.2429 13.2877C64.0391 13.5483 63.937 13.9505 63.937 14.4944V15.2593H67.5743V11.9109C67.5743 11.7976 67.6084 11.707 67.6763 11.639C67.7557 11.5597 67.852 11.52 67.9653 11.52H68.747C68.8604 11.52 68.9511 11.5597 69.019 11.639C69.0984 11.707 69.1381 11.7976 69.1381 11.9109V23.7066C69.1381 23.82 69.0984 23.9163 69.019 23.9957C68.9511 24.0636 68.8604 24.0977 68.747 24.0977H67.9653C67.852 24.0977 67.7557 24.0636 67.6763 23.9957C67.6084 23.9163 67.5743 23.82 67.5743 23.7066V16.619H63.937V23.7066C63.937 23.82 63.8973 23.9163 63.8181 23.9957C63.75 24.0636 63.6595 24.0977 63.5462 24.0977H62.7472ZM75.2842 24.2676C74.0378 24.2676 73.0691 23.9163 72.3779 23.2138C71.698 22.5112 71.3353 21.5765 71.2901 20.4093L71.273 19.6786L71.2901 18.9477C71.3353 17.7917 71.7036 16.8627 72.3948 16.1601C73.086 15.4462 74.0491 15.0893 75.2842 15.0893C76.5193 15.0893 77.4825 15.4462 78.1737 16.1601C78.8649 16.8627 79.2331 17.7917 79.2786 18.9477C79.2899 19.0723 79.2954 19.3159 79.2954 19.6786C79.2954 20.041 79.2899 20.2846 79.2786 20.4093C79.2331 21.5765 78.8649 22.5112 78.1737 23.2138C77.4938 23.9163 76.5306 24.2676 75.2842 24.2676ZM75.2842 22.9589C75.998 22.9589 76.559 22.7322 76.967 22.279C77.3862 21.8258 77.6129 21.1741 77.6469 20.3243C77.6582 20.2109 77.6637 19.9958 77.6637 19.6786C77.6637 19.3611 77.6582 19.146 77.6469 19.0326C77.6129 18.1828 77.3862 17.5311 76.967 17.078C76.559 16.6247 75.998 16.3981 75.2842 16.3981C74.5704 16.3981 74.0039 16.6247 73.5846 17.078C73.1654 17.5311 72.9444 18.1828 72.9218 19.0326L72.9047 19.6786L72.9218 20.3243C72.9444 21.1741 73.1654 21.8258 73.5846 22.279C74.0039 22.7322 74.5704 22.9589 75.2842 22.9589ZM83.5371 24.0977C83.3898 24.0977 83.2764 24.0636 83.197 23.9957C83.1178 23.9276 83.0497 23.82 82.9932 23.6727L80.5795 15.7862L80.5456 15.6162C80.5456 15.5142 80.5795 15.4293 80.6476 15.3613C80.7268 15.2933 80.8118 15.2593 80.9025 15.2593H81.6503C81.7636 15.2593 81.8543 15.2933 81.9222 15.3613C82.0016 15.4179 82.0526 15.4803 82.0753 15.5482L83.9619 21.956L85.9844 15.6162C86.0073 15.5256 86.0581 15.4462 86.1375 15.3783C86.2169 15.299 86.3245 15.2593 86.4605 15.2593H87.0383C87.1743 15.2593 87.2819 15.299 87.3613 15.3783C87.4407 15.4462 87.4915 15.5256 87.5143 15.6162L89.5369 21.956L91.4235 15.5482C91.4349 15.4916 91.4745 15.4293 91.5424 15.3613C91.6218 15.2933 91.7181 15.2593 91.8315 15.2593H92.5963C92.687 15.2593 92.7662 15.2933 92.8343 15.3613C92.9022 15.4293 92.9361 15.5142 92.9361 15.6162L92.9022 15.7862L90.5056 23.6727C90.4491 23.82 90.381 23.9276 90.3018 23.9957C90.2224 24.0636 90.1035 24.0977 89.9449 24.0977H89.2818C88.9759 24.0977 88.7889 23.956 88.7211 23.6727L86.7493 17.5879L84.7777 23.6727C84.6872 23.956 84.4945 24.0977 84.1999 24.0977H83.5371Z" fill="
|
44
|
+
<path d="M38.9349 24.0977C38.8442 24.0977 38.765 24.0636 38.6969 23.9957C38.629 23.9276 38.5949 23.8484 38.5949 23.7577C38.5949 23.6669 38.6006 23.6048 38.612 23.5707L42.8273 12.5738C42.9178 12.3245 43.0992 12.1999 43.3712 12.1999H44.5269C44.7988 12.1999 44.98 12.3245 45.0708 12.5738L49.269 23.5707L49.3029 23.7577C49.3029 23.8484 49.269 23.9276 49.2009 23.9957C49.133 24.0636 49.0536 24.0977 48.9631 24.0977H48.0962C47.9715 24.0977 47.8753 24.0693 47.8072 24.0128C47.7393 23.9447 47.6938 23.8768 47.6712 23.8087L46.7364 21.3952H41.1616L40.2266 23.8087C40.204 23.8768 40.153 23.9447 40.0738 24.0128C40.0057 24.0693 39.915 24.0977 39.8018 24.0977H38.9349ZM46.2435 19.9334L43.949 13.8995L41.6545 19.9334H46.2435ZM51.1544 13.6106C51.041 13.6106 50.9447 13.5766 50.8653 13.5086C50.7972 13.4293 50.7633 13.333 50.7633 13.2197V12.3018C50.7633 12.1885 50.7972 12.0922 50.8653 12.0129C50.9447 11.9336 51.041 11.8939 51.1544 11.8939H52.2251C52.3384 11.8939 52.4347 11.9336 52.5139 12.0129C52.5933 12.0922 52.633 12.1885 52.633 12.3018V13.2197C52.633 13.333 52.5933 13.4293 52.5139 13.5086C52.4347 13.5766 52.3384 13.6106 52.2251 13.6106H51.1544ZM51.2903 24.0977C51.177 24.0977 51.0807 24.0636 51.0013 23.9957C50.9332 23.9163 50.8993 23.82 50.8993 23.7066V15.6502C50.8993 15.5369 50.9332 15.4462 51.0013 15.3783C51.0807 15.299 51.177 15.2593 51.2903 15.2593H52.106C52.2193 15.2593 52.3101 15.299 52.3779 15.3783C52.4574 15.4462 52.4971 15.5369 52.4971 15.6502V23.7066C52.4971 23.82 52.4574 23.9163 52.3779 23.9957C52.3101 24.0636 52.2193 24.0977 52.106 24.0977H51.2903ZM55.4067 24.0977C55.2933 24.0977 55.1971 24.0636 55.1176 23.9957C55.0498 23.9163 55.0158 23.82 55.0158 23.7066V15.6672C55.0158 15.5539 55.0498 15.4576 55.1176 15.3783C55.1971 15.299 55.2933 15.2593 55.4067 15.2593H56.1886C56.3017 15.2593 56.3982 15.299 56.4774 15.3783C56.5568 15.4576 56.5965 15.5539 56.5965 15.6672V16.4151C57.061 15.6446 57.8543 15.2593 58.976 15.2593H59.6388C59.7522 15.2593 59.8429 15.299 59.9108 15.3783C59.9902 15.4462 60.0297 15.5369 60.0297 15.6502V16.3471C60.0297 16.4604 59.9902 16.5511 59.9108 16.619C59.8429 16.687 59.7522 16.721 59.6388 16.721H58.6191C58.0071 16.721 57.5255 16.9023 57.1744 17.2649C56.823 17.6163 56.6473 18.0978 56.6473 18.7096V23.7066C56.6473 23.82 56.6078 23.9163 56.5284 23.9957C56.449 24.0636 56.3528 24.0977 56.2394 24.0977H55.4067ZM62.7472 24.0977C62.634 24.0977 62.5376 24.0636 62.4584 23.9957C62.3903 23.9163 62.3563 23.82 62.3563 23.7066V16.619H60.9116C60.7982 16.619 60.702 16.585 60.6228 16.5171C60.5547 16.4377 60.5207 16.3414 60.5207 16.2281V15.6502C60.5207 15.5369 60.5547 15.4462 60.6228 15.3783C60.702 15.299 60.7982 15.2593 60.9116 15.2593H62.3563V14.4094C62.3563 12.4832 63.3308 11.52 65.2797 11.52H66.2316C66.3449 11.52 66.4356 11.5597 66.5035 11.639C66.5829 11.707 66.6226 11.7976 66.6226 11.9109V12.4888C66.6226 12.6021 66.5829 12.6984 66.5035 12.7778C66.4356 12.8457 66.3449 12.8797 66.2316 12.8797H65.3139C64.8039 12.8797 64.447 13.0157 64.2429 13.2877C64.0391 13.5483 63.937 13.9505 63.937 14.4944V15.2593H67.5743V11.9109C67.5743 11.7976 67.6084 11.707 67.6763 11.639C67.7557 11.5597 67.852 11.52 67.9653 11.52H68.747C68.8604 11.52 68.9511 11.5597 69.019 11.639C69.0984 11.707 69.1381 11.7976 69.1381 11.9109V23.7066C69.1381 23.82 69.0984 23.9163 69.019 23.9957C68.9511 24.0636 68.8604 24.0977 68.747 24.0977H67.9653C67.852 24.0977 67.7557 24.0636 67.6763 23.9957C67.6084 23.9163 67.5743 23.82 67.5743 23.7066V16.619H63.937V23.7066C63.937 23.82 63.8973 23.9163 63.8181 23.9957C63.75 24.0636 63.6595 24.0977 63.5462 24.0977H62.7472ZM75.2842 24.2676C74.0378 24.2676 73.0691 23.9163 72.3779 23.2138C71.698 22.5112 71.3353 21.5765 71.2901 20.4093L71.273 19.6786L71.2901 18.9477C71.3353 17.7917 71.7036 16.8627 72.3948 16.1601C73.086 15.4462 74.0491 15.0893 75.2842 15.0893C76.5193 15.0893 77.4825 15.4462 78.1737 16.1601C78.8649 16.8627 79.2331 17.7917 79.2786 18.9477C79.2899 19.0723 79.2954 19.3159 79.2954 19.6786C79.2954 20.041 79.2899 20.2846 79.2786 20.4093C79.2331 21.5765 78.8649 22.5112 78.1737 23.2138C77.4938 23.9163 76.5306 24.2676 75.2842 24.2676ZM75.2842 22.9589C75.998 22.9589 76.559 22.7322 76.967 22.279C77.3862 21.8258 77.6129 21.1741 77.6469 20.3243C77.6582 20.2109 77.6637 19.9958 77.6637 19.6786C77.6637 19.3611 77.6582 19.146 77.6469 19.0326C77.6129 18.1828 77.3862 17.5311 76.967 17.078C76.559 16.6247 75.998 16.3981 75.2842 16.3981C74.5704 16.3981 74.0039 16.6247 73.5846 17.078C73.1654 17.5311 72.9444 18.1828 72.9218 19.0326L72.9047 19.6786L72.9218 20.3243C72.9444 21.1741 73.1654 21.8258 73.5846 22.279C74.0039 22.7322 74.5704 22.9589 75.2842 22.9589ZM83.5371 24.0977C83.3898 24.0977 83.2764 24.0636 83.197 23.9957C83.1178 23.9276 83.0497 23.82 82.9932 23.6727L80.5795 15.7862L80.5456 15.6162C80.5456 15.5142 80.5795 15.4293 80.6476 15.3613C80.7268 15.2933 80.8118 15.2593 80.9025 15.2593H81.6503C81.7636 15.2593 81.8543 15.2933 81.9222 15.3613C82.0016 15.4179 82.0526 15.4803 82.0753 15.5482L83.9619 21.956L85.9844 15.6162C86.0073 15.5256 86.0581 15.4462 86.1375 15.3783C86.2169 15.299 86.3245 15.2593 86.4605 15.2593H87.0383C87.1743 15.2593 87.2819 15.299 87.3613 15.3783C87.4407 15.4462 87.4915 15.5256 87.5143 15.6162L89.5369 21.956L91.4235 15.5482C91.4349 15.4916 91.4745 15.4293 91.5424 15.3613C91.6218 15.2933 91.7181 15.2593 91.8315 15.2593H92.5963C92.687 15.2593 92.7662 15.2933 92.8343 15.3613C92.9022 15.4293 92.9361 15.5142 92.9361 15.6162L92.9022 15.7862L90.5056 23.6727C90.4491 23.82 90.381 23.9276 90.3018 23.9957C90.2224 24.0636 90.1035 24.0977 89.9449 24.0977H89.2818C88.9759 24.0977 88.7889 23.956 88.7211 23.6727L86.7493 17.5879L84.7777 23.6727C84.6872 23.956 84.4945 24.0977 84.1999 24.0977H83.5371Z" fill="#51504f"/>
|
45
45
|
</svg>
|
46
46
|
</a>
|
47
47
|
</div>
|
@@ -68,14 +68,13 @@ class FabIndexView(IndexView):
|
|
68
68
|
def index(self):
|
69
69
|
if g.user is not None and g.user.is_authenticated:
|
70
70
|
token = get_auth_manager().generate_jwt(g.user)
|
71
|
-
response = make_response(redirect(f"{conf.get('api', 'base_url')}", code=302))
|
71
|
+
response = make_response(redirect(f"{conf.get('api', 'base_url', fallback='/')}", code=302))
|
72
72
|
|
73
73
|
secure = conf.has_option("api", "ssl_cert")
|
74
74
|
response.set_cookie(COOKIE_NAME_JWT_TOKEN, token, secure=secure)
|
75
75
|
|
76
76
|
return response
|
77
|
-
|
78
|
-
return redirect(conf.get("api", "base_url", fallback="/"), code=302)
|
77
|
+
return redirect(conf.get("api", "base_url", fallback="/"), code=302)
|
79
78
|
|
80
79
|
|
81
80
|
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.
|
3
|
+
Version: 2.0.1
|
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,8 +20,10 @@ 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
|
-
|
24
|
-
|
23
|
+
License-File: 3rd-party-licenses/LICENSES-ui.txt
|
24
|
+
License-File: NOTICE
|
25
|
+
Requires-Dist: apache-airflow>=3.0.0
|
26
|
+
Requires-Dist: apache-airflow-providers-common-compat>=1.2.1
|
25
27
|
Requires-Dist: blinker>=1.6.2
|
26
28
|
Requires-Dist: flask>=2.2.1,<2.3
|
27
29
|
Requires-Dist: flask-appbuilder==4.5.3
|
@@ -34,8 +36,8 @@ Requires-Dist: werkzeug>=2.2,<4
|
|
34
36
|
Requires-Dist: wtforms>=3.0,<4
|
35
37
|
Requires-Dist: kerberos>=1.3.0 ; extra == "kerberos"
|
36
38
|
Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
|
37
|
-
Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-fab/2.0.
|
38
|
-
Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-fab/2.0.
|
39
|
+
Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-fab/2.0.1/changelog.html
|
40
|
+
Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-fab/2.0.1
|
39
41
|
Project-URL: Mastodon, https://fosstodon.org/@airflow
|
40
42
|
Project-URL: Slack Chat, https://s.apache.org/airflow-slack
|
41
43
|
Project-URL: Source Code, https://github.com/apache/airflow
|
@@ -67,7 +69,7 @@ Provides-Extra: kerberos
|
|
67
69
|
|
68
70
|
Package ``apache-airflow-providers-fab``
|
69
71
|
|
70
|
-
Release: ``2.0.
|
72
|
+
Release: ``2.0.1``
|
71
73
|
|
72
74
|
|
73
75
|
`Flask App Builder <https://flask-appbuilder.readthedocs.io/>`__
|
@@ -80,7 +82,7 @@ This is a provider package for ``fab`` provider. All classes for this provider p
|
|
80
82
|
are in ``airflow.providers.fab`` python package.
|
81
83
|
|
82
84
|
You can find package information and changelog for the provider
|
83
|
-
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-fab/2.0.
|
85
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-fab/2.0.1/>`_.
|
84
86
|
|
85
87
|
Installation
|
86
88
|
------------
|
@@ -131,5 +133,5 @@ Dependent package
|
|
131
133
|
================================================================================================================== =================
|
132
134
|
|
133
135
|
The changelog for the provider package can be found in the
|
134
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/2.0.
|
136
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/2.0.1/changelog.html>`_.
|
135
137
|
|
@@ -1,14 +1,14 @@
|
|
1
1
|
airflow/providers/fab/LICENSE,sha256=gXPVwptPlW1TJ4HSuG5OMPg-a3h43OGMkZRR1rpwfJA,10850
|
2
|
-
airflow/providers/fab/__init__.py,sha256=
|
2
|
+
airflow/providers/fab/__init__.py,sha256=KbbacGY_UmDBwSCzgYNde3-GsIUAq2oNQLVaERkQY7M,1490
|
3
3
|
airflow/providers/fab/alembic.ini,sha256=_1SvObfjMAkuD7DN5VR2S6Rd7_F81pORZT-w7GJldIA,4461
|
4
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=
|
6
|
+
airflow/providers/fab/auth_manager/fab_auth_manager.py,sha256=4auEloL69uQOkeD1FmNHEqNcgoXm_pjNeyOvQHuTPXc,25779
|
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
|
10
|
-
airflow/providers/fab/auth_manager/api/auth/backend/basic_auth.py,sha256=
|
11
|
-
airflow/providers/fab/auth_manager/api/auth/backend/kerberos_auth.py,sha256=
|
10
|
+
airflow/providers/fab/auth_manager/api/auth/backend/basic_auth.py,sha256=D5ZhPegWazFcwJlIjLJbJM5i7PnUTjwDBqC91eufwok,2492
|
11
|
+
airflow/providers/fab/auth_manager/api/auth/backend/kerberos_auth.py,sha256=dD8Q1WYH2bc4neA1PFxiGwTCvMCFHIHadz4WRiQApAA,5001
|
12
12
|
airflow/providers/fab/auth_manager/api/auth/backend/session.py,sha256=aNDrYNidwr99NWgrl5WA6TY5CbHYif6chVRUPgYVOWc,1504
|
13
13
|
airflow/providers/fab/auth_manager/api_endpoints/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
|
14
14
|
airflow/providers/fab/auth_manager/api_endpoints/role_and_permission_endpoint.py,sha256=CIBNyj3zMK1NjHCv6C3KB48foRKCBMozIUxAW5R5YfQ,7607
|
@@ -17,11 +17,11 @@ airflow/providers/fab/auth_manager/api_fastapi/__init__.py,sha256=9hdXHABrVpkbpj
|
|
17
17
|
airflow/providers/fab/auth_manager/api_fastapi/datamodels/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
|
18
18
|
airflow/providers/fab/auth_manager/api_fastapi/datamodels/login.py,sha256=Ndj8BR0K0tbmBNyrgAvE4GK_SeY7RTE6cfYB3I3g7iY,1092
|
19
19
|
airflow/providers/fab/auth_manager/api_fastapi/openapi/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
|
20
|
-
airflow/providers/fab/auth_manager/api_fastapi/openapi/v1-generated.yaml,sha256=v5EA4oiuGiZlKf8nHly1lPMtp5yjdxKSC-7IHfJsab4,4098
|
20
|
+
airflow/providers/fab/auth_manager/api_fastapi/openapi/v1-fab-auth-manager-generated.yaml,sha256=v5EA4oiuGiZlKf8nHly1lPMtp5yjdxKSC-7IHfJsab4,4098
|
21
21
|
airflow/providers/fab/auth_manager/api_fastapi/routes/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
|
22
22
|
airflow/providers/fab/auth_manager/api_fastapi/routes/login.py,sha256=Vr2AO2Dlt2QoEYyal5SmzbBO72U-mq-dbPE-b2ODQ74,2131
|
23
23
|
airflow/providers/fab/auth_manager/api_fastapi/services/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
|
24
|
-
airflow/providers/fab/auth_manager/api_fastapi/services/login.py,sha256=
|
24
|
+
airflow/providers/fab/auth_manager/api_fastapi/services/login.py,sha256=Waw3Gal4uHkehxgSprmyTUofZYz5H8X8tqddecmwVxo,2465
|
25
25
|
airflow/providers/fab/auth_manager/cli_commands/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
|
26
26
|
airflow/providers/fab/auth_manager/cli_commands/db_command.py,sha256=SeNg8giLDUX5aniF2XFM7txVQ6N2dDV6BRZnV-UzWX8,2151
|
27
27
|
airflow/providers/fab/auth_manager/cli_commands/definition.py,sha256=XIAPqoHwkFHshfbj6yGIs7xUrR-uSE1F7V71n44PttA,11483
|
@@ -33,13 +33,13 @@ airflow/providers/fab/auth_manager/models/__init__.py,sha256=Maaid2MjfR3wswj5Ssb
|
|
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
|
35
35
|
airflow/providers/fab/auth_manager/openapi/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
|
36
|
-
airflow/providers/fab/auth_manager/openapi/v1.yaml,sha256=9sAaTNXVBYfHKILn6fRKfROC3hAattsQu4wwG22nO64,20346
|
36
|
+
airflow/providers/fab/auth_manager/openapi/v1-flask-api.yaml,sha256=9sAaTNXVBYfHKILn6fRKfROC3hAattsQu4wwG22nO64,20346
|
37
37
|
airflow/providers/fab/auth_manager/schemas/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
|
38
38
|
airflow/providers/fab/auth_manager/schemas/role_and_permission_schema.py,sha256=aDB0naczyEsGYaF3U3djF-Ui6lxPdgWHvgcwjyJn_X8,2526
|
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=
|
42
|
+
airflow/providers/fab/auth_manager/security_manager/override.py,sha256=geYJDV4pjlqinNl6gUJqTYbkRm6PP5VbGMvN500kDBY,97105
|
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
|
@@ -55,15 +55,15 @@ airflow/providers/fab/migrations/versions/__init__.py,sha256=9hdXHABrVpkbpjZgUft
|
|
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
57
|
airflow/providers/fab/www/app.py,sha256=RhUCSxS4Sivwu7aeLOqIVADszBh9uWOs1oni99FY9Rk,4951
|
58
|
-
airflow/providers/fab/www/auth.py,sha256=
|
58
|
+
airflow/providers/fab/www/auth.py,sha256=1oLlJybsjOqxhcmD_Rbtcg5nQySmfArJnIw7jq09V18,12615
|
59
59
|
airflow/providers/fab/www/constants.py,sha256=VUg48B-EZAUZ2IIdmL31Iv0lRlP0yLNPNTufB7rsWr0,1352
|
60
|
-
airflow/providers/fab/www/package-lock.json,sha256=
|
61
|
-
airflow/providers/fab/www/package.json,sha256=
|
60
|
+
airflow/providers/fab/www/package-lock.json,sha256=wfidNP3hYpGzqGMWaW-tQaWfI_h_dhAIeHlteba76Gc,328250
|
61
|
+
airflow/providers/fab/www/package.json,sha256=5EKDjPXa64LlZjb1dwZfJsjD6irMThGh4ln2NLBs68g,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
65
|
airflow/providers/fab/www/utils.py,sha256=9D_ESPV6ar5GOenD2Jm-lS7pW78yzxCWC5N-3kgMem8,9982
|
66
|
-
airflow/providers/fab/www/views.py,sha256
|
66
|
+
airflow/providers/fab/www/views.py,sha256=dB7kPNxFhT6nwrPuRbp5Wwebuc0DJemmO2oiCFR_oRI,4746
|
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,12 +71,12 @@ 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=
|
75
|
-
airflow/providers/fab/www/extensions/init_jinja_globals.py,sha256=
|
74
|
+
airflow/providers/fab/www/extensions/init_appbuilder.py,sha256=G3c40QYqdtP8-BeqPONh53RWr9d2gSNxL1d6rUVv2CE,22154
|
75
|
+
airflow/providers/fab/www/extensions/init_jinja_globals.py,sha256=d3y5bsnFvHSf-LldXMaRsPu3nN6Bkyuc1uyMgnDGnV8,2613
|
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
78
|
airflow/providers/fab/www/extensions/init_session.py,sha256=y8zUVSngawNhkO4egEkhrQ_2v03wCeDjm8LUaNY0sZ8,2637
|
79
|
-
airflow/providers/fab/www/extensions/init_views.py,sha256=
|
79
|
+
airflow/providers/fab/www/extensions/init_views.py,sha256=4zFnPwFhO3wfqnDDvsRgeU5jjy2JImgMia-flg6BZgQ,6411
|
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
|
82
82
|
airflow/providers/fab/www/static/sort_asc.png,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -112,14 +112,16 @@ airflow/providers/fab/www/static/js/datetime_utils.js,sha256=Nq8gP1tRy-ztodREw8Q
|
|
112
112
|
airflow/providers/fab/www/static/js/main.js,sha256=MUyTstwNQiN9GNT7yHBSt2Oh4Cr3M173CUFSXX6cI2g,9194
|
113
113
|
airflow/providers/fab/www/templates/airflow/_messages.html,sha256=DKKiboYjmRqPRIP3BpUYsIxK5xKGpZy2yRk67lcAW5Y,1147
|
114
114
|
airflow/providers/fab/www/templates/airflow/error.html,sha256=AEXwcesuTXQdzfjJrTr2hX2L1Oxtr-FgehWV9dCBCBA,1327
|
115
|
-
airflow/providers/fab/www/templates/airflow/main.html,sha256=
|
115
|
+
airflow/providers/fab/www/templates/airflow/main.html,sha256=jhaCcpxLveCHyFeOOJOsp2AQEUIOsfO1x4TVAvL3vGE,2522
|
116
116
|
airflow/providers/fab/www/templates/airflow/traceback.html,sha256=jyHjbK9V6RccA4P5ml4p1E6o8w1pZ8-aGa0NXp4Lvtk,2273
|
117
117
|
airflow/providers/fab/www/templates/appbuilder/flash.html,sha256=CfY_E0Bq_vSnWI58UqlcchTfLFfnr-mxRLdS_hwr_Ps,1408
|
118
118
|
airflow/providers/fab/www/templates/appbuilder/index.html,sha256=ZaZsNdD8fCENqdnZMbjGbCaK5R9WNFRW5vk8y43pCsk,810
|
119
|
-
airflow/providers/fab/www/templates/appbuilder/navbar.html,sha256=
|
119
|
+
airflow/providers/fab/www/templates/appbuilder/navbar.html,sha256=1Q8u90aONY_PKTBtApwyp0EeudSsJyysW2UYo9Fa1cc,10215
|
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.
|
123
|
-
apache_airflow_providers_fab-2.0.
|
124
|
-
apache_airflow_providers_fab-2.0.
|
125
|
-
apache_airflow_providers_fab-2.0.
|
122
|
+
apache_airflow_providers_fab-2.0.1.dist-info/entry_points.txt,sha256=m05kASp7vFi0ZmQ--CFp7GeJpPL7UT2RQF8EEP5XRX8,99
|
123
|
+
apache_airflow_providers_fab-2.0.1.dist-info/licenses/3rd-party-licenses/LICENSES-ui.txt,sha256=C9vBr_KiUhI3jjCS754n_SPi-ylD8SiJgXlOWuNOO98,3688
|
124
|
+
apache_airflow_providers_fab-2.0.1.dist-info/licenses/NOTICE,sha256=GrKwLaFNGIn3J86ucRfNIExRSCD6-7nty84-84F2ad4,448
|
125
|
+
apache_airflow_providers_fab-2.0.1.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
|
126
|
+
apache_airflow_providers_fab-2.0.1.dist-info/METADATA,sha256=_jTQcpatF_yMMbTIlLTkWr3fvcH0jx_1TTkDyv4uNnI,6147
|
127
|
+
apache_airflow_providers_fab-2.0.1.dist-info/RECORD,,
|
@@ -0,0 +1,87 @@
|
|
1
|
+
Apache Airflow
|
2
|
+
Copyright 2016-2025 The Apache Software Foundation
|
3
|
+
|
4
|
+
This product includes software developed at The Apache Software
|
5
|
+
Foundation (http://www.apache.org/).
|
6
|
+
|
7
|
+
=======================================================================
|
8
|
+
css-loader|5.2.7:
|
9
|
+
-----
|
10
|
+
MIT
|
11
|
+
Copyright JS Foundation and other contributors
|
12
|
+
|
13
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
14
|
+
a copy of this software and associated documentation files (the
|
15
|
+
'Software'), to deal in the Software without restriction, including
|
16
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
17
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
18
|
+
permit persons to whom the Software is furnished to do so, subject to
|
19
|
+
the following conditions:
|
20
|
+
|
21
|
+
The above copyright notice and this permission notice shall be
|
22
|
+
included in all copies or substantial portions of the Software.
|
23
|
+
|
24
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
25
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
26
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
27
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
28
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
29
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
30
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
31
|
+
|
32
|
+
webpack-contrib/css-loader
|
33
|
+
|
34
|
+
|
35
|
+
moment|2.30.1:
|
36
|
+
-----
|
37
|
+
MIT
|
38
|
+
Copyright (c) JS Foundation and other contributors
|
39
|
+
|
40
|
+
Permission is hereby granted, free of charge, to any person
|
41
|
+
obtaining a copy of this software and associated documentation
|
42
|
+
files (the "Software"), to deal in the Software without
|
43
|
+
restriction, including without limitation the rights to use,
|
44
|
+
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
45
|
+
copies of the Software, and to permit persons to whom the
|
46
|
+
Software is furnished to do so, subject to the following
|
47
|
+
conditions:
|
48
|
+
|
49
|
+
The above copyright notice and this permission notice shall be
|
50
|
+
included in all copies or substantial portions of the Software.
|
51
|
+
|
52
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
53
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
54
|
+
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
55
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
56
|
+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
57
|
+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
58
|
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
59
|
+
OTHER DEALINGS IN THE SOFTWARE.
|
60
|
+
|
61
|
+
https://github.com/moment/moment.git
|
62
|
+
|
63
|
+
|
64
|
+
moment-timezone|0.5.46:
|
65
|
+
-----
|
66
|
+
MIT
|
67
|
+
The MIT License (MIT)
|
68
|
+
|
69
|
+
Copyright (c) JS Foundation and other contributors
|
70
|
+
|
71
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
72
|
+
this software and associated documentation files (the "Software"), to deal in
|
73
|
+
the Software without restriction, including without limitation the rights to
|
74
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
75
|
+
the Software, and to permit persons to whom the Software is furnished to do so,
|
76
|
+
subject to the following conditions:
|
77
|
+
|
78
|
+
The above copyright notice and this permission notice shall be included in all
|
79
|
+
copies or substantial portions of the Software.
|
80
|
+
|
81
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
82
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
83
|
+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
84
|
+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
85
|
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
86
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
87
|
+
https://github.com/moment/moment-timezone.git
|
@@ -0,0 +1,14 @@
|
|
1
|
+
Apache Airflow
|
2
|
+
Copyright 2016-2025 The Apache Software Foundation
|
3
|
+
|
4
|
+
This product includes software developed at The Apache Software
|
5
|
+
Foundation (http://www.apache.org/).
|
6
|
+
|
7
|
+
=======================================================================
|
8
|
+
|
9
|
+
Flask App Builder:
|
10
|
+
-----
|
11
|
+
This product contains a modified portion of 'Flask App Builder' developed by Daniel Vaz Gaspar.
|
12
|
+
(https://github.com/dpgaspar/Flask-AppBuilder).
|
13
|
+
|
14
|
+
* Copyright 2013, Daniel Vaz Gaspar
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|