atlan-application-sdk 0.1.1rc37__py3-none-any.whl → 0.1.1rc38__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.
- application_sdk/clients/atlan.py +56 -0
- application_sdk/version.py +1 -1
- {atlan_application_sdk-0.1.1rc37.dist-info → atlan_application_sdk-0.1.1rc38.dist-info}/METADATA +1 -1
- {atlan_application_sdk-0.1.1rc37.dist-info → atlan_application_sdk-0.1.1rc38.dist-info}/RECORD +7 -8
- application_sdk/clients/async_atlan.py +0 -70
- {atlan_application_sdk-0.1.1rc37.dist-info → atlan_application_sdk-0.1.1rc38.dist-info}/WHEEL +0 -0
- {atlan_application_sdk-0.1.1rc37.dist-info → atlan_application_sdk-0.1.1rc38.dist-info}/licenses/LICENSE +0 -0
- {atlan_application_sdk-0.1.1rc37.dist-info → atlan_application_sdk-0.1.1rc38.dist-info}/licenses/NOTICE +0 -0
application_sdk/clients/atlan.py
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from typing import Optional
|
|
2
2
|
|
|
3
|
+
from pyatlan.client.aio import AsyncAtlanClient
|
|
3
4
|
from pyatlan.client.atlan import AtlanClient
|
|
4
5
|
|
|
5
6
|
from application_sdk.common.error_codes import ClientError
|
|
@@ -68,3 +69,58 @@ def _get_client_from_token(api_token_guid: str):
|
|
|
68
69
|
f"{ClientError.AUTH_CONFIG_ERROR}: Environment variable CLIENT_SECRET is required when API_TOKEN_GUID is set."
|
|
69
70
|
)
|
|
70
71
|
return AtlanClient.from_token_guid(guid=api_token_guid)
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
async def get_async_client(
|
|
75
|
+
base_url: Optional[str] = None,
|
|
76
|
+
api_key: Optional[str] = None,
|
|
77
|
+
api_token_guid: Optional[str] = None,
|
|
78
|
+
) -> AsyncAtlanClient:
|
|
79
|
+
"""
|
|
80
|
+
Returns an authenticated AsyncAtlanClient instance using provided parameters or environment variables.
|
|
81
|
+
|
|
82
|
+
Selects authentication method based on the presence of parameters or environment variables and validates the required configuration.
|
|
83
|
+
In general, the use of environment variables is recommended. Any parameters specified will override the environment variables.
|
|
84
|
+
|
|
85
|
+
Args:
|
|
86
|
+
base_url: Atlan base URL (overrides ATLAN_BASE_URL)
|
|
87
|
+
api_key: Atlan API key (overrides ATLAN_API_KEY)
|
|
88
|
+
api_token_guid: API token GUID (overrides API_TOKEN_GUID)
|
|
89
|
+
"""
|
|
90
|
+
# Resolve final values (parameters override env vars)
|
|
91
|
+
final_token_guid = api_token_guid or ATLAN_API_TOKEN_GUID
|
|
92
|
+
final_base_url = base_url or ATLAN_BASE_URL
|
|
93
|
+
final_api_key = api_key or ATLAN_API_KEY
|
|
94
|
+
|
|
95
|
+
# Priority 1: Token-based auth (recommended for production)
|
|
96
|
+
if final_token_guid:
|
|
97
|
+
if final_base_url or final_api_key:
|
|
98
|
+
logger.warning(
|
|
99
|
+
"Token auth takes precedence - ignoring base_url/api_key parameters as well as ATLAN_BASE_URL and ATLAN_API_KEY environment variables."
|
|
100
|
+
)
|
|
101
|
+
return await _get_async_client_from_token(final_token_guid)
|
|
102
|
+
|
|
103
|
+
# Priority 2: API key + base URL auth
|
|
104
|
+
if not final_base_url:
|
|
105
|
+
raise ClientError(
|
|
106
|
+
"ATLAN_BASE_URL is required (via parameter or environment variable)"
|
|
107
|
+
)
|
|
108
|
+
if not final_api_key:
|
|
109
|
+
raise ClientError(
|
|
110
|
+
"ATLAN_API_KEY is required (via parameter or environment variable)"
|
|
111
|
+
)
|
|
112
|
+
|
|
113
|
+
logger.info("Using API key-based authentication")
|
|
114
|
+
return AsyncAtlanClient(base_url=final_base_url, api_key=final_api_key)
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
async def _get_async_client_from_token(api_token_guid: str):
|
|
118
|
+
if not ATLAN_CLIENT_ID:
|
|
119
|
+
raise ClientError(
|
|
120
|
+
f"{ClientError.AUTH_CONFIG_ERROR}: Environment variable CLIENT_ID is required when API_TOKEN_GUID is set."
|
|
121
|
+
)
|
|
122
|
+
if not ATLAN_CLIENT_SECRET:
|
|
123
|
+
raise ClientError(
|
|
124
|
+
f"{ClientError.AUTH_CONFIG_ERROR}: Environment variable CLIENT_SECRET is required when API_TOKEN_GUID is set."
|
|
125
|
+
)
|
|
126
|
+
return await AsyncAtlanClient.from_token_guid(guid=api_token_guid)
|
application_sdk/version.py
CHANGED
{atlan_application_sdk-0.1.1rc37.dist-info → atlan_application_sdk-0.1.1rc38.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: atlan-application-sdk
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.1rc38
|
|
4
4
|
Summary: Atlan Application SDK is a Python library for developing applications on the Atlan Platform
|
|
5
5
|
Project-URL: Repository, https://github.com/atlanhq/application-sdk
|
|
6
6
|
Project-URL: Documentation, https://github.com/atlanhq/application-sdk/README.md
|
{atlan_application_sdk-0.1.1rc37.dist-info → atlan_application_sdk-0.1.1rc38.dist-info}/RECORD
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
application_sdk/__init__.py,sha256=2e2mvmLJ5dxmJGPELtb33xwP-j6JMdoIuqKycEn7hjg,151
|
|
2
2
|
application_sdk/constants.py,sha256=GzwZO0pa9M-FgibmfIs1lh-Fwo06K9Tk6WzGqMyJgpI,10362
|
|
3
|
-
application_sdk/version.py,sha256=
|
|
3
|
+
application_sdk/version.py,sha256=4PQKkm_QOy4mEJgwY5eIcUeeEIpIWPjzc_pKiJQmpXw,88
|
|
4
4
|
application_sdk/worker.py,sha256=i5f0AeKI39IfsLO05QkwC6uMz0zDPSJqP7B2byri1VI,7489
|
|
5
5
|
application_sdk/activities/__init__.py,sha256=QaXLOBYbb0zPOY5kfDQh56qbXQFaYNXOjJ5PCvatiZ4,9530
|
|
6
6
|
application_sdk/activities/lock_management.py,sha256=L__GZ9BsArwU1ntYwAgCKsSjCqN6QBeOfT-OT4WyD4Y,3983
|
|
@@ -16,8 +16,7 @@ application_sdk/activities/query_extraction/sql.py,sha256=mesGP_kiWzrJ8wboWFVt2j
|
|
|
16
16
|
application_sdk/application/__init__.py,sha256=WDWDWP-IQ-ny7okqsrdTwH60cXKgXBRcnlJ1XVYfiNU,7957
|
|
17
17
|
application_sdk/application/metadata_extraction/sql.py,sha256=ohpV4qZ92uKRlH7I_8G67ocnWkZJAZCU_7XdvqYPiN4,7966
|
|
18
18
|
application_sdk/clients/__init__.py,sha256=C9T84J7V6ZumcoWJPAxdd3tqSmbyciaGBJn-CaCCny0,1341
|
|
19
|
-
application_sdk/clients/
|
|
20
|
-
application_sdk/clients/atlan.py,sha256=f2-Uk5KiPIDJEhGkfYctA_f3CwoVB_mWNBMVvxeLuY4,2684
|
|
19
|
+
application_sdk/clients/atlan.py,sha256=l6yV39fr1006SJFwkOTNDQlbSFlHCZQaUPfdUlzdVEg,5053
|
|
21
20
|
application_sdk/clients/atlan_auth.py,sha256=D7FuNqv81ohNXLJtdx1AFw_jU6a3g0Pw6149ia4ucFY,8930
|
|
22
21
|
application_sdk/clients/base.py,sha256=TIn3pG89eXUc1XSYf4jk66m1vajWp0WxcCQOOltdazA,14021
|
|
23
22
|
application_sdk/clients/redis.py,sha256=IfAD32vLp88BCvsDTaQtxFHxzHlEx4V7TK7h1HwDDBg,15917
|
|
@@ -142,8 +141,8 @@ application_sdk/workflows/metadata_extraction/__init__.py,sha256=jHUe_ZBQ66jx8bg
|
|
|
142
141
|
application_sdk/workflows/metadata_extraction/sql.py,sha256=BhaZavEL8H3Jvf28FGcHtZwqdsUT_EHZ4VTqiaieWek,12278
|
|
143
142
|
application_sdk/workflows/query_extraction/__init__.py,sha256=n066_CX5RpJz6DIxGMkKS3eGSRg03ilaCtsqfJWQb7Q,117
|
|
144
143
|
application_sdk/workflows/query_extraction/sql.py,sha256=kT_JQkLCRZ44ZpaC4QvPL6DxnRIIVh8gYHLqRbMI-hA,4826
|
|
145
|
-
atlan_application_sdk-0.1.
|
|
146
|
-
atlan_application_sdk-0.1.
|
|
147
|
-
atlan_application_sdk-0.1.
|
|
148
|
-
atlan_application_sdk-0.1.
|
|
149
|
-
atlan_application_sdk-0.1.
|
|
144
|
+
atlan_application_sdk-0.1.1rc38.dist-info/METADATA,sha256=dQKtTnaVMPF0DU96vA850Gl6gzpRSmuL48ovbq1wD5o,5567
|
|
145
|
+
atlan_application_sdk-0.1.1rc38.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
146
|
+
atlan_application_sdk-0.1.1rc38.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
147
|
+
atlan_application_sdk-0.1.1rc38.dist-info/licenses/NOTICE,sha256=A-XVVGt3KOYuuMmvSMIFkg534F1vHiCggEBp4Ez3wGk,1041
|
|
148
|
+
atlan_application_sdk-0.1.1rc38.dist-info/RECORD,,
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
from typing import Optional
|
|
2
|
-
|
|
3
|
-
from pyatlan.client.aio.client import AsyncAtlanClient
|
|
4
|
-
|
|
5
|
-
from application_sdk.common.error_codes import ClientError
|
|
6
|
-
from application_sdk.constants import (
|
|
7
|
-
ATLAN_API_KEY,
|
|
8
|
-
ATLAN_API_TOKEN_GUID,
|
|
9
|
-
ATLAN_BASE_URL,
|
|
10
|
-
ATLAN_CLIENT_ID,
|
|
11
|
-
ATLAN_CLIENT_SECRET,
|
|
12
|
-
)
|
|
13
|
-
from application_sdk.observability.logger_adaptor import get_logger
|
|
14
|
-
|
|
15
|
-
logger = get_logger(__name__)
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
async def get_client(
|
|
19
|
-
base_url: Optional[str] = None,
|
|
20
|
-
api_key: Optional[str] = None,
|
|
21
|
-
api_token_guid: Optional[str] = None,
|
|
22
|
-
) -> AsyncAtlanClient:
|
|
23
|
-
"""
|
|
24
|
-
Returns an authenticated AsyncAtlanClient instance using provided parameters or environment variables.
|
|
25
|
-
|
|
26
|
-
Selects authentication method based on the presence of parameters or environment variables and validates the required configuration.
|
|
27
|
-
In general, the use of environment variables is recommended. Any parameters specified will override the environment variables.
|
|
28
|
-
|
|
29
|
-
Args:
|
|
30
|
-
base_url: Atlan base URL (overrides ATLAN_BASE_URL)
|
|
31
|
-
api_key: Atlan API key (overrides ATLAN_API_KEY)
|
|
32
|
-
api_token_guid: API token GUID (overrides API_TOKEN_GUID)
|
|
33
|
-
"""
|
|
34
|
-
# Resolve final values (parameters override env vars)
|
|
35
|
-
final_token_guid = api_token_guid or ATLAN_API_TOKEN_GUID
|
|
36
|
-
final_base_url = base_url or ATLAN_BASE_URL
|
|
37
|
-
final_api_key = api_key or ATLAN_API_KEY
|
|
38
|
-
|
|
39
|
-
# Priority 1: Token-based auth (recommended for production)
|
|
40
|
-
if final_token_guid:
|
|
41
|
-
if final_base_url or final_api_key:
|
|
42
|
-
logger.warning(
|
|
43
|
-
"Token auth takes precedence - ignoring base_url/api_key parameters as well as ATLAN_BASE_URL and ATLAN_API_KEY environment variables."
|
|
44
|
-
)
|
|
45
|
-
return await _get_client_from_token(final_token_guid)
|
|
46
|
-
|
|
47
|
-
# Priority 2: API key + base URL auth
|
|
48
|
-
if not final_base_url:
|
|
49
|
-
raise ClientError(
|
|
50
|
-
"ATLAN_BASE_URL is required (via parameter or environment variable)"
|
|
51
|
-
)
|
|
52
|
-
if not final_api_key:
|
|
53
|
-
raise ClientError(
|
|
54
|
-
"ATLAN_API_KEY is required (via parameter or environment variable)"
|
|
55
|
-
)
|
|
56
|
-
|
|
57
|
-
logger.info("Using API key-based authentication")
|
|
58
|
-
return AsyncAtlanClient(base_url=final_base_url, api_key=final_api_key)
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
async def _get_client_from_token(api_token_guid: str):
|
|
62
|
-
if not ATLAN_CLIENT_ID:
|
|
63
|
-
raise ClientError(
|
|
64
|
-
f"{ClientError.AUTH_CONFIG_ERROR}: Environment variable CLIENT_ID is required when API_TOKEN_GUID is set."
|
|
65
|
-
)
|
|
66
|
-
if not ATLAN_CLIENT_SECRET:
|
|
67
|
-
raise ClientError(
|
|
68
|
-
f"{ClientError.AUTH_CONFIG_ERROR}: Environment variable CLIENT_SECRET is required when API_TOKEN_GUID is set."
|
|
69
|
-
)
|
|
70
|
-
return await AsyncAtlanClient.from_token_guid(guid=api_token_guid)
|
{atlan_application_sdk-0.1.1rc37.dist-info → atlan_application_sdk-0.1.1rc38.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|