diff --git a/macros/core/live.yaml.sql b/macros/core/live.yaml.sql index 8671dd2..abf149d 100644 --- a/macros/core/live.yaml.sql +++ b/macros/core/live.yaml.sql @@ -27,6 +27,7 @@ - [url, STRING] - [headers, OBJECT] - [data, VARIANT] + - [user_id, STRING] - [secret_name, STRING] - [is_async, BOOLEAN] return_type: VARIANT @@ -34,21 +35,21 @@ VOLATILE sql: | SELECT - CASE COALESCE(IS_ASYNC, FALSE) - WHEN TRUE - THEN - -- Async execution: run async function then test_requests - _live.redirect_s3_presigned_url( - _live.udf_api_async( - METHOD, URL, HEADERS, DATA, USER_ID, SECRET - ) : s3_presigned_url :: STRING - ) : data [0][1] - ELSE - -- Default execution: run regular function - _live.udf_api_sync( - METHOD, URL, HEADERS, DATA, USER_ID, SECRET - ) - END AS results + CASE COALESCE(IS_ASYNC, FALSE) + WHEN TRUE + THEN + -- Async execution: run async function then test_requests + utils.udf_redirect_s3_presigned_url( + _live.udf_api_async( + METHOD, URL, HEADERS, DATA, USER_ID, SECRET_NAME + ):s3_presigned_url :: STRING + ):data[0][1] + ELSE + -- Default execution: run regular function + _live.udf_api_sync( + METHOD, URL, HEADERS, DATA, USER_ID, SECRET_NAME + ) + END AS results - name: {{ schema }}.udf_api signature: diff --git a/macros/core/utils.yaml.sql b/macros/core/utils.yaml.sql index 7169389..ce88a36 100644 --- a/macros/core/utils.yaml.sql +++ b/macros/core/utils.yaml.sql @@ -309,7 +309,7 @@ - name: {{ schema }}.udf_redirect_s3_presigned_url signature: - [url, STRING] - return_type: TEXT + return_type: VARIANT options: | LANGUAGE PYTHON RUNTIME_VERSION = '3.10' diff --git a/macros/livequery/external_access_integrations.sql b/macros/livequery/external_access_integrations.sql index 2576e74..74c255b 100644 --- a/macros/livequery/external_access_integrations.sql +++ b/macros/livequery/external_access_integrations.sql @@ -1,20 +1,31 @@ {% macro create_s3_express_external_access_integration() %} - {% set sql %} - CREATE OR REPLACE NETWORK RULE live.s3_express_network_rule + {% set use_schema_sql %} + USE SCHEMA live + {% endset %} + + {% set network_rule_sql %} + CREATE OR REPLACE NETWORK RULE s3_express_network_rule MODE = EGRESS TYPE = HOST_PORT VALUE_LIST = ( '*.s3express-use1-az4.us-east-1.amazonaws.com:443', '*.s3express-use1-az5.us-east-1.amazonaws.com:443', '*.s3express-use1-az6.us-east-1.amazonaws.com:443' - ); - - CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION live.s3_express_external_access_integration - ALLOWED_NETWORK_RULES = (s3_express_network_rule) - ENABLED = true - ; + ) {% endset %} - {% do run_query(sql) %} + {% set external_access_sql %} + CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION s3_express_external_access_integration + ALLOWED_NETWORK_RULES = (s3_express_network_rule) + ENABLED = true + {% endset %} + + {% do run_query(use_schema_sql) %} + {% do log("Schema context set to live", true) %} + + {% do run_query(network_rule_sql) %} + {% do log("Network rule successfully created", true) %} + + {% do run_query(external_access_sql) %} {% do log("External S3 Express access integration successfully created", true) %} {% endmacro %}