apache-airflow-providers-fab 1.5.0rc1__tar.gz → 1.5.0rc2__tar.gz
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.
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/PKG-INFO +2 -2
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/README.rst +1 -1
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/fab_auth_manager.py +12 -1
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/security_manager/override.py +5 -4
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/pyproject.toml +1 -1
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/LICENSE +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/__init__.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/alembic.ini +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/__init__.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/api/__init__.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/api/auth/__init__.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/api/auth/backend/__init__.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/api/auth/backend/basic_auth.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/api/auth/backend/kerberos_auth.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/api/auth/backend/session.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/api_endpoints/__init__.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/api_endpoints/role_and_permission_endpoint.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/api_endpoints/user_endpoint.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/cli_commands/__init__.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/cli_commands/db_command.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/cli_commands/definition.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/cli_commands/role_command.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/cli_commands/sync_perm_command.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/cli_commands/user_command.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/cli_commands/utils.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/decorators/__init__.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/decorators/auth.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/models/__init__.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/models/anonymous_user.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/models/db.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/openapi/__init__.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/openapi/v1.yaml +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/schemas/__init__.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/schemas/role_and_permission_schema.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/schemas/user_schema.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/security_manager/__init__.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/security_manager/constants.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/views/__init__.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/views/permissions.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/views/roles_list.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/views/user.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/views/user_edit.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/auth_manager/views/user_stats.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/get_provider_info.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/migrations/README +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/migrations/__init__.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/migrations/env.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/migrations/script.py.mako +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/migrations/versions/0001_1_4_0_placeholder_migration.py +0 -0
- {apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/airflow/providers/fab/migrations/versions/__init__.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: apache-airflow-providers-fab
|
3
|
-
Version: 1.5.
|
3
|
+
Version: 1.5.0rc2
|
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>
|
@@ -83,7 +83,7 @@ Provides-Extra: kerberos
|
|
83
83
|
|
84
84
|
Package ``apache-airflow-providers-fab``
|
85
85
|
|
86
|
-
Release: ``1.5.0.
|
86
|
+
Release: ``1.5.0.rc2``
|
87
87
|
|
88
88
|
|
89
89
|
`Flask App Builder <https://flask-appbuilder.readthedocs.io/>`__
|
@@ -18,6 +18,7 @@
|
|
18
18
|
from __future__ import annotations
|
19
19
|
|
20
20
|
import argparse
|
21
|
+
import warnings
|
21
22
|
from functools import cached_property
|
22
23
|
from pathlib import Path
|
23
24
|
from typing import TYPE_CHECKING, Container
|
@@ -46,7 +47,7 @@ from airflow.cli.cli_config import (
|
|
46
47
|
GroupCommand,
|
47
48
|
)
|
48
49
|
from airflow.configuration import conf
|
49
|
-
from airflow.exceptions import AirflowConfigException, AirflowException
|
50
|
+
from airflow.exceptions import AirflowConfigException, AirflowException, AirflowProviderDeprecationWarning
|
50
51
|
from airflow.models import DagModel
|
51
52
|
from airflow.providers.fab.auth_manager.cli_commands.definition import (
|
52
53
|
DB_COMMANDS,
|
@@ -271,6 +272,16 @@ class FabAuthManager(BaseAuthManager):
|
|
271
272
|
) -> bool:
|
272
273
|
return self._is_authorized(method=method, resource_type=RESOURCE_ASSET, user=user)
|
273
274
|
|
275
|
+
def is_authorized_dataset(
|
276
|
+
self, *, method: ResourceMethod, details: AssetDetails | None = None, user: BaseUser | None = None
|
277
|
+
) -> bool:
|
278
|
+
warnings.warn(
|
279
|
+
"is_authorized_dataset will be renamed as is_authorized_asset in Airflow 3 and will be removed when the minimum Airflow version is set to 3.0 for the fab provider",
|
280
|
+
AirflowProviderDeprecationWarning,
|
281
|
+
stacklevel=2,
|
282
|
+
)
|
283
|
+
return self.is_authorized_asset(method=method, user=user)
|
284
|
+
|
274
285
|
def is_authorized_pool(
|
275
286
|
self, *, method: ResourceMethod, details: PoolDetails | None = None, user: BaseUser | None = None
|
276
287
|
) -> bool:
|
@@ -17,6 +17,7 @@
|
|
17
17
|
# under the License.
|
18
18
|
from __future__ import annotations
|
19
19
|
|
20
|
+
import copy
|
20
21
|
import datetime
|
21
22
|
import itertools
|
22
23
|
import logging
|
@@ -24,7 +25,7 @@ import os
|
|
24
25
|
import random
|
25
26
|
import uuid
|
26
27
|
import warnings
|
27
|
-
from typing import TYPE_CHECKING, Any, Callable, Collection, Container, Iterable, Sequence
|
28
|
+
from typing import TYPE_CHECKING, Any, Callable, Collection, Container, Iterable, Mapping, Sequence
|
28
29
|
|
29
30
|
import jwt
|
30
31
|
import packaging.version
|
@@ -1107,7 +1108,7 @@ class FabAirflowSecurityManagerOverride(AirflowSecurityManagerV2):
|
|
1107
1108
|
def sync_perm_for_dag(
|
1108
1109
|
self,
|
1109
1110
|
dag_id: str,
|
1110
|
-
access_control:
|
1111
|
+
access_control: Mapping[str, Mapping[str, Collection[str]] | Collection[str]] | None = None,
|
1111
1112
|
) -> None:
|
1112
1113
|
"""
|
1113
1114
|
Sync permissions for given dag id.
|
@@ -1128,7 +1129,7 @@ class FabAirflowSecurityManagerOverride(AirflowSecurityManagerV2):
|
|
1128
1129
|
|
1129
1130
|
if access_control is not None:
|
1130
1131
|
self.log.debug("Syncing DAG-level permissions for DAG '%s'", dag_id)
|
1131
|
-
self._sync_dag_view_permissions(dag_id,
|
1132
|
+
self._sync_dag_view_permissions(dag_id, copy.copy(access_control))
|
1132
1133
|
else:
|
1133
1134
|
self.log.debug(
|
1134
1135
|
"Not syncing DAG-level permissions for DAG '%s' as access control is unset.",
|
@@ -1149,7 +1150,7 @@ class FabAirflowSecurityManagerOverride(AirflowSecurityManagerV2):
|
|
1149
1150
|
def _sync_dag_view_permissions(
|
1150
1151
|
self,
|
1151
1152
|
dag_id: str,
|
1152
|
-
access_control:
|
1153
|
+
access_control: Mapping[str, Mapping[str, Collection[str]] | Collection[str]],
|
1153
1154
|
) -> None:
|
1154
1155
|
"""
|
1155
1156
|
Set the access policy on the given DAG's ViewModel.
|
{apache_airflow_providers_fab-1.5.0rc1 → apache_airflow_providers_fab-1.5.0rc2}/pyproject.toml
RENAMED
@@ -28,7 +28,7 @@ build-backend = "flit_core.buildapi"
|
|
28
28
|
|
29
29
|
[project]
|
30
30
|
name = "apache-airflow-providers-fab"
|
31
|
-
version = "1.5.0.
|
31
|
+
version = "1.5.0.rc2"
|
32
32
|
description = "Provider package apache-airflow-providers-fab for Apache Airflow"
|
33
33
|
readme = "README.rst"
|
34
34
|
authors = [
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|