apache-airflow-providers-fab 1.5.3__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.
- airflow/providers/fab/LICENSE +0 -52
- airflow/providers/fab/__init__.py +3 -3
- airflow/providers/fab/auth_manager/api/auth/backend/basic_auth.py +4 -5
- airflow/providers/fab/auth_manager/api/auth/backend/kerberos_auth.py +5 -5
- airflow/providers/fab/auth_manager/api/auth/backend/session.py +2 -2
- airflow/providers/fab/auth_manager/api_endpoints/role_and_permission_endpoint.py +15 -15
- airflow/providers/fab/auth_manager/api_endpoints/user_endpoint.py +13 -14
- airflow/providers/fab/auth_manager/api_fastapi/__init__.py +16 -0
- airflow/providers/fab/auth_manager/api_fastapi/datamodels/__init__.py +16 -0
- airflow/providers/fab/auth_manager/api_fastapi/datamodels/login.py +32 -0
- airflow/providers/fab/auth_manager/api_fastapi/openapi/__init__.py +16 -0
- airflow/providers/fab/auth_manager/api_fastapi/openapi/v1-generated.yaml +153 -0
- airflow/providers/fab/auth_manager/api_fastapi/routes/__init__.py +16 -0
- airflow/providers/fab/auth_manager/api_fastapi/routes/login.py +51 -0
- airflow/providers/fab/auth_manager/api_fastapi/services/__init__.py +16 -0
- airflow/providers/fab/auth_manager/api_fastapi/services/login.py +58 -0
- airflow/providers/fab/auth_manager/cli_commands/db_command.py +1 -3
- airflow/providers/fab/auth_manager/cli_commands/user_command.py +2 -2
- airflow/providers/fab/auth_manager/cli_commands/utils.py +12 -11
- airflow/providers/fab/auth_manager/fab_auth_manager.py +238 -126
- airflow/providers/fab/auth_manager/models/__init__.py +1 -1
- airflow/providers/fab/auth_manager/models/anonymous_user.py +1 -1
- airflow/providers/fab/auth_manager/models/db.py +22 -5
- airflow/providers/fab/auth_manager/openapi/v1.yaml +9 -0
- airflow/providers/fab/auth_manager/schemas/user_schema.py +1 -1
- airflow/providers/fab/auth_manager/security_manager/override.py +186 -655
- airflow/providers/fab/auth_manager/views/permissions.py +1 -1
- airflow/providers/fab/auth_manager/views/roles_list.py +1 -1
- airflow/providers/fab/auth_manager/views/user.py +1 -1
- airflow/providers/fab/auth_manager/views/user_edit.py +1 -1
- airflow/providers/fab/auth_manager/views/user_stats.py +1 -1
- airflow/providers/fab/get_provider_info.py +29 -34
- airflow/providers/fab/www/airflow_flask_app.py +31 -0
- airflow/providers/fab/www/api_connexion/__init__.py +17 -0
- airflow/providers/fab/www/api_connexion/exceptions.py +197 -0
- airflow/providers/fab/www/api_connexion/parameters.py +131 -0
- airflow/providers/fab/www/api_connexion/security.py +84 -0
- airflow/providers/fab/www/api_connexion/types.py +30 -0
- airflow/providers/fab/www/app.py +120 -0
- airflow/providers/fab/www/auth.py +350 -0
- airflow/providers/fab/www/constants.py +28 -0
- airflow/providers/fab/www/extensions/__init__.py +16 -0
- airflow/providers/fab/www/extensions/init_appbuilder.py +606 -0
- airflow/providers/fab/www/extensions/init_jinja_globals.py +82 -0
- airflow/providers/fab/www/extensions/init_manifest_files.py +61 -0
- airflow/providers/fab/www/extensions/init_security.py +61 -0
- airflow/providers/fab/www/extensions/init_session.py +64 -0
- airflow/providers/fab/www/extensions/init_views.py +177 -0
- airflow/providers/fab/www/package-lock.json +8939 -0
- airflow/providers/fab/www/package.json +77 -0
- airflow/providers/fab/www/security/__init__.py +17 -0
- airflow/providers/fab/www/security/permissions.py +126 -0
- airflow/providers/fab/www/security_appless.py +44 -0
- airflow/providers/fab/www/security_manager.py +122 -0
- airflow/providers/fab/www/session.py +41 -0
- airflow/providers/fab/www/static/css/bootstrap-theme.css +6215 -0
- airflow/providers/fab/www/static/css/flash.css +57 -0
- airflow/providers/fab/www/static/css/loading-dots.css +60 -0
- airflow/providers/fab/www/static/css/main.css +676 -0
- airflow/providers/fab/www/static/css/material-icons.css +84 -0
- airflow/providers/fab/www/static/dist/48f0ea180c40270a5b05.png +1 -0
- airflow/providers/fab/www/static/dist/649c0b07771e68fafdeb.png +1 -0
- airflow/providers/fab/www/static/dist/airflowDefaultTheme.feec4a4075c2f3d6ae01.css +33 -0
- airflow/providers/fab/www/static/dist/airflowDefaultTheme.feec4a4075c2f3d6ae01.js +1 -0
- airflow/providers/fab/www/static/dist/f7490d556a6c42e49ba4.png +1 -0
- airflow/providers/fab/www/static/dist/flash.137b30cff85b5588e661.css +18 -0
- airflow/providers/fab/www/static/dist/flash.137b30cff85b5588e661.js +1 -0
- airflow/providers/fab/www/static/dist/jquery-ui.min.css +5 -0
- airflow/providers/fab/www/static/dist/jquery-ui.min.js +2 -0
- airflow/providers/fab/www/static/dist/jquery-ui.min.js.LICENSE.txt +4 -0
- airflow/providers/fab/www/static/dist/loadingDots.48ab7d5b04e66f2686b0.css +18 -0
- airflow/providers/fab/www/static/dist/loadingDots.48ab7d5b04e66f2686b0.js +1 -0
- airflow/providers/fab/www/static/dist/main.edb2d40dfbbc537916e3.css +18 -0
- airflow/providers/fab/www/static/dist/main.edb2d40dfbbc537916e3.js +2 -0
- airflow/providers/fab/www/static/dist/main.edb2d40dfbbc537916e3.js.LICENSE.txt +18 -0
- airflow/providers/fab/www/static/dist/manifest.json +20 -0
- airflow/providers/fab/www/static/dist/materialIcons.57390fa60d8f61175334.css +18 -0
- airflow/providers/fab/www/static/dist/materialIcons.57390fa60d8f61175334.js +1 -0
- airflow/providers/fab/www/static/dist/moment.624b1f00ba723d39ce06.js +2 -0
- airflow/providers/fab/www/static/dist/moment.624b1f00ba723d39ce06.js.LICENSE.txt +11 -0
- airflow/providers/fab/www/static/dist/oss-licenses.json +20 -0
- airflow/providers/fab/www/static/js/datetime_utils.js +134 -0
- airflow/providers/fab/www/static/js/main.js +324 -0
- airflow/providers/fab/www/static/sort_asc.png +0 -0
- airflow/providers/fab/www/static/sort_both.png +0 -0
- airflow/providers/fab/www/static/sort_desc.png +0 -0
- airflow/providers/fab/www/templates/airflow/_messages.html +30 -0
- airflow/providers/fab/www/templates/airflow/error.html +35 -0
- airflow/providers/fab/www/templates/airflow/main.html +78 -0
- airflow/providers/fab/www/templates/airflow/traceback.html +53 -0
- airflow/providers/fab/www/templates/appbuilder/flash.html +34 -0
- airflow/providers/fab/www/templates/appbuilder/index.html +20 -0
- airflow/providers/fab/www/templates/appbuilder/navbar.html +60 -0
- airflow/providers/fab/www/templates/appbuilder/navbar_menu.html +60 -0
- airflow/providers/fab/www/templates/appbuilder/navbar_right.html +64 -0
- airflow/providers/fab/www/utils.py +288 -0
- airflow/providers/fab/www/views.py +129 -0
- airflow/providers/fab/www/webpack.config.js +213 -0
- {apache_airflow_providers_fab-1.5.3.dist-info → apache_airflow_providers_fab-2.0.0.dist-info}/METADATA +29 -37
- apache_airflow_providers_fab-2.0.0.dist-info/RECORD +125 -0
- {apache_airflow_providers_fab-1.5.3.dist-info → apache_airflow_providers_fab-2.0.0.dist-info}/WHEEL +1 -1
- airflow/providers/fab/auth_manager/decorators/auth.py +0 -126
- apache_airflow_providers_fab-1.5.3.dist-info/RECORD +0 -51
- /airflow/providers/fab/{auth_manager/decorators → www}/__init__.py +0 -0
- {apache_airflow_providers_fab-1.5.3.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.
|
1
|
+
Metadata-Version: 2.4
|
2
2
|
Name: apache-airflow-providers-fab
|
3
|
-
Version:
|
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>=3.0.0
|
23
24
|
Requires-Dist: apache-airflow-providers-common-compat>=1.2.1
|
24
|
-
Requires-Dist:
|
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>=
|
28
|
-
Requires-Dist:
|
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/
|
33
|
-
Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-fab/
|
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
|
-
|
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: ``
|
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/
|
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`` ``>=
|
100
|
+
``apache-airflow`` ``>=3.0.0``
|
115
101
|
``apache-airflow-providers-common-compat`` ``>=1.2.1``
|
116
|
-
``
|
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
|
-
``
|
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
|
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/
|
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,,
|