insightconnect-plugin-runtime 6.3.7__tar.gz → 6.3.9__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.
- {insightconnect_plugin_runtime-6.3.7/insightconnect_plugin_runtime.egg-info → insightconnect_plugin_runtime-6.3.9}/PKG-INFO +11 -9
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/README.md +5 -3
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/insightconnect_plugin_runtime/exceptions.py +6 -14
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/insightconnect_plugin_runtime/plugin.py +21 -3
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/insightconnect_plugin_runtime/telemetry.py +12 -6
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9/insightconnect_plugin_runtime.egg-info}/PKG-INFO +11 -9
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/insightconnect_plugin_runtime.egg-info/requires.txt +5 -5
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/setup.py +6 -6
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/unit/test_metrics.py +2 -2
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/MANIFEST.in +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/insightconnect-plugin-swagger.json +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/insightconnect_plugin_runtime/__init__.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/insightconnect_plugin_runtime/action.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/insightconnect_plugin_runtime/api/__init__.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/insightconnect_plugin_runtime/api/endpoints.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/insightconnect_plugin_runtime/api/schemas.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/insightconnect_plugin_runtime/cli.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/insightconnect_plugin_runtime/clients/__init__.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/insightconnect_plugin_runtime/clients/aws_client.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/insightconnect_plugin_runtime/clients/oauth.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/insightconnect_plugin_runtime/connection.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/insightconnect_plugin_runtime/data/input_message_schema.json +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/insightconnect_plugin_runtime/data/output_message_schema.json +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/insightconnect_plugin_runtime/dispatcher.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/insightconnect_plugin_runtime/helper.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/insightconnect_plugin_runtime/metrics.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/insightconnect_plugin_runtime/schema.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/insightconnect_plugin_runtime/server.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/insightconnect_plugin_runtime/step.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/insightconnect_plugin_runtime/task.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/insightconnect_plugin_runtime/trigger.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/insightconnect_plugin_runtime/util.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/insightconnect_plugin_runtime/variables.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/insightconnect_plugin_runtime.egg-info/SOURCES.txt +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/insightconnect_plugin_runtime.egg-info/dependency_links.txt +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/insightconnect_plugin_runtime.egg-info/top_level.txt +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/setup.cfg +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/__init__.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/__init__.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/__init__.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/hello_world/__init__.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/hello_world/komand_hello_world/__init__.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/hello_world/komand_hello_world/actions/__init__.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/hello_world/komand_hello_world/actions/hello/__init__.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/hello_world/komand_hello_world/actions/hello/action.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/hello_world/komand_hello_world/actions/hello/schema.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/hello_world/komand_hello_world/actions/return_bad_json/__init__.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/hello_world/komand_hello_world/actions/return_bad_json/action.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/hello_world/komand_hello_world/actions/return_bad_json/schema.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/hello_world/komand_hello_world/actions/throw_exception/__init__.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/hello_world/komand_hello_world/actions/throw_exception/action.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/hello_world/komand_hello_world/actions/throw_exception/schema.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/hello_world/komand_hello_world/connection/__init__.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/hello_world/komand_hello_world/connection/connection.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/hello_world/komand_hello_world/connection/schema.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/hello_world/komand_hello_world/tasks/__init__.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/hello_world/komand_hello_world/tasks/monitor_events/__init__.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/hello_world/komand_hello_world/tasks/monitor_events/schema.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/hello_world/komand_hello_world/tasks/monitor_events/task.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/hello_world/komand_hello_world/triggers/__init__.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/hello_world/komand_hello_world/triggers/hello_trigger/__init__.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/hello_world/komand_hello_world/triggers/hello_trigger/schema.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/hello_world/komand_hello_world/triggers/hello_trigger/trigger.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/hello_world/komand_hello_world/triggers/return_bad_json_trigger/__init__.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/hello_world/komand_hello_world/triggers/return_bad_json_trigger/schema.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/hello_world/komand_hello_world/triggers/return_bad_json_trigger/trigger.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/hello_world/komand_hello_world/triggers/throw_exception_trigger/__init__.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/hello_world/komand_hello_world/triggers/throw_exception_trigger/schema.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/hello_world/komand_hello_world/triggers/throw_exception_trigger/trigger.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/hello_world/komand_hello_world/util/__init__.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/hello_world/setup.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/tests/__init__.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/tests/conftest.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/tests/test_cli.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/tests/test_hello_world.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/hello_world/tests/test_server.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/unit/__init__.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/unit/test_action.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/unit/test_api.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/unit/test_aws_action.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/unit/test_custom_encoder.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/unit/test_endpoints.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/unit/test_exceptions.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/unit/test_helpers.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/unit/test_oauth.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/unit/test_plugin.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/unit/test_schema.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/unit/test_server_cloud_plugins.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/unit/test_server_spec.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/unit/test_trigger.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/unit/test_variables.py +0 -0
- {insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/unit/utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: insightconnect-plugin-runtime
|
|
3
|
-
Version: 6.3.
|
|
3
|
+
Version: 6.3.9
|
|
4
4
|
Summary: InsightConnect Plugin Runtime
|
|
5
5
|
Home-page: https://github.com/rapid7/komand-plugin-sdk-python
|
|
6
6
|
Author: Rapid7 Integrations Alliance
|
|
@@ -15,7 +15,7 @@ Description-Content-Type: text/markdown
|
|
|
15
15
|
Requires-Dist: requests==2.32.4
|
|
16
16
|
Requires-Dist: python_jsonschema_objects==0.5.2
|
|
17
17
|
Requires-Dist: jsonschema==4.22.0
|
|
18
|
-
Requires-Dist: certifi==2025.
|
|
18
|
+
Requires-Dist: certifi==2025.8.3
|
|
19
19
|
Requires-Dist: Flask==3.1.1
|
|
20
20
|
Requires-Dist: gunicorn==23.0.0
|
|
21
21
|
Requires-Dist: greenlet==3.2.3
|
|
@@ -28,10 +28,10 @@ Requires-Dist: structlog==25.4.0
|
|
|
28
28
|
Requires-Dist: python-json-logger==2.0.7
|
|
29
29
|
Requires-Dist: Jinja2==3.1.6
|
|
30
30
|
Requires-Dist: python-dateutil==2.9.0.post0
|
|
31
|
-
Requires-Dist: opentelemetry-sdk==1.
|
|
32
|
-
Requires-Dist: opentelemetry-instrumentation-flask==0.
|
|
33
|
-
Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.
|
|
34
|
-
Requires-Dist: opentelemetry-instrumentation-requests==0.
|
|
31
|
+
Requires-Dist: opentelemetry-sdk==1.36.0
|
|
32
|
+
Requires-Dist: opentelemetry-instrumentation-flask==0.57b0
|
|
33
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.36.0
|
|
34
|
+
Requires-Dist: opentelemetry-instrumentation-requests==0.57b0
|
|
35
35
|
Requires-Dist: urllib3==2.5.0
|
|
36
36
|
Dynamic: author
|
|
37
37
|
Dynamic: author-email
|
|
@@ -63,10 +63,10 @@ to get started.
|
|
|
63
63
|
|
|
64
64
|
## Development of the InsightConnect Plugin Runtime
|
|
65
65
|
|
|
66
|
-
The Python Runtime codebase is built to support Python 3.11.
|
|
66
|
+
The Python Runtime codebase is built to support Python 3.11.13 as of version 6.2.3. The following dependencies will need
|
|
67
67
|
to be installed when developing or testing the Plugin Runtime:
|
|
68
68
|
|
|
69
|
-
- Python 3.11.
|
|
69
|
+
- Python 3.11.13
|
|
70
70
|
- Docker
|
|
71
71
|
- make
|
|
72
72
|
- tox
|
|
@@ -199,7 +199,7 @@ Running a specific test file:
|
|
|
199
199
|
|
|
200
200
|
| | Plugin | Slim Plugin |
|
|
201
201
|
|:------------------|:-------:|:-----------:|
|
|
202
|
-
| Python Version | 3.11.
|
|
202
|
+
| Python Version | 3.11.13 | 3.11.13 |
|
|
203
203
|
| OS | Alpine | Bullseye |
|
|
204
204
|
| Package installer | apk | apt |
|
|
205
205
|
| Shell | /bin/sh | /bin/bash |
|
|
@@ -226,6 +226,8 @@ contributed. Black is installed as a test dependency and the hook can be initial
|
|
|
226
226
|
after cloning this repository.
|
|
227
227
|
|
|
228
228
|
## Changelog
|
|
229
|
+
* 6.3.9 - Fixed `monitor_task_delay` decorator handling of millisecond epoch timestamps | Allow `test_task` connection method to accept task name parameter | Updated base images to Python 3.11.13
|
|
230
|
+
* 6.3.8 - Update exception string representation methods to remove newline characters
|
|
229
231
|
* 6.3.7 - Addressed vulnerability in 'urllib3' (removed from `requirements.txt` as it's a dependency of `botocore`)
|
|
230
232
|
* 6.3.6 - Added required dependency to plugin runtime
|
|
231
233
|
* 6.3.5 - Added `monitor_task_delay` decorator to detect processing delays
|
|
@@ -19,10 +19,10 @@ to get started.
|
|
|
19
19
|
|
|
20
20
|
## Development of the InsightConnect Plugin Runtime
|
|
21
21
|
|
|
22
|
-
The Python Runtime codebase is built to support Python 3.11.
|
|
22
|
+
The Python Runtime codebase is built to support Python 3.11.13 as of version 6.2.3. The following dependencies will need
|
|
23
23
|
to be installed when developing or testing the Plugin Runtime:
|
|
24
24
|
|
|
25
|
-
- Python 3.11.
|
|
25
|
+
- Python 3.11.13
|
|
26
26
|
- Docker
|
|
27
27
|
- make
|
|
28
28
|
- tox
|
|
@@ -155,7 +155,7 @@ Running a specific test file:
|
|
|
155
155
|
|
|
156
156
|
| | Plugin | Slim Plugin |
|
|
157
157
|
|:------------------|:-------:|:-----------:|
|
|
158
|
-
| Python Version | 3.11.
|
|
158
|
+
| Python Version | 3.11.13 | 3.11.13 |
|
|
159
159
|
| OS | Alpine | Bullseye |
|
|
160
160
|
| Package installer | apk | apt |
|
|
161
161
|
| Shell | /bin/sh | /bin/bash |
|
|
@@ -182,6 +182,8 @@ contributed. Black is installed as a test dependency and the hook can be initial
|
|
|
182
182
|
after cloning this repository.
|
|
183
183
|
|
|
184
184
|
## Changelog
|
|
185
|
+
* 6.3.9 - Fixed `monitor_task_delay` decorator handling of millisecond epoch timestamps | Allow `test_task` connection method to accept task name parameter | Updated base images to Python 3.11.13
|
|
186
|
+
* 6.3.8 - Update exception string representation methods to remove newline characters
|
|
185
187
|
* 6.3.7 - Addressed vulnerability in 'urllib3' (removed from `requirements.txt` as it's a dependency of `botocore`)
|
|
186
188
|
* 6.3.6 - Added required dependency to plugin runtime
|
|
187
189
|
* 6.3.5 - Added `monitor_task_delay` decorator to detect processing delays
|
|
@@ -187,26 +187,18 @@ class ConnectionTestException(Exception):
|
|
|
187
187
|
self.data = str(data) if data else ""
|
|
188
188
|
|
|
189
189
|
def __str__(self):
|
|
190
|
+
str_rep = f"Connection test failed! {self.cause} {self.assistance}"
|
|
190
191
|
if self.data:
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
)
|
|
194
|
-
else:
|
|
195
|
-
return "Connection test failed!\n\n{cause} {assistance}".format(
|
|
196
|
-
cause=self.cause, assistance=self.assistance
|
|
197
|
-
)
|
|
192
|
+
str_rep += f" Response was: {self.data}"
|
|
193
|
+
return str_rep
|
|
198
194
|
|
|
199
195
|
|
|
200
196
|
class PluginException(ConnectionTestException):
|
|
201
197
|
def __str__(self):
|
|
198
|
+
str_repr = f"An error occurred during plugin execution! {self.cause} {self.assistance}"
|
|
202
199
|
if self.data:
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
)
|
|
206
|
-
else:
|
|
207
|
-
return "An error occurred during plugin execution!\n\n{cause} {assistance}".format(
|
|
208
|
-
cause=self.cause, assistance=self.assistance
|
|
209
|
-
)
|
|
200
|
+
str_repr += f" Response was {self.data}"
|
|
201
|
+
return str_repr
|
|
210
202
|
|
|
211
203
|
|
|
212
204
|
class APIException(PluginException):
|
|
@@ -564,8 +564,17 @@ class Plugin(object):
|
|
|
564
564
|
# connection.test is called, as there is no message returned along side it,
|
|
565
565
|
# and the code above then sees this and reads the "message" from the io buffer as normal
|
|
566
566
|
if hasattr(connection, "test_task") and connection_test_type == "test_task":
|
|
567
|
+
# Get the test_task function from the connection
|
|
567
568
|
func = connection.test_task
|
|
568
|
-
|
|
569
|
+
|
|
570
|
+
# Inspect the function to see if it requires args
|
|
571
|
+
arguments = inspect.signature(func).parameters
|
|
572
|
+
|
|
573
|
+
# If the function has parameters, we pass the task name
|
|
574
|
+
if len(arguments) > 0 and "task" in message_body:
|
|
575
|
+
output, log = func(message_body["task"])
|
|
576
|
+
else:
|
|
577
|
+
output, log = func()
|
|
569
578
|
return output, log
|
|
570
579
|
elif hasattr(connection, "test"):
|
|
571
580
|
func = connection.test
|
|
@@ -650,8 +659,17 @@ class Plugin(object):
|
|
|
650
659
|
# Check if connection test func available. If so - use it (preferred). Else fallback to action/trigger test
|
|
651
660
|
if hasattr(step.connection, "test"):
|
|
652
661
|
if hasattr(step.connection, "test_task") and connection_test_type == "test_task":
|
|
653
|
-
|
|
654
|
-
|
|
662
|
+
# Get the test_task function from the connection
|
|
663
|
+
func = connection.test_task
|
|
664
|
+
|
|
665
|
+
# Inspect the function to see if it requires args
|
|
666
|
+
arguments = inspect.signature(func).parameters
|
|
667
|
+
|
|
668
|
+
# If the function has parameters, we pass the task name
|
|
669
|
+
if len(arguments) > 0 and "task" in message_body:
|
|
670
|
+
output, log = func(message_body["task"])
|
|
671
|
+
else:
|
|
672
|
+
output, log = func()
|
|
655
673
|
return output, log
|
|
656
674
|
else:
|
|
657
675
|
func = step.connection.test
|
|
@@ -154,10 +154,16 @@ def monitor_task_delay(
|
|
|
154
154
|
|
|
155
155
|
# Parse and normalize the state time value
|
|
156
156
|
try:
|
|
157
|
-
# First, try to parse the epoch timestamp
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
157
|
+
# First, try to parse the epoch timestamp in seconds
|
|
158
|
+
try:
|
|
159
|
+
normalized_state_time = datetime.fromtimestamp(
|
|
160
|
+
float(current_state_time)
|
|
161
|
+
)
|
|
162
|
+
except ValueError:
|
|
163
|
+
# If it fails, assume it's in milliseconds and convert accordingly
|
|
164
|
+
normalized_state_time = datetime.fromtimestamp(
|
|
165
|
+
float(current_state_time) / 1000.0
|
|
166
|
+
)
|
|
161
167
|
except (ValueError, TypeError):
|
|
162
168
|
# If parsing fails, parse as a string
|
|
163
169
|
normalized_state_time = parse(str(current_state_time))
|
|
@@ -181,8 +187,8 @@ def monitor_task_delay(
|
|
|
181
187
|
)
|
|
182
188
|
break
|
|
183
189
|
except Exception as error:
|
|
184
|
-
self.logger.
|
|
185
|
-
f"An
|
|
190
|
+
self.logger.error(
|
|
191
|
+
f"An exception occurred while checking task delay. The exception was: {error}"
|
|
186
192
|
)
|
|
187
193
|
|
|
188
194
|
# Return task output
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: insightconnect-plugin-runtime
|
|
3
|
-
Version: 6.3.
|
|
3
|
+
Version: 6.3.9
|
|
4
4
|
Summary: InsightConnect Plugin Runtime
|
|
5
5
|
Home-page: https://github.com/rapid7/komand-plugin-sdk-python
|
|
6
6
|
Author: Rapid7 Integrations Alliance
|
|
@@ -15,7 +15,7 @@ Description-Content-Type: text/markdown
|
|
|
15
15
|
Requires-Dist: requests==2.32.4
|
|
16
16
|
Requires-Dist: python_jsonschema_objects==0.5.2
|
|
17
17
|
Requires-Dist: jsonschema==4.22.0
|
|
18
|
-
Requires-Dist: certifi==2025.
|
|
18
|
+
Requires-Dist: certifi==2025.8.3
|
|
19
19
|
Requires-Dist: Flask==3.1.1
|
|
20
20
|
Requires-Dist: gunicorn==23.0.0
|
|
21
21
|
Requires-Dist: greenlet==3.2.3
|
|
@@ -28,10 +28,10 @@ Requires-Dist: structlog==25.4.0
|
|
|
28
28
|
Requires-Dist: python-json-logger==2.0.7
|
|
29
29
|
Requires-Dist: Jinja2==3.1.6
|
|
30
30
|
Requires-Dist: python-dateutil==2.9.0.post0
|
|
31
|
-
Requires-Dist: opentelemetry-sdk==1.
|
|
32
|
-
Requires-Dist: opentelemetry-instrumentation-flask==0.
|
|
33
|
-
Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.
|
|
34
|
-
Requires-Dist: opentelemetry-instrumentation-requests==0.
|
|
31
|
+
Requires-Dist: opentelemetry-sdk==1.36.0
|
|
32
|
+
Requires-Dist: opentelemetry-instrumentation-flask==0.57b0
|
|
33
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.36.0
|
|
34
|
+
Requires-Dist: opentelemetry-instrumentation-requests==0.57b0
|
|
35
35
|
Requires-Dist: urllib3==2.5.0
|
|
36
36
|
Dynamic: author
|
|
37
37
|
Dynamic: author-email
|
|
@@ -63,10 +63,10 @@ to get started.
|
|
|
63
63
|
|
|
64
64
|
## Development of the InsightConnect Plugin Runtime
|
|
65
65
|
|
|
66
|
-
The Python Runtime codebase is built to support Python 3.11.
|
|
66
|
+
The Python Runtime codebase is built to support Python 3.11.13 as of version 6.2.3. The following dependencies will need
|
|
67
67
|
to be installed when developing or testing the Plugin Runtime:
|
|
68
68
|
|
|
69
|
-
- Python 3.11.
|
|
69
|
+
- Python 3.11.13
|
|
70
70
|
- Docker
|
|
71
71
|
- make
|
|
72
72
|
- tox
|
|
@@ -199,7 +199,7 @@ Running a specific test file:
|
|
|
199
199
|
|
|
200
200
|
| | Plugin | Slim Plugin |
|
|
201
201
|
|:------------------|:-------:|:-----------:|
|
|
202
|
-
| Python Version | 3.11.
|
|
202
|
+
| Python Version | 3.11.13 | 3.11.13 |
|
|
203
203
|
| OS | Alpine | Bullseye |
|
|
204
204
|
| Package installer | apk | apt |
|
|
205
205
|
| Shell | /bin/sh | /bin/bash |
|
|
@@ -226,6 +226,8 @@ contributed. Black is installed as a test dependency and the hook can be initial
|
|
|
226
226
|
after cloning this repository.
|
|
227
227
|
|
|
228
228
|
## Changelog
|
|
229
|
+
* 6.3.9 - Fixed `monitor_task_delay` decorator handling of millisecond epoch timestamps | Allow `test_task` connection method to accept task name parameter | Updated base images to Python 3.11.13
|
|
230
|
+
* 6.3.8 - Update exception string representation methods to remove newline characters
|
|
229
231
|
* 6.3.7 - Addressed vulnerability in 'urllib3' (removed from `requirements.txt` as it's a dependency of `botocore`)
|
|
230
232
|
* 6.3.6 - Added required dependency to plugin runtime
|
|
231
233
|
* 6.3.5 - Added `monitor_task_delay` decorator to detect processing delays
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
requests==2.32.4
|
|
2
2
|
python_jsonschema_objects==0.5.2
|
|
3
3
|
jsonschema==4.22.0
|
|
4
|
-
certifi==2025.
|
|
4
|
+
certifi==2025.8.3
|
|
5
5
|
Flask==3.1.1
|
|
6
6
|
gunicorn==23.0.0
|
|
7
7
|
greenlet==3.2.3
|
|
@@ -14,8 +14,8 @@ structlog==25.4.0
|
|
|
14
14
|
python-json-logger==2.0.7
|
|
15
15
|
Jinja2==3.1.6
|
|
16
16
|
python-dateutil==2.9.0.post0
|
|
17
|
-
opentelemetry-sdk==1.
|
|
18
|
-
opentelemetry-instrumentation-flask==0.
|
|
19
|
-
opentelemetry-exporter-otlp-proto-http==1.
|
|
20
|
-
opentelemetry-instrumentation-requests==0.
|
|
17
|
+
opentelemetry-sdk==1.36.0
|
|
18
|
+
opentelemetry-instrumentation-flask==0.57b0
|
|
19
|
+
opentelemetry-exporter-otlp-proto-http==1.36.0
|
|
20
|
+
opentelemetry-instrumentation-requests==0.57b0
|
|
21
21
|
urllib3==2.5.0
|
|
@@ -5,7 +5,7 @@ with open("README.md", "r") as fh:
|
|
|
5
5
|
|
|
6
6
|
setup(
|
|
7
7
|
name="insightconnect-plugin-runtime",
|
|
8
|
-
version="6.3.
|
|
8
|
+
version="6.3.9",
|
|
9
9
|
description="InsightConnect Plugin Runtime",
|
|
10
10
|
long_description=long_description,
|
|
11
11
|
long_description_content_type="text/markdown",
|
|
@@ -17,7 +17,7 @@ setup(
|
|
|
17
17
|
"requests==2.32.4",
|
|
18
18
|
"python_jsonschema_objects==0.5.2",
|
|
19
19
|
"jsonschema==4.22.0",
|
|
20
|
-
"certifi==2025.
|
|
20
|
+
"certifi==2025.8.3",
|
|
21
21
|
"Flask==3.1.1",
|
|
22
22
|
"gunicorn==23.0.0",
|
|
23
23
|
"greenlet==3.2.3",
|
|
@@ -30,10 +30,10 @@ setup(
|
|
|
30
30
|
"python-json-logger==2.0.7",
|
|
31
31
|
"Jinja2==3.1.6",
|
|
32
32
|
"python-dateutil==2.9.0.post0",
|
|
33
|
-
"opentelemetry-sdk==1.
|
|
34
|
-
"opentelemetry-instrumentation-flask==0.
|
|
35
|
-
"opentelemetry-exporter-otlp-proto-http==1.
|
|
36
|
-
"opentelemetry-instrumentation-requests==0.
|
|
33
|
+
"opentelemetry-sdk==1.36.0",
|
|
34
|
+
"opentelemetry-instrumentation-flask==0.57b0",
|
|
35
|
+
"opentelemetry-exporter-otlp-proto-http==1.36.0",
|
|
36
|
+
"opentelemetry-instrumentation-requests==0.57b0",
|
|
37
37
|
"urllib3==2.5.0"
|
|
38
38
|
],
|
|
39
39
|
tests_require=[
|
|
@@ -22,7 +22,7 @@ class BuildErrorBlobTest(unittest.TestCase):
|
|
|
22
22
|
expected = {
|
|
23
23
|
"cause": "not_found",
|
|
24
24
|
"known": True,
|
|
25
|
-
"message": "An error occurred during plugin execution
|
|
25
|
+
"message": "An error occurred during plugin execution! Invalid or unreachable endpoint "
|
|
26
26
|
"provided. Verify the URLs or endpoints in your configuration are correct.",
|
|
27
27
|
}
|
|
28
28
|
|
|
@@ -237,7 +237,7 @@ class BuildTest(unittest.TestCase):
|
|
|
237
237
|
"error": {
|
|
238
238
|
"cause": "not_found",
|
|
239
239
|
"known": True,
|
|
240
|
-
"message": "An error occurred during plugin execution
|
|
240
|
+
"message": "An error occurred during plugin execution! Invalid or "
|
|
241
241
|
"unreachable endpoint provided. Verify the URLs or endpoints in your configuration are correct.",
|
|
242
242
|
},
|
|
243
243
|
"inputs": ["type"],
|
|
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
|
{insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/__init__.py
RENAMED
|
File without changes
|
{insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/plugin/__init__.py
RENAMED
|
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
|
{insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/unit/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/unit/test_api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/unit/test_oauth.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{insightconnect_plugin_runtime-6.3.7 → insightconnect_plugin_runtime-6.3.9}/tests/unit/utils.py
RENAMED
|
File without changes
|