icsDataValidation 1.0.280__py3-none-any.whl → 1.0.285__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.
- icsDataValidation/connection_setups/snowflake_connection_setup.py +31 -1
- {icsDataValidation-1.0.280.dist-info → icsDataValidation-1.0.285.dist-info}/METADATA +1 -1
- {icsDataValidation-1.0.280.dist-info → icsDataValidation-1.0.285.dist-info}/RECORD +5 -5
- {icsDataValidation-1.0.280.dist-info → icsDataValidation-1.0.285.dist-info}/WHEEL +0 -0
- {icsDataValidation-1.0.280.dist-info → icsDataValidation-1.0.285.dist-info}/top_level.txt +0 -0
|
@@ -2,6 +2,10 @@ import os
|
|
|
2
2
|
|
|
3
3
|
from dotenv import load_dotenv
|
|
4
4
|
from pathlib import Path
|
|
5
|
+
from cryptography.hazmat.backends import default_backend
|
|
6
|
+
from cryptography.hazmat.primitives.asymmetric import rsa
|
|
7
|
+
from cryptography.hazmat.primitives.asymmetric import dsa
|
|
8
|
+
from cryptography.hazmat.primitives import serialization
|
|
5
9
|
|
|
6
10
|
#########################################################################################
|
|
7
11
|
#########################################################################################
|
|
@@ -11,10 +15,36 @@ def load_snowflake_credentials(system_configs:dict,system_selection:str)->dict:
|
|
|
11
15
|
snowflake_params = {
|
|
12
16
|
"account" : system_configs[system_selection]["ACCOUNT"],
|
|
13
17
|
"user" : system_configs[system_selection]["USER"],
|
|
14
|
-
"password" : os.getenv(system_configs[system_selection]["PASSWORD_NAME"]),
|
|
15
18
|
"warehouse" : system_configs[system_selection]["WAREHOUSE"],
|
|
16
19
|
"role" : system_configs[system_selection]["ROLE"],
|
|
17
20
|
"database" : system_configs[system_selection]["DATABASE"]
|
|
18
21
|
}
|
|
19
22
|
|
|
23
|
+
password_name = os.getenv(system_configs[system_selection]["PASSWORD_NAME"])
|
|
24
|
+
private_key_name = os.getenv(system_configs[system_selection]["PRIVATE_KEY_NAME"])
|
|
25
|
+
private_key_passphrase_name = os.getenv(system_configs[system_selection]["PRIVATE_KEY_PASSPHRASE_NAME"])
|
|
26
|
+
|
|
27
|
+
if password_name:
|
|
28
|
+
snowflake_params['password'] = password_name
|
|
29
|
+
elif private_key_name:
|
|
30
|
+
if private_key_passphrase_name:
|
|
31
|
+
# if private key is encrypted it is decrypted here with provided passphrase
|
|
32
|
+
p_key = serialization.load_pem_private_key(
|
|
33
|
+
private_key_name,
|
|
34
|
+
password = private_key_passphrase_name,
|
|
35
|
+
backend = default_backend()
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
decrypted_p_key = p_key.private_bytes(
|
|
39
|
+
encoding = serialization.Encoding.DER,
|
|
40
|
+
format = serialization.PrivateFormat.PKCS8,
|
|
41
|
+
encryption_algorithm = serialization.NoEncryption())
|
|
42
|
+
|
|
43
|
+
snowflake_params['private_key'] = decrypted_p_key
|
|
44
|
+
else:
|
|
45
|
+
# otherwise use the provided not encrypted private key
|
|
46
|
+
snowflake_params['private_key'] = private_key_name
|
|
47
|
+
else:
|
|
48
|
+
raise ValueError("No valid authentication method found. Provide either PASSWORD_NAME or PRIVATE_KEY_NAME.")
|
|
49
|
+
|
|
20
50
|
return snowflake_params
|
|
@@ -7,7 +7,7 @@ icsDataValidation/connection_setups/azure_connection_setup.py,sha256=gvTyctG63ol
|
|
|
7
7
|
icsDataValidation/connection_setups/databricks_connection_setup.py,sha256=dNEBum-8R-TUW2SCEk3CaNtCr_gLFvn456KBlENpgJU,1220
|
|
8
8
|
icsDataValidation/connection_setups/exasol_connection_setup.py,sha256=RfCUsL6G-NaOW-qNK-3SfHcljbRaKD6fDIHXkNQhClk,590
|
|
9
9
|
icsDataValidation/connection_setups/oracle_connection_setup.py,sha256=D-4ucC1ChE4HYm93ECIEg_yBOrn1NkknxFBgFRGFmWs,978
|
|
10
|
-
icsDataValidation/connection_setups/snowflake_connection_setup.py,sha256=
|
|
10
|
+
icsDataValidation/connection_setups/snowflake_connection_setup.py,sha256=8gBtyEfU0GXwDhy1HHgV9XNJpgVH7-3CMbWo_nJYsSU,2220
|
|
11
11
|
icsDataValidation/connection_setups/teradata_connection_setup.py,sha256=fIpuxz-FTqFK2vSMSuokqU9sdJkaJ4UP5piY_zIbj5k,624
|
|
12
12
|
icsDataValidation/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
13
13
|
icsDataValidation/core/database_objects.py,sha256=2oaDaVQajSYI_HJjJy1pmc6FsoK_wMfwgu6ZgEcFvow,523
|
|
@@ -36,7 +36,7 @@ icsDataValidation/utils/logger_util.py,sha256=xS48_FFMot_hyQgJY8DUeRTn5jpdvRt5QI
|
|
|
36
36
|
icsDataValidation/utils/pandas_util.py,sha256=D_g7Xw7BIS2E-1ZhJIvp62K5xuKjIkj-7TxH4HN_8SI,6505
|
|
37
37
|
icsDataValidation/utils/parallelization_util.py,sha256=6P0YcQLmunW_fHR4f5-kdncZbOlxxqKyk6ZAFQQEd2k,2088
|
|
38
38
|
icsDataValidation/utils/sql_util.py,sha256=0c-BInElSsRmXUedfLP_h9Wsiscv9aic7IIc5f15Uzo,396
|
|
39
|
-
icsDataValidation-1.0.
|
|
40
|
-
icsDataValidation-1.0.
|
|
41
|
-
icsDataValidation-1.0.
|
|
42
|
-
icsDataValidation-1.0.
|
|
39
|
+
icsDataValidation-1.0.285.dist-info/METADATA,sha256=0ymdUuzh6Q-S-o8n5YeRa4PZOHE00py3Eu7yCwNo2V0,720
|
|
40
|
+
icsDataValidation-1.0.285.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
|
|
41
|
+
icsDataValidation-1.0.285.dist-info/top_level.txt,sha256=YL9V1qreCXZeUCy-tzA4Vxv5-6mvXy5lsfAT0nQapfg,53
|
|
42
|
+
icsDataValidation-1.0.285.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|