omnata-plugin-devkit 0.13.5__tar.gz → 0.13.6__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.
Files changed (87) hide show
  1. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/PKG-INFO +1 -1
  2. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/pyproject.toml +1 -1
  3. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/CONFIGURE_APIS.sql.jinja +16 -15
  4. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/SET_CONNECTION_OBJECTS.sql.jinja +12 -6
  5. omnata_plugin_devkit-0.13.6/src/omnata_plugin_devkit/jinja_templates/SET_EAI_ACTIVE.sql.jinja +38 -0
  6. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/plugin_uploader.py +1 -1
  7. omnata_plugin_devkit-0.13.5/src/omnata_plugin_devkit/jinja_templates/SET_EAI_ENABLED.sql.jinja +0 -43
  8. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/LICENSE +0 -0
  9. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/README.md +0 -0
  10. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/__init__.py +0 -0
  11. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/airbyte_wrapper.py +0 -0
  12. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/cli/__init__.py +0 -0
  13. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/development.ipynb +0 -0
  14. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/development_session.py +0 -0
  15. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/initialiser.py +0 -0
  16. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/API_LIMITS.sql.jinja +0 -0
  17. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/ASSIGN_OUTBOUND_TARGET_TYPE.sql.jinja +0 -0
  18. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/CHECK_CONNECTION_PROGRESS.sql.jinja +0 -0
  19. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/CONFIGURATION_FORM.sql.jinja +0 -0
  20. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/CONNECTION_FORM.sql.jinja +0 -0
  21. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/CONNECTION_TEST.sql.jinja +0 -0
  22. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/CONSTRUCT_FORM_OPTION.sql.jinja +0 -0
  23. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/CREATE_BILLING_EVENTS.sql.jinja +0 -0
  24. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/CREATE_GENERIC_SECRET_OBJECT.sql.jinja +0 -0
  25. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/CREATE_GENERIC_SECRET_OBJECT_FROM_EXISTING.sql.jinja +0 -0
  26. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/CREATE_NETWORK_RULE_OBJECT.sql.jinja +0 -0
  27. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/CREATE_NETWORK_RULE_OBJECT_FROM_EXISTING.sql.jinja +0 -0
  28. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/CREATE_OAUTH_SECRET_OBJECT.sql.jinja +0 -0
  29. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/DROP_NETWORK_RULES.sql.jinja +0 -0
  30. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/DROP_SECRETS.sql.jinja +0 -0
  31. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/FETCH_CONNECTIONS.sql.jinja +0 -0
  32. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/FETCH_SYNCS.sql.jinja +0 -0
  33. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/FETCH_SYNC_BRANCHES.sql.jinja +0 -0
  34. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/GET_MISSING_APP_PRIVILEGES.sql.jinja +0 -0
  35. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/INBOUND_LIST_STREAMS.sql.jinja +0 -0
  36. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/LIST_APP_SPECIFICATIONS.sql.jinja +0 -0
  37. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/LIST_STAGES.sql.jinja +0 -0
  38. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/NETWORK_ADDRESSES.sql.jinja +0 -0
  39. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/NGROK_POST_TUNNEL_FIELDS.sql.jinja +0 -0
  40. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/OUTBOUND_RECORD_VALIDATOR.sql.jinja +0 -0
  41. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/PENDING_API_CONFIGURATION.sql.jinja +0 -0
  42. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/POST_INSTALL_ACTIONS.sql.jinja +0 -0
  43. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/RENAME_CONNECTION_METHODS.sql.jinja +0 -0
  44. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/RETRIEVE_NETWORK_RULE_OBJECT.sql.jinja +0 -0
  45. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/RETRIEVE_SECRETS.sql.jinja +0 -0
  46. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/RETRIEVE_SECRETS_UDF.sql.jinja +0 -0
  47. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/SET_EAI_SPECIFICATION.sql.jinja +0 -0
  48. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/SET_SI_SPECIFICATION.sql.jinja +0 -0
  49. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/SYNC.sql.jinja +0 -0
  50. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/TEST_CALLBACK.sql.jinja +0 -0
  51. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/TEST_OAUTH_TOKEN_EXISTS.sql.jinja +0 -0
  52. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/TUNNEL_TEST.sql.jinja +0 -0
  53. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/UPDATE_API_CONFIGURATION.sql.jinja +0 -0
  54. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/UPDATE_GENERIC_SECRET_OBJECT.sql.jinja +0 -0
  55. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/UPDATE_GENERIC_SECRET_OBJECT_OLD.sql.jinja +0 -0
  56. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/UPDATE_NETWORK_RULE_OBJECT.sql.jinja +0 -0
  57. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/jinja_templates/manifest.yml.jinja +0 -0
  58. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/native_app_packaging.py +0 -0
  59. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/plugin_registration.py +0 -0
  60. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/plugin_template/icon.svg +0 -0
  61. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/plugin_template/plugin.py +0 -0
  62. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/plugin_template/plugin_development.ipynb +0 -0
  63. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/plugin_template/requirements.txt +0 -0
  64. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/snowcli/__init__.py +0 -0
  65. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/snowcli/cli/__init__.py +0 -0
  66. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/snowcli/cli/api/__init__.py +0 -0
  67. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/snowcli/cli/api/config.py +0 -0
  68. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/snowcli/cli/api/constants.py +0 -0
  69. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/snowcli/cli/api/exceptions.py +0 -0
  70. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/snowcli/cli/api/secure_path.py +0 -0
  71. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/snowcli/cli/api/secure_utils.py +0 -0
  72. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/snowcli/cli/api/utils/__init__.py +0 -0
  73. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/snowcli/cli/api/utils/types.py +0 -0
  74. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/snowcli/cli/app/__init__.py +0 -0
  75. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/snowcli/cli/app/snow_connector.py +0 -0
  76. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/snowcli/cli/plugins/__init__.py +0 -0
  77. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/snowcli/cli/plugins/snowpark/__init__.py +0 -0
  78. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/snowcli/cli/plugins/snowpark/models.py +0 -0
  79. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/snowcli/cli/plugins/snowpark/package/__init__.py +0 -0
  80. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/snowcli/cli/plugins/snowpark/package_utils.py +0 -0
  81. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/snowcli/cli/plugins/snowpark/snowpark_shared.py +0 -0
  82. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/snowcli/cli/plugins/snowpark/venv.py +0 -0
  83. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/snowcli/cli/plugins/snowpark/zipper.py +0 -0
  84. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/snowcli/cli/templates/environment.yml.jinja +0 -0
  85. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/streamlit/plugin_configuration.py +0 -0
  86. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/test_step_definitions.py +0 -0
  87. {omnata_plugin_devkit-0.13.5 → omnata_plugin_devkit-0.13.6}/src/omnata_plugin_devkit/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omnata-plugin-devkit
3
- Version: 0.13.5
3
+ Version: 0.13.6
4
4
  Summary:
5
5
  License-File: LICENSE
6
6
  Author: James Weakley
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "omnata-plugin-devkit"
3
- version = "0.13.5"
3
+ version = "0.13.6"
4
4
  description = ""
5
5
  authors = ["James Weakley <james.weakley@omnata.com>"]
6
6
  readme = "README.md"
@@ -108,9 +108,11 @@ try{
108
108
  }
109
109
  }
110
110
 
111
- // Collect all visible EAIs. V2 EAIs contain "__" and are always considered.
112
- // V1 EAIs (no "__") are only included if present in the registration record,
113
- // filtering out stale or deleted connections.
111
+ // Collect all visible EAIs. V2 EAIs contain "__" and are included only when their
112
+ // COMMENT is exactly 'Active' the comment is the binding-inclusion signal, not the
113
+ // ENABLED flag (the flag is left TRUE so SET_CONNECTION_OBJECTS stays callable while
114
+ // it has stale bindings to a connection's EAI). V1 EAIs (no "__") are still filtered
115
+ // through the registration record, which catches stale or deleted connections.
114
116
  // Column order for 'show external access integrations': name(1), type(2), category(3), enabled(4), comment(5), created_on(6)
115
117
  var showEaiResults = snowflake.createStatement( {
116
118
  sqlText: `show external access integrations`,
@@ -119,19 +121,18 @@ try{
119
121
  var candidateEais = [];
120
122
  while (showEaiResults.next()) {
121
123
  var eaiName = showEaiResults.getColumnValue(1);
122
- var eaiEnabled = showEaiResults.getColumnValue(4);
123
- if (eaiEnabled === false || String(eaiEnabled).toLowerCase() === 'false'){
124
- snowflake.log("warn", `Excluding EAI ${eaiName} because it is disabled (enabled=false)`);
125
- continue;
126
- }
127
- if (eaiName.includes('__') || registeredV1EaiNames.has(eaiName)) {
128
- if (registeredV1EaiNames.has(eaiName)){
129
- snowflake.log("warn",`Legacy EAI still in use: ${eaiName}`)
130
- };
124
+ var eaiComment = showEaiResults.getColumnValue(5);
125
+ if (eaiName.includes('__')) {
126
+ if (eaiComment !== 'Active') {
127
+ snowflake.log("warn", `Excluding V2 EAI ${eaiName} because comment is '${eaiComment}' (not 'Active')`);
128
+ continue;
129
+ }
131
130
  candidateEais.push(eaiName);
132
- }
133
- else{
134
- snowflake.log("warn",`Excluding EAI ${eaiName} as it is a V1 connection but not registered locally`)
131
+ } else if (registeredV1EaiNames.has(eaiName)) {
132
+ snowflake.log("warn", `Legacy EAI still in use: ${eaiName}`);
133
+ candidateEais.push(eaiName);
134
+ } else {
135
+ snowflake.log("warn", `Excluding EAI ${eaiName} as it is a V1 connection but not registered locally`);
135
136
  }
136
137
  }
137
138
  snowflake.log("info", `Candidate EAIs: ${candidateEais.join(',')}`);
@@ -252,11 +252,15 @@ def run(session, parameters):
252
252
  # bound to this proc by CONFIGURE_APIS — the alias is the unqualified name.
253
253
  seed_secrets = {}
254
254
  if merge_with_secret_name:
255
- raw = _snowflake.get_generic_secret_string(merge_with_secret_name)
256
- if raw and len(raw) > 2:
257
- decoded = json.loads(raw)
258
- if isinstance(decoded, dict):
259
- seed_secrets = decoded
255
+ try:
256
+ raw = _snowflake.get_generic_secret_string(merge_with_secret_name)
257
+ if raw and len(raw) > 2:
258
+ decoded = json.loads(raw)
259
+ if isinstance(decoded, dict):
260
+ seed_secrets = decoded
261
+ except Exception as secret_merge_exception:
262
+ # there are various reasons that the secret may no longer be accessible
263
+ log_exception(secret_merge_exception, logger)
260
264
  if connection_secrets:
261
265
  seed_secrets.update(connection_secrets)
262
266
  _call_proc(
@@ -277,11 +281,13 @@ def run(session, parameters):
277
281
  eai_secrets_clause = ''
278
282
  if eai_secrets:
279
283
  eai_secrets_clause = f"\n ALLOWED_AUTHENTICATION_SECRETS = ({', '.join(eai_secrets)})"
284
+ # ENABLED is always TRUE; binding inclusion is gated by COMMENT='Inactive' until the consumer activates via SET_EAI_ACTIVE.
280
285
  eai_sql = (
281
286
  f"CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION IDENTIFIER(?)\n"
282
287
  f" ALLOWED_NETWORK_RULES = ({eai_rules_sql})"
283
288
  f"{eai_secrets_clause}\n"
284
- f" ENABLED = FALSE"
289
+ f" ENABLED = TRUE\n"
290
+ f" COMMENT = 'Inactive'"
285
291
  )
286
292
  logger.info(f"Executing SQL: {eai_sql}")
287
293
  session.sql(eai_sql, params=[eai_name]).collect()
@@ -0,0 +1,38 @@
1
+ create or replace procedure PLUGIN.SET_EAI_ACTIVE(EAI_NAME VARCHAR, ACTIVE BOOLEAN)
2
+ returns object
3
+ language javascript
4
+ COMMENT = $$
5
+ Marks an External Access Integration as 'Active' or 'Inactive' via
6
+ ALTER EXTERNAL ACCESS INTEGRATION <name> SET COMMENT = '...'.
7
+ This drives binding inclusion in CONFIGURE_APIS; the EAI's ENABLED flag is left at TRUE.
8
+ $$
9
+ execute as owner
10
+ as
11
+ $$
12
+ try{
13
+ if (typeof EAI_NAME !== 'string' || EAI_NAME.length === 0 || EAI_NAME.length > 255){
14
+ throw `SET_EAI_ACTIVE: EAI_NAME must be a non-empty string`;
15
+ }
16
+ var commentSql = ACTIVE ? "'Active'" : "'Inactive'";
17
+ var sql = `ALTER EXTERNAL ACCESS INTEGRATION IDENTIFIER(?) SET COMMENT = ${commentSql}`;
18
+ snowflake.log("info", `Executing SQL: ${sql}`);
19
+ snowflake.createStatement({sqlText: sql, binds: [EAI_NAME]}).execute();
20
+ return {
21
+ "success": true,
22
+ "data": {
23
+ "name": EAI_NAME,
24
+ "active": ACTIVE
25
+ }
26
+ };
27
+ }
28
+ catch(e){
29
+ return {
30
+ "success": false,
31
+ "error": `SET_EAI_ACTIVE: ${String(e)}`
32
+ };
33
+ }
34
+ $$
35
+ ;
36
+
37
+ grant usage on procedure PLUGIN.SET_EAI_ACTIVE(VARCHAR, BOOLEAN)
38
+ to application role OMNATA_MANAGEMENT;
@@ -493,7 +493,7 @@ class PluginUploader:
493
493
  "CHECK_CONNECTION_PROGRESS",
494
494
  "DROP_SECRETS",
495
495
  "DROP_NETWORK_RULES",
496
- "SET_EAI_ENABLED",
496
+ "SET_EAI_ACTIVE",
497
497
  "GET_MISSING_APP_PRIVILEGES"
498
498
  ]:
499
499
  template = environment.get_template(f"{proc_template}.sql.jinja")
@@ -1,43 +0,0 @@
1
- create or replace procedure PLUGIN.SET_EAI_ENABLED(EAI_NAME VARCHAR, ENABLED BOOLEAN)
2
- returns object
3
- language javascript
4
- COMMENT = $$
5
- Enables or disables an External Access Integration owned by this application via
6
- ALTER EXTERNAL ACCESS INTEGRATION <name> SET ENABLED = TRUE|FALSE.
7
- $$
8
- execute as owner
9
- as
10
- $$
11
- try{
12
- if (typeof EAI_NAME !== 'string' || EAI_NAME.length === 0 || EAI_NAME.length > 255){
13
- throw `SET_EAI_ENABLED: EAI_NAME must be a non-empty string`;
14
- }
15
- /*
16
- From docs:
17
- The values true and false are represented by 1 and 0 respectively.
18
- Note that this behavior may change in future releases, so you should rely
19
- on JavaScript truthiness rather than direct value comparisons.
20
- */
21
- var enabledSql = ENABLED ? 'TRUE' : 'FALSE';
22
- var sql = `ALTER EXTERNAL ACCESS INTEGRATION IDENTIFIER(?) SET ENABLED = ${enabledSql}`;
23
- snowflake.log("info", `Executing SQL: ${sql}`);
24
- snowflake.createStatement({sqlText: sql, binds: [EAI_NAME]}).execute();
25
- return {
26
- "success": true,
27
- "data": {
28
- "name": EAI_NAME,
29
- "enabled": ENABLED
30
- }
31
- };
32
- }
33
- catch(e){
34
- return {
35
- "success": false,
36
- "error": `SET_EAI_ENABLED: ${String(e)}`
37
- };
38
- }
39
- $$
40
- ;
41
-
42
- grant usage on procedure PLUGIN.SET_EAI_ENABLED(VARCHAR, BOOLEAN)
43
- to application role OMNATA_MANAGEMENT;