omnata-plugin-runtime 0.7.0a182__py3-none-any.whl → 0.7.0a184__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- omnata_plugin_runtime/api.py +3 -0
- omnata_plugin_runtime/configuration.py +4 -5
- omnata_plugin_runtime/plugin_entrypoints.py +21 -24
- {omnata_plugin_runtime-0.7.0a182.dist-info → omnata_plugin_runtime-0.7.0a184.dist-info}/METADATA +1 -1
- omnata_plugin_runtime-0.7.0a184.dist-info/RECORD +12 -0
- omnata_plugin_runtime-0.7.0a182.dist-info/RECORD +0 -12
- {omnata_plugin_runtime-0.7.0a182.dist-info → omnata_plugin_runtime-0.7.0a184.dist-info}/LICENSE +0 -0
- {omnata_plugin_runtime-0.7.0a182.dist-info → omnata_plugin_runtime-0.7.0a184.dist-info}/WHEEL +0 -0
omnata_plugin_runtime/api.py
CHANGED
@@ -22,6 +22,7 @@ from .configuration import (
|
|
22
22
|
OutboundSyncStrategy,
|
23
23
|
StoredConfigurationValue,
|
24
24
|
StoredMappingValue,
|
25
|
+
ConnectivityOption
|
25
26
|
)
|
26
27
|
from .rate_limiting import ApiLimits, RateLimitState
|
27
28
|
|
@@ -119,6 +120,7 @@ class OutboundSyncRequestPayload(BaseModel):
|
|
119
120
|
results_table_name: str # used to stage results back to the engine, resides in the main Omnata app database
|
120
121
|
logging_level: str
|
121
122
|
connection_method: str
|
123
|
+
connectivity_option: ConnectivityOption = Field(default=ConnectivityOption.DIRECT)
|
122
124
|
connection_parameters: Dict[str, StoredConfigurationValue]
|
123
125
|
oauth_secret_name: Optional[str] = None
|
124
126
|
other_secrets_name: Optional[str] = None
|
@@ -146,6 +148,7 @@ class InboundSyncRequestPayload(BaseModel):
|
|
146
148
|
results_table_name: str # used to stage results back to the engine, resides in the main Omnata app database
|
147
149
|
logging_level: str
|
148
150
|
connection_method: str
|
151
|
+
connectivity_option: ConnectivityOption = Field(default=ConnectivityOption.DIRECT)
|
149
152
|
connection_parameters: Dict[str, StoredConfigurationValue]
|
150
153
|
oauth_secret_name: Optional[str] = None
|
151
154
|
other_secrets_name: Optional[str] = None
|
@@ -551,6 +551,7 @@ class ConnectionConfigurationParameters(SubscriptableBaseModel):
|
|
551
551
|
"""
|
552
552
|
|
553
553
|
connection_method: str
|
554
|
+
connectivity_option: ConnectivityOption = Field(default=ConnectivityOption.DIRECT)
|
554
555
|
connection_parameters: Optional[Dict[str, StoredConfigurationValue]] = Field(default=None)
|
555
556
|
connection_secrets: Optional[Dict[str, StoredConfigurationValue]] = Field(default=None)
|
556
557
|
ngrok_tunnel_settings: Optional[NgrokTunnelSettings] = Field(default=None)
|
@@ -560,11 +561,9 @@ class ConnectionConfigurationParameters(SubscriptableBaseModel):
|
|
560
561
|
default=None
|
561
562
|
)
|
562
563
|
|
563
|
-
@
|
564
|
-
|
565
|
-
|
566
|
-
A validator which picks out the ngrok tunnel configuration from the secrets and provides it as a typed object.
|
567
|
-
"""
|
564
|
+
@field_validator('ngrok_tunnel_settings',mode='before')
|
565
|
+
@classmethod
|
566
|
+
def validate_ngrok_tunnel_settings(cls, values: Optional[dict[str, Any]]) -> Optional[NgrokTunnelSettings]:
|
568
567
|
if "connection_secrets" in values:
|
569
568
|
connection_secrets:Dict[str, StoredConfigurationValue] = values["connection_secrets"]
|
570
569
|
if "ngrok_client_certificate" in connection_secrets and \
|
@@ -99,6 +99,7 @@ class PluginEntrypoint:
|
|
99
99
|
# construct some connection parameters for the purpose of getting the api limits
|
100
100
|
connection_parameters = ConnectionConfigurationParameters(
|
101
101
|
connection_method=request.connection_method,
|
102
|
+
connectivity_option=request.connectivity_option,
|
102
103
|
connection_parameters=request.connection_parameters,
|
103
104
|
connection_secrets=connection_secrets
|
104
105
|
)
|
@@ -139,6 +140,7 @@ class PluginEntrypoint:
|
|
139
140
|
if request.sync_direction == "outbound":
|
140
141
|
parameters = OutboundSyncConfigurationParameters(
|
141
142
|
connection_method=request.connection_method,
|
143
|
+
connectivity_option=request.connectivity_option,
|
142
144
|
connection_parameters=request.connection_parameters,
|
143
145
|
connection_secrets=connection_secrets,
|
144
146
|
sync_parameters=request.sync_parameters,
|
@@ -194,6 +196,7 @@ class PluginEntrypoint:
|
|
194
196
|
logger.info("Running inbound sync")
|
195
197
|
parameters = InboundSyncConfigurationParameters(
|
196
198
|
connection_method=request.connection_method,
|
199
|
+
connectivity_option=request.connectivity_option,
|
197
200
|
connection_parameters=request.connection_parameters,
|
198
201
|
connection_secrets=connection_secrets,
|
199
202
|
sync_parameters=request.sync_parameters,
|
@@ -269,6 +272,7 @@ class PluginEntrypoint:
|
|
269
272
|
|
270
273
|
def configuration_form(
|
271
274
|
self,
|
275
|
+
connectivity_option:str,
|
272
276
|
connection_method: str,
|
273
277
|
connection_parameters: Dict,
|
274
278
|
oauth_secret_name: Optional[str],
|
@@ -284,6 +288,7 @@ class PluginEntrypoint:
|
|
284
288
|
oauth_secret_name = normalise_nulls(oauth_secret_name)
|
285
289
|
other_secrets_name = normalise_nulls(other_secrets_name)
|
286
290
|
connection_secrets = get_secrets(oauth_secret_name, other_secrets_name)
|
291
|
+
connectivity_option = TypeAdapter(ConnectivityOption).validate_python(connectivity_option)
|
287
292
|
connection_parameters = TypeAdapter(
|
288
293
|
Dict[str, StoredConfigurationValue]).validate_python(connection_parameters)
|
289
294
|
sync_parameters = TypeAdapter(
|
@@ -299,6 +304,7 @@ class PluginEntrypoint:
|
|
299
304
|
sync_strategy=sync_strat,
|
300
305
|
sync_parameters=sync_parameters,
|
301
306
|
connection_method=connection_method,
|
307
|
+
connectivity_option=connectivity_option,
|
302
308
|
current_form_parameters=form_parameters,
|
303
309
|
)
|
304
310
|
elif sync_direction == "inbound":
|
@@ -307,6 +313,7 @@ class PluginEntrypoint:
|
|
307
313
|
connection_secrets=connection_secrets,
|
308
314
|
sync_parameters=sync_parameters,
|
309
315
|
connection_method=connection_method,
|
316
|
+
connectivity_option=connectivity_option,
|
310
317
|
current_form_parameters=form_parameters,
|
311
318
|
)
|
312
319
|
else:
|
@@ -327,6 +334,7 @@ class PluginEntrypoint:
|
|
327
334
|
|
328
335
|
def inbound_list_streams(
|
329
336
|
self,
|
337
|
+
connectivity_option:str,
|
330
338
|
connection_method: str,
|
331
339
|
connection_parameters: Dict,
|
332
340
|
oauth_secret_name: Optional[str],
|
@@ -338,6 +346,7 @@ class PluginEntrypoint:
|
|
338
346
|
oauth_secret_name = normalise_nulls(oauth_secret_name)
|
339
347
|
other_secrets_name = normalise_nulls(other_secrets_name)
|
340
348
|
connection_secrets = get_secrets(oauth_secret_name, other_secrets_name)
|
349
|
+
connectivity_option = TypeAdapter(ConnectivityOption).validate_python(connectivity_option)
|
341
350
|
connection_parameters = TypeAdapter(
|
342
351
|
Dict[str, StoredConfigurationValue]).validate_python(connection_parameters)
|
343
352
|
sync_parameters = TypeAdapter(
|
@@ -346,6 +355,7 @@ class PluginEntrypoint:
|
|
346
355
|
connection_parameters=connection_parameters,
|
347
356
|
connection_secrets=connection_secrets,
|
348
357
|
sync_parameters=sync_parameters,
|
358
|
+
connectivity_option=connectivity_option,
|
349
359
|
connection_method=connection_method,
|
350
360
|
current_form_parameters=None,
|
351
361
|
currently_selected_streams=selected_streams
|
@@ -385,7 +395,10 @@ class PluginEntrypoint:
|
|
385
395
|
def connection_form(self,connectivity_option: str):
|
386
396
|
connectivity_option = TypeAdapter(ConnectivityOption).validate_python(connectivity_option)
|
387
397
|
logger.info("Entered connection_form method")
|
388
|
-
|
398
|
+
if self._plugin_instance.connection_form.connection_form.__code__.co_argcount==1:
|
399
|
+
form: List[ConnectionMethod] = self._plugin_instance.connection_form()
|
400
|
+
else:
|
401
|
+
form: List[ConnectionMethod] = self._plugin_instance.connection_form(connectivity_option)
|
389
402
|
return [f.model_dump() for f in form]
|
390
403
|
|
391
404
|
def create_billing_events(self, session, event_request: Dict):
|
@@ -433,30 +446,9 @@ class PluginEntrypoint:
|
|
433
446
|
other_secrets_name: Optional[str],
|
434
447
|
function_name: str,
|
435
448
|
) -> List[FormInputField]:
|
436
|
-
|
437
|
-
oauth_secret_name = normalise_nulls(oauth_secret_name)
|
438
|
-
other_secrets_name = normalise_nulls(other_secrets_name)
|
439
|
-
connection_secrets = get_secrets(oauth_secret_name, other_secrets_name)
|
440
|
-
connection_parameters = TypeAdapter(
|
441
|
-
Dict[str, StoredConfigurationValue]).validate_python(connection_parameters)
|
442
|
-
parameters = ConnectionConfigurationParameters(
|
443
|
-
connection_method=connection_method,
|
444
|
-
connection_parameters=connection_parameters,
|
445
|
-
connection_secrets=connection_secrets
|
446
|
-
)
|
447
|
-
the_function = getattr(
|
448
|
-
self._plugin_instance,
|
449
|
-
function_name,
|
450
|
-
)
|
451
|
-
script_result = the_function(parameters)
|
452
|
-
if isinstance(script_result, List):
|
453
|
-
if len(script_result) > 0 and isinstance(script_result[0], BaseModel):
|
454
|
-
script_result = [r.model_dump() for r in script_result]
|
455
|
-
else:
|
456
|
-
raise ValueError(f"Expected a List from function {function_name}, got {type(script_result)}")
|
457
|
-
return script_result
|
449
|
+
raise ValueError(f"ngrok_post_tunnel_fields is deprecated")
|
458
450
|
|
459
|
-
def network_addresses(self, method: str, connection_parameters: Dict) -> List[str]:
|
451
|
+
def network_addresses(self, connectivity_option:str, method: str, connection_parameters: Dict) -> List[str]:
|
460
452
|
logger.info("Entered network_addresses method")
|
461
453
|
logger.info(f"Connection parameters: {connection_parameters}")
|
462
454
|
from omnata_plugin_runtime.omnata_plugin import (
|
@@ -465,6 +457,7 @@ class PluginEntrypoint:
|
|
465
457
|
|
466
458
|
return self._plugin_instance.network_addresses(
|
467
459
|
ConnectionConfigurationParameters(
|
460
|
+
connectivity_option=TypeAdapter(ConnectivityOption).validate_python(connectivity_option),
|
468
461
|
connection_method=method,
|
469
462
|
connection_parameters=TypeAdapter(
|
470
463
|
Dict[str, StoredConfigurationValue]).validate_python(connection_parameters),
|
@@ -474,6 +467,7 @@ class PluginEntrypoint:
|
|
474
467
|
|
475
468
|
def connect(
|
476
469
|
self,
|
470
|
+
connectivity_option:str,
|
477
471
|
method:str,
|
478
472
|
connection_parameters: Dict,
|
479
473
|
network_rule_name: str,
|
@@ -488,6 +482,7 @@ class PluginEntrypoint:
|
|
488
482
|
ConnectionConfigurationParameters,
|
489
483
|
)
|
490
484
|
parameters = ConnectionConfigurationParameters(
|
485
|
+
connectivity_option=TypeAdapter(ConnectivityOption).validate_python(connectivity_option),
|
491
486
|
connection_method=method,
|
492
487
|
connection_parameters=TypeAdapter(
|
493
488
|
Dict[str, StoredConfigurationValue]).validate_python(connection_parameters),
|
@@ -524,6 +519,7 @@ class PluginEntrypoint:
|
|
524
519
|
return connect_response.model_dump()
|
525
520
|
|
526
521
|
def api_limits(self,
|
522
|
+
connectivity_option:str,
|
527
523
|
method:str,
|
528
524
|
connection_parameters: Dict,
|
529
525
|
oauth_secret_name: Optional[str],
|
@@ -534,6 +530,7 @@ class PluginEntrypoint:
|
|
534
530
|
ConnectionConfigurationParameters,
|
535
531
|
)
|
536
532
|
connection_parameters = ConnectionConfigurationParameters(
|
533
|
+
connectivity_option=TypeAdapter(ConnectivityOption).validate_python(connectivity_option),
|
537
534
|
connection_method=method,
|
538
535
|
connection_parameters=TypeAdapter(
|
539
536
|
Dict[str, StoredConfigurationValue]).validate_python(connection_parameters),
|
@@ -0,0 +1,12 @@
|
|
1
|
+
omnata_plugin_runtime/__init__.py,sha256=MS9d1whnfT_B3-ThqZ7l63QeC_8OEKTuaYV5wTwRpBA,1576
|
2
|
+
omnata_plugin_runtime/api.py,sha256=tVi4KLL0v5N3yz3Ie0kSyFemryu572gCbtSRfWN6wBU,6523
|
3
|
+
omnata_plugin_runtime/configuration.py,sha256=Yyz3trj7G6nh3JyEw6S5qlrXUfS_MB-vZgATcNdWzp0,38339
|
4
|
+
omnata_plugin_runtime/forms.py,sha256=ueodN2GIMS5N9fqebpY4uNGJnjEb9HcuaVQVfWH-cGg,19838
|
5
|
+
omnata_plugin_runtime/logging.py,sha256=bn7eKoNWvtuyTk7RTwBS9UARMtqkiICtgMtzq3KA2V0,3272
|
6
|
+
omnata_plugin_runtime/omnata_plugin.py,sha256=aggjb_CTTjhgqjS8CHPOm4ENU0jNcYoT6LC8yI1IeF4,130048
|
7
|
+
omnata_plugin_runtime/plugin_entrypoints.py,sha256=Ulu4udC4tfCH-EA3VGXAT_WKHw5yZ6_ulsL7SjAN0qo,28953
|
8
|
+
omnata_plugin_runtime/rate_limiting.py,sha256=JukA0l7x7Klqz2b54mR-poP7NRxpUHgWSGp6h0B8u6Q,25612
|
9
|
+
omnata_plugin_runtime-0.7.0a184.dist-info/LICENSE,sha256=rGaMQG3R3F5-JGDp_-rlMKpDIkg5n0SI4kctTk8eZSI,56
|
10
|
+
omnata_plugin_runtime-0.7.0a184.dist-info/METADATA,sha256=CsI5s6i4uyWKk2g6aUHbSHq9WXkclnRVQL3rDQ7rY4s,1985
|
11
|
+
omnata_plugin_runtime-0.7.0a184.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
12
|
+
omnata_plugin_runtime-0.7.0a184.dist-info/RECORD,,
|
@@ -1,12 +0,0 @@
|
|
1
|
-
omnata_plugin_runtime/__init__.py,sha256=MS9d1whnfT_B3-ThqZ7l63QeC_8OEKTuaYV5wTwRpBA,1576
|
2
|
-
omnata_plugin_runtime/api.py,sha256=FxzTqri4no8ClkOm7vZADG8aD47jcGBCTTQDEORmOJM,6326
|
3
|
-
omnata_plugin_runtime/configuration.py,sha256=hUgh6XNckgf0B8oX1uVz8DaaCbqpnH5chVf_6GlYyHQ,38369
|
4
|
-
omnata_plugin_runtime/forms.py,sha256=ueodN2GIMS5N9fqebpY4uNGJnjEb9HcuaVQVfWH-cGg,19838
|
5
|
-
omnata_plugin_runtime/logging.py,sha256=bn7eKoNWvtuyTk7RTwBS9UARMtqkiICtgMtzq3KA2V0,3272
|
6
|
-
omnata_plugin_runtime/omnata_plugin.py,sha256=aggjb_CTTjhgqjS8CHPOm4ENU0jNcYoT6LC8yI1IeF4,130048
|
7
|
-
omnata_plugin_runtime/plugin_entrypoints.py,sha256=lPy1YcbpU2wF3toj863i2TavNmNbhtNNWAgY2s0FKwc,28807
|
8
|
-
omnata_plugin_runtime/rate_limiting.py,sha256=JukA0l7x7Klqz2b54mR-poP7NRxpUHgWSGp6h0B8u6Q,25612
|
9
|
-
omnata_plugin_runtime-0.7.0a182.dist-info/LICENSE,sha256=rGaMQG3R3F5-JGDp_-rlMKpDIkg5n0SI4kctTk8eZSI,56
|
10
|
-
omnata_plugin_runtime-0.7.0a182.dist-info/METADATA,sha256=pL4Ip9lgrpc4x_lcJvNHRvlvSpWbm-naa3QcI2x03Ao,1985
|
11
|
-
omnata_plugin_runtime-0.7.0a182.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
12
|
-
omnata_plugin_runtime-0.7.0a182.dist-info/RECORD,,
|
{omnata_plugin_runtime-0.7.0a182.dist-info → omnata_plugin_runtime-0.7.0a184.dist-info}/LICENSE
RENAMED
File without changes
|
{omnata_plugin_runtime-0.7.0a182.dist-info → omnata_plugin_runtime-0.7.0a184.dist-info}/WHEEL
RENAMED
File without changes
|