From d4ad0c3bbda27b2f5809e053202113bc8be79ec8 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 12 Jul 2022 03:18:23 -0700 Subject: [PATCH 01/18] Release notes for version 1.0.2 --- README.md | 2 +- link.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e83efcc..4b6c5ce 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ # Link Publisher: Mhike -Connector Version: 1\.0\.1 +Connector Version: 1\.0\.2 Product Vendor: Mhike Product Name: Link Product Version Supported (regex): "\.\*" diff --git a/link.json b/link.json index 0284e26..4d34303 100644 --- a/link.json +++ b/link.json @@ -5,7 +5,7 @@ "publisher": "Mhike", "type": "devops", "main_module": "link_connector.py", - "app_version": "1.0.1", + "app_version": "1.0.2", "utctime_updated": "2022-06-12T14:23:35.606945Z", "package_name": "phantom_link", "product_vendor": "Mhike", From f43cdab1fdaa55f87ed99cd986b9016f44e9535b Mon Sep 17 00:00:00 2001 From: splunk-soar-connectors-admin Date: Mon, 18 Jul 2022 10:42:50 -0700 Subject: [PATCH 02/18] Adding workflow file for release review --- .github/workflows/review-release.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .github/workflows/review-release.yml diff --git a/.github/workflows/review-release.yml b/.github/workflows/review-release.yml new file mode 100644 index 0000000..6f3bf31 --- /dev/null +++ b/.github/workflows/review-release.yml @@ -0,0 +1,22 @@ +name: Review Release +concurrency: + group: app-release + cancel-in-progress: true +permissions: + contents: read + id-token: write + statuses: write +on: + workflow_dispatch: + inputs: + task_token: + description: 'StepFunction task token' + required: true + +jobs: + review: + uses: 'phantomcyber/dev-cicd-tools/.github/workflows/review-release.yml@main' + with: + task_token: ${{ inputs.task_token }} + secrets: + resume_release_role_arn: ${{ secrets.RESUME_RELEASE_ROLE_ARN }} From 400dddd9ebc95f7906347b0fcea6871066e97281 Mon Sep 17 00:00:00 2001 From: splunk-soar-connectors-admin Date: Fri, 22 Jul 2022 14:08:25 -0700 Subject: [PATCH 03/18] 'stop maintaining and delete release_notes.html' --- release_notes/release_notes.html | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 release_notes/release_notes.html diff --git a/release_notes/release_notes.html b/release_notes/release_notes.html deleted file mode 100644 index 38a295e..0000000 --- a/release_notes/release_notes.html +++ /dev/null @@ -1,6 +0,0 @@ -Link Release Notes - Published by Mhike July 12, 2022 -

-Version 1.0.1 - Released July 12, 2022 -
    -
  • Initial Release with Python 3 support
  • -
\ No newline at end of file From 69dc75ba9ea30bdde39583424f66e1e80607f1da Mon Sep 17 00:00:00 2001 From: splunk-soar-connectors-admin Date: Thu, 2 Mar 2023 22:44:21 -0800 Subject: [PATCH 04/18] 'create generate-doc.yml file' --- .github/workflows/generate-doc.yml | 14 ++++++++++++++ .pre-commit-config.yaml | 4 ++-- 2 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/generate-doc.yml diff --git a/.github/workflows/generate-doc.yml b/.github/workflows/generate-doc.yml new file mode 100644 index 0000000..4661718 --- /dev/null +++ b/.github/workflows/generate-doc.yml @@ -0,0 +1,14 @@ +name: Generate Readme Doc +on: + workflow_dispatch: + push: + paths: + - '*.json' + - 'readme.html' +jobs: + generate-doc: + runs-on: ubuntu-latest + steps: + - uses: 'phantomcyber/dev-cicd-tools/github-actions/generate-doc@main' + with: + GITHUB_TOKEN: ${{ secrets.SOAR_APPS_TOKEN }} diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 7e6c658..70d7508 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,11 +1,11 @@ repos: - repo: https://github.com/phantomcyber/dev-cicd-tools - rev: v1.13 + rev: v1.16 hooks: - id: org-hook - id: package-app-dependencies - repo: https://github.com/Yelp/detect-secrets - rev: v1.2.0 + rev: v1.4.0 hooks: - id: detect-secrets args: ['--no-verify'] From 130f8101fc7f3b6175ab904b57ab4708f048bd1e Mon Sep 17 00:00:00 2001 From: splunk-soar-connectors-admin Date: Mon, 6 Mar 2023 22:33:16 -0800 Subject: [PATCH 05/18] 'update generate-doc.yml file' --- .github/workflows/generate-doc.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/generate-doc.yml b/.github/workflows/generate-doc.yml index 4661718..e63a4cd 100644 --- a/.github/workflows/generate-doc.yml +++ b/.github/workflows/generate-doc.yml @@ -5,6 +5,11 @@ on: paths: - '*.json' - 'readme.html' + tags-ignore: + - '*-beta*' + branches-ignore: + - next + - main jobs: generate-doc: runs-on: ubuntu-latest From 30ca484f3955d32c3006cd70eb166d87d3888e03 Mon Sep 17 00:00:00 2001 From: splunk-soar-connectors-admin Date: Tue, 7 Mar 2023 15:31:23 -0800 Subject: [PATCH 06/18] 'update generate-doc.yml file' --- .github/workflows/generate-doc.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/generate-doc.yml b/.github/workflows/generate-doc.yml index e63a4cd..7a3ba90 100644 --- a/.github/workflows/generate-doc.yml +++ b/.github/workflows/generate-doc.yml @@ -6,7 +6,7 @@ on: - '*.json' - 'readme.html' tags-ignore: - - '*-beta*' + - '**' branches-ignore: - next - main From 7b50d07238c50d5f0d50818c964ceeab47161b4b Mon Sep 17 00:00:00 2001 From: zamastyle Date: Thu, 9 Mar 2023 13:35:26 -0600 Subject: [PATCH 07/18] Add option auth token to config section --- link.json | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/link.json b/link.json index 4d34303..a377f29 100644 --- a/link.json +++ b/link.json @@ -29,13 +29,20 @@ "name": "https_port", "id": 0 }, + "auth_token": { + "description": "Splunk SOAR auth token if your instance requires auth for internal 127.0.0.1 calls", + "data_type": "string", + "order": 1, + "name": "auth_token", + "id": 1 + }, "debug": { "description": "Print debugging statements to log", "data_type": "boolean", "default": false, - "order": 1, + "order": 2, "name": "debug", - "id": 1 + "id": 2 } }, "actions": [ @@ -191,4 +198,4 @@ "executable": "spawn3", "disabled": false, "custom_made": true -} \ No newline at end of file +} From 560b18710b79e1955288c06e2acc93f883c7b8e3 Mon Sep 17 00:00:00 2001 From: zamastyle Date: Thu, 9 Mar 2023 13:53:41 -0600 Subject: [PATCH 08/18] Updated logging calls and added get headers method --- link_connector.py | 88 ++++++++++++++++++++++++++++------------------- 1 file changed, 52 insertions(+), 36 deletions(-) diff --git a/link_connector.py b/link_connector.py index 8d7e81e..18e060a 100755 --- a/link_connector.py +++ b/link_connector.py @@ -20,30 +20,46 @@ class LinkConnector(phantom.BaseConnector): + print_debug = None + def __init__(self): super(LinkConnector, self).__init__() return - def __print(self, value, is_debug): - print_debug = False - try: - print_debug = self.get_config()['debug'] - except Exception as e: - self.debug_print("Exception occurred while getting debug key. Exception: {}".format(e)) - pass + def __print(self, value, is_debug=False): + if self.print_debug == None: + self.print_debug = False + try: + print_debug = self.get_config()['debug'] + except Exception as e: + self.debug_print("Exception occurred while getting debug key. Exception: {}".format(e)) message = 'Failed to cast message to string' try: message = str(value) except Exception as e: self.debug_print("Exception occurred while converting message into string. Exception: {}".format(e)) pass - if is_debug and not print_debug: + if is_debug and not self.print_debug: return else: self.save_progress(message) + + def _get_headers(self): + self.__print('_get_headers()', is_debug=True) + try: + auth_token = self.get_config()['auth_token'] + if auth_token: + HEADERS = {"ph-auth-token": auth_token} + return HEADERS + else: + return {} + except Exception as e: + self.__print('Failed to retrieve auth token from config') + self.__print(e) + return {} def _get_previous_links(self): - self.__print('_get_previous_links()', True) + self.__print('_get_previous_links()', is_debug=True) current_links = [] try: query_url = ('{0}/rest/container/{1}/actions' @@ -53,26 +69,26 @@ def _get_previous_links(self): '&order=desc' '&page_size=1' '&include_expensive').format(self._get_base_url(), self.get_container_id()) - self.__print(query_url, True) - response = phantom.requests.get(query_url, verify=False, timeout=30) - self.__print(response.status_code, True) + self.__print(query_url, is_debug=True) + response = phantom.requests.get(query_url, headers=self._get_headers(), verify=False, timeout=30) + self.__print(response.status_code, is_debug=True) action_id = json.loads(response.text)['data'][0]['id'] results_url = '{0}/rest/action_run/{1}/app_runs?include_expensive'.format(self._get_base_url(), action_id) - self.__print(results_url, True) - response = phantom.requests.get(results_url, verify=False, timeout=30) - self.__print(response.status_code, True) - self.__print(json.loads(response.text)['data'][0]['result_data'][0]['data'][0]['linkset'], True) + self.__print(results_url, is_debug=True) + response = phantom.requests.get(results_url, headers=self._get_headers(), verify=False, timeout=30) + self.__print(response.status_code, is_debug=True) + self.__print(json.loads(response.text)['data'][0]['result_data'][0]['data'][0]['linkset'], is_debug=True) links = json.loads(response.text)['data'][0]['result_data'][0]['data'][0]['linkset'] for link in links: current_links.append(link) - self.__print(link, True) + self.__print(link, is_debug=True) except Exception as e: - self.__print("Exception thrown while gathering previous links", False) - self.__print(e, False) + self.__print("Exception thrown while gathering previous links") + self.__print(e) return current_links def _sort_links(self, links): - self.__print('_sort_links()', True) + self.__print('_sort_links()', is_debug=True) descriptors = [] for link in links: if link['descriptor'] not in descriptors: @@ -88,10 +104,10 @@ def _sort_links(self, links): def _handle_add_link(self, param): self.debug_print("In action handler for: {0}".format(self.get_action_identifier())) - self.__print('_link()', True) - self.__print('Single URL: {}'.format(param.get('url')), True) - self.__print('Single Description: {}'.format(param.get('description')), True) - self.__print('Link Set: {}'.format(param.get('linkset')), True) + self.__print('_link()', is_debug=True) + self.__print('Single URL: {}'.format(param.get('url')), is_debug=True) + self.__print('Single Description: {}'.format(param.get('description')), is_debug=True) + self.__print('Link Set: {}'.format(param.get('linkset')), is_debug=True) action_result = self.add_action_result(ActionResult(dict(param))) sorting = False try: @@ -111,12 +127,12 @@ def _handle_add_link(self, param): all_links = all_links.replace('\\', '%5C') all_links = json.loads(all_links) for link_set in all_links: - self.__print(link_set, True) + self.__print(link_set, is_debug=True) try: if 'descriptor' in link_set and 'url' in link_set and link_set['descriptor'] and link_set['url']: processed_links.append(link_set) except: - self.__print('Missing or null values in link: {}'.format(link_set), False) + self.__print('Missing or null values in link: {}'.format(link_set)) if processed_links: if param.get('append'): current_links = self._get_previous_links() @@ -127,18 +143,18 @@ def _handle_add_link(self, param): if sorting: processed_links = self._sort_links(processed_links) action_result.add_data({'linkset': processed_links}) - self.__print('Successfully processed links', False) + self.__print('Successfully processed links') self.debug_print("Successfully processed links") action_result.set_status(phantom.APP_SUCCESS, 'Successfully processed links') return action_result.get_status() else: self.debug_print("Failed to process any links from the input") - self.__print('Failed to process any links from the input', False) + self.__print('Failed to process any links from the input') action_result.set_status(phantom.APP_ERROR, 'Failed to process any links from the input') return action_result.get_status() def _get_base_url(self): - self.__print("_get_base_url()", True) + self.__print("_get_base_url()", is_debug=True) port = 443 try: port = self.get_config()['https_port'] @@ -148,30 +164,30 @@ def _get_base_url(self): return f'https://127.0.0.1:{port}' def _handle_test_connectivity(self, param): - self.__print("_handle_test_connectivity", True) + self.__print("_handle_test_connectivity", is_debug=True) self.save_progress("Connecting to endpoint") action_result = self.add_action_result(ActionResult(dict(param))) test_url = f'{self._get_base_url()}/rest/version' - self.__print(f'Attempting http get for {test_url}', False) + self.__print(f'Attempting http get for {test_url}') response = None try: - response = phantom.requests.get(test_url, verify=False, timeout=30) - self.__print(response.status_code, True) + response = phantom.requests.get(test_url, headers=self._get_headers(), verify=False, timeout=30) + self.__print(response.status_code, is_debug=True) except Exception as e: self.debug_print("Exception occured while rest call. Exception: {}".format(e)) pass if response and 199 < response.status_code < 300: version = json.loads(response.text)['version'] - self.__print(f'Successfully retrieved platform version: {version}', False) + self.__print(f'Successfully retrieved platform version: {version}') self.save_progress("Test Connectivity Passed.") return action_result.set_status(phantom.APP_SUCCESS) else: - self.__print(f'Failed to reach test url: {test_url}\nCheck your hostname config value', False) + self.__print(f'Failed to reach test url: {test_url}\nCheck your hostname config value') self.save_progress("Test Connectivity Failed.") return action_result.set_status(phantom.APP_ERROR, f'Failed to reach test url {test_url}') def handle_action(self, param): - self.__print('handle_action()', True) + self.__print('handle_action()', is_debug=True) ret_val = phantom.APP_SUCCESS if self.get_action_identifier() == 'test_connectivity': ret_val = self._handle_test_connectivity(param) From 790ebf11d15838e59cf9ab908152818db3169254 Mon Sep 17 00:00:00 2001 From: zamastyle Date: Thu, 9 Mar 2023 13:54:44 -0600 Subject: [PATCH 09/18] Moved copyright notice below load calls --- link_widget_view.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/link_widget_view.html b/link_widget_view.html index d5523c0..252306e 100755 --- a/link_widget_view.html +++ b/link_widget_view.html @@ -1,3 +1,6 @@ +{% extends 'widgets/widget_template.html' %} +{% load custom_template %} + -{% extends 'widgets/widget_template.html' %} -{% load custom_template %} {% block custom_title_prop %}{% if title_logo %}style="background-size: auto 60%; background-position: 50%; background-repeat: no-repeat; background-image: url('/app_resource/{{ title_logo }}');"{% endif %}{% endblock %} {% block title1 %}{{ title1 }}{% endblock %} From 1179ecb053e61f2147c912622101e5bb2ac0d1aa Mon Sep 17 00:00:00 2001 From: zamastyle Date: Thu, 9 Mar 2023 13:55:30 -0600 Subject: [PATCH 10/18] Incremented app version to 1.0.3 --- link.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/link.json b/link.json index a377f29..d6fdddc 100644 --- a/link.json +++ b/link.json @@ -5,7 +5,7 @@ "publisher": "Mhike", "type": "devops", "main_module": "link_connector.py", - "app_version": "1.0.2", + "app_version": "1.0.3", "utctime_updated": "2022-06-12T14:23:35.606945Z", "package_name": "phantom_link", "product_vendor": "Mhike", From 082a47d17273004c1e97f164977d35264d14897e Mon Sep 17 00:00:00 2001 From: zamastyle Date: Thu, 9 Mar 2023 13:58:25 -0600 Subject: [PATCH 11/18] Create 1.0.3.md --- release_notes/1.0.3.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 release_notes/1.0.3.md diff --git a/release_notes/1.0.3.md b/release_notes/1.0.3.md new file mode 100644 index 0000000..3f6072e --- /dev/null +++ b/release_notes/1.0.3.md @@ -0,0 +1,3 @@ +* Added optional auth token config input to asset for users that need to authenticate internal calls to 127.0.0.1 +* Update debug lines to make print code more clear +* Moved copyright notice in django html template below the load call sto fix the widget display issue From 07839d84ec0490aeb9c6add383e0e17380b1f12b Mon Sep 17 00:00:00 2001 From: zamastyle Date: Thu, 9 Mar 2023 14:03:58 -0600 Subject: [PATCH 12/18] Set updated date to today --- link.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/link.json b/link.json index d6fdddc..6336a74 100644 --- a/link.json +++ b/link.json @@ -6,7 +6,7 @@ "type": "devops", "main_module": "link_connector.py", "app_version": "1.0.3", - "utctime_updated": "2022-06-12T14:23:35.606945Z", + "utctime_updated": "2023-03-09T14:03:35.000000Z", "package_name": "phantom_link", "product_vendor": "Mhike", "product_name": "Link", From 7389e4ac8c9feb065fb115742bef90ef81a824b9 Mon Sep 17 00:00:00 2001 From: zamastyle Date: Thu, 9 Mar 2023 14:27:12 -0600 Subject: [PATCH 13/18] Updated action to add link to fix splunk team commit --- link.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/link.json b/link.json index 6336a74..c53e466 100644 --- a/link.json +++ b/link.json @@ -47,7 +47,7 @@ }, "actions": [ { - "action": "add url", + "action": "add link", "description": "Generate a widget with clickable links", "verbose": "Adds the specified links with the descriptor as the link text. Links are added to the existing link widget if one exists, otherwise a new widget will be generated.", "type": "generic", From b439e4d5e6b025dd4160ad7df5876a6a6f68b27f Mon Sep 17 00:00:00 2001 From: zamastyle Date: Thu, 9 Mar 2023 14:34:37 -0600 Subject: [PATCH 14/18] Incremented version for final time --- link.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/link.json b/link.json index c53e466..3141343 100644 --- a/link.json +++ b/link.json @@ -5,7 +5,7 @@ "publisher": "Mhike", "type": "devops", "main_module": "link_connector.py", - "app_version": "1.0.3", + "app_version": "1.1.0", "utctime_updated": "2023-03-09T14:03:35.000000Z", "package_name": "phantom_link", "product_vendor": "Mhike", From c2c623eb31d21952f4836e54f26ed449534cac72 Mon Sep 17 00:00:00 2001 From: zamastyle Date: Thu, 9 Mar 2023 14:59:47 -0600 Subject: [PATCH 15/18] Update and rename 1.0.3.md to 1.1.0.md --- release_notes/{1.0.3.md => 1.1.0.md} | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) rename release_notes/{1.0.3.md => 1.1.0.md} (65%) diff --git a/release_notes/1.0.3.md b/release_notes/1.1.0.md similarity index 65% rename from release_notes/1.0.3.md rename to release_notes/1.1.0.md index 3f6072e..fe05205 100644 --- a/release_notes/1.0.3.md +++ b/release_notes/1.1.0.md @@ -1,3 +1,4 @@ * Added optional auth token config input to asset for users that need to authenticate internal calls to 127.0.0.1 * Update debug lines to make print code more clear -* Moved copyright notice in django html template below the load call sto fix the widget display issue +* Moved copyright notice in django html template below the load calls to fix the widget display issue +* Renamed add url action to add link to fix append bug introduced by initial release From 928eb988ebff41bd3c3e2137480d7c9bccebc15f Mon Sep 17 00:00:00 2001 From: zamastyle Date: Thu, 9 Mar 2023 15:10:51 -0600 Subject: [PATCH 16/18] minor bug fixes to resolve linting issues --- link_connector.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/link_connector.py b/link_connector.py index 18e060a..677ee06 100755 --- a/link_connector.py +++ b/link_connector.py @@ -21,16 +21,16 @@ class LinkConnector(phantom.BaseConnector): print_debug = None - + def __init__(self): super(LinkConnector, self).__init__() return def __print(self, value, is_debug=False): - if self.print_debug == None: + if self.print_debug is None: self.print_debug = False try: - print_debug = self.get_config()['debug'] + self.print_debug = self.get_config()['debug'] except Exception as e: self.debug_print("Exception occurred while getting debug key. Exception: {}".format(e)) message = 'Failed to cast message to string' @@ -43,7 +43,7 @@ def __print(self, value, is_debug=False): return else: self.save_progress(message) - + def _get_headers(self): self.__print('_get_headers()', is_debug=True) try: From 75d1e32c093cdddc2487a0d410ff7db1849470ff Mon Sep 17 00:00:00 2001 From: zamastyle Date: Thu, 9 Mar 2023 15:14:06 -0600 Subject: [PATCH 17/18] updated version number in doc --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4b6c5ce..a798137 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ # Link Publisher: Mhike -Connector Version: 1\.0\.2 +Connector Version: 1\.1\.0 Product Vendor: Mhike Product Name: Link Product Version Supported (regex): "\.\*" @@ -119,4 +119,4 @@ DATA PATH | TYPE | CONTAINS action\_result\.status | string | action\_result\.message | string | summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | \ No newline at end of file +summary\.total\_objects\_successful | numeric | From fcf26464d53bacc96b1ce2196bcd73daadee46ba Mon Sep 17 00:00:00 2001 From: root Date: Thu, 9 Mar 2023 13:18:27 -0800 Subject: [PATCH 18/18] Release notes for version 1.1.0 --- README.md | 43 ++++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index a798137..a62c045 100644 --- a/README.md +++ b/README.md @@ -66,13 +66,14 @@ The below configuration variables are required for this Connector to operate. T VARIABLE | REQUIRED | TYPE | DESCRIPTION -------- | -------- | ---- | ----------- **https\_port** | optional | string | Splunk SOAR HTTPS port if your instance uses one other than 443 +**auth\_token** | optional | string | Splunk SOAR auth token if your instance requires auth for internal 127\.0\.0\.1 calls **debug** | optional | boolean | Print debugging statements to log ### Supported Actions -[add url](#action-add-url) - Generate a widget with clickable links +[add link](#action-add-link) - Generate a widget with clickable links [test connectivity](#action-test-connectivity) - Test connectivity to local SOAR instance -## action: 'add url' +## action: 'add link' Generate a widget with clickable links Type: **generic** @@ -90,19 +91,19 @@ PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS **sort** | optional | Sort links alphabetically | boolean | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.append | string | -action\_result\.parameter\.description | string | -action\_result\.parameter\.linkset | string | -action\_result\.parameter\.sort | string | -action\_result\.parameter\.url | string | -action\_result\.data\.\*\.linkset | string | -action\_result\.summary | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action\_result\.status | string | | success failed +action\_result\.parameter\.append | string | | +action\_result\.parameter\.description | string | | +action\_result\.parameter\.linkset | string | | +action\_result\.parameter\.sort | string | | +action\_result\.parameter\.url | string | | +action\_result\.data\.\*\.linkset | string | | +action\_result\.summary | string | | +action\_result\.message | string | | +summary\.total\_objects | numeric | | +summary\.total\_objects\_successful | numeric | | ## action: 'test connectivity' Test connectivity to local SOAR instance @@ -114,9 +115,9 @@ Read only: **True** No parameters are required for this action #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action\_result\.status | string | | success failed +action\_result\.message | string | | +summary\.total\_objects | numeric | | +summary\.total\_objects\_successful | numeric | | \ No newline at end of file