omnata-plugin-devkit 0.10.15a112__tar.gz → 0.10.15a116__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 (77) hide show
  1. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/PKG-INFO +1 -1
  2. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/pyproject.toml +1 -1
  3. omnata_plugin_devkit-0.10.15a116/src/omnata_plugin_devkit/jinja_templates/FETCH_SYNCS.sql.jinja +26 -0
  4. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/jinja_templates/manifest.yml.jinja +1 -0
  5. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/plugin_uploader.py +1 -2
  6. omnata_plugin_devkit-0.10.15a112/src/omnata_plugin_devkit/jinja_templates/CREATE_EXTERNAL_ACCESS_INTEGRATION.sql.jinja +0 -52
  7. omnata_plugin_devkit-0.10.15a112/src/omnata_plugin_devkit/jinja_templates/DROP_EXTERNAL_ACCESS_OBJECTS.sql.jinja +0 -82
  8. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/LICENSE +0 -0
  9. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/README.md +0 -0
  10. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/__init__.py +0 -0
  11. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/airbyte_wrapper.py +0 -0
  12. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/cli/__init__.py +0 -0
  13. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/development.ipynb +0 -0
  14. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/development_session.py +0 -0
  15. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/initialiser.py +0 -0
  16. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/jinja_templates/API_LIMITS.sql.jinja +0 -0
  17. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/jinja_templates/ASSIGN_OUTBOUND_TARGET_TYPE.sql.jinja +0 -0
  18. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/jinja_templates/CONFIGURATION_FORM.sql.jinja +0 -0
  19. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/jinja_templates/CONFIGURE_APIS.sql.jinja +0 -0
  20. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/jinja_templates/CONNECTION_FORM.sql.jinja +0 -0
  21. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/jinja_templates/CONNECTION_TEST.sql.jinja +0 -0
  22. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/jinja_templates/CONSTRUCT_FORM_OPTION.sql.jinja +0 -0
  23. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/jinja_templates/CREATE_BILLING_EVENTS.sql.jinja +0 -0
  24. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/jinja_templates/CREATE_GENERIC_SECRET_OBJECT.sql.jinja +0 -0
  25. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/jinja_templates/CREATE_GENERIC_SECRET_OBJECT_FROM_EXISTING.sql.jinja +0 -0
  26. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/jinja_templates/CREATE_NETWORK_RULE_OBJECT.sql.jinja +0 -0
  27. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/jinja_templates/CREATE_NETWORK_RULE_OBJECT_FROM_EXISTING.sql.jinja +0 -0
  28. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/jinja_templates/CREATE_OAUTH_SECRET_OBJECT.sql.jinja +0 -0
  29. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/jinja_templates/INBOUND_LIST_STREAMS.sql.jinja +0 -0
  30. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/jinja_templates/LIST_STAGES.sql.jinja +0 -0
  31. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/jinja_templates/NETWORK_ADDRESSES.sql.jinja +0 -0
  32. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/jinja_templates/NGROK_POST_TUNNEL_FIELDS.sql.jinja +0 -0
  33. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/jinja_templates/OUTBOUND_RECORD_VALIDATOR.sql.jinja +0 -0
  34. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/jinja_templates/PENDING_API_CONFIGURATION.sql.jinja +0 -0
  35. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/jinja_templates/POST_INSTALL_ACTIONS.sql.jinja +0 -0
  36. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/jinja_templates/RENAME_CONNECTION_METHODS.sql.jinja +0 -0
  37. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/jinja_templates/RETRIEVE_NETWORK_RULE_OBJECT.sql.jinja +0 -0
  38. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/jinja_templates/RETRIEVE_SECRETS.sql.jinja +0 -0
  39. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/jinja_templates/RETRIEVE_SECRETS_UDF.sql.jinja +0 -0
  40. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/jinja_templates/SYNC.sql.jinja +0 -0
  41. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/jinja_templates/TEST_CALLBACK.sql.jinja +0 -0
  42. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/jinja_templates/TEST_OAUTH_TOKEN_EXISTS.sql.jinja +0 -0
  43. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/jinja_templates/TUNNEL_TEST.sql.jinja +0 -0
  44. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/jinja_templates/UPDATE_API_CONFIGURATION.sql.jinja +0 -0
  45. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/jinja_templates/UPDATE_GENERIC_SECRET_OBJECT.sql.jinja +0 -0
  46. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/jinja_templates/UPDATE_GENERIC_SECRET_OBJECT_OLD.sql.jinja +0 -0
  47. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/jinja_templates/UPDATE_NETWORK_RULE_OBJECT.sql.jinja +0 -0
  48. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/native_app_packaging.py +0 -0
  49. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/plugin_registration.py +0 -0
  50. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/plugin_template/icon.svg +0 -0
  51. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/plugin_template/plugin.py +0 -0
  52. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/plugin_template/plugin_development.ipynb +0 -0
  53. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/plugin_template/requirements.txt +0 -0
  54. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/snowcli/__init__.py +0 -0
  55. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/snowcli/cli/__init__.py +0 -0
  56. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/snowcli/cli/api/__init__.py +0 -0
  57. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/snowcli/cli/api/config.py +0 -0
  58. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/snowcli/cli/api/constants.py +0 -0
  59. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/snowcli/cli/api/exceptions.py +0 -0
  60. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/snowcli/cli/api/secure_path.py +0 -0
  61. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/snowcli/cli/api/secure_utils.py +0 -0
  62. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/snowcli/cli/api/utils/__init__.py +0 -0
  63. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/snowcli/cli/api/utils/types.py +0 -0
  64. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/snowcli/cli/app/__init__.py +0 -0
  65. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/snowcli/cli/app/snow_connector.py +0 -0
  66. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/snowcli/cli/plugins/__init__.py +0 -0
  67. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/snowcli/cli/plugins/snowpark/__init__.py +0 -0
  68. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/snowcli/cli/plugins/snowpark/models.py +0 -0
  69. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/snowcli/cli/plugins/snowpark/package/__init__.py +0 -0
  70. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/snowcli/cli/plugins/snowpark/package_utils.py +0 -0
  71. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/snowcli/cli/plugins/snowpark/snowpark_shared.py +0 -0
  72. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/snowcli/cli/plugins/snowpark/venv.py +0 -0
  73. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/snowcli/cli/plugins/snowpark/zipper.py +0 -0
  74. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/snowcli/cli/templates/environment.yml.jinja +0 -0
  75. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/streamlit/plugin_configuration.py +0 -0
  76. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/test_step_definitions.py +0 -0
  77. {omnata_plugin_devkit-0.10.15a112 → omnata_plugin_devkit-0.10.15a116}/src/omnata_plugin_devkit/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: omnata-plugin-devkit
3
- Version: 0.10.15a112
3
+ Version: 0.10.15a116
4
4
  Summary:
5
5
  Author: James Weakley
6
6
  Author-email: james.weakley@omnata.com
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "omnata-plugin-devkit"
3
- version = "0.10.15-a112"
3
+ version = "0.10.15-a116"
4
4
  description = ""
5
5
  authors = ["James Weakley <james.weakley@omnata.com>"]
6
6
  readme = "README.md"
@@ -0,0 +1,26 @@
1
+ CREATE or replace PROCEDURE PLUGIN.FETCH_SYNCS()
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()));
23
+
24
+ RETURN TABLE(SYNCS);
25
+
26
+ END;
@@ -24,3 +24,4 @@ configuration:
24
24
  sharing: OPTIONAL
25
25
  - type: DEBUG_LOGS
26
26
  sharing: OPTIONAL
27
+
@@ -469,12 +469,11 @@ class PluginUploader:
469
469
  "CONFIGURE_APIS",
470
470
  "UPDATE_API_CONFIGURATION",
471
471
  "PENDING_API_CONFIGURATION",
472
+ "FETCH_SYNCS",
472
473
  "TEST_CALLBACK",
473
474
  "LIST_STAGES",
474
- "CREATE_EXTERNAL_ACCESS_INTEGRATION",
475
475
  "CREATE_GENERIC_SECRET_OBJECT",
476
476
  "CREATE_GENERIC_SECRET_OBJECT_FROM_EXISTING",
477
- "DROP_EXTERNAL_ACCESS_OBJECTS",
478
477
  "UPDATE_GENERIC_SECRET_OBJECT_OLD",
479
478
  "CREATE_OAUTH_SECRET_OBJECT",
480
479
  "CREATE_NETWORK_RULE_OBJECT",
@@ -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;