apache-airflow-providers-fab 1.5.3__py3-none-any.whl → 2.0.0b1__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 (101) 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 +3 -3
  4. airflow/providers/fab/auth_manager/api/auth/backend/kerberos_auth.py +4 -4
  5. airflow/providers/fab/auth_manager/api/auth/backend/session.py +1 -1
  6. airflow/providers/fab/auth_manager/api_endpoints/role_and_permission_endpoint.py +14 -13
  7. airflow/providers/fab/auth_manager/api_endpoints/user_endpoint.py +12 -12
  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 +152 -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 +2 -4
  18. airflow/providers/fab/auth_manager/cli_commands/user_command.py +2 -2
  19. airflow/providers/fab/auth_manager/cli_commands/utils.py +10 -9
  20. airflow/providers/fab/auth_manager/fab_auth_manager.py +231 -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/schemas/user_schema.py +1 -1
  25. airflow/providers/fab/auth_manager/security_manager/override.py +71 -632
  26. airflow/providers/fab/auth_manager/views/permissions.py +1 -1
  27. airflow/providers/fab/auth_manager/views/roles_list.py +1 -1
  28. airflow/providers/fab/auth_manager/views/user.py +1 -1
  29. airflow/providers/fab/auth_manager/views/user_edit.py +1 -1
  30. airflow/providers/fab/auth_manager/views/user_stats.py +1 -1
  31. airflow/providers/fab/get_provider_info.py +22 -16
  32. airflow/providers/fab/www/airflow_flask_app.py +31 -0
  33. airflow/providers/fab/www/api_connexion/__init__.py +17 -0
  34. airflow/providers/fab/www/api_connexion/exceptions.py +197 -0
  35. airflow/providers/fab/www/api_connexion/parameters.py +131 -0
  36. airflow/providers/fab/www/api_connexion/security.py +84 -0
  37. airflow/providers/fab/www/api_connexion/types.py +30 -0
  38. airflow/providers/fab/www/app.py +112 -0
  39. airflow/providers/fab/www/auth.py +350 -0
  40. airflow/providers/fab/www/constants.py +28 -0
  41. airflow/providers/fab/www/extensions/__init__.py +16 -0
  42. airflow/providers/fab/www/extensions/init_appbuilder.py +602 -0
  43. airflow/providers/fab/www/extensions/init_jinja_globals.py +82 -0
  44. airflow/providers/fab/www/extensions/init_manifest_files.py +61 -0
  45. airflow/providers/fab/www/extensions/init_security.py +61 -0
  46. airflow/providers/fab/www/extensions/init_session.py +64 -0
  47. airflow/providers/fab/www/extensions/init_views.py +177 -0
  48. airflow/providers/fab/www/package-lock.json +10127 -0
  49. airflow/providers/fab/www/package.json +81 -0
  50. airflow/providers/fab/www/security/__init__.py +17 -0
  51. airflow/providers/fab/www/security/permissions.py +126 -0
  52. airflow/providers/fab/www/security_appless.py +44 -0
  53. airflow/providers/fab/www/security_manager.py +122 -0
  54. airflow/providers/fab/www/session.py +41 -0
  55. airflow/providers/fab/www/static/css/bootstrap-theme.css +6215 -0
  56. airflow/providers/fab/www/static/css/flash.css +57 -0
  57. airflow/providers/fab/www/static/css/loading-dots.css +60 -0
  58. airflow/providers/fab/www/static/css/main.css +676 -0
  59. airflow/providers/fab/www/static/css/material-icons.css +84 -0
  60. airflow/providers/fab/www/static/dist/airflowDefaultTheme.feec4a4075c2f3d6ae01.css +33 -0
  61. airflow/providers/fab/www/static/dist/airflowDefaultTheme.feec4a4075c2f3d6ae01.js +1 -0
  62. airflow/providers/fab/www/static/dist/flash.137b30cff85b5588e661.css +18 -0
  63. airflow/providers/fab/www/static/dist/flash.137b30cff85b5588e661.js +1 -0
  64. airflow/providers/fab/www/static/dist/jquery-ui.min.css +5 -0
  65. airflow/providers/fab/www/static/dist/jquery-ui.min.js +2 -0
  66. airflow/providers/fab/www/static/dist/jquery-ui.min.js.LICENSE.txt +4 -0
  67. airflow/providers/fab/www/static/dist/loadingDots.48ab7d5b04e66f2686b0.css +18 -0
  68. airflow/providers/fab/www/static/dist/loadingDots.48ab7d5b04e66f2686b0.js +1 -0
  69. airflow/providers/fab/www/static/dist/main.ec1d38d994d72bb083cd.css +18 -0
  70. airflow/providers/fab/www/static/dist/main.ec1d38d994d72bb083cd.js +2 -0
  71. airflow/providers/fab/www/static/dist/main.ec1d38d994d72bb083cd.js.LICENSE.txt +18 -0
  72. airflow/providers/fab/www/static/dist/manifest.json +17 -0
  73. airflow/providers/fab/www/static/dist/materialIcons.57390fa60d8f61175334.css +18 -0
  74. airflow/providers/fab/www/static/dist/materialIcons.57390fa60d8f61175334.js +1 -0
  75. airflow/providers/fab/www/static/dist/moment.4d28b37c229bdfc54575.js +2 -0
  76. airflow/providers/fab/www/static/dist/moment.4d28b37c229bdfc54575.js.LICENSE.txt +11 -0
  77. airflow/providers/fab/www/static/dist/oss-licenses.json +29 -0
  78. airflow/providers/fab/www/static/js/datetime_utils.js +134 -0
  79. airflow/providers/fab/www/static/js/main.js +324 -0
  80. airflow/providers/fab/www/static/sort_asc.png +0 -0
  81. airflow/providers/fab/www/static/sort_both.png +0 -0
  82. airflow/providers/fab/www/static/sort_desc.png +0 -0
  83. airflow/providers/fab/www/templates/airflow/_messages.html +30 -0
  84. airflow/providers/fab/www/templates/airflow/error.html +35 -0
  85. airflow/providers/fab/www/templates/airflow/main.html +78 -0
  86. airflow/providers/fab/www/templates/airflow/traceback.html +53 -0
  87. airflow/providers/fab/www/templates/appbuilder/flash.html +34 -0
  88. airflow/providers/fab/www/templates/appbuilder/index.html +20 -0
  89. airflow/providers/fab/www/templates/appbuilder/navbar.html +60 -0
  90. airflow/providers/fab/www/templates/appbuilder/navbar_menu.html +60 -0
  91. airflow/providers/fab/www/templates/appbuilder/navbar_right.html +64 -0
  92. airflow/providers/fab/www/utils.py +272 -0
  93. airflow/providers/fab/www/views.py +129 -0
  94. airflow/providers/fab/www/webpack.config.js +213 -0
  95. {apache_airflow_providers_fab-1.5.3.dist-info → apache_airflow_providers_fab-2.0.0b1.dist-info}/METADATA +17 -35
  96. apache_airflow_providers_fab-2.0.0b1.dist-info/RECORD +122 -0
  97. {apache_airflow_providers_fab-1.5.3.dist-info → apache_airflow_providers_fab-2.0.0b1.dist-info}/WHEEL +1 -1
  98. airflow/providers/fab/auth_manager/decorators/auth.py +0 -126
  99. apache_airflow_providers_fab-1.5.3.dist-info/RECORD +0 -51
  100. /airflow/providers/fab/{auth_manager/decorators → www}/__init__.py +0 -0
  101. {apache_airflow_providers_fab-1.5.3.dist-info → apache_airflow_providers_fab-2.0.0b1.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 = bool(conf.get("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"), 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
+ flatten: true,
180
+ },
181
+ {
182
+ from: "node_modules/jquery-ui/dist/themes/base/jquery-ui.min.css",
183
+ flatten: true,
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.3
3
+ Version: 2.0.0b1
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,20 @@ 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
24
  Requires-Dist: apache-airflow-providers-common-compat>=1.2.1
24
- Requires-Dist: apache-airflow>=2.9.0
25
+ Requires-Dist: flask>=2.2,<2.3
25
26
  Requires-Dist: flask-appbuilder==4.5.3
26
27
  Requires-Dist: flask-login>=0.6.2
27
- Requires-Dist: flask>=2.2,<2.3
28
- Requires-Dist: google-re2>=1.0
28
+ Requires-Dist: connexion[flask]>=2.14.2,<3.0
29
29
  Requires-Dist: jmespath>=0.7.0
30
30
  Requires-Dist: kerberos>=1.3.0 ; extra == "kerberos"
31
31
  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
32
+ Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-fab/2.0.0b1/changelog.html
33
+ Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-fab/2.0.0b1
34
+ Project-URL: Mastodon, https://fosstodon.org/@airflow
34
35
  Project-URL: Slack Chat, https://s.apache.org/airflow-slack
35
36
  Project-URL: Source Code, https://github.com/apache/airflow
36
- Project-URL: Twitter, https://x.com/ApacheAirflow
37
37
  Project-URL: YouTube, https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA/
38
38
  Provides-Extra: kerberos
39
39
 
@@ -55,33 +55,14 @@ Provides-Extra: kerberos
55
55
  specific language governing permissions and limitations
56
56
  under the License.
57
57
 
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
58
+ .. NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE OVERWRITTEN!
80
59
 
60
+ .. IF YOU WANT TO MODIFY TEMPLATE FOR THIS FILE, YOU SHOULD MODIFY THE TEMPLATE
61
+ ``PROVIDER_README_TEMPLATE.rst.jinja2`` IN the ``dev/breeze/src/airflow_breeze/templates`` DIRECTORY
81
62
 
82
63
  Package ``apache-airflow-providers-fab``
83
64
 
84
- Release: ``1.5.3``
65
+ Release: ``2.0.0b1``
85
66
 
86
67
 
87
68
  `Flask App Builder <https://flask-appbuilder.readthedocs.io/>`__
@@ -94,7 +75,7 @@ This is a provider package for ``fab`` provider. All classes for this provider p
94
75
  are in ``airflow.providers.fab`` python package.
95
76
 
96
77
  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/>`_.
78
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-fab/2.0.0b1/>`_.
98
79
 
99
80
  Installation
100
81
  ------------
@@ -111,12 +92,12 @@ Requirements
111
92
  ========================================== ==================
112
93
  PIP package Version required
113
94
  ========================================== ==================
114
- ``apache-airflow`` ``>=2.9.0``
95
+ ``apache-airflow`` ``>=3.0.0.dev0``
115
96
  ``apache-airflow-providers-common-compat`` ``>=1.2.1``
116
97
  ``flask`` ``>=2.2,<2.3``
117
98
  ``flask-appbuilder`` ``==4.5.3``
118
99
  ``flask-login`` ``>=0.6.2``
119
- ``google-re2`` ``>=1.0``
100
+ ``connexion[flask]`` ``>=2.14.2,<3.0``
120
101
  ``jmespath`` ``>=0.7.0``
121
102
  ========================================== ==================
122
103
 
@@ -140,4 +121,5 @@ Dependent package
140
121
  ================================================================================================================== =================
141
122
 
142
123
  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>`_.
124
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/2.0.0b1/changelog.html>`_.
125
+
@@ -0,0 +1,122 @@
1
+ airflow/providers/fab/LICENSE,sha256=gXPVwptPlW1TJ4HSuG5OMPg-a3h43OGMkZRR1rpwfJA,10850
2
+ airflow/providers/fab/__init__.py,sha256=ATVeBSoHT4O7ZiWtcHgq1afB4a1-IZilk8chJ1jXXSk,1502
3
+ airflow/providers/fab/alembic.ini,sha256=_1SvObfjMAkuD7DN5VR2S6Rd7_F81pORZT-w7GJldIA,4461
4
+ airflow/providers/fab/get_provider_info.py,sha256=i3Rt6O3VRPggRjMjY2odMHDit3y3KPEQCvsZn-J2eVw,3903
5
+ airflow/providers/fab/auth_manager/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
6
+ airflow/providers/fab/auth_manager/fab_auth_manager.py,sha256=HHJQvGnKSv_Fmtwaa52Fn7cujSP3Lu2pv1d5f9JOwzc,25594
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=ogaqINat_nL8jc4ciiqMi3ksYezyQiRPbHOGnWEsito,2503
11
+ airflow/providers/fab/auth_manager/api/auth/backend/kerberos_auth.py,sha256=Vh8YZ4W4RP23C06FUNPqwYkP0kq4opNuGhNnPVh4FbQ,4997
12
+ airflow/providers/fab/auth_manager/api/auth/backend/session.py,sha256=3xBC4PKvONya4MGhr5HZoPwojWmjStHoR43J8t4eiY4,1502
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=-imnqDvaiv126asvHga9nu3mkoeU-2eQna3FIYmZepc,7607
15
+ airflow/providers/fab/auth_manager/api_endpoints/user_endpoint.py,sha256=B-MY-H9ctooXby4BBuyaJ-1HXkOln8umg0EVHkMXx_o,8447
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=1y3Kl3O7NDqfcGddkVYAVxQ5z3ahNAw9Rr61ZRbKpno,1089
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=locFEKtJTYNqO_VNo0gOQtqFkMLIxYPlPWFPRyCkNSk,4050
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=jSvVMa0lm10XW5WUeVygmfsSlTDiSZE2JDYAJiQkNXU,2127
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=mozWzoJr-iYYiLaclzw9wgKO2oWxylc69ronSF7-5A0,2466
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=rIVQwgF1tevH87_d4uhKE3P4X3bnQ9P0IG9aicUvMcE,2166
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=beQBh8sRQc3w3fGHj5f4c23v0_MjGvaj2FquWNjZ8_s,2927
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=k0CFgwnSLjTDia7yM0yZOwA8IrGIrQ7k1Qm9hrdBtII,4975
35
+ airflow/providers/fab/auth_manager/openapi/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
36
+ airflow/providers/fab/auth_manager/openapi/v1.yaml,sha256=xFlQMccLoGarx8SnQvGJ1DRfHo4jQ3p9DzoPqQINcCw,19380
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=FiRD1sdhW05BFS9TiRvcfLZGdrfr8RMkYS6ExxN7kKA,94349
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=Pwi9RsdbZhg4KFtS3G4kcTICHgKULsICgbl5cIV0Jv4,4485
58
+ airflow/providers/fab/www/auth.py,sha256=J3ym_4hE3Uh3okRNSpNzfq1XFIJnWN73HrONyWUR-Xc,12647
59
+ airflow/providers/fab/www/constants.py,sha256=VUg48B-EZAUZ2IIdmL31Iv0lRlP0yLNPNTufB7rsWr0,1352
60
+ airflow/providers/fab/www/package-lock.json,sha256=lgoSRCr_a65HrAH3FeG89DhoVemjluW3ZhiuLiigX-s,376480
61
+ airflow/providers/fab/www/package.json,sha256=4ZRVleR8Z-BtpKgr0WsA1Aw8tltkmBKnx0ecf8cyzkc,2470
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=N95_hNDmNFR0HNWJfuVfHGBVy6Z3nF0r8MVSZrgCmMc,9382
66
+ airflow/providers/fab/www/views.py,sha256=IL6drx8ODEGRXThvhySqo2VK2gpjvj2JVAWyz8t8Qjc,4735
67
+ airflow/providers/fab/www/webpack.config.js,sha256=CYJI21suTesM36JfdVkP9d5rmVoo2IadYmllcoEyXLM,6105
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=aOzt-N_627mYgmw9100OoFyPHaB1czEAs69DZDsn134,4306
71
+ airflow/providers/fab/www/api_connexion/security.py,sha256=79GlHsqBShsUwbdJMv0JhdM9rji6ThFosXArrb-ukzI,3055
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=raB0cXym5RcOK1cgLp3OnjskYsomOtapFt0pDIXBnWE,22074
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=8oEf0GNncBZ8CN3GPKrwzV6R7s54SUTyO7ZbK47KATo,2648
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/airflowDefaultTheme.feec4a4075c2f3d6ae01.css,sha256=AYL5zQAyux7t5Fpjk5aHSLsRpGfty938gITGl-hrDGY,103413
91
+ airflow/providers/fab/www/static/dist/airflowDefaultTheme.feec4a4075c2f3d6ae01.js,sha256=hxvEM0DAftBeQQMjkjTgr6t1L4CgkMMPg4UjE5nvjBI,470
92
+ airflow/providers/fab/www/static/dist/flash.137b30cff85b5588e661.css,sha256=cy1mAp-hBaY2yVlalKNo1Oz7nyykxJiswRttS3Dp9V4,1253
93
+ airflow/providers/fab/www/static/dist/flash.137b30cff85b5588e661.js,sha256=ChX7SzURR7CK8Qd6p0-NKMyPqVe0qi2thVbINTEQXM4,456
94
+ airflow/providers/fab/www/static/dist/jquery-ui.min.css,sha256=88PJqqGmkMquKXVmyBhfZSHMepYriRZplfDw8kXA8NM,29941
95
+ airflow/providers/fab/www/static/dist/jquery-ui.min.js,sha256=txZuQSIYI96Y96416OrtgUwI_X_HubsBrk-6-cA8cpQ,252313
96
+ airflow/providers/fab/www/static/dist/jquery-ui.min.js.LICENSE.txt,sha256=4UlrvolSNnS2q3J3GQcl__s2-Ssc6GNw5x7IOvvsVbU,1135
97
+ airflow/providers/fab/www/static/dist/loadingDots.48ab7d5b04e66f2686b0.css,sha256=ohfW0OGrwhZDp1qPPTqvL-6ssIkt6uDooaZkB7KYT7U,1244
98
+ airflow/providers/fab/www/static/dist/loadingDots.48ab7d5b04e66f2686b0.js,sha256=9xPjsUFKXwEvjkBZgcnab38R99GMuvQv3XCBO-HIzaw,462
99
+ airflow/providers/fab/www/static/dist/main.ec1d38d994d72bb083cd.css,sha256=JTxeOdRtN5pH8oLgxA6pniehIQryZ9NWMO96EIn9eZo,7318
100
+ airflow/providers/fab/www/static/dist/main.ec1d38d994d72bb083cd.js,sha256=vRBNB5foD045YePjBu5EF7ZRP0dTMTSw2NZi_ii4jbo,5688
101
+ airflow/providers/fab/www/static/dist/main.ec1d38d994d72bb083cd.js.LICENSE.txt,sha256=FX9Q5lmXWsdQeuAN5eIQlag1BKUFTx3rpUftXrj5Et4,809
102
+ airflow/providers/fab/www/static/dist/manifest.json,sha256=KKxND0kHUmHl0C9upXD8WF1SoIOS8MK5aghVBtLjZ00,871
103
+ airflow/providers/fab/www/static/dist/materialIcons.57390fa60d8f61175334.css,sha256=C930ncJQYNCkklP-ni_wMJ-N0oBmGRyHqfihGMyngJ4,111666
104
+ airflow/providers/fab/www/static/dist/materialIcons.57390fa60d8f61175334.js,sha256=_qbml493nkr1JAO9KxOlf-b5kVeLvGJHkjG9VasVAfU,464
105
+ airflow/providers/fab/www/static/dist/moment.4d28b37c229bdfc54575.js,sha256=eJObNXFzygWzZ0Z8A3G9klSnGUYfbUYtSCjXH2dIgj0,792973
106
+ airflow/providers/fab/www/static/dist/moment.4d28b37c229bdfc54575.js.LICENSE.txt,sha256=aK_bf7PQf56G1WwV40mdzH0AXi-kQ6T5db5L6UN-8Wg,174
107
+ airflow/providers/fab/www/static/dist/oss-licenses.json,sha256=mBfxaJB6qShjoZgTXHt4uhtCxucK7-EArSOgWw6O1CQ,4250
108
+ airflow/providers/fab/www/static/js/datetime_utils.js,sha256=Nq8gP1tRy-ztodREw8Q2QDLGYt_DwIMZWgrEVfuFMgE,4543
109
+ airflow/providers/fab/www/static/js/main.js,sha256=MUyTstwNQiN9GNT7yHBSt2Oh4Cr3M173CUFSXX6cI2g,9194
110
+ airflow/providers/fab/www/templates/airflow/_messages.html,sha256=DKKiboYjmRqPRIP3BpUYsIxK5xKGpZy2yRk67lcAW5Y,1147
111
+ airflow/providers/fab/www/templates/airflow/error.html,sha256=AEXwcesuTXQdzfjJrTr2hX2L1Oxtr-FgehWV9dCBCBA,1327
112
+ airflow/providers/fab/www/templates/airflow/main.html,sha256=LYIkSwrXy5UjqFOqlA991ILpz5Dj_1z5bEteGfEUz_c,2919
113
+ airflow/providers/fab/www/templates/airflow/traceback.html,sha256=jyHjbK9V6RccA4P5ml4p1E6o8w1pZ8-aGa0NXp4Lvtk,2273
114
+ airflow/providers/fab/www/templates/appbuilder/flash.html,sha256=CfY_E0Bq_vSnWI58UqlcchTfLFfnr-mxRLdS_hwr_Ps,1408
115
+ airflow/providers/fab/www/templates/appbuilder/index.html,sha256=ZaZsNdD8fCENqdnZMbjGbCaK5R9WNFRW5vk8y43pCsk,810
116
+ airflow/providers/fab/www/templates/appbuilder/navbar.html,sha256=N3KTgWFw720Hyr3NGYz787oRYLGQXDrRW1mLXIABLxc,10236
117
+ airflow/providers/fab/www/templates/appbuilder/navbar_menu.html,sha256=WWQ-_QLMqcW4Cpx_1_yulaQO-soD6ztnY2zfmBAUAGI,2034
118
+ airflow/providers/fab/www/templates/appbuilder/navbar_right.html,sha256=qrwZDBbzLi4yhLrfai842MJDdQ4C31Xz9hJ3NoG5mo0,2488
119
+ apache_airflow_providers_fab-2.0.0b1.dist-info/entry_points.txt,sha256=m05kASp7vFi0ZmQ--CFp7GeJpPL7UT2RQF8EEP5XRX8,99
120
+ apache_airflow_providers_fab-2.0.0b1.dist-info/WHEEL,sha256=_2ozNFCLWc93bK4WKHCO-eDUENDlo-dgc9cU3qokYO4,82
121
+ apache_airflow_providers_fab-2.0.0b1.dist-info/METADATA,sha256=ztufMIUGWrL2cWkaom_c3RpX4jbK0DLSVsJxfOScBKQ,5650
122
+ apache_airflow_providers_fab-2.0.0b1.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: flit 3.10.1
2
+ Generator: flit 3.11.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any