omnata-plugin-runtime 0.6.10a180__tar.gz → 0.7.0a182__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {omnata_plugin_runtime-0.6.10a180 → omnata_plugin_runtime-0.7.0a182}/PKG-INFO +1 -1
- {omnata_plugin_runtime-0.6.10a180 → omnata_plugin_runtime-0.7.0a182}/pyproject.toml +1 -1
- {omnata_plugin_runtime-0.6.10a180 → omnata_plugin_runtime-0.7.0a182}/src/omnata_plugin_runtime/configuration.py +8 -0
- {omnata_plugin_runtime-0.6.10a180 → omnata_plugin_runtime-0.7.0a182}/src/omnata_plugin_runtime/forms.py +1 -0
- {omnata_plugin_runtime-0.6.10a180 → omnata_plugin_runtime-0.7.0a182}/src/omnata_plugin_runtime/omnata_plugin.py +7 -2
- {omnata_plugin_runtime-0.6.10a180 → omnata_plugin_runtime-0.7.0a182}/src/omnata_plugin_runtime/plugin_entrypoints.py +5 -3
- {omnata_plugin_runtime-0.6.10a180 → omnata_plugin_runtime-0.7.0a182}/LICENSE +0 -0
- {omnata_plugin_runtime-0.6.10a180 → omnata_plugin_runtime-0.7.0a182}/README.md +0 -0
- {omnata_plugin_runtime-0.6.10a180 → omnata_plugin_runtime-0.7.0a182}/src/omnata_plugin_runtime/__init__.py +0 -0
- {omnata_plugin_runtime-0.6.10a180 → omnata_plugin_runtime-0.7.0a182}/src/omnata_plugin_runtime/api.py +0 -0
- {omnata_plugin_runtime-0.6.10a180 → omnata_plugin_runtime-0.7.0a182}/src/omnata_plugin_runtime/logging.py +0 -0
- {omnata_plugin_runtime-0.6.10a180 → omnata_plugin_runtime-0.7.0a182}/src/omnata_plugin_runtime/rate_limiting.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
[tool.poetry]
|
2
2
|
name = "omnata-plugin-runtime"
|
3
|
-
version = "0.
|
3
|
+
version = "0.7.0-a182"
|
4
4
|
description = "Classes and common runtime components for building and running Omnata Plugins"
|
5
5
|
authors = ["James Weakley <james.weakley@omnata.com>"]
|
6
6
|
readme = "README.md"
|
@@ -37,6 +37,14 @@ class InboundStorageBehaviour(str, Enum):
|
|
37
37
|
MERGE = "merge"
|
38
38
|
REPLACE = "replace" # now deprecated, full refreshes now use merge
|
39
39
|
|
40
|
+
class ConnectivityOption(str, Enum):
|
41
|
+
"""
|
42
|
+
Describes the connectivity options available to a plugin.
|
43
|
+
These result in slightly different network rules and connection onboarding.
|
44
|
+
"""
|
45
|
+
DIRECT = "direct"
|
46
|
+
NGROK = "ngrok"
|
47
|
+
PRIVATELINK = "privatelink"
|
40
48
|
|
41
49
|
class InboundSyncStrategy(str, Enum):
|
42
50
|
FULL_REFRESH = "Full Refresh"
|
@@ -489,5 +489,6 @@ class ConnectionMethod(SubscriptableBaseModel):
|
|
489
489
|
name: str
|
490
490
|
fields: List[FormFieldBase]
|
491
491
|
oauth_template: Optional[SecurityIntegrationTemplate] = Field(default=None)
|
492
|
+
# This is now deprecated, instead signal ngrok support via the plugin manifest
|
492
493
|
ngrok_tunnel_configuration: Optional[NGrokMTLSTunnel] = Field(default=None)
|
493
494
|
description: str = Field(default="")
|
@@ -72,7 +72,8 @@ from .configuration import (
|
|
72
72
|
StreamConfiguration,
|
73
73
|
SubscriptableBaseModel,
|
74
74
|
SyncConfigurationParameters,
|
75
|
-
get_secrets
|
75
|
+
get_secrets,
|
76
|
+
ConnectivityOption
|
76
77
|
)
|
77
78
|
from .forms import (
|
78
79
|
ConnectionMethod,
|
@@ -101,6 +102,7 @@ class PluginManifest(SubscriptableBaseModel):
|
|
101
102
|
:param str docs_url: The URL where plugin documentation can be found, e.g. "https://docs.omnata.com"
|
102
103
|
:param bool supports_inbound: A flag to indicate whether or not the plugin supports inbound sync. Support for inbound sync behaviours (full/incremental) is defined per inbound stream.
|
103
104
|
:param List[OutboundSyncStrategy] supported_outbound_strategies: A list of sync strategies that the plugin can support, e.g. create,upsert.
|
105
|
+
:param List[ConnectivityOption] supported_connectivity_options: A list of connectivity options that the plugin can support, e.g. direct,ngrok,privatelink
|
104
106
|
"""
|
105
107
|
|
106
108
|
plugin_id: str
|
@@ -110,6 +112,9 @@ class PluginManifest(SubscriptableBaseModel):
|
|
110
112
|
docs_url: str
|
111
113
|
supports_inbound: bool
|
112
114
|
supported_outbound_strategies: List[OutboundSyncStrategy]
|
115
|
+
supported_connectivity_options: List[ConnectivityOption] = Field(
|
116
|
+
default_factory=lambda: [ConnectivityOption.DIRECT]
|
117
|
+
)
|
113
118
|
|
114
119
|
|
115
120
|
class SnowflakeFunctionParameter(BaseModel):
|
@@ -1643,7 +1648,7 @@ class OmnataPlugin(ABC):
|
|
1643
1648
|
)
|
1644
1649
|
|
1645
1650
|
@abstractmethod
|
1646
|
-
def connection_form(self) -> List[ConnectionMethod]:
|
1651
|
+
def connection_form(self,connectivity_option:ConnectivityOption) -> List[ConnectionMethod]:
|
1647
1652
|
"""
|
1648
1653
|
Returns a form definition so that user input can be collected, in order to connect to an app
|
1649
1654
|
|
@@ -20,7 +20,8 @@ from .configuration import (
|
|
20
20
|
OutboundSyncStrategy,
|
21
21
|
StoredConfigurationValue,
|
22
22
|
StoredMappingValue,
|
23
|
-
get_secrets
|
23
|
+
get_secrets,
|
24
|
+
ConnectivityOption
|
24
25
|
)
|
25
26
|
from .forms import ConnectionMethod, FormInputField, FormOption
|
26
27
|
from .logging import OmnataPluginLogHandler
|
@@ -381,9 +382,10 @@ class PluginEntrypoint:
|
|
381
382
|
results.append(script_result.model_dump())
|
382
383
|
return results
|
383
384
|
|
384
|
-
def connection_form(self):
|
385
|
+
def connection_form(self,connectivity_option: str):
|
386
|
+
connectivity_option = TypeAdapter(ConnectivityOption).validate_python(connectivity_option)
|
385
387
|
logger.info("Entered connection_form method")
|
386
|
-
form: List[ConnectionMethod] = self._plugin_instance.connection_form()
|
388
|
+
form: List[ConnectionMethod] = self._plugin_instance.connection_form(connectivity_option=connectivity_option)
|
387
389
|
return [f.model_dump() for f in form]
|
388
390
|
|
389
391
|
def create_billing_events(self, session, event_request: Dict):
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|