omnata-plugin-devkit 0.10.16a110__tar.gz → 0.10.17__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.
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/PKG-INFO +1 -1
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/pyproject.toml +1 -1
- omnata_plugin_devkit-0.10.17/src/omnata_plugin_devkit/jinja_templates/FETCH_CONNECTIONS.sql.jinja +26 -0
- omnata_plugin_devkit-0.10.17/src/omnata_plugin_devkit/jinja_templates/FETCH_SYNCS.sql.jinja +26 -0
- omnata_plugin_devkit-0.10.17/src/omnata_plugin_devkit/jinja_templates/FETCH_SYNC_BRANCHES.sql.jinja +26 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/jinja_templates/manifest.yml.jinja +0 -5
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/plugin_uploader.py +13 -7
- omnata_plugin_devkit-0.10.16a110/src/omnata_plugin_devkit/jinja_templates/CREATE_EXTERNAL_ACCESS_INTEGRATION.sql.jinja +0 -52
- omnata_plugin_devkit-0.10.16a110/src/omnata_plugin_devkit/jinja_templates/DROP_EXTERNAL_ACCESS_OBJECTS.sql.jinja +0 -82
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/LICENSE +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/README.md +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/__init__.py +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/airbyte_wrapper.py +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/cli/__init__.py +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/development.ipynb +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/development_session.py +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/initialiser.py +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/jinja_templates/API_LIMITS.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/jinja_templates/ASSIGN_OUTBOUND_TARGET_TYPE.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/jinja_templates/CONFIGURATION_FORM.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/jinja_templates/CONFIGURE_APIS.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/jinja_templates/CONNECTION_FORM.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/jinja_templates/CONNECTION_TEST.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/jinja_templates/CONSTRUCT_FORM_OPTION.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/jinja_templates/CREATE_BILLING_EVENTS.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/jinja_templates/CREATE_GENERIC_SECRET_OBJECT.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/jinja_templates/CREATE_GENERIC_SECRET_OBJECT_FROM_EXISTING.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/jinja_templates/CREATE_NETWORK_RULE_OBJECT.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/jinja_templates/CREATE_NETWORK_RULE_OBJECT_FROM_EXISTING.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/jinja_templates/CREATE_OAUTH_SECRET_OBJECT.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/jinja_templates/INBOUND_LIST_STREAMS.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/jinja_templates/LIST_STAGES.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/jinja_templates/NETWORK_ADDRESSES.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/jinja_templates/NGROK_POST_TUNNEL_FIELDS.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/jinja_templates/OUTBOUND_RECORD_VALIDATOR.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/jinja_templates/PENDING_API_CONFIGURATION.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/jinja_templates/POST_INSTALL_ACTIONS.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/jinja_templates/RENAME_CONNECTION_METHODS.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/jinja_templates/RETRIEVE_NETWORK_RULE_OBJECT.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/jinja_templates/RETRIEVE_SECRETS.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/jinja_templates/RETRIEVE_SECRETS_UDF.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/jinja_templates/SYNC.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/jinja_templates/TEST_CALLBACK.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/jinja_templates/TEST_OAUTH_TOKEN_EXISTS.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/jinja_templates/TUNNEL_TEST.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/jinja_templates/UPDATE_API_CONFIGURATION.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/jinja_templates/UPDATE_GENERIC_SECRET_OBJECT.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/jinja_templates/UPDATE_GENERIC_SECRET_OBJECT_OLD.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/jinja_templates/UPDATE_NETWORK_RULE_OBJECT.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/native_app_packaging.py +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/plugin_registration.py +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/plugin_template/icon.svg +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/plugin_template/plugin.py +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/plugin_template/plugin_development.ipynb +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/plugin_template/requirements.txt +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/snowcli/__init__.py +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/snowcli/cli/__init__.py +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/snowcli/cli/api/__init__.py +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/snowcli/cli/api/config.py +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/snowcli/cli/api/constants.py +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/snowcli/cli/api/exceptions.py +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/snowcli/cli/api/secure_path.py +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/snowcli/cli/api/secure_utils.py +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/snowcli/cli/api/utils/__init__.py +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/snowcli/cli/api/utils/types.py +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/snowcli/cli/app/__init__.py +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/snowcli/cli/app/snow_connector.py +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/snowcli/cli/plugins/__init__.py +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/snowcli/cli/plugins/snowpark/__init__.py +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/snowcli/cli/plugins/snowpark/models.py +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/snowcli/cli/plugins/snowpark/package/__init__.py +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/snowcli/cli/plugins/snowpark/package_utils.py +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/snowcli/cli/plugins/snowpark/snowpark_shared.py +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/snowcli/cli/plugins/snowpark/venv.py +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/snowcli/cli/plugins/snowpark/zipper.py +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/snowcli/cli/templates/environment.yml.jinja +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/streamlit/plugin_configuration.py +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/test_step_definitions.py +0 -0
- {omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/utils.py +0 -0
omnata_plugin_devkit-0.10.17/src/omnata_plugin_devkit/jinja_templates/FETCH_CONNECTIONS.sql.jinja
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
CREATE or replace PROCEDURE PLUGIN.FETCH_CONNECTIONS()
|
|
2
|
+
RETURNS TABLE()
|
|
3
|
+
LANGUAGE SQL
|
|
4
|
+
as
|
|
5
|
+
DECLARE
|
|
6
|
+
|
|
7
|
+
CONNECTIONS resultset;
|
|
8
|
+
SYNC_ENGINE_DATABASE_NAME varchar;
|
|
9
|
+
PROC_NAME varchar;
|
|
10
|
+
PLUGIN_REGISTRATION_EXCEPTION EXCEPTION (-20001, 'Plugin is not registered to a sync engine instance');
|
|
11
|
+
c1 CURSOR FOR select min(APPLICATION_NAME) from DATA.OMNATA_REGISTRATION;
|
|
12
|
+
BEGIN
|
|
13
|
+
|
|
14
|
+
OPEN c1;
|
|
15
|
+
FETCH c1 INTO SYNC_ENGINE_DATABASE_NAME;
|
|
16
|
+
IF (:SYNC_ENGINE_DATABASE_NAME = null) THEN
|
|
17
|
+
RAISE PLUGIN_REGISTRATION_EXCEPTION;
|
|
18
|
+
END IF;
|
|
19
|
+
|
|
20
|
+
select CONCAT(:SYNC_ENGINE_DATABASE_NAME,'.API.PLUGIN_FETCH_CONNECTIONS') into :PROC_NAME;
|
|
21
|
+
|
|
22
|
+
CONNECTIONS:= (call IDENTIFIER(:PROC_NAME)(current_database(),PLUGIN.TOKEN()));
|
|
23
|
+
|
|
24
|
+
RETURN TABLE(CONNECTIONS);
|
|
25
|
+
|
|
26
|
+
END;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
CREATE or replace PROCEDURE PLUGIN.FETCH_SYNCS(CONNECTION_ID NUMERIC(38,0) DEFAULT NULL)
|
|
2
|
+
RETURNS TABLE()
|
|
3
|
+
LANGUAGE SQL
|
|
4
|
+
as
|
|
5
|
+
DECLARE
|
|
6
|
+
|
|
7
|
+
SYNCS resultset;
|
|
8
|
+
SYNC_ENGINE_DATABASE_NAME varchar;
|
|
9
|
+
PROC_NAME varchar;
|
|
10
|
+
PLUGIN_REGISTRATION_EXCEPTION EXCEPTION (-20001, 'Plugin is not registered to a sync engine instance');
|
|
11
|
+
c1 CURSOR FOR select min(APPLICATION_NAME) from DATA.OMNATA_REGISTRATION;
|
|
12
|
+
BEGIN
|
|
13
|
+
|
|
14
|
+
OPEN c1;
|
|
15
|
+
FETCH c1 INTO SYNC_ENGINE_DATABASE_NAME;
|
|
16
|
+
IF (:SYNC_ENGINE_DATABASE_NAME = null) THEN
|
|
17
|
+
RAISE PLUGIN_REGISTRATION_EXCEPTION;
|
|
18
|
+
END IF;
|
|
19
|
+
|
|
20
|
+
select CONCAT(:SYNC_ENGINE_DATABASE_NAME,'.API.PLUGIN_FETCH_SYNCS') into :PROC_NAME;
|
|
21
|
+
|
|
22
|
+
SYNCS:= (call IDENTIFIER(:PROC_NAME)(current_database(),PLUGIN.TOKEN(),:CONNECTION_ID));
|
|
23
|
+
|
|
24
|
+
RETURN TABLE(SYNCS);
|
|
25
|
+
|
|
26
|
+
END;
|
omnata_plugin_devkit-0.10.17/src/omnata_plugin_devkit/jinja_templates/FETCH_SYNC_BRANCHES.sql.jinja
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
CREATE or replace PROCEDURE PLUGIN.FETCH_SYNC_BRANCHES(SYNC_ID numeric)
|
|
2
|
+
RETURNS TABLE()
|
|
3
|
+
LANGUAGE SQL
|
|
4
|
+
as
|
|
5
|
+
DECLARE
|
|
6
|
+
|
|
7
|
+
SYNC_BRANCHES resultset;
|
|
8
|
+
SYNC_ENGINE_DATABASE_NAME varchar;
|
|
9
|
+
PROC_NAME varchar;
|
|
10
|
+
PLUGIN_REGISTRATION_EXCEPTION EXCEPTION (-20001, 'Plugin is not registered to a sync engine instance');
|
|
11
|
+
c1 CURSOR FOR select min(APPLICATION_NAME) from DATA.OMNATA_REGISTRATION;
|
|
12
|
+
BEGIN
|
|
13
|
+
|
|
14
|
+
OPEN c1;
|
|
15
|
+
FETCH c1 INTO SYNC_ENGINE_DATABASE_NAME;
|
|
16
|
+
IF (:SYNC_ENGINE_DATABASE_NAME = null) THEN
|
|
17
|
+
RAISE PLUGIN_REGISTRATION_EXCEPTION;
|
|
18
|
+
END IF;
|
|
19
|
+
|
|
20
|
+
select CONCAT(:SYNC_ENGINE_DATABASE_NAME,'.API.PLUGIN_FETCH_SYNC_BRANCHES') into :PROC_NAME;
|
|
21
|
+
|
|
22
|
+
SYNC_BRANCHES:= (call IDENTIFIER(:PROC_NAME)(current_database(),PLUGIN.TOKEN(),:SYNC_ID));
|
|
23
|
+
|
|
24
|
+
RETURN TABLE(SYNC_BRANCHES);
|
|
25
|
+
|
|
26
|
+
END;
|
|
@@ -25,8 +25,3 @@ configuration:
|
|
|
25
25
|
- type: DEBUG_LOGS
|
|
26
26
|
sharing: OPTIONAL
|
|
27
27
|
|
|
28
|
-
privileges:
|
|
29
|
-
- CREATE EXTERNAL ACCESS INTEGRATION:
|
|
30
|
-
description: "To connect to external application endpoints, as configured by the user (required)"
|
|
31
|
-
- CREATE SECURITY INTEGRATION:
|
|
32
|
-
description: "To create OAuth integration, as configured by the user (optional, only required if OAuth connectivity is needed)"
|
|
@@ -469,12 +469,13 @@ class PluginUploader:
|
|
|
469
469
|
"CONFIGURE_APIS",
|
|
470
470
|
"UPDATE_API_CONFIGURATION",
|
|
471
471
|
"PENDING_API_CONFIGURATION",
|
|
472
|
+
"FETCH_CONNECTIONS",
|
|
473
|
+
"FETCH_SYNCS",
|
|
474
|
+
"FETCH_SYNC_BRANCHES",
|
|
472
475
|
"TEST_CALLBACK",
|
|
473
476
|
"LIST_STAGES",
|
|
474
|
-
"CREATE_EXTERNAL_ACCESS_INTEGRATION",
|
|
475
477
|
"CREATE_GENERIC_SECRET_OBJECT",
|
|
476
478
|
"CREATE_GENERIC_SECRET_OBJECT_FROM_EXISTING",
|
|
477
|
-
"DROP_EXTERNAL_ACCESS_OBJECTS",
|
|
478
479
|
"UPDATE_GENERIC_SECRET_OBJECT_OLD",
|
|
479
480
|
"CREATE_OAUTH_SECRET_OBJECT",
|
|
480
481
|
"CREATE_NETWORK_RULE_OBJECT",
|
|
@@ -576,9 +577,14 @@ $${}$$;
|
|
|
576
577
|
os.chdir(direct_imports_path)
|
|
577
578
|
# upload all files in the directory to the stage
|
|
578
579
|
for path in sorted(Path(".").rglob("*")):
|
|
579
|
-
|
|
580
|
+
# don't try to upload directories, only files
|
|
581
|
+
if path.is_dir():
|
|
582
|
+
continue
|
|
583
|
+
# figure out the path
|
|
584
|
+
relative_path = str(f"/{path.parent}") if path.parent != Path(".") else ""
|
|
585
|
+
print(f"Uploading {path} to stage under {relative_path}")
|
|
580
586
|
self.session.sql(
|
|
581
|
-
f"put file://{path} @{database_name}.{schema_name}.{stage_name} AUTO_COMPRESS=FALSE OVERWRITE=TRUE"
|
|
587
|
+
f"put file://{path} @{database_name}.{schema_name}.{stage_name}{relative_path} AUTO_COMPRESS=FALSE OVERWRITE=TRUE"
|
|
582
588
|
).collect()
|
|
583
589
|
os.chdir(cwd)
|
|
584
590
|
|
|
@@ -676,13 +682,13 @@ GRANT USAGE ON FUNCTION PLUGIN.TOKEN() TO application role OMNATA_MANAGEMENT;
|
|
|
676
682
|
}
|
|
677
683
|
)
|
|
678
684
|
manifest_file.write(content)
|
|
679
|
-
custom_manifest_privileges = os.path.join(plugin_directory, "
|
|
685
|
+
custom_manifest_privileges = os.path.join(plugin_directory, "custom_manifest_section.yml")
|
|
680
686
|
if os.path.exists(custom_manifest_privileges):
|
|
681
|
-
print("Adding manifest privileges from
|
|
687
|
+
print("Adding manifest privileges from custom_manifest_section.yml")
|
|
682
688
|
with open(
|
|
683
689
|
custom_manifest_privileges, "r", encoding="utf-8"
|
|
684
690
|
) as custom_manifest_privileges_stream:
|
|
685
|
-
|
|
691
|
+
manifest_file.write(custom_manifest_privileges_stream.read() + "\n")
|
|
686
692
|
|
|
687
693
|
|
|
688
694
|
print("Uploading app manifest to stage")
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
create or replace procedure PLUGIN.CREATE_EXTERNAL_ACCESS_INTEGRATION(
|
|
2
|
-
EAI_NAME varchar,
|
|
3
|
-
SECRET_NAMES ARRAY,
|
|
4
|
-
NETWORK_RULE_NAMES ARRAY)
|
|
5
|
-
returns object
|
|
6
|
-
language javascript
|
|
7
|
-
COMMENT = $$
|
|
8
|
-
Creates an external access integration, bound to the provided secret(s) and network rule(s)
|
|
9
|
-
$$
|
|
10
|
-
execute as owner
|
|
11
|
-
as
|
|
12
|
-
$$
|
|
13
|
-
try{
|
|
14
|
-
if (SECRET_NAMES === null || SECRET_NAMES === undefined || SECRET_NAMES.length==0){
|
|
15
|
-
throw new Error('Secret names parameter must contain at least one secret');
|
|
16
|
-
}
|
|
17
|
-
if (NETWORK_RULE_NAMES === null || NETWORK_RULE_NAMES === undefined || NETWORK_RULE_NAMES.length==0){
|
|
18
|
-
throw new Error('Network rule names parameter must contain at least one secret');
|
|
19
|
-
}
|
|
20
|
-
var bindings = [EAI_NAME];
|
|
21
|
-
const secretNamesClauses = SECRET_NAMES.map((s)=>{return `'${s}'`}).join(',');
|
|
22
|
-
const networkRuleNamesClauses = NETWORK_RULE_NAMES.map((n)=>{return `'${n}'`}).join(',');
|
|
23
|
-
snowflake.createStatement( {
|
|
24
|
-
sqlText: `CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION IDENTIFIER(?)
|
|
25
|
-
ALLOWED_NETWORK_RULES = (${networkRuleNamesClauses})
|
|
26
|
-
ALLOWED_AUTHENTICATION_SECRETS = (${secretNamesClauses})
|
|
27
|
-
ENABLED = true`,
|
|
28
|
-
binds:bindings
|
|
29
|
-
} ).execute();
|
|
30
|
-
snowflake.createStatement( {
|
|
31
|
-
sqlText: `GRANT USAGE ON INTEGRATION IDENTIFIER(?) TO APPLICATION ROLE OMNATA_MANAGEMENT`,
|
|
32
|
-
binds:[EAI_NAME]
|
|
33
|
-
} ).execute();
|
|
34
|
-
return {
|
|
35
|
-
"success": true,
|
|
36
|
-
"data": null
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
catch(e){
|
|
40
|
-
if (String(e).indexOf('Insufficient privileges to operate on account') > -1){
|
|
41
|
-
e = 'You must grant the plugin application the CREATE EXTERNAL ACCESS INTEGRATION privilege in order to proceed';
|
|
42
|
-
}
|
|
43
|
-
return {
|
|
44
|
-
"success": false,
|
|
45
|
-
"error": `CREATE_EXTERNAL_ACCESS_INTEGRATION: ${String(e)}`
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
$$
|
|
49
|
-
;
|
|
50
|
-
|
|
51
|
-
grant usage on procedure PLUGIN.CREATE_EXTERNAL_ACCESS_INTEGRATION(VARCHAR,ARRAY,ARRAY)
|
|
52
|
-
to application role OMNATA_MANAGEMENT;
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
create or replace procedure PLUGIN.DROP_EXTERNAL_ACCESS_OBJECTS(
|
|
2
|
-
EAI_NAME varchar,
|
|
3
|
-
SECRET_NAMES ARRAY,
|
|
4
|
-
NETWORK_RULE_NAMES ARRAY)
|
|
5
|
-
returns object
|
|
6
|
-
language javascript
|
|
7
|
-
COMMENT = $$
|
|
8
|
-
Drops an external access integration, and associated secrets/network rules.
|
|
9
|
-
Due to Snowflake privilege model changes over time, this is an opportunistic deletion.
|
|
10
|
-
Instead of erroring it will create event log
|
|
11
|
-
errors and provide successflags back to the caller.
|
|
12
|
-
$$
|
|
13
|
-
execute as owner
|
|
14
|
-
as
|
|
15
|
-
$$
|
|
16
|
-
try{
|
|
17
|
-
var droppedEai = false;
|
|
18
|
-
try{
|
|
19
|
-
snowflake.createStatement( {
|
|
20
|
-
sqlText: `DROP EXTERNAL ACCESS INTEGRATION IDENTIFIER(?)`,
|
|
21
|
-
binds:[EAI_NAME]
|
|
22
|
-
} ).execute();
|
|
23
|
-
droppedEai = true;
|
|
24
|
-
}
|
|
25
|
-
catch(e){
|
|
26
|
-
snowflake.log("error", e.message);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
var droppedSecrets = false;
|
|
30
|
-
try{
|
|
31
|
-
if (SECRET_NAMES !== null && SECRET_NAMES !== undefined && SECRET_NAMES.length > 0){
|
|
32
|
-
for (let i = 0; i < SECRET_NAMES.length; i++) {
|
|
33
|
-
const secretName = SECRET_NAMES[i];
|
|
34
|
-
snowflake.createStatement( {
|
|
35
|
-
sqlText: `DROP SECRET IDENTIFIER(?)`,
|
|
36
|
-
binds:[secretName]
|
|
37
|
-
} ).execute();
|
|
38
|
-
}
|
|
39
|
-
droppedSecrets = true;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
catch(e){
|
|
43
|
-
snowflake.log("error", e.message);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
var droppedNetworkRules=false;
|
|
47
|
-
try{
|
|
48
|
-
if (NETWORK_RULE_NAMES !== null && NETWORK_RULE_NAMES !== undefined && NETWORK_RULE_NAMES.length > 0){
|
|
49
|
-
for (let i = 0; i < NETWORK_RULE_NAMES.length; i++) {
|
|
50
|
-
const ruleName = NETWORK_RULE_NAMES[i];
|
|
51
|
-
snowflake.createStatement( {
|
|
52
|
-
sqlText: `DROP NETWORK RULE IDENTIFIER(?)`,
|
|
53
|
-
binds:[ruleName]
|
|
54
|
-
} ).execute();
|
|
55
|
-
}
|
|
56
|
-
droppedNetworkRules = true;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
catch(e){
|
|
60
|
-
snowflake.log("error", e.message);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
return {
|
|
64
|
-
"success": true,
|
|
65
|
-
"data": {
|
|
66
|
-
"droppedEai":droppedEai,
|
|
67
|
-
"droppedSecrets":droppedSecrets,
|
|
68
|
-
"droppedNetworkRules": droppedNetworkRules
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
catch(e){
|
|
73
|
-
return {
|
|
74
|
-
"success": false,
|
|
75
|
-
"error": `DROP_EXTERNAL_ACCESS_OBJECTS: ${String(e)}`
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
$$
|
|
79
|
-
;
|
|
80
|
-
|
|
81
|
-
grant usage on procedure PLUGIN.DROP_EXTERNAL_ACCESS_OBJECTS(VARCHAR,ARRAY,ARRAY)
|
|
82
|
-
to application role OMNATA_MANAGEMENT;
|
|
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
|
|
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
|
{omnata_plugin_devkit-0.10.16a110 → omnata_plugin_devkit-0.10.17}/src/omnata_plugin_devkit/utils.py
RENAMED
|
File without changes
|