22from dataikuapi .utils import DataikuException
33from safe_logger import SafeLogger
44from rest_api_client import RestAPIClient
5- from dku_utils import get_dku_key_values , get_endpoint_parameters , parse_keys_for_json , get_value_from_path
5+ from dku_utils import (
6+ get_dku_key_values , get_endpoint_parameters ,
7+ parse_keys_for_json , get_value_from_path , get_secure_credentials , decode_csv_data
8+ )
69from dku_constants import DKUConstants
710import json
811
@@ -17,9 +20,10 @@ def __init__(self, config, plugin_config):
1720 logger .info ('API-Connect plugin connector v{}' .format (DKUConstants .PLUGIN_VERSION ))
1821 logger .info ("config={}" .format (logger .filter_secrets (config )))
1922 endpoint_parameters = get_endpoint_parameters (config )
23+ secure_credentials = get_secure_credentials (config )
2024 credential = config .get ("credential" , {})
2125 custom_key_values = get_dku_key_values (config .get ("custom_key_values" , {}))
22- self .client = RestAPIClient (credential , endpoint_parameters , custom_key_values )
26+ self .client = RestAPIClient (credential , secure_credentials , endpoint_parameters , custom_key_values )
2327 extraction_key = endpoint_parameters .get ("extraction_key" , None )
2428 self .extraction_key = extraction_key or ''
2529 self .extraction_path = self .extraction_key .split ('.' )
@@ -49,9 +53,14 @@ def generate_rows(self, dataset_schema=None, dataset_partitioning=None,
4953 record_count += len (data )
5054 for row in data :
5155 yield self .format_output (row , metadata )
52- else :
56+ elif isinstance ( data , dict ) :
5357 record_count += 1
5458 yield self .format_output (data , metadata )
59+ else :
60+ data = decode_csv_data (data )
61+ record_count += len (data )
62+ for row in data :
63+ yield self .format_output (row , metadata )
5564 if is_records_limit and record_count >= records_limit :
5665 break
5766
0 commit comments