apache-airflow-providers-fab 1.5.3rc1__py3-none-any.whl → 2.0.0__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.
Files changed (105) hide show
  1. airflow/providers/fab/LICENSE +0 -52
  2. airflow/providers/fab/__init__.py +3 -3
  3. airflow/providers/fab/auth_manager/api/auth/backend/basic_auth.py +4 -5
  4. airflow/providers/fab/auth_manager/api/auth/backend/kerberos_auth.py +5 -5
  5. airflow/providers/fab/auth_manager/api/auth/backend/session.py +2 -2
  6. airflow/providers/fab/auth_manager/api_endpoints/role_and_permission_endpoint.py +15 -15
  7. airflow/providers/fab/auth_manager/api_endpoints/user_endpoint.py +13 -14
  8. airflow/providers/fab/auth_manager/api_fastapi/__init__.py +16 -0
  9. airflow/providers/fab/auth_manager/api_fastapi/datamodels/__init__.py +16 -0
  10. airflow/providers/fab/auth_manager/api_fastapi/datamodels/login.py +32 -0
  11. airflow/providers/fab/auth_manager/api_fastapi/openapi/__init__.py +16 -0
  12. airflow/providers/fab/auth_manager/api_fastapi/openapi/v1-generated.yaml +153 -0
  13. airflow/providers/fab/auth_manager/api_fastapi/routes/__init__.py +16 -0
  14. airflow/providers/fab/auth_manager/api_fastapi/routes/login.py +51 -0
  15. airflow/providers/fab/auth_manager/api_fastapi/services/__init__.py +16 -0
  16. airflow/providers/fab/auth_manager/api_fastapi/services/login.py +58 -0
  17. airflow/providers/fab/auth_manager/cli_commands/db_command.py +1 -3
  18. airflow/providers/fab/auth_manager/cli_commands/user_command.py +2 -2
  19. airflow/providers/fab/auth_manager/cli_commands/utils.py +12 -11
  20. airflow/providers/fab/auth_manager/fab_auth_manager.py +238 -126
  21. airflow/providers/fab/auth_manager/models/__init__.py +1 -1
  22. airflow/providers/fab/auth_manager/models/anonymous_user.py +1 -1
  23. airflow/providers/fab/auth_manager/models/db.py +22 -5
  24. airflow/providers/fab/auth_manager/openapi/v1.yaml +9 -0
  25. airflow/providers/fab/auth_manager/schemas/user_schema.py +1 -1
  26. airflow/providers/fab/auth_manager/security_manager/override.py +186 -655
  27. airflow/providers/fab/auth_manager/views/permissions.py +1 -1
  28. airflow/providers/fab/auth_manager/views/roles_list.py +1 -1
  29. airflow/providers/fab/auth_manager/views/user.py +1 -1
  30. airflow/providers/fab/auth_manager/views/user_edit.py +1 -1
  31. airflow/providers/fab/auth_manager/views/user_stats.py +1 -1
  32. airflow/providers/fab/get_provider_info.py +29 -34
  33. airflow/providers/fab/www/airflow_flask_app.py +31 -0
  34. airflow/providers/fab/www/api_connexion/__init__.py +17 -0
  35. airflow/providers/fab/www/api_connexion/exceptions.py +197 -0
  36. airflow/providers/fab/www/api_connexion/parameters.py +131 -0
  37. airflow/providers/fab/www/api_connexion/security.py +84 -0
  38. airflow/providers/fab/www/api_connexion/types.py +30 -0
  39. airflow/providers/fab/www/app.py +120 -0
  40. airflow/providers/fab/www/auth.py +350 -0
  41. airflow/providers/fab/www/constants.py +28 -0
  42. airflow/providers/fab/www/extensions/__init__.py +16 -0
  43. airflow/providers/fab/www/extensions/init_appbuilder.py +606 -0
  44. airflow/providers/fab/www/extensions/init_jinja_globals.py +82 -0
  45. airflow/providers/fab/www/extensions/init_manifest_files.py +61 -0
  46. airflow/providers/fab/www/extensions/init_security.py +61 -0
  47. airflow/providers/fab/www/extensions/init_session.py +64 -0
  48. airflow/providers/fab/www/extensions/init_views.py +177 -0
  49. airflow/providers/fab/www/package-lock.json +8939 -0
  50. airflow/providers/fab/www/package.json +77 -0
  51. airflow/providers/fab/www/security/__init__.py +17 -0
  52. airflow/providers/fab/www/security/permissions.py +126 -0
  53. airflow/providers/fab/www/security_appless.py +44 -0
  54. airflow/providers/fab/www/security_manager.py +122 -0
  55. airflow/providers/fab/www/session.py +41 -0
  56. airflow/providers/fab/www/static/css/bootstrap-theme.css +6215 -0
  57. airflow/providers/fab/www/static/css/flash.css +57 -0
  58. airflow/providers/fab/www/static/css/loading-dots.css +60 -0
  59. airflow/providers/fab/www/static/css/main.css +676 -0
  60. airflow/providers/fab/www/static/css/material-icons.css +84 -0
  61. airflow/providers/fab/www/static/dist/48f0ea180c40270a5b05.png +1 -0
  62. airflow/providers/fab/www/static/dist/649c0b07771e68fafdeb.png +1 -0
  63. airflow/providers/fab/www/static/dist/airflowDefaultTheme.feec4a4075c2f3d6ae01.css +33 -0
  64. airflow/providers/fab/www/static/dist/airflowDefaultTheme.feec4a4075c2f3d6ae01.js +1 -0
  65. airflow/providers/fab/www/static/dist/f7490d556a6c42e49ba4.png +1 -0
  66. airflow/providers/fab/www/static/dist/flash.137b30cff85b5588e661.css +18 -0
  67. airflow/providers/fab/www/static/dist/flash.137b30cff85b5588e661.js +1 -0
  68. airflow/providers/fab/www/static/dist/jquery-ui.min.css +5 -0
  69. airflow/providers/fab/www/static/dist/jquery-ui.min.js +2 -0
  70. airflow/providers/fab/www/static/dist/jquery-ui.min.js.LICENSE.txt +4 -0
  71. airflow/providers/fab/www/static/dist/loadingDots.48ab7d5b04e66f2686b0.css +18 -0
  72. airflow/providers/fab/www/static/dist/loadingDots.48ab7d5b04e66f2686b0.js +1 -0
  73. airflow/providers/fab/www/static/dist/main.edb2d40dfbbc537916e3.css +18 -0
  74. airflow/providers/fab/www/static/dist/main.edb2d40dfbbc537916e3.js +2 -0
  75. airflow/providers/fab/www/static/dist/main.edb2d40dfbbc537916e3.js.LICENSE.txt +18 -0
  76. airflow/providers/fab/www/static/dist/manifest.json +20 -0
  77. airflow/providers/fab/www/static/dist/materialIcons.57390fa60d8f61175334.css +18 -0
  78. airflow/providers/fab/www/static/dist/materialIcons.57390fa60d8f61175334.js +1 -0
  79. airflow/providers/fab/www/static/dist/moment.624b1f00ba723d39ce06.js +2 -0
  80. airflow/providers/fab/www/static/dist/moment.624b1f00ba723d39ce06.js.LICENSE.txt +11 -0
  81. airflow/providers/fab/www/static/dist/oss-licenses.json +20 -0
  82. airflow/providers/fab/www/static/js/datetime_utils.js +134 -0
  83. airflow/providers/fab/www/static/js/main.js +324 -0
  84. airflow/providers/fab/www/static/sort_asc.png +0 -0
  85. airflow/providers/fab/www/static/sort_both.png +0 -0
  86. airflow/providers/fab/www/static/sort_desc.png +0 -0
  87. airflow/providers/fab/www/templates/airflow/_messages.html +30 -0
  88. airflow/providers/fab/www/templates/airflow/error.html +35 -0
  89. airflow/providers/fab/www/templates/airflow/main.html +78 -0
  90. airflow/providers/fab/www/templates/airflow/traceback.html +53 -0
  91. airflow/providers/fab/www/templates/appbuilder/flash.html +34 -0
  92. airflow/providers/fab/www/templates/appbuilder/index.html +20 -0
  93. airflow/providers/fab/www/templates/appbuilder/navbar.html +60 -0
  94. airflow/providers/fab/www/templates/appbuilder/navbar_menu.html +60 -0
  95. airflow/providers/fab/www/templates/appbuilder/navbar_right.html +64 -0
  96. airflow/providers/fab/www/utils.py +288 -0
  97. airflow/providers/fab/www/views.py +129 -0
  98. airflow/providers/fab/www/webpack.config.js +213 -0
  99. {apache_airflow_providers_fab-1.5.3rc1.dist-info → apache_airflow_providers_fab-2.0.0.dist-info}/METADATA +30 -38
  100. apache_airflow_providers_fab-2.0.0.dist-info/RECORD +125 -0
  101. {apache_airflow_providers_fab-1.5.3rc1.dist-info → apache_airflow_providers_fab-2.0.0.dist-info}/WHEEL +1 -1
  102. airflow/providers/fab/auth_manager/decorators/auth.py +0 -126
  103. apache_airflow_providers_fab-1.5.3rc1.dist-info/RECORD +0 -51
  104. /airflow/providers/fab/{auth_manager/decorators → www}/__init__.py +0 -0
  105. {apache_airflow_providers_fab-1.5.3rc1.dist-info → apache_airflow_providers_fab-2.0.0.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,129 @@
1
+ #
2
+ # Licensed to the Apache Software Foundation (ASF) under one
3
+ # or more contributor license agreements. See the NOTICE file
4
+ # distributed with this work for additional information
5
+ # regarding copyright ownership. The ASF licenses this file
6
+ # to you under the Apache License, Version 2.0 (the
7
+ # "License"); you may not use this file except in compliance
8
+ # with the License. You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing,
13
+ # software distributed under the License is distributed on an
14
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
+ # KIND, either express or implied. See the License for the
16
+ # specific language governing permissions and limitations
17
+ # under the License.
18
+ from __future__ import annotations
19
+
20
+ from urllib.parse import unquote, urljoin, urlsplit
21
+
22
+ from flask import (
23
+ g,
24
+ make_response,
25
+ redirect,
26
+ render_template,
27
+ request,
28
+ url_for,
29
+ )
30
+ from flask_appbuilder import IndexView, expose
31
+
32
+ from airflow.api_fastapi.app import get_auth_manager
33
+ from airflow.api_fastapi.auth.managers.base_auth_manager import COOKIE_NAME_JWT_TOKEN
34
+ from airflow.configuration import conf
35
+
36
+ # Following the release of https://github.com/python/cpython/issues/102153 in Python 3.9.17 on
37
+ # June 6, 2023, we are adding extra sanitization of the urls passed to get_safe_url method to make it works
38
+ # the same way regardless if the user uses latest Python patchlevel versions or not. This also follows
39
+ # a recommended solution by the Python core team.
40
+ #
41
+ # From: https://github.com/python/cpython/commit/d28bafa2d3e424b6fdcfd7ae7cde8e71d7177369
42
+ #
43
+ # We recommend that users of these APIs where the values may be used anywhere
44
+ # with security implications code defensively. Do some verification within your
45
+ # code before trusting a returned component part. Does that ``scheme`` make
46
+ # sense? Is that a sensible ``path``? Is there anything strange about that
47
+ # ``hostname``? etc.
48
+ #
49
+ # C0 control and space to be stripped per WHATWG spec.
50
+ # == "".join([chr(i) for i in range(0, 0x20 + 1)])
51
+ _WHATWG_C0_CONTROL_OR_SPACE = (
52
+ "\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c"
53
+ "\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f "
54
+ )
55
+
56
+
57
+ class FabIndexView(IndexView):
58
+ """
59
+ A simple view that inherits from FAB index view.
60
+
61
+ The only goal of this view is to redirect the user to the Airflow 3 UI index page if the user is
62
+ authenticated. It is impossible to redirect the user directly to the Airflow 3 UI index page before
63
+ redirecting them to this page because FAB itself defines the logic redirection and does not allow external
64
+ redirect.
65
+ """
66
+
67
+ @expose("/")
68
+ def index(self):
69
+ if g.user is not None and g.user.is_authenticated:
70
+ token = get_auth_manager().generate_jwt(g.user)
71
+ response = make_response(redirect(f"{conf.get('api', 'base_url')}", code=302))
72
+
73
+ secure = conf.has_option("api", "ssl_cert")
74
+ response.set_cookie(COOKIE_NAME_JWT_TOKEN, token, secure=secure)
75
+
76
+ return response
77
+ else:
78
+ return redirect(conf.get("api", "base_url", fallback="/"), code=302)
79
+
80
+
81
+ def show_traceback(error):
82
+ """Show Traceback for a given error."""
83
+ return render_template("airflow/traceback.html"), 500
84
+
85
+
86
+ def not_found(error):
87
+ """Show Not Found on screen for any error in the Webserver."""
88
+ return (
89
+ render_template(
90
+ "airflow/error.html",
91
+ hostname="",
92
+ status_code=404,
93
+ error_message="Page cannot be found.",
94
+ ),
95
+ 404,
96
+ )
97
+
98
+
99
+ def get_safe_url(url):
100
+ """Given a user-supplied URL, ensure it points to our web server."""
101
+ if not url:
102
+ return url_for("FabIndexView.index")
103
+
104
+ # If the url contains semicolon, redirect it to homepage to avoid
105
+ # potential XSS. (Similar to https://github.com/python/cpython/pull/24297/files (bpo-42967))
106
+ if ";" in unquote(url):
107
+ return url_for("FabIndexView.index")
108
+
109
+ url = url.lstrip(_WHATWG_C0_CONTROL_OR_SPACE)
110
+
111
+ host_url = urlsplit(request.host_url)
112
+ redirect_url = urlsplit(urljoin(request.host_url, url))
113
+ if not (redirect_url.scheme in ("http", "https") and host_url.netloc == redirect_url.netloc):
114
+ return url_for("FabIndexView.index")
115
+
116
+ # This will ensure we only redirect to the right scheme/netloc
117
+ return redirect_url.geturl()
118
+
119
+
120
+ def method_not_allowed(error):
121
+ """Show Method Not Allowed on screen for any error in the Webserver."""
122
+ return (
123
+ render_template(
124
+ "airflow/error.html",
125
+ status_code=405,
126
+ error_message="Received an invalid request.",
127
+ ),
128
+ 405,
129
+ )
@@ -0,0 +1,213 @@
1
+ /*!
2
+ * Licensed to the Apache Software Foundation (ASF) under one
3
+ * or more contributor license agreements. See the NOTICE file
4
+ * distributed with this work for additional information
5
+ * regarding copyright ownership. The ASF licenses this file
6
+ * to you under the Apache License, Version 2.0 (the
7
+ * "License"); you may not use this file except in compliance
8
+ * with the License. You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing,
13
+ * software distributed under the License is distributed on an
14
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
+ * KIND, either express or implied. See the License for the
16
+ * specific language governing permissions and limitations
17
+ * under the License.
18
+ */
19
+
20
+ const webpack = require("webpack");
21
+ const path = require("path");
22
+ const { WebpackManifestPlugin } = require("webpack-manifest-plugin");
23
+ const cwplg = require("clean-webpack-plugin");
24
+ const CopyWebpackPlugin = require("copy-webpack-plugin");
25
+ const MiniCssExtractPlugin = require("mini-css-extract-plugin");
26
+ const MomentLocalesPlugin = require("moment-locales-webpack-plugin");
27
+ const CssMinimizerPlugin = require("css-minimizer-webpack-plugin");
28
+ const LicensePlugin = require("webpack-license-plugin");
29
+ const TerserPlugin = require("terser-webpack-plugin");
30
+
31
+ // Input Directory (airflow/www)
32
+ // noinspection JSUnresolvedVariable
33
+ const CSS_DIR = path.resolve(__dirname, "./static/css");
34
+ const JS_DIR = path.resolve(__dirname, "./static/js");
35
+
36
+ // Output Directory (airflow/www/static/dist)
37
+ // noinspection JSUnresolvedVariable
38
+ const BUILD_DIR = path.resolve(__dirname, "./static/dist");
39
+
40
+ // Convert licenses json into a standard format for LICENSES.txt
41
+ const formatLicenses = (packages) => {
42
+ let text = `Apache Airflow
43
+ Copyright 2016-2023 The Apache Software Foundation
44
+
45
+ This product includes software developed at The Apache Software
46
+ Foundation (http://www.apache.org/).
47
+
48
+ =======================================================================
49
+ `;
50
+ packages.forEach((p) => {
51
+ text += `${p.name}|${p.version}:\n-----\n${p.license}\n${
52
+ p.licenseText || p.author
53
+ }\n${p.repository || ""}\n\n\n`;
54
+ });
55
+ return text;
56
+ };
57
+
58
+ const config = {
59
+ entry: {
60
+ airflowDefaultTheme: `${CSS_DIR}/bootstrap-theme.css`,
61
+ flash: `${CSS_DIR}/flash.css`,
62
+ loadingDots: `${CSS_DIR}/loading-dots.css`,
63
+ main: [`${CSS_DIR}/main.css`, `${JS_DIR}/main.js`],
64
+ materialIcons: `${CSS_DIR}/material-icons.css`,
65
+ moment: "moment-timezone",
66
+ },
67
+ output: {
68
+ path: BUILD_DIR,
69
+ filename: "[name].[chunkhash].js",
70
+ chunkFilename: "[name].[chunkhash].js",
71
+ library: ["Airflow", "[name]"],
72
+ libraryTarget: "umd",
73
+ publicPath: "",
74
+ },
75
+ resolve: {
76
+ alias: {
77
+ // Be sure to update aliases in jest.config.js and tsconfig.json
78
+ src: path.resolve(__dirname, "static/js"),
79
+ },
80
+ extensions: [".js", ".css"],
81
+ },
82
+ module: {
83
+ rules: [
84
+ {
85
+ test: /\.(js)$/,
86
+ exclude: /node_modules/,
87
+ use: [
88
+ {
89
+ loader: "babel-loader",
90
+ },
91
+ ],
92
+ },
93
+ // Extract css files
94
+ {
95
+ test: /\.css$/,
96
+ include: CSS_DIR,
97
+ exclude: /node_modules/,
98
+ use: [
99
+ {
100
+ loader: MiniCssExtractPlugin.loader,
101
+ options: {
102
+ esModule: true,
103
+ },
104
+ },
105
+ "css-loader",
106
+ ],
107
+ },
108
+ // Extract css files
109
+ {
110
+ test: /\.css$/,
111
+ exclude: CSS_DIR,
112
+ include: /node_modules/,
113
+ use: ["css-loader"],
114
+ },
115
+ /* for css linking images */
116
+ {
117
+ test: /\.(png|jpg|gif)$/i,
118
+ use: [
119
+ {
120
+ loader: "url-loader",
121
+ options: {
122
+ limit: 100000,
123
+ },
124
+ },
125
+ ],
126
+ },
127
+ /* for fonts */
128
+ {
129
+ test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/,
130
+ use: [
131
+ {
132
+ loader: "url-loader",
133
+ options: {
134
+ limit: 100000,
135
+ mimetype: "application/font-woff",
136
+ },
137
+ },
138
+ ],
139
+ },
140
+ {
141
+ test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
142
+ use: [
143
+ {
144
+ loader: "file-loader",
145
+ },
146
+ ],
147
+ },
148
+ ],
149
+ },
150
+ plugins: [
151
+ new WebpackManifestPlugin({
152
+ // d3-tip is named index.js in its dist folder which was confusing the manifest
153
+ map: (file) =>
154
+ file.path === "d3-tip.js" ? { ...file, name: "d3-tip.js" } : file,
155
+ }),
156
+ new cwplg.CleanWebpackPlugin({
157
+ verbose: true,
158
+ }),
159
+ new MiniCssExtractPlugin({
160
+ filename: "[name].[chunkhash].css",
161
+ }),
162
+
163
+ // MomentJS loads all the locale, making it a huge JS file.
164
+ // This will ignore the locales from momentJS
165
+ new MomentLocalesPlugin(),
166
+
167
+ new webpack.DefinePlugin({
168
+ "process.env": {
169
+ NODE_ENV: JSON.stringify(process.env.NODE_ENV),
170
+ },
171
+ }),
172
+ // Since we have all the dependencies separated from hard-coded JS within HTML,
173
+ // this seems like an efficient solution for now. Will update that once
174
+ // we'll have the dependencies imported within the custom JS
175
+ new CopyWebpackPlugin({
176
+ patterns: [
177
+ {
178
+ from: "node_modules/jquery-ui/dist/jquery-ui.min.js",
179
+ to: "jquery-ui.min.js",
180
+ },
181
+ {
182
+ from: "node_modules/jquery-ui/dist/themes/base/jquery-ui.min.css",
183
+ to: "jquery-ui.min.css",
184
+ },
185
+ ],
186
+ }),
187
+ new LicensePlugin({
188
+ additionalFiles: {
189
+ "../../../../3rd-party-licenses/LICENSES-ui.txt": formatLicenses,
190
+ },
191
+ unacceptableLicenseTest: (licenseIdentifier) =>
192
+ [
193
+ "BCL",
194
+ "JSR",
195
+ "ASL",
196
+ "RSAL",
197
+ "SSPL",
198
+ "CPOL",
199
+ "NPL",
200
+ "BSD-4",
201
+ "QPL",
202
+ "GPL",
203
+ "LGPL",
204
+ ].includes(licenseIdentifier),
205
+ }),
206
+ ],
207
+ optimization: {
208
+ minimize: process.env.NODE_ENV === "production",
209
+ minimizer: [new CssMinimizerPlugin({}), new TerserPlugin()],
210
+ },
211
+ };
212
+
213
+ module.exports = config;
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: apache-airflow-providers-fab
3
- Version: 1.5.3rc1
3
+ Version: 2.0.0
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,20 +20,25 @@ 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-providers-common-compat>=1.2.1rc0
24
- Requires-Dist: apache-airflow>=2.9.0rc0
23
+ Requires-Dist: apache-airflow>=3.0.0
24
+ Requires-Dist: apache-airflow-providers-common-compat>=1.2.1
25
+ Requires-Dist: blinker>=1.6.2
26
+ Requires-Dist: flask>=2.2.1,<2.3
25
27
  Requires-Dist: flask-appbuilder==4.5.3
26
28
  Requires-Dist: flask-login>=0.6.2
27
- Requires-Dist: flask>=2.2,<2.3
28
- Requires-Dist: google-re2>=1.0
29
+ Requires-Dist: flask-session>=0.4.0,<0.6
30
+ Requires-Dist: flask-wtf>=1.1.0
31
+ Requires-Dist: connexion[flask]>=2.14.2,<3.0
29
32
  Requires-Dist: jmespath>=0.7.0
33
+ Requires-Dist: werkzeug>=2.2,<4
34
+ Requires-Dist: wtforms>=3.0,<4
30
35
  Requires-Dist: kerberos>=1.3.0 ; extra == "kerberos"
31
36
  Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
32
- Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-fab/1.5.3/changelog.html
33
- Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-fab/1.5.3
37
+ Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-fab/2.0.0/changelog.html
38
+ Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-fab/2.0.0
39
+ Project-URL: Mastodon, https://fosstodon.org/@airflow
34
40
  Project-URL: Slack Chat, https://s.apache.org/airflow-slack
35
41
  Project-URL: Source Code, https://github.com/apache/airflow
36
- Project-URL: Twitter, https://x.com/ApacheAirflow
37
42
  Project-URL: YouTube, https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA/
38
43
  Provides-Extra: kerberos
39
44
 
@@ -55,33 +60,14 @@ Provides-Extra: kerberos
55
60
  specific language governing permissions and limitations
56
61
  under the License.
57
62
 
58
- .. Licensed to the Apache Software Foundation (ASF) under one
59
- or more contributor license agreements. See the NOTICE file
60
- distributed with this work for additional information
61
- regarding copyright ownership. The ASF licenses this file
62
- to you under the Apache License, Version 2.0 (the
63
- "License"); you may not use this file except in compliance
64
- with the License. You may obtain a copy of the License at
65
-
66
- .. http://www.apache.org/licenses/LICENSE-2.0
67
-
68
- .. Unless required by applicable law or agreed to in writing,
69
- software distributed under the License is distributed on an
70
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
71
- KIND, either express or implied. See the License for the
72
- specific language governing permissions and limitations
73
- under the License.
74
-
75
- .. NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
76
- OVERWRITTEN WHEN PREPARING PACKAGES.
77
-
78
- .. IF YOU WANT TO MODIFY TEMPLATE FOR THIS FILE, YOU SHOULD MODIFY THE TEMPLATE
79
- `PROVIDER_README_TEMPLATE.rst.jinja2` IN the `dev/breeze/src/airflow_breeze/templates` DIRECTORY
63
+ .. NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE OVERWRITTEN!
80
64
 
65
+ .. IF YOU WANT TO MODIFY TEMPLATE FOR THIS FILE, YOU SHOULD MODIFY THE TEMPLATE
66
+ ``PROVIDER_README_TEMPLATE.rst.jinja2`` IN the ``dev/breeze/src/airflow_breeze/templates`` DIRECTORY
81
67
 
82
68
  Package ``apache-airflow-providers-fab``
83
69
 
84
- Release: ``1.5.3.rc1``
70
+ Release: ``2.0.0``
85
71
 
86
72
 
87
73
  `Flask App Builder <https://flask-appbuilder.readthedocs.io/>`__
@@ -94,7 +80,7 @@ This is a provider package for ``fab`` provider. All classes for this provider p
94
80
  are in ``airflow.providers.fab`` python package.
95
81
 
96
82
  You can find package information and changelog for the provider
97
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-fab/1.5.3/>`_.
83
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-fab/2.0.0/>`_.
98
84
 
99
85
  Installation
100
86
  ------------
@@ -111,20 +97,25 @@ Requirements
111
97
  ========================================== ==================
112
98
  PIP package Version required
113
99
  ========================================== ==================
114
- ``apache-airflow`` ``>=2.9.0``
100
+ ``apache-airflow`` ``>=3.0.0``
115
101
  ``apache-airflow-providers-common-compat`` ``>=1.2.1``
116
- ``flask`` ``>=2.2,<2.3``
102
+ ``blinker`` ``>=1.6.2``
103
+ ``flask`` ``>=2.2.1,<2.3``
117
104
  ``flask-appbuilder`` ``==4.5.3``
118
105
  ``flask-login`` ``>=0.6.2``
119
- ``google-re2`` ``>=1.0``
106
+ ``flask-session`` ``>=0.4.0,<0.6``
107
+ ``flask-wtf`` ``>=1.1.0``
108
+ ``connexion[flask]`` ``>=2.14.2,<3.0``
120
109
  ``jmespath`` ``>=0.7.0``
110
+ ``werkzeug`` ``>=2.2,<4``
111
+ ``wtforms`` ``>=3.0,<4``
121
112
  ========================================== ==================
122
113
 
123
114
  Cross provider package dependencies
124
115
  -----------------------------------
125
116
 
126
117
  Those are dependencies that might be needed in order to use all the features of the package.
127
- You need to install the specified provider packages in order to use them.
118
+ You need to install the specified providers in order to use them.
128
119
 
129
120
  You can install such cross-provider dependencies when installing from PyPI. For example:
130
121
 
@@ -140,4 +131,5 @@ Dependent package
140
131
  ================================================================================================================== =================
141
132
 
142
133
  The changelog for the provider package can be found in the
143
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/1.5.3/changelog.html>`_.
134
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/2.0.0/changelog.html>`_.
135
+
@@ -0,0 +1,125 @@
1
+ airflow/providers/fab/LICENSE,sha256=gXPVwptPlW1TJ4HSuG5OMPg-a3h43OGMkZRR1rpwfJA,10850
2
+ airflow/providers/fab/__init__.py,sha256=bBthzGfg08N53PgXbtsOBKt1Xr0sH_NhfEGCL-Oeons,1490
3
+ airflow/providers/fab/alembic.ini,sha256=_1SvObfjMAkuD7DN5VR2S6Rd7_F81pORZT-w7GJldIA,4461
4
+ airflow/providers/fab/get_provider_info.py,sha256=I1fRKp4u-vUmSjoVyFmdD_spXfWhmdIqtlnWe2F5m40,5149
5
+ airflow/providers/fab/auth_manager/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
6
+ airflow/providers/fab/auth_manager/fab_auth_manager.py,sha256=4gwd5En0e0fviMGdd4BphN-S1cgykzk2RLcbsc8IOns,25843
7
+ airflow/providers/fab/auth_manager/api/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
8
+ airflow/providers/fab/auth_manager/api/auth/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
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=TFvx99qOS-HcHXvDkMlpiauttuHMG3veZYT4xH3LbXs,2510
11
+ airflow/providers/fab/auth_manager/api/auth/backend/kerberos_auth.py,sha256=60ukPvKf-o7emmKS0A_l2cMToGRWEB_s4k4IOu64dFM,5005
12
+ airflow/providers/fab/auth_manager/api/auth/backend/session.py,sha256=aNDrYNidwr99NWgrl5WA6TY5CbHYif6chVRUPgYVOWc,1504
13
+ airflow/providers/fab/auth_manager/api_endpoints/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
14
+ airflow/providers/fab/auth_manager/api_endpoints/role_and_permission_endpoint.py,sha256=CIBNyj3zMK1NjHCv6C3KB48foRKCBMozIUxAW5R5YfQ,7607
15
+ airflow/providers/fab/auth_manager/api_endpoints/user_endpoint.py,sha256=TZywqf9rQBwkjvzsEwIm5TPstfOtiRwl4XKTjAVWzrk,8445
16
+ airflow/providers/fab/auth_manager/api_fastapi/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
17
+ airflow/providers/fab/auth_manager/api_fastapi/datamodels/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
18
+ airflow/providers/fab/auth_manager/api_fastapi/datamodels/login.py,sha256=Ndj8BR0K0tbmBNyrgAvE4GK_SeY7RTE6cfYB3I3g7iY,1092
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
21
+ airflow/providers/fab/auth_manager/api_fastapi/routes/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
22
+ airflow/providers/fab/auth_manager/api_fastapi/routes/login.py,sha256=Vr2AO2Dlt2QoEYyal5SmzbBO72U-mq-dbPE-b2ODQ74,2131
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=lG6L3PvpPtT8y9RYNCzaAEHe6vnlOdfkap5T_eS0Z8Y,2483
25
+ airflow/providers/fab/auth_manager/cli_commands/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
26
+ airflow/providers/fab/auth_manager/cli_commands/db_command.py,sha256=SeNg8giLDUX5aniF2XFM7txVQ6N2dDV6BRZnV-UzWX8,2151
27
+ airflow/providers/fab/auth_manager/cli_commands/definition.py,sha256=XIAPqoHwkFHshfbj6yGIs7xUrR-uSE1F7V71n44PttA,11483
28
+ airflow/providers/fab/auth_manager/cli_commands/role_command.py,sha256=4w1tHTR5gBbsymeqGIJ4Rs8CmGdw0l49y58pfI0DB_s,9098
29
+ airflow/providers/fab/auth_manager/cli_commands/sync_perm_command.py,sha256=VpW-rWhgHAL_ReU66D_BrsxlXQN4okfxzj6dyE5IfwA,1663
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=4MK6IYGtI8CtYPZSgj25IJL--42_gGUmQ72m47MYq7M,2921
32
+ airflow/providers/fab/auth_manager/models/__init__.py,sha256=Maaid2MjfR3wswj5SsbfBc-VEqgKbbCgny1JLk5Aqaw,9255
33
+ airflow/providers/fab/auth_manager/models/anonymous_user.py,sha256=mGLV26biw5db6hymFZ6qL7oCyVNaLduwDWS0kYuMZDg,1886
34
+ airflow/providers/fab/auth_manager/models/db.py,sha256=zKwih8X_nh82jbNfiiucn6Spxshp5Vz_JNqTdCCJ0Ws,4973
35
+ airflow/providers/fab/auth_manager/openapi/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
36
+ airflow/providers/fab/auth_manager/openapi/v1.yaml,sha256=9sAaTNXVBYfHKILn6fRKfROC3hAattsQu4wwG22nO64,20346
37
+ airflow/providers/fab/auth_manager/schemas/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
38
+ airflow/providers/fab/auth_manager/schemas/role_and_permission_schema.py,sha256=aDB0naczyEsGYaF3U3djF-Ui6lxPdgWHvgcwjyJn_X8,2526
39
+ airflow/providers/fab/auth_manager/schemas/user_schema.py,sha256=MLnZotQqAg_BFvJunrSwbwur5CaTjk1ww3eCI3aPT6Y,2401
40
+ airflow/providers/fab/auth_manager/security_manager/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
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=lNmjFrkjL0tvnYugie4VZ42pUA6jW4RsGoCRzXNlukA,97281
43
+ airflow/providers/fab/auth_manager/views/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
44
+ airflow/providers/fab/auth_manager/views/permissions.py,sha256=CT6jMCDHtirs0Qe4Penb6VwQq1yZeZ1lOLZITIlVqm4,2904
45
+ airflow/providers/fab/auth_manager/views/roles_list.py,sha256=DwJ1iOCfpbxsWTEFWjW5_Jo3fmrZwxj1rPeflTaSg7A,1512
46
+ airflow/providers/fab/auth_manager/views/user.py,sha256=JmeBUmTleJSvvQmQdNyESx3-FzBq95vPHiWQ8W6jzaI,6013
47
+ airflow/providers/fab/auth_manager/views/user_edit.py,sha256=79RILFOlmithdKCBYDUlPT0Iq_uffZnCZgGBiD4lz4E,2158
48
+ airflow/providers/fab/auth_manager/views/user_stats.py,sha256=hs-bYvKTxU1-ohryLQgczMT0peOJWcpDwAD2mItQJLE,1318
49
+ airflow/providers/fab/migrations/README,sha256=heMzebYwlGhnE8_4CWJ4LS74WoEZjBy-S-mIJRxAEKI,39
50
+ airflow/providers/fab/migrations/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
51
+ airflow/providers/fab/migrations/env.py,sha256=wbgFowVIf-wY1L-DqD2f8wiuTeXNDKeAUw1oM15Fd0U,3998
52
+ airflow/providers/fab/migrations/script.py.mako,sha256=_krfPtzv1Unme2b9MCHPgXo0g73HcN2_zDgz3co2N4M,1353
53
+ airflow/providers/fab/migrations/versions/0001_1_4_0_placeholder_migration.py,sha256=wLZiBiWjfSofXZ4jXMjpEKkIc3jI0a6hpJ73xEYAzss,1370
54
+ airflow/providers/fab/migrations/versions/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
55
+ airflow/providers/fab/www/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
56
+ airflow/providers/fab/www/airflow_flask_app.py,sha256=-JPQ-mS1kKEj5adENnoVSD4LaFrh36l1THnVhFYF8d4,1057
57
+ airflow/providers/fab/www/app.py,sha256=RhUCSxS4Sivwu7aeLOqIVADszBh9uWOs1oni99FY9Rk,4951
58
+ airflow/providers/fab/www/auth.py,sha256=FbDJOlfO70cg1OatrWZOiiNsjPlDWnuh5QLu-iEXH9A,12659
59
+ airflow/providers/fab/www/constants.py,sha256=VUg48B-EZAUZ2IIdmL31Iv0lRlP0yLNPNTufB7rsWr0,1352
60
+ airflow/providers/fab/www/package-lock.json,sha256=kbZdRu-c51C2FpNXnVLV4kisr8VjtIDOjaT0DbGlUbc,328250
61
+ airflow/providers/fab/www/package.json,sha256=Z7P02yIy22rlcD6Qm0KCOK8c9cZuxu1-sLuUizi9tC4,2357
62
+ airflow/providers/fab/www/security_appless.py,sha256=J0OJGRPq6NK2vY6qfMRvyMUEc-E59vXucquQdjgsndY,1655
63
+ airflow/providers/fab/www/security_manager.py,sha256=Zr6xqjego7Z1-1h2HHyWLt1ZBKG8yHHmNPfEXNxXaRY,4850
64
+ airflow/providers/fab/www/session.py,sha256=qyy8ipXLe4qH7D52tH3aKY6hyJNJ5tUfHel7_1S4BGg,1741
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
+ airflow/providers/fab/www/webpack.config.js,sha256=_TYJ8cnmJW0vxb87xY4eNr9ZE7G5NFUPuiXvpF6SKys,6124
68
+ airflow/providers/fab/www/api_connexion/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
69
+ airflow/providers/fab/www/api_connexion/exceptions.py,sha256=j0S90JH6Q5hnkshfiZot7Yb9hAvFs1JON0EYjW2bxW0,5783
70
+ airflow/providers/fab/www/api_connexion/parameters.py,sha256=9XbKYdjpQ9KesyPK6Eb-sYBTM4NqnbKJxLC70psXeDc,4308
71
+ airflow/providers/fab/www/api_connexion/security.py,sha256=tc6IA-lFVovRWV6ETQdAleq73scapD_1kUPQcn4rwH8,3063
72
+ airflow/providers/fab/www/api_connexion/types.py,sha256=FY96u5nR-ByiKBhoxC_kKVoXalH9GDhexXIGmCbBmKw,1094
73
+ airflow/providers/fab/www/extensions/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
74
+ airflow/providers/fab/www/extensions/init_appbuilder.py,sha256=ZktxW33J4nHDpoXRJtrJP3L88mscxirlE83JAJZAKbs,22172
75
+ airflow/providers/fab/www/extensions/init_jinja_globals.py,sha256=TfNOEsdLg9mflzDz6hU7lB2ZMkEJvgr-ruB6qKBBLoI,3199
76
+ airflow/providers/fab/www/extensions/init_manifest_files.py,sha256=DLeAcH2zMGbT-eDLYdXztP7HJG7H-e1jmSTolimZeAI,2125
77
+ airflow/providers/fab/www/extensions/init_security.py,sha256=sDwMjNMMQgyn2tsQAVkNHArPVbWe9qua66iOO59YGoU,2110
78
+ airflow/providers/fab/www/extensions/init_session.py,sha256=y8zUVSngawNhkO4egEkhrQ_2v03wCeDjm8LUaNY0sZ8,2637
79
+ airflow/providers/fab/www/extensions/init_views.py,sha256=OiLfHshii7R1s3lOpTQEzs2syIq-5Arm4Gt-AXGxsKI,6447
80
+ airflow/providers/fab/www/security/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
81
+ airflow/providers/fab/www/security/permissions.py,sha256=5Srt7nuYHOOee439CHKJ74FnCgYkesG32a_6WFCXcOA,4537
82
+ airflow/providers/fab/www/static/sort_asc.png,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
+ airflow/providers/fab/www/static/sort_both.png,sha256=PgFsI65RQXOCtkCuLRnrSAR1MsN61TiUvRhVhlWcz_s,201
84
+ airflow/providers/fab/www/static/sort_desc.png,sha256=0I7Q4h8YfdMJAw1GUiTagIURmhWhfWFroOR3u1DG8Q0,158
85
+ airflow/providers/fab/www/static/css/bootstrap-theme.css,sha256=9hxX-_gQUlWspJ-CazcRU74IqY8WnmbhrEdbfHJHxV8,129001
86
+ airflow/providers/fab/www/static/css/flash.css,sha256=Kz1LaSVRlvQU3voXxqB-fQLmIE-gpVrhaTzijXEkrvA,1468
87
+ airflow/providers/fab/www/static/css/loading-dots.css,sha256=amw1pWMdsaL0yEN_r0rCfwb11FwerQyRyXXFNAoB6hA,1385
88
+ airflow/providers/fab/www/static/css/main.css,sha256=Emc-ZZumKwH9qLsjor1Lx4supb8NQUHAmRTMNy5mdhU,10395
89
+ airflow/providers/fab/www/static/css/material-icons.css,sha256=4LV_bzKwJd8UDqOx7jbb2ro_y10nqeaNDmP8Rbv9XCY,112094
90
+ airflow/providers/fab/www/static/dist/48f0ea180c40270a5b05.png,sha256=8norchefCBbgdNC28QHJj51iWMK4rXVa9EXC-Ideq0U,39
91
+ airflow/providers/fab/www/static/dist/649c0b07771e68fafdeb.png,sha256=bYAeE6pqnD829ZcZVmN6T900JUf_qMeAUzsn-NzjyNk,251
92
+ airflow/providers/fab/www/static/dist/airflowDefaultTheme.feec4a4075c2f3d6ae01.css,sha256=Jq17RkGzRZFxp3WrhfZzGHRibhy1thAI1PV4br1FEQY,103413
93
+ airflow/providers/fab/www/static/dist/airflowDefaultTheme.feec4a4075c2f3d6ae01.js,sha256=hxvEM0DAftBeQQMjkjTgr6t1L4CgkMMPg4UjE5nvjBI,470
94
+ airflow/providers/fab/www/static/dist/f7490d556a6c42e49ba4.png,sha256=jgzXdalfLfBTrRamJIAEWXs4uuyccr2Ec8-szI9wHVs,307
95
+ airflow/providers/fab/www/static/dist/flash.137b30cff85b5588e661.css,sha256=cy1mAp-hBaY2yVlalKNo1Oz7nyykxJiswRttS3Dp9V4,1253
96
+ airflow/providers/fab/www/static/dist/flash.137b30cff85b5588e661.js,sha256=ChX7SzURR7CK8Qd6p0-NKMyPqVe0qi2thVbINTEQXM4,456
97
+ airflow/providers/fab/www/static/dist/jquery-ui.min.css,sha256=12svTn3nT66of_Ran6sEcDZ89P-HGQYWAlLnZjnqflg,29941
98
+ airflow/providers/fab/www/static/dist/jquery-ui.min.js,sha256=txZuQSIYI96Y96416OrtgUwI_X_HubsBrk-6-cA8cpQ,252313
99
+ airflow/providers/fab/www/static/dist/jquery-ui.min.js.LICENSE.txt,sha256=4UlrvolSNnS2q3J3GQcl__s2-Ssc6GNw5x7IOvvsVbU,1135
100
+ airflow/providers/fab/www/static/dist/loadingDots.48ab7d5b04e66f2686b0.css,sha256=ohfW0OGrwhZDp1qPPTqvL-6ssIkt6uDooaZkB7KYT7U,1244
101
+ airflow/providers/fab/www/static/dist/loadingDots.48ab7d5b04e66f2686b0.js,sha256=9xPjsUFKXwEvjkBZgcnab38R99GMuvQv3XCBO-HIzaw,462
102
+ airflow/providers/fab/www/static/dist/main.edb2d40dfbbc537916e3.css,sha256=KmN5xgP57bvi_LHe5wUiREEnX-vwnZW-Pi2wGK4ZBfU,6844
103
+ airflow/providers/fab/www/static/dist/main.edb2d40dfbbc537916e3.js,sha256=M--qtKejlnGjPquH_ctbfmJW93OBHOJxDUWw1_K6DjQ,5688
104
+ airflow/providers/fab/www/static/dist/main.edb2d40dfbbc537916e3.js.LICENSE.txt,sha256=FX9Q5lmXWsdQeuAN5eIQlag1BKUFTx3rpUftXrj5Et4,809
105
+ airflow/providers/fab/www/static/dist/manifest.json,sha256=OiKyrk89kTF5CvXS0FpvfaXLIXH6lHyFP6I-VvNp9os,1011
106
+ airflow/providers/fab/www/static/dist/materialIcons.57390fa60d8f61175334.css,sha256=_H-ualtdn1-0p1mnpS-ByZ9uQzClvcFoVuOl2R5ODRs,111666
107
+ airflow/providers/fab/www/static/dist/materialIcons.57390fa60d8f61175334.js,sha256=_qbml493nkr1JAO9KxOlf-b5kVeLvGJHkjG9VasVAfU,464
108
+ airflow/providers/fab/www/static/dist/moment.624b1f00ba723d39ce06.js,sha256=aABIO0agoi1DArDTl5eWVWR04n_yTTe4V-y_rRniM0U,793833
109
+ airflow/providers/fab/www/static/dist/moment.624b1f00ba723d39ce06.js.LICENSE.txt,sha256=cic0iUfGbX1MC7q-t59Di6RAiKQSb_xjBqxhClXRiBc,174
110
+ airflow/providers/fab/www/static/dist/oss-licenses.json,sha256=j8Nv4ha5KuHGGL-n-NWZlb3Ihsrgqxr2oCC8VspGSus,2891
111
+ airflow/providers/fab/www/static/js/datetime_utils.js,sha256=Nq8gP1tRy-ztodREw8Q2QDLGYt_DwIMZWgrEVfuFMgE,4543
112
+ airflow/providers/fab/www/static/js/main.js,sha256=MUyTstwNQiN9GNT7yHBSt2Oh4Cr3M173CUFSXX6cI2g,9194
113
+ airflow/providers/fab/www/templates/airflow/_messages.html,sha256=DKKiboYjmRqPRIP3BpUYsIxK5xKGpZy2yRk67lcAW5Y,1147
114
+ airflow/providers/fab/www/templates/airflow/error.html,sha256=AEXwcesuTXQdzfjJrTr2hX2L1Oxtr-FgehWV9dCBCBA,1327
115
+ airflow/providers/fab/www/templates/airflow/main.html,sha256=LYIkSwrXy5UjqFOqlA991ILpz5Dj_1z5bEteGfEUz_c,2919
116
+ airflow/providers/fab/www/templates/airflow/traceback.html,sha256=jyHjbK9V6RccA4P5ml4p1E6o8w1pZ8-aGa0NXp4Lvtk,2273
117
+ airflow/providers/fab/www/templates/appbuilder/flash.html,sha256=CfY_E0Bq_vSnWI58UqlcchTfLFfnr-mxRLdS_hwr_Ps,1408
118
+ airflow/providers/fab/www/templates/appbuilder/index.html,sha256=ZaZsNdD8fCENqdnZMbjGbCaK5R9WNFRW5vk8y43pCsk,810
119
+ airflow/providers/fab/www/templates/appbuilder/navbar.html,sha256=N3KTgWFw720Hyr3NGYz787oRYLGQXDrRW1mLXIABLxc,10236
120
+ airflow/providers/fab/www/templates/appbuilder/navbar_menu.html,sha256=WWQ-_QLMqcW4Cpx_1_yulaQO-soD6ztnY2zfmBAUAGI,2034
121
+ airflow/providers/fab/www/templates/appbuilder/navbar_right.html,sha256=qrwZDBbzLi4yhLrfai842MJDdQ4C31Xz9hJ3NoG5mo0,2488
122
+ apache_airflow_providers_fab-2.0.0.dist-info/entry_points.txt,sha256=m05kASp7vFi0ZmQ--CFp7GeJpPL7UT2RQF8EEP5XRX8,99
123
+ apache_airflow_providers_fab-2.0.0.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
124
+ apache_airflow_providers_fab-2.0.0.dist-info/METADATA,sha256=ODfkFl4T63Wn3GRUSM1e1QC8Tmrxpga7m339c4w2VL0,6077
125
+ apache_airflow_providers_fab-2.0.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: flit 3.10.1
2
+ Generator: flit 3.12.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any