From 2c50f8cc419896c6bd9ceba84f798f432797285d Mon Sep 17 00:00:00 2001 From: talshapir Date: Thu, 22 Jan 2026 14:03:27 +0200 Subject: [PATCH 1/2] Add env common source code to the repo --- .../power_ups/connectors/pyproject.toml | 2 +- .../power_ups/email_utilities/pyproject.toml | 2 +- .../power_ups/enrichment/pyproject.toml | 2 +- .../power_ups/file_utilities/pyproject.toml | 2 +- .../power_ups/functions/pyproject.toml | 2 +- .../power_ups/git_sync/pyproject.toml | 2 +- .../power_ups/image_utilities/pyproject.toml | 2 +- .../power_ups/insights/pyproject.toml | 2 +- .../power_ups/lists/pyproject.toml | 2 +- .../power_ups/template_engine/pyproject.toml | 2 +- .../power_ups/tools/pyproject.toml | 2 +- .../community/abuse_ipdb/pyproject.toml | 2 +- .../community/air_table/pyproject.toml | 2 +- .../community/arcanna_ai/pyproject.toml | 2 +- .../community/asana/pyproject.toml | 2 +- .../community/aws_ec2/pyproject.toml | 2 +- .../community/azure_devops/pyproject.toml | 2 +- .../community/bandura_cyber/pyproject.toml | 2 +- .../community/be_secure/pyproject.toml | 2 +- .../bitdefender_gravity_zone/pyproject.toml | 2 +- .../chronicle_support_tools/pyproject.toml | 2 +- .../community/country_flags/pyproject.toml | 2 +- .../pyproject.toml | 2 +- .../cybersixgill_darkfeed/pyproject.toml | 2 +- .../pyproject.toml | 2 +- .../pyproject.toml | 2 +- .../cybersixgill_dve_feed/pyproject.toml | 2 +- .../community/data_dog/pyproject.toml | 2 +- .../community/docker_hub/pyproject.toml | 2 +- .../third_party/community/duo/pyproject.toml | 2 +- .../community/eclectic_iq/pyproject.toml | 2 +- .../community/flashpoint/pyproject.toml | 2 +- .../community/full_contact/pyproject.toml | 2 +- .../community/google_docs/pyproject.toml | 2 +- .../community/google_drive/pyproject.toml | 2 +- .../google_safe_browsing/pyproject.toml | 2 +- .../community/google_sheets/pyproject.toml | 2 +- .../community/grey_noise/pyproject.toml | 2 +- .../community/hibob/pyproject.toml | 2 +- .../community/imgbb/pyproject.toml | 2 +- .../pyproject.toml | 2 +- .../community/lacework/pyproject.toml | 2 +- .../community/logzio/pyproject.toml | 2 +- .../pyproject.toml | 2 +- .../community/marketo/pyproject.toml | 2 +- .../pyproject.toml | 2 +- .../community/nucleon_cyber/pyproject.toml | 2 +- .../community/pager_duty/pyproject.toml | 2 +- .../community/perimeter_x/pyproject.toml | 2 +- .../community/philips_hue/pyproject.toml | 2 +- .../community/phish_tank/pyproject.toml | 2 +- .../community/pulsedive/pyproject.toml | 2 +- .../sample_integration/pyproject.toml | 2 +- .../community/send_grid/pyproject.toml | 2 +- .../community/spell_checker/pyproject.toml | 2 +- .../superna_zero_trust/pyproject.toml | 2 +- .../community/team_cymru_scout/pyproject.toml | 2 +- .../community/telegram/pyproject.toml | 2 +- .../community/vanilla_forums/pyproject.toml | 2 +- .../community/vectra_qux/pyproject.toml | 2 +- .../community/vectra_rux/pyproject.toml | 2 +- .../community/vorlon/pyproject.toml | 2 +- .../community/webhook/pyproject.toml | 2 +- .../community/whois_xml_api/pyproject.toml | 2 +- .../community/workflow_tools/pyproject.toml | 2 +- .../third_party/community/zoom/pyproject.toml | 2 +- .../partner/anyrun_sandbox/pyproject.toml | 2 +- .../partner/anyrun_ti_feeds/pyproject.toml | 2 +- .../partner/anyrun_ti_lookup/pyproject.toml | 2 +- .../partner/clarotyxdome/pyproject.toml | 2 +- .../partner/cylusone/pyproject.toml | 2 +- .../partner/darktrace/pyproject.toml | 2 +- .../partner/doppel_vision/pyproject.toml | 2 +- .../partner/group_ib_ti/pyproject.toml | 2 +- .../partner/infoblox_nios/pyproject.toml | 2 +- .../pyproject.toml | 2 +- .../third_party/partner/jamf/pyproject.toml | 2 +- .../partner/netenrich_connect/pyproject.toml | 2 +- .../partner/orca_security/pyproject.toml | 2 +- .../pyproject.toml | 2 +- .../partner/spycloud/pyproject.toml | 2 +- .../partner/stairwell/pyproject.toml | 2 +- .../partner/thinkst_canary/pyproject.toml | 2 +- .../third_party/partner/torq/pyproject.toml | 2 +- .../third_party/partner/wiz/pyproject.toml | 2 +- .../partner/xm_cyber/pyproject.toml | 2 +- .../envcommon/EnvironmentCommon/.gitignore | 234 ++++++++++++++++++ .../EnvironmentCommon/.python-version | 1 + packages/envcommon/EnvironmentCommon/LICENSE | 202 +++++++++++++++ .../EnvironmentCommon/pyproject.toml | 24 ++ .../envcommon/EnvironmentCommon/ruff.toml | 107 ++++++++ .../EnvironmentCommon/EnvironmentHandle.py | 201 +++++++++++++++ .../src/EnvironmentCommon/__init__.py | 15 ++ .../EnvironmentCommon-1.0.0-py3-none-any.whl | Bin ...vironmentCommon-1.0.1-py2.py3-none-any.whl | Bin ...vironmentCommon-1.0.2-py2.py3-none-any.whl | Bin packages/integration_testing/pyproject.toml | 2 +- 97 files changed, 871 insertions(+), 87 deletions(-) create mode 100644 packages/envcommon/EnvironmentCommon/.gitignore create mode 100644 packages/envcommon/EnvironmentCommon/.python-version create mode 100644 packages/envcommon/EnvironmentCommon/LICENSE create mode 100644 packages/envcommon/EnvironmentCommon/pyproject.toml create mode 100644 packages/envcommon/EnvironmentCommon/ruff.toml create mode 100644 packages/envcommon/EnvironmentCommon/src/EnvironmentCommon/EnvironmentHandle.py create mode 100644 packages/envcommon/EnvironmentCommon/src/EnvironmentCommon/__init__.py rename packages/envcommon/{EnvironmentCommon-1.0.0 => whls}/EnvironmentCommon-1.0.0-py3-none-any.whl (100%) rename packages/envcommon/{EnvironmentCommon-1.0.1 => whls}/EnvironmentCommon-1.0.1-py2.py3-none-any.whl (100%) rename packages/envcommon/{EnvironmentCommon-1.0.2 => whls}/EnvironmentCommon-1.0.2-py2.py3-none-any.whl (100%) diff --git a/content/response_integrations/power_ups/connectors/pyproject.toml b/content/response_integrations/power_ups/connectors/pyproject.toml index 194358965..5b28480b4 100644 --- a/content/response_integrations/power_ups/connectors/pyproject.toml +++ b/content/response_integrations/power_ups/connectors/pyproject.toml @@ -15,7 +15,7 @@ integration-testing = { path = "../../../../packages/integration_testing_whls/in cronex = { url = "https://files.pythonhosted.org/packages/ed/e9/419305235dd2f2b2038b6746cb57d32b3a5ebc0ef9600bdfd46d6da87232/cronex-0.1.3.1.tar.gz" } tipcommon = { path = "../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [dependency-groups] dev = [ "environmentcommon", diff --git a/content/response_integrations/power_ups/email_utilities/pyproject.toml b/content/response_integrations/power_ups/email_utilities/pyproject.toml index 310ac87c3..c95ab6054 100644 --- a/content/response_integrations/power_ups/email_utilities/pyproject.toml +++ b/content/response_integrations/power_ups/email_utilities/pyproject.toml @@ -48,7 +48,7 @@ red-black-tree-mod = { url = "https://files.pythonhosted.org/packages/34/12/944f timeout-decorator = { url = "https://files.pythonhosted.org/packages/80/f8/0802dd14c58b5d3d72bb9caa4315535f58787a1dc50b81bbbcaaa15451be/timeout-decorator-0.5.0.tar.gz" } tipcommon = { path = "../../../../packages/tipcommon/TIPCommon-2.2.20/TIPCommon-2.2.20-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [dependency-groups] dev = [ "integration-testing", diff --git a/content/response_integrations/power_ups/enrichment/pyproject.toml b/content/response_integrations/power_ups/enrichment/pyproject.toml index 0f06bcaaf..05e80f93f 100644 --- a/content/response_integrations/power_ups/enrichment/pyproject.toml +++ b/content/response_integrations/power_ups/enrichment/pyproject.toml @@ -18,7 +18,7 @@ dependencies = [ [tool.uv.sources] integration-testing = { path = "../../../../packages/integration_testing_whls/integration_testing-2.2.20-py3-none-any.whl" } tipcommon = { path = "../../../../packages/tipcommon/TIPCommon-2.2.20/TIPCommon-2.2.20-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } whois-alt = { url = "https://files.pythonhosted.org/packages/28/2c/9220dff07bedf7712a7b1b73f7d022be597d177f6b146380110db31cf71f/whois_alt-2.5.0.tar.gz" } diff --git a/content/response_integrations/power_ups/file_utilities/pyproject.toml b/content/response_integrations/power_ups/file_utilities/pyproject.toml index 9e02482f9..1cabcbb9d 100644 --- a/content/response_integrations/power_ups/file_utilities/pyproject.toml +++ b/content/response_integrations/power_ups/file_utilities/pyproject.toml @@ -25,7 +25,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../packages/integration_testing_whls/integration_testing-2.2.20-py3-none-any.whl" } tipcommon = { path = "../../../../packages/tipcommon/TIPCommon-2.2.20/TIPCommon-2.2.20-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/power_ups/functions/pyproject.toml b/content/response_integrations/power_ups/functions/pyproject.toml index f56d0ba99..cdfe8b4c3 100644 --- a/content/response_integrations/power_ups/functions/pyproject.toml +++ b/content/response_integrations/power_ups/functions/pyproject.toml @@ -29,7 +29,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/power_ups/git_sync/pyproject.toml b/content/response_integrations/power_ups/git_sync/pyproject.toml index e39cbdfeb..f158f269c 100644 --- a/content/response_integrations/power_ups/git_sync/pyproject.toml +++ b/content/response_integrations/power_ups/git_sync/pyproject.toml @@ -26,7 +26,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../packages/tipcommon/TIPCommon-2.2.9/TIPCommon-2.2.9-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [tool.ruff.lint.per-file-ignores] "constants.py" = ["E501"] diff --git a/content/response_integrations/power_ups/image_utilities/pyproject.toml b/content/response_integrations/power_ups/image_utilities/pyproject.toml index 34bc312c0..735160514 100644 --- a/content/response_integrations/power_ups/image_utilities/pyproject.toml +++ b/content/response_integrations/power_ups/image_utilities/pyproject.toml @@ -21,7 +21,7 @@ dev = [ ] [tool.uv.sources] -environmentcommon = { path = "../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } integration-testing = { path = "../../../../packages/integration_testing_whls/integration_testing-2.2.15-py3-none-any.whl" } soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } tipcommon = { path = "../../../../packages/tipcommon/TIPCommon-2.2.15/TIPCommon-2.2.15-py2.py3-none-any.whl" } diff --git a/content/response_integrations/power_ups/insights/pyproject.toml b/content/response_integrations/power_ups/insights/pyproject.toml index 7f472853b..b15d17d61 100644 --- a/content/response_integrations/power_ups/insights/pyproject.toml +++ b/content/response_integrations/power_ups/insights/pyproject.toml @@ -19,7 +19,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/power_ups/lists/pyproject.toml b/content/response_integrations/power_ups/lists/pyproject.toml index 2e29e2a53..9ee88a355 100644 --- a/content/response_integrations/power_ups/lists/pyproject.toml +++ b/content/response_integrations/power_ups/lists/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../packages/integration_testing_whls/integration_testing-2.2.20-py3-none-any.whl" } tipcommon = { path = "../../../../packages/tipcommon/TIPCommon-2.2.20/TIPCommon-2.2.20-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/power_ups/template_engine/pyproject.toml b/content/response_integrations/power_ups/template_engine/pyproject.toml index 7d5495540..8b25633cc 100644 --- a/content/response_integrations/power_ups/template_engine/pyproject.toml +++ b/content/response_integrations/power_ups/template_engine/pyproject.toml @@ -18,7 +18,7 @@ integration-testing = { path = "../../../../packages/integration_testing_whls/in json2html = { url = "https://files.pythonhosted.org/packages/01/d5/40b617ee19d2d79f606ed37f8a81e51158f126d2af67270c68f2b47ae0d5/json2html-1.3.0.tar.gz" } tipcommon = { path = "../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [dependency-groups] dev = [ "environmentcommon", diff --git a/content/response_integrations/power_ups/tools/pyproject.toml b/content/response_integrations/power_ups/tools/pyproject.toml index 1476e9a97..17ddba5a8 100644 --- a/content/response_integrations/power_ups/tools/pyproject.toml +++ b/content/response_integrations/power_ups/tools/pyproject.toml @@ -26,7 +26,7 @@ dev = [ ] [tool.uv.sources] -environmentcommon = { path = "../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } integration-testing = { path = "../../../../packages/integration_testing_whls/integration_testing-2.2.22-py3-none-any.whl" } soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } tipcommon = { path = "../../../../packages/tipcommon/TIPCommon-2.2.22/TIPCommon-2.2.22-py2.py3-none-any.whl" } diff --git a/content/response_integrations/third_party/community/abuse_ipdb/pyproject.toml b/content/response_integrations/third_party/community/abuse_ipdb/pyproject.toml index b6f8f1ade..8118e6c41 100644 --- a/content/response_integrations/third_party/community/abuse_ipdb/pyproject.toml +++ b/content/response_integrations/third_party/community/abuse_ipdb/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/air_table/pyproject.toml b/content/response_integrations/third_party/community/air_table/pyproject.toml index ab4f292bc..248b9e262 100644 --- a/content/response_integrations/third_party/community/air_table/pyproject.toml +++ b/content/response_integrations/third_party/community/air_table/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/arcanna_ai/pyproject.toml b/content/response_integrations/third_party/community/arcanna_ai/pyproject.toml index 7189cbb90..4355bd69a 100644 --- a/content/response_integrations/third_party/community/arcanna_ai/pyproject.toml +++ b/content/response_integrations/third_party/community/arcanna_ai/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/asana/pyproject.toml b/content/response_integrations/third_party/community/asana/pyproject.toml index 0364b077a..aa4885cb1 100644 --- a/content/response_integrations/third_party/community/asana/pyproject.toml +++ b/content/response_integrations/third_party/community/asana/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/aws_ec2/pyproject.toml b/content/response_integrations/third_party/community/aws_ec2/pyproject.toml index bc0564e94..ead902961 100644 --- a/content/response_integrations/third_party/community/aws_ec2/pyproject.toml +++ b/content/response_integrations/third_party/community/aws_ec2/pyproject.toml @@ -23,7 +23,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/azure_devops/pyproject.toml b/content/response_integrations/third_party/community/azure_devops/pyproject.toml index 474c187f8..23a3e13d6 100644 --- a/content/response_integrations/third_party/community/azure_devops/pyproject.toml +++ b/content/response_integrations/third_party/community/azure_devops/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/bandura_cyber/pyproject.toml b/content/response_integrations/third_party/community/bandura_cyber/pyproject.toml index 47091f3c3..d384a0855 100644 --- a/content/response_integrations/third_party/community/bandura_cyber/pyproject.toml +++ b/content/response_integrations/third_party/community/bandura_cyber/pyproject.toml @@ -11,7 +11,7 @@ dependencies = [ [tool.uv.sources] soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-1.0.10/TIPCommon-1.0.10-py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [dependency-groups] dev = [ diff --git a/content/response_integrations/third_party/community/be_secure/pyproject.toml b/content/response_integrations/third_party/community/be_secure/pyproject.toml index d0aca6867..4fcb1197e 100644 --- a/content/response_integrations/third_party/community/be_secure/pyproject.toml +++ b/content/response_integrations/third_party/community/be_secure/pyproject.toml @@ -19,7 +19,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/bitdefender_gravity_zone/pyproject.toml b/content/response_integrations/third_party/community/bitdefender_gravity_zone/pyproject.toml index 3f6a7b6fe..1d2ead0f0 100644 --- a/content/response_integrations/third_party/community/bitdefender_gravity_zone/pyproject.toml +++ b/content/response_integrations/third_party/community/bitdefender_gravity_zone/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/chronicle_support_tools/pyproject.toml b/content/response_integrations/third_party/community/chronicle_support_tools/pyproject.toml index 8dd7cf88d..676900dae 100644 --- a/content/response_integrations/third_party/community/chronicle_support_tools/pyproject.toml +++ b/content/response_integrations/third_party/community/chronicle_support_tools/pyproject.toml @@ -19,7 +19,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/country_flags/pyproject.toml b/content/response_integrations/third_party/community/country_flags/pyproject.toml index 786712fc1..3bac1f1ae 100644 --- a/content/response_integrations/third_party/community/country_flags/pyproject.toml +++ b/content/response_integrations/third_party/community/country_flags/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/cybersixgill_actionable_alerts/pyproject.toml b/content/response_integrations/third_party/community/cybersixgill_actionable_alerts/pyproject.toml index 15f271bed..1338c6828 100644 --- a/content/response_integrations/third_party/community/cybersixgill_actionable_alerts/pyproject.toml +++ b/content/response_integrations/third_party/community/cybersixgill_actionable_alerts/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/cybersixgill_darkfeed/pyproject.toml b/content/response_integrations/third_party/community/cybersixgill_darkfeed/pyproject.toml index 335ec4f38..693ab08ae 100644 --- a/content/response_integrations/third_party/community/cybersixgill_darkfeed/pyproject.toml +++ b/content/response_integrations/third_party/community/cybersixgill_darkfeed/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/cybersixgill_darkfeed_enrichment/pyproject.toml b/content/response_integrations/third_party/community/cybersixgill_darkfeed_enrichment/pyproject.toml index 47a898f4b..0c0c6ce67 100644 --- a/content/response_integrations/third_party/community/cybersixgill_darkfeed_enrichment/pyproject.toml +++ b/content/response_integrations/third_party/community/cybersixgill_darkfeed_enrichment/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/cybersixgill_dve_enrichment/pyproject.toml b/content/response_integrations/third_party/community/cybersixgill_dve_enrichment/pyproject.toml index d9ce676a6..ce898a462 100644 --- a/content/response_integrations/third_party/community/cybersixgill_dve_enrichment/pyproject.toml +++ b/content/response_integrations/third_party/community/cybersixgill_dve_enrichment/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/cybersixgill_dve_feed/pyproject.toml b/content/response_integrations/third_party/community/cybersixgill_dve_feed/pyproject.toml index 9698e508f..373f98b1e 100644 --- a/content/response_integrations/third_party/community/cybersixgill_dve_feed/pyproject.toml +++ b/content/response_integrations/third_party/community/cybersixgill_dve_feed/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/data_dog/pyproject.toml b/content/response_integrations/third_party/community/data_dog/pyproject.toml index bfb30261a..f966765f9 100644 --- a/content/response_integrations/third_party/community/data_dog/pyproject.toml +++ b/content/response_integrations/third_party/community/data_dog/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/docker_hub/pyproject.toml b/content/response_integrations/third_party/community/docker_hub/pyproject.toml index 6a14c4c7c..1b57cd5a4 100644 --- a/content/response_integrations/third_party/community/docker_hub/pyproject.toml +++ b/content/response_integrations/third_party/community/docker_hub/pyproject.toml @@ -22,7 +22,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/duo/pyproject.toml b/content/response_integrations/third_party/community/duo/pyproject.toml index 4b8f342ec..666fd6bcc 100644 --- a/content/response_integrations/third_party/community/duo/pyproject.toml +++ b/content/response_integrations/third_party/community/duo/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/eclectic_iq/pyproject.toml b/content/response_integrations/third_party/community/eclectic_iq/pyproject.toml index 9f0f088a2..64546a517 100644 --- a/content/response_integrations/third_party/community/eclectic_iq/pyproject.toml +++ b/content/response_integrations/third_party/community/eclectic_iq/pyproject.toml @@ -11,7 +11,7 @@ dependencies = [ [tool.uv.sources] soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-1.0.12/TIPCommon-1.0.12-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [dependency-groups] dev = [ diff --git a/content/response_integrations/third_party/community/flashpoint/pyproject.toml b/content/response_integrations/third_party/community/flashpoint/pyproject.toml index c8723a041..8529f24a3 100644 --- a/content/response_integrations/third_party/community/flashpoint/pyproject.toml +++ b/content/response_integrations/third_party/community/flashpoint/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/full_contact/pyproject.toml b/content/response_integrations/third_party/community/full_contact/pyproject.toml index 7e9e516ba..1510db9ec 100644 --- a/content/response_integrations/third_party/community/full_contact/pyproject.toml +++ b/content/response_integrations/third_party/community/full_contact/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/google_docs/pyproject.toml b/content/response_integrations/third_party/community/google_docs/pyproject.toml index 4fe28115a..37834f6cd 100644 --- a/content/response_integrations/third_party/community/google_docs/pyproject.toml +++ b/content/response_integrations/third_party/community/google_docs/pyproject.toml @@ -22,7 +22,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/google_drive/pyproject.toml b/content/response_integrations/third_party/community/google_drive/pyproject.toml index 2742e6a21..f790b9040 100644 --- a/content/response_integrations/third_party/community/google_drive/pyproject.toml +++ b/content/response_integrations/third_party/community/google_drive/pyproject.toml @@ -22,7 +22,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/google_safe_browsing/pyproject.toml b/content/response_integrations/third_party/community/google_safe_browsing/pyproject.toml index 2fcf893c7..979322f45 100644 --- a/content/response_integrations/third_party/community/google_safe_browsing/pyproject.toml +++ b/content/response_integrations/third_party/community/google_safe_browsing/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/google_sheets/pyproject.toml b/content/response_integrations/third_party/community/google_sheets/pyproject.toml index 10490b058..bbb476d38 100644 --- a/content/response_integrations/third_party/community/google_sheets/pyproject.toml +++ b/content/response_integrations/third_party/community/google_sheets/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/grey_noise/pyproject.toml b/content/response_integrations/third_party/community/grey_noise/pyproject.toml index cc39c5bf2..9665fb87d 100644 --- a/content/response_integrations/third_party/community/grey_noise/pyproject.toml +++ b/content/response_integrations/third_party/community/grey_noise/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/hibob/pyproject.toml b/content/response_integrations/third_party/community/hibob/pyproject.toml index 6459c25e8..ee652ac1d 100644 --- a/content/response_integrations/third_party/community/hibob/pyproject.toml +++ b/content/response_integrations/third_party/community/hibob/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/imgbb/pyproject.toml b/content/response_integrations/third_party/community/imgbb/pyproject.toml index 51ef5b001..aabf11862 100644 --- a/content/response_integrations/third_party/community/imgbb/pyproject.toml +++ b/content/response_integrations/third_party/community/imgbb/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/ipqs_fraud_and_risk_scoring/pyproject.toml b/content/response_integrations/third_party/community/ipqs_fraud_and_risk_scoring/pyproject.toml index 7b9f6b50e..c7d1644b0 100644 --- a/content/response_integrations/third_party/community/ipqs_fraud_and_risk_scoring/pyproject.toml +++ b/content/response_integrations/third_party/community/ipqs_fraud_and_risk_scoring/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/lacework/pyproject.toml b/content/response_integrations/third_party/community/lacework/pyproject.toml index 8da173b8d..66108ed65 100644 --- a/content/response_integrations/third_party/community/lacework/pyproject.toml +++ b/content/response_integrations/third_party/community/lacework/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/logzio/pyproject.toml b/content/response_integrations/third_party/community/logzio/pyproject.toml index 156c96479..3559e580c 100644 --- a/content/response_integrations/third_party/community/logzio/pyproject.toml +++ b/content/response_integrations/third_party/community/logzio/pyproject.toml @@ -22,7 +22,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/luminar_iocs_and_leaked_credentials/pyproject.toml b/content/response_integrations/third_party/community/luminar_iocs_and_leaked_credentials/pyproject.toml index 09891f6df..320d2cdad 100644 --- a/content/response_integrations/third_party/community/luminar_iocs_and_leaked_credentials/pyproject.toml +++ b/content/response_integrations/third_party/community/luminar_iocs_and_leaked_credentials/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/marketo/pyproject.toml b/content/response_integrations/third_party/community/marketo/pyproject.toml index 204eab434..ec7dc4696 100644 --- a/content/response_integrations/third_party/community/marketo/pyproject.toml +++ b/content/response_integrations/third_party/community/marketo/pyproject.toml @@ -15,7 +15,7 @@ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [dependency-groups] dev = [ "environmentcommon", diff --git a/content/response_integrations/third_party/community/microsoft_graph_security_tools/pyproject.toml b/content/response_integrations/third_party/community/microsoft_graph_security_tools/pyproject.toml index 68e9f40f8..7795b63f4 100644 --- a/content/response_integrations/third_party/community/microsoft_graph_security_tools/pyproject.toml +++ b/content/response_integrations/third_party/community/microsoft_graph_security_tools/pyproject.toml @@ -23,7 +23,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/nucleon_cyber/pyproject.toml b/content/response_integrations/third_party/community/nucleon_cyber/pyproject.toml index ed3036a34..221b46a6a 100644 --- a/content/response_integrations/third_party/community/nucleon_cyber/pyproject.toml +++ b/content/response_integrations/third_party/community/nucleon_cyber/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/pager_duty/pyproject.toml b/content/response_integrations/third_party/community/pager_duty/pyproject.toml index 3be7a1632..acc4883de 100644 --- a/content/response_integrations/third_party/community/pager_duty/pyproject.toml +++ b/content/response_integrations/third_party/community/pager_duty/pyproject.toml @@ -22,7 +22,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/perimeter_x/pyproject.toml b/content/response_integrations/third_party/community/perimeter_x/pyproject.toml index 34ba04721..65ae6c320 100644 --- a/content/response_integrations/third_party/community/perimeter_x/pyproject.toml +++ b/content/response_integrations/third_party/community/perimeter_x/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/philips_hue/pyproject.toml b/content/response_integrations/third_party/community/philips_hue/pyproject.toml index c10bd250c..287b81e58 100644 --- a/content/response_integrations/third_party/community/philips_hue/pyproject.toml +++ b/content/response_integrations/third_party/community/philips_hue/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/phish_tank/pyproject.toml b/content/response_integrations/third_party/community/phish_tank/pyproject.toml index f4eb7fae3..0d80487fe 100644 --- a/content/response_integrations/third_party/community/phish_tank/pyproject.toml +++ b/content/response_integrations/third_party/community/phish_tank/pyproject.toml @@ -23,7 +23,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/pulsedive/pyproject.toml b/content/response_integrations/third_party/community/pulsedive/pyproject.toml index dc946c978..4d683eb85 100644 --- a/content/response_integrations/third_party/community/pulsedive/pyproject.toml +++ b/content/response_integrations/third_party/community/pulsedive/pyproject.toml @@ -12,7 +12,7 @@ dependencies = [ [tool.uv.sources] soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-1.0.10/TIPCommon-1.0.10-py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [dependency-groups] dev = [ diff --git a/content/response_integrations/third_party/community/sample_integration/pyproject.toml b/content/response_integrations/third_party/community/sample_integration/pyproject.toml index a3f0780b1..802b37c3e 100644 --- a/content/response_integrations/third_party/community/sample_integration/pyproject.toml +++ b/content/response_integrations/third_party/community/sample_integration/pyproject.toml @@ -23,7 +23,7 @@ pythonpath = "." [tool.uv.sources] soar-sdk = { git = "https://github.com/chronicle/soar-sdk" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.10/TIPCommon-2.2.10-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.10-py3-none-any.whl" } [[tool.uv.index]] diff --git a/content/response_integrations/third_party/community/send_grid/pyproject.toml b/content/response_integrations/third_party/community/send_grid/pyproject.toml index e6b7d4007..29b3ebc9e 100644 --- a/content/response_integrations/third_party/community/send_grid/pyproject.toml +++ b/content/response_integrations/third_party/community/send_grid/pyproject.toml @@ -15,7 +15,7 @@ integration-testing = { path = "../../../../../packages/integration_testing_whls starkbank-ecdsa = { url = "https://files.pythonhosted.org/packages/a3/f8/a6091be6a60ed4df9ac806c89fbc5fe1a3416d0284f3ba70aa09a3419428/starkbank-ecdsa-2.2.0.tar.gz" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [dependency-groups] dev = [ "environmentcommon", diff --git a/content/response_integrations/third_party/community/spell_checker/pyproject.toml b/content/response_integrations/third_party/community/spell_checker/pyproject.toml index f2b70c6aa..cc25db3c5 100644 --- a/content/response_integrations/third_party/community/spell_checker/pyproject.toml +++ b/content/response_integrations/third_party/community/spell_checker/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/superna_zero_trust/pyproject.toml b/content/response_integrations/third_party/community/superna_zero_trust/pyproject.toml index 5b4980666..ba0e2da9e 100644 --- a/content/response_integrations/third_party/community/superna_zero_trust/pyproject.toml +++ b/content/response_integrations/third_party/community/superna_zero_trust/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/team_cymru_scout/pyproject.toml b/content/response_integrations/third_party/community/team_cymru_scout/pyproject.toml index 34c856fae..58ad76790 100644 --- a/content/response_integrations/third_party/community/team_cymru_scout/pyproject.toml +++ b/content/response_integrations/third_party/community/team_cymru_scout/pyproject.toml @@ -10,7 +10,7 @@ dependencies = [ ] [tool.uv.sources] -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-1.1.9/TIPCommon-1.1.9.2-py2.py3-none-any.whl" } diff --git a/content/response_integrations/third_party/community/telegram/pyproject.toml b/content/response_integrations/third_party/community/telegram/pyproject.toml index 8dc2ef61d..2156bb977 100644 --- a/content/response_integrations/third_party/community/telegram/pyproject.toml +++ b/content/response_integrations/third_party/community/telegram/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/vanilla_forums/pyproject.toml b/content/response_integrations/third_party/community/vanilla_forums/pyproject.toml index 1edba5ce7..955ca46ed 100644 --- a/content/response_integrations/third_party/community/vanilla_forums/pyproject.toml +++ b/content/response_integrations/third_party/community/vanilla_forums/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/vectra_qux/pyproject.toml b/content/response_integrations/third_party/community/vectra_qux/pyproject.toml index 075d1a61c..6cdbeb851 100644 --- a/content/response_integrations/third_party/community/vectra_qux/pyproject.toml +++ b/content/response_integrations/third_party/community/vectra_qux/pyproject.toml @@ -10,7 +10,7 @@ dependencies = [ ] [tool.uv.sources] -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-1.0.12/TIPCommon-1.0.12-py2.py3-none-any.whl" } diff --git a/content/response_integrations/third_party/community/vectra_rux/pyproject.toml b/content/response_integrations/third_party/community/vectra_rux/pyproject.toml index fd47a571a..32de4ed74 100644 --- a/content/response_integrations/third_party/community/vectra_rux/pyproject.toml +++ b/content/response_integrations/third_party/community/vectra_rux/pyproject.toml @@ -10,7 +10,7 @@ dependencies = [ ] [tool.uv.sources] -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-1.0.12/TIPCommon-1.0.12-py2.py3-none-any.whl" } diff --git a/content/response_integrations/third_party/community/vorlon/pyproject.toml b/content/response_integrations/third_party/community/vorlon/pyproject.toml index 6f4c39560..c066bfdac 100644 --- a/content/response_integrations/third_party/community/vorlon/pyproject.toml +++ b/content/response_integrations/third_party/community/vorlon/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/webhook/pyproject.toml b/content/response_integrations/third_party/community/webhook/pyproject.toml index dde8d7494..28869d898 100644 --- a/content/response_integrations/third_party/community/webhook/pyproject.toml +++ b/content/response_integrations/third_party/community/webhook/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/whois_xml_api/pyproject.toml b/content/response_integrations/third_party/community/whois_xml_api/pyproject.toml index 8255a183c..e03da1d3d 100644 --- a/content/response_integrations/third_party/community/whois_xml_api/pyproject.toml +++ b/content/response_integrations/third_party/community/whois_xml_api/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/workflow_tools/pyproject.toml b/content/response_integrations/third_party/community/workflow_tools/pyproject.toml index 28f02df25..7819f72cf 100644 --- a/content/response_integrations/third_party/community/workflow_tools/pyproject.toml +++ b/content/response_integrations/third_party/community/workflow_tools/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/community/zoom/pyproject.toml b/content/response_integrations/third_party/community/zoom/pyproject.toml index 2ba9bd5bb..e03cd4947 100644 --- a/content/response_integrations/third_party/community/zoom/pyproject.toml +++ b/content/response_integrations/third_party/community/zoom/pyproject.toml @@ -19,7 +19,7 @@ dev = [ [tool.uv.sources] soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } diff --git a/content/response_integrations/third_party/partner/anyrun_sandbox/pyproject.toml b/content/response_integrations/third_party/partner/anyrun_sandbox/pyproject.toml index cf473b7c6..da42870c4 100644 --- a/content/response_integrations/third_party/partner/anyrun_sandbox/pyproject.toml +++ b/content/response_integrations/third_party/partner/anyrun_sandbox/pyproject.toml @@ -24,7 +24,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.11-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.11/TIPCommon-2.2.11-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/partner/anyrun_ti_feeds/pyproject.toml b/content/response_integrations/third_party/partner/anyrun_ti_feeds/pyproject.toml index 667cd3908..740b2817a 100644 --- a/content/response_integrations/third_party/partner/anyrun_ti_feeds/pyproject.toml +++ b/content/response_integrations/third_party/partner/anyrun_ti_feeds/pyproject.toml @@ -24,7 +24,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.11-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.11/TIPCommon-2.2.11-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/partner/anyrun_ti_lookup/pyproject.toml b/content/response_integrations/third_party/partner/anyrun_ti_lookup/pyproject.toml index c9c33d824..833018238 100644 --- a/content/response_integrations/third_party/partner/anyrun_ti_lookup/pyproject.toml +++ b/content/response_integrations/third_party/partner/anyrun_ti_lookup/pyproject.toml @@ -24,7 +24,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.11-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.11/TIPCommon-2.2.11-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/partner/clarotyxdome/pyproject.toml b/content/response_integrations/third_party/partner/clarotyxdome/pyproject.toml index 7b24c7dbb..588e2d3c5 100644 --- a/content/response_integrations/third_party/partner/clarotyxdome/pyproject.toml +++ b/content/response_integrations/third_party/partner/clarotyxdome/pyproject.toml @@ -22,7 +22,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/partner/cylusone/pyproject.toml b/content/response_integrations/third_party/partner/cylusone/pyproject.toml index 0c212a4f0..ee8f0663d 100644 --- a/content/response_integrations/third_party/partner/cylusone/pyproject.toml +++ b/content/response_integrations/third_party/partner/cylusone/pyproject.toml @@ -23,7 +23,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/partner/darktrace/pyproject.toml b/content/response_integrations/third_party/partner/darktrace/pyproject.toml index b8e3f4ef3..c1b045e12 100644 --- a/content/response_integrations/third_party/partner/darktrace/pyproject.toml +++ b/content/response_integrations/third_party/partner/darktrace/pyproject.toml @@ -10,7 +10,7 @@ dependencies = [ [tool.uv.sources] tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-1.1.0.1/TIPCommon-1.1.0.1-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } [dependency-groups] diff --git a/content/response_integrations/third_party/partner/doppel_vision/pyproject.toml b/content/response_integrations/third_party/partner/doppel_vision/pyproject.toml index 56b570009..8ac0741a2 100644 --- a/content/response_integrations/third_party/partner/doppel_vision/pyproject.toml +++ b/content/response_integrations/third_party/partner/doppel_vision/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/partner/group_ib_ti/pyproject.toml b/content/response_integrations/third_party/partner/group_ib_ti/pyproject.toml index 2383d058a..1f4a1fbbd 100644 --- a/content/response_integrations/third_party/partner/group_ib_ti/pyproject.toml +++ b/content/response_integrations/third_party/partner/group_ib_ti/pyproject.toml @@ -22,7 +22,7 @@ dev = [ [tool.uv.sources] soar-sdk = { git = "https://github.com/chronicle/soar-sdk" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.10/TIPCommon-2.2.10-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.10-py3-none-any.whl" } [[tool.uv.index]] diff --git a/content/response_integrations/third_party/partner/infoblox_nios/pyproject.toml b/content/response_integrations/third_party/partner/infoblox_nios/pyproject.toml index dd5071646..4b9376678 100644 --- a/content/response_integrations/third_party/partner/infoblox_nios/pyproject.toml +++ b/content/response_integrations/third_party/partner/infoblox_nios/pyproject.toml @@ -27,7 +27,7 @@ git = "https://github.com/chronicle/soar-sdk.git" path = "../../../../../packages/tipcommon/TIPCommon-2.2.11/TIPCommon-2.2.11-py2.py3-none-any.whl" [tool.uv.sources.environmentcommon] -path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" +path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/partner/infoblox_threat_defense_with_ddi/pyproject.toml b/content/response_integrations/third_party/partner/infoblox_threat_defense_with_ddi/pyproject.toml index ed8668af3..c54d6807c 100644 --- a/content/response_integrations/third_party/partner/infoblox_threat_defense_with_ddi/pyproject.toml +++ b/content/response_integrations/third_party/partner/infoblox_threat_defense_with_ddi/pyproject.toml @@ -20,7 +20,7 @@ dev = [ [tool.uv.sources] soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-1.1.9/TIPCommon-1.1.9.2-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/partner/jamf/pyproject.toml b/content/response_integrations/third_party/partner/jamf/pyproject.toml index ca526d18b..bf84b48b3 100644 --- a/content/response_integrations/third_party/partner/jamf/pyproject.toml +++ b/content/response_integrations/third_party/partner/jamf/pyproject.toml @@ -19,7 +19,7 @@ dev = [ [tool.uv.sources] tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.11/TIPCommon-2.2.11-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.11-py3-none-any.whl" } diff --git a/content/response_integrations/third_party/partner/netenrich_connect/pyproject.toml b/content/response_integrations/third_party/partner/netenrich_connect/pyproject.toml index 407818689..9afcf67fa 100644 --- a/content/response_integrations/third_party/partner/netenrich_connect/pyproject.toml +++ b/content/response_integrations/third_party/partner/netenrich_connect/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/partner/orca_security/pyproject.toml b/content/response_integrations/third_party/partner/orca_security/pyproject.toml index 6fd82d806..8b6b7bd3d 100644 --- a/content/response_integrations/third_party/partner/orca_security/pyproject.toml +++ b/content/response_integrations/third_party/partner/orca_security/pyproject.toml @@ -11,7 +11,7 @@ dependencies = [ [tool.uv.sources] tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-1.0.11/TIPCommon-1.0.11-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.1/EnvironmentCommon-1.0.1-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.1-py2.py3-none-any.whl" } soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } [[tool.uv.index]] diff --git a/content/response_integrations/third_party/partner/recorded_future_intelligence/pyproject.toml b/content/response_integrations/third_party/partner/recorded_future_intelligence/pyproject.toml index 53621320a..4dd0450f4 100644 --- a/content/response_integrations/third_party/partner/recorded_future_intelligence/pyproject.toml +++ b/content/response_integrations/third_party/partner/recorded_future_intelligence/pyproject.toml @@ -24,7 +24,7 @@ dev = [ [tool.uv.sources] soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } psengine = { git = "https://github.com/RecordedFuture-ProfessionalServices/psengine", tag = "v2.0.3" } antlr4-python3-runtime = { url = "https://files.pythonhosted.org/packages/3e/38/7859ff46355f76f8d19459005ca000b6e7012f2f1ca597746cbcd1fbfe5e/antlr4-python3-runtime-4.9.3.tar.gz" } diff --git a/content/response_integrations/third_party/partner/spycloud/pyproject.toml b/content/response_integrations/third_party/partner/spycloud/pyproject.toml index e6a073521..dd21458e7 100644 --- a/content/response_integrations/third_party/partner/spycloud/pyproject.toml +++ b/content/response_integrations/third_party/partner/spycloud/pyproject.toml @@ -10,7 +10,7 @@ dependencies = [ ] [tool.uv.sources] -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.0/EnvironmentCommon-1.0.0-py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.0-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-1.0.10/TIPCommon-1.0.10-py3-none-any.whl" } soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } diff --git a/content/response_integrations/third_party/partner/stairwell/pyproject.toml b/content/response_integrations/third_party/partner/stairwell/pyproject.toml index 16b66b25d..f6d98857e 100644 --- a/content/response_integrations/third_party/partner/stairwell/pyproject.toml +++ b/content/response_integrations/third_party/partner/stairwell/pyproject.toml @@ -19,7 +19,7 @@ dev = [ [tool.uv.sources] tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.11/TIPCommon-2.2.11-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.11-py3-none-any.whl" } diff --git a/content/response_integrations/third_party/partner/thinkst_canary/pyproject.toml b/content/response_integrations/third_party/partner/thinkst_canary/pyproject.toml index 179c2d452..366505e61 100644 --- a/content/response_integrations/third_party/partner/thinkst_canary/pyproject.toml +++ b/content/response_integrations/third_party/partner/thinkst_canary/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/partner/torq/pyproject.toml b/content/response_integrations/third_party/partner/torq/pyproject.toml index 5cf7e9876..00f36772f 100644 --- a/content/response_integrations/third_party/partner/torq/pyproject.toml +++ b/content/response_integrations/third_party/partner/torq/pyproject.toml @@ -21,7 +21,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [tool.mypy] python_version = "3.11" diff --git a/content/response_integrations/third_party/partner/wiz/pyproject.toml b/content/response_integrations/third_party/partner/wiz/pyproject.toml index 9ddf98197..b743d8b55 100644 --- a/content/response_integrations/third_party/partner/wiz/pyproject.toml +++ b/content/response_integrations/third_party/partner/wiz/pyproject.toml @@ -23,7 +23,7 @@ dev = [ soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } integration-testing = { path = "../../../../../packages/integration_testing_whls/integration_testing-2.2.7-py3-none-any.whl" } tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.7/TIPCommon-2.2.7-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [[tool.uv.index]] url = "https://pypi.org/simple" diff --git a/content/response_integrations/third_party/partner/xm_cyber/pyproject.toml b/content/response_integrations/third_party/partner/xm_cyber/pyproject.toml index afa2ad1b4..bf0077968 100644 --- a/content/response_integrations/third_party/partner/xm_cyber/pyproject.toml +++ b/content/response_integrations/third_party/partner/xm_cyber/pyproject.toml @@ -22,7 +22,7 @@ dev = [ [tool.uv.sources] tipcommon = { path = "../../../../../packages/tipcommon/TIPCommon-2.2.15/TIPCommon-2.2.15-py2.py3-none-any.whl" } -environmentcommon = { path = "../../../../../packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../../../../../packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } [tool.uv.sources.soar-sdk] git = "https://github.com/chronicle/soar-sdk.git" diff --git a/packages/envcommon/EnvironmentCommon/.gitignore b/packages/envcommon/EnvironmentCommon/.gitignore new file mode 100644 index 000000000..f5ffc4249 --- /dev/null +++ b/packages/envcommon/EnvironmentCommon/.gitignore @@ -0,0 +1,234 @@ +### PythonVanilla template +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +out/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +#.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + + +### Windows template +# Windows thumbnail cache files +Thumbs.db +Thumbs.db:encryptable +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +[Dd]esktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msix +*.msm +*.msp + +# Windows shortcuts +*.lnk + +### macOS template +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +### Python template +# Byte-compiled / optimized / DLL files + +# C extensions + +# Distribution / packaging + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs + +# Unit test / coverage reports + +# Translations + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock + +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/#use-with-ide +.pdm.toml + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +.idea/ +.vscode/ diff --git a/packages/envcommon/EnvironmentCommon/.python-version b/packages/envcommon/EnvironmentCommon/.python-version new file mode 100644 index 000000000..2c0733315 --- /dev/null +++ b/packages/envcommon/EnvironmentCommon/.python-version @@ -0,0 +1 @@ +3.11 diff --git a/packages/envcommon/EnvironmentCommon/LICENSE b/packages/envcommon/EnvironmentCommon/LICENSE new file mode 100644 index 000000000..d64569567 --- /dev/null +++ b/packages/envcommon/EnvironmentCommon/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/packages/envcommon/EnvironmentCommon/pyproject.toml b/packages/envcommon/EnvironmentCommon/pyproject.toml new file mode 100644 index 000000000..2e10ecd16 --- /dev/null +++ b/packages/envcommon/EnvironmentCommon/pyproject.toml @@ -0,0 +1,24 @@ +[project] +name = "EnvironmentCommon" +version = "1.0.3" +description = "Package that deals with environment mapping in Google SecOps SOAR Connectors" +authors = [ + { name = "Tal Shapir", email = "talshapir@google.com" }, +] +requires-python = "==3.11.*" +dependencies = [] + +[dependency-groups] +dev = [ + "ruff>=0.14.13", + "ty>=0.0.13", +] + +[build-system] +requires = ["uv_build"] +build-backend = "uv_build" + + +[[tool.uv.index]] +url = "https://pypi.org/simple" +default = true diff --git a/packages/envcommon/EnvironmentCommon/ruff.toml b/packages/envcommon/EnvironmentCommon/ruff.toml new file mode 100644 index 000000000..81a9b3a81 --- /dev/null +++ b/packages/envcommon/EnvironmentCommon/ruff.toml @@ -0,0 +1,107 @@ +# Exclude a variety of commonly ignored directories. +exclude = [ + ".bzr", + ".direnv", + ".eggs", + ".git", + ".git-rewrite", + ".hg", + ".ipynb_checkpoints", + ".mypy_cache", + ".nox", + ".pants.d", + ".pyenv", + ".pytest_cache", + ".pytype", + ".ruff_cache", + ".svn", + ".tox", + ".venv", + ".vscode", + ".idea", + "__pypackages__", + "_build", + "buck-out", + "build", + "dist", + "node_modules", + "site-packages", + "venv", +] + +# Same as Black. +line-length = 100 +indent-width = 4 + +# Assume Python 3.11 +target-version = "py311" + +[lint] +# Enable Pyflakes (`F`) and a subset of the pycodestyle (`E`) codes by default. +# Unlike Flake8, Ruff doesn't enable pycodestyle warnings (`W`) or +# McCabe complexity (`C901`) by default. +# Check https://docs.astral.sh/ruff/rules/ +select = ["ALL"] + +ignore = [ + "COM812", # The formatter enforces consistent use of trailing commas, making the rule redundant + "D203", # incorrect-blank-line-before-class + "D213", # multi-line-summary-second-line + "D100", # undocumented-public-module + "D101", # undocumented-public-class + "D104", # undocumented-public-package + "D105", # undocumented-magic-method + "D107", # undocumented-public-init + "RUF067", +] + +# Allow fix for all enabled rules (when `--fix`) is provided. +fixable = ["ALL"] +unfixable = [] + +# Allow unused variables when underscore-prefixed. +dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$" + +preview = true + +[format] +# Like Black, use double quotes for strings. +quote-style = "double" + +# Like Black, indent with spaces, rather than tabs. +indent-style = "space" + +# Like Black, respect magic trailing commas. +skip-magic-trailing-comma = false + +# Like Black, automatically detect the appropriate line ending. +line-ending = "auto" + +# Enable auto-formatting of code examples in docstrings. Markdown, +# reStructuredText code/literal blocks, and doctests are all supported. +# +# This is currently disabled by default, but it is planned for this +# to be opt-out in the future. +docstring-code-format = true + +# Set the line length limit used when formatting code snippets in +# docstrings. +# +# This only has an effect when the `docstring-code-format` setting is +# enabled. +docstring-code-line-length = "dynamic" + +preview = true + +[lint.per-file-ignores] +"**/[Tt]ests/**" = [ + "S101", + "ARG", + "FBT", + "PLR2004", + "S311", + "D", + "DOC", + "PLR6301", + "PLC1901", +] diff --git a/packages/envcommon/EnvironmentCommon/src/EnvironmentCommon/EnvironmentHandle.py b/packages/envcommon/EnvironmentCommon/src/EnvironmentCommon/EnvironmentHandle.py new file mode 100644 index 000000000..7df027d58 --- /dev/null +++ b/packages/envcommon/EnvironmentCommon/src/EnvironmentCommon/EnvironmentHandle.py @@ -0,0 +1,201 @@ +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import json +import os +import re +from abc import ABC, abstractmethod + + +def platform_supports_db(siemplify): + if hasattr(siemplify, 'set_connector_context_property'): + return True + return False + + +def validate_map_file_exists(map_file_path, logger): + try: + if not os.path.exists(map_file_path): + with open(map_file_path, 'w+') as map_file: + map_file.write(json.dumps( + {"Original environment name": "Desired environment name", + "Env1": "MyEnv1"})) + logger.info("Mapping file was created at {}".format(map_file)) + except Exception as e: + logger.error("Unable to create mapping file: {}".format(e)) + logger.exception(e) + + +class GetEnvironmentCommonFactory(object): + @staticmethod + def create_environment_manager(siemplify, environment_field_name, environment_regex_pattern, map_file='map.json'): + """ + Get environment common + :param siemplify: {siemplify} Siemplify object + :param environment_field_name: {string} The environment field name + :param environment_regex_pattern: {string} The environment regex pattern + :param map_file: {string} The map file + :return: {EnvironmentHandle} + """ + if platform_supports_db(siemplify): + return EnvironmentHandleForDBSystem(logger=siemplify.LOGGER, + environment_field_name=environment_field_name, + environment_regex=environment_regex_pattern, + default_environment=siemplify.context.connector_info.environment) + + map_file_path = os.path.join(siemplify.run_folder, map_file) + validate_map_file_exists(map_file_path, siemplify.LOGGER) + + return EnvironmentHandleForFileSystem(map_file_path=map_file_path, + logger=siemplify.LOGGER, + environment_field_name=environment_field_name, + environment_regex=environment_regex_pattern, + default_environment=siemplify.context.connector_info.environment) + + +class EnvironmentHandle(ABC): + """ + handle environment logic + environment_field_name + environment_regex + environment map.json + """ + + def __init__(self, logger, environment_field_name, environment_regex, default_environment): + self.logger = logger + self.environment_field_name = environment_field_name + # if environment_regex is null or empty, turn it into ".*" (aka: select everything) + self.environment_regex = environment_regex if environment_regex else ".*" + self.default_environment = default_environment + + @abstractmethod + def get_environment(self, data): + """ + Get environment using all reoccurring environment logic + environment_field_name + environment_regex + environment map.json + first check if the user entered environment_field_name (from where to fetch) + Then, if regex pattern given - extract environment + In the end, try to resolve the found environment to its mapped alias - using the map file + If nothing supply, return the default connector environment + :param data: {dict} fetch the environment value from this data field (can be the alert or the event) + :return: {string} environment + """ + ... + + +class EnvironmentHandleForFileSystem(EnvironmentHandle): + """ + handle environment logic + environment_field_name + environment_regex + environment map.json + """ + + def __init__(self, map_file_path, logger, environment_field_name, environment_regex, default_environment): + super().__init__(logger, environment_field_name, + environment_regex, default_environment) + self.map_file_path = map_file_path + + def get_environment(self, data): + """ + Get environment using all reoccurring environment logic + environment_field_name + environment_regex + environment map.json + first check if the user entered environment_field_name (from where to fetch) + Then, if regex pattern given - extract environment + In the end, try to resolve the found environment to its mapped alias - using the map file + If nothing supply, return the default connector environment + :param data: {dict} fetch the environment value from this data field (can be the alert or the event) + :return: {string} environment + """ + + # Check first if map.json exists, and if not, create it. + + if self.environment_field_name and data.get(self.environment_field_name): + # Get the environment from the given field + environment = data.get(self.environment_field_name, "") + + if self.environment_regex and self.environment_regex != ".*": + # If regex pattern given - extract environment + match = re.search(self.environment_regex, environment) + + if match: + # Get the first matching value to match the pattern + environment = match.group() + + # Try to resolve the found environment to its mapped alias. + # If the found environment / extracted environment is empty + # use the default environment + mapped_environment = self._get_mapped_environment( + environment) if environment else self.default_environment + return mapped_environment + + return self.default_environment + + def _get_mapped_environment(self, original_env): + """ + Get mapped environment alias from mapping file + :param original_env: {str} The environment to try to resolve + :return: {str} The resolved alias (if no alias - returns the original env) + """ + try: + with open(self.map_file_path, 'r+') as map_file: + mappings = json.loads(map_file.read()) + except Exception as e: + self.logger.error( + "Unable to read environment mappings: {}".format(e)) + mappings = {} + + if not isinstance(mappings, dict): + self.logger.LOGGER.error( + "Mappings are not in valid format. Environment will not be mapped.") + return original_env + + return mappings.get(original_env, original_env) + + +class EnvironmentHandleForDBSystem(EnvironmentHandle): + """ + handle environment logic + environment_field_name + environment_regex + environment map.json + """ + + def __init__(self, logger, environment_field_name, environment_regex, default_environment): + super().__init__(logger, environment_field_name, + environment_regex, default_environment) + + def get_environment(self, data): + """ + Get environment using all reoccurring environment logic + environment_field_name + environment_regex + environment map.json + first check if the user entered environment_field_name (from where to fetch) + Then, if regex pattern given - extract environment + In the end, try to resolve the found environment to its mapped alias - using the map file + If nothing supply, return the default connector environment + :param data: {dict} fetch the environment value from this data field (can be the alert or the event) + :return: {string} environment + """ + if self.environment_field_name and data.get(self.environment_field_name): + # Get the environment from the given field + environment = data.get(self.environment_field_name, "") + + if self.environment_regex and self.environment_regex != ".*": + # If regex pattern given - extract environment + match = re.search(self.environment_regex, environment) + + if match: + # Get the first matching value to match the pattern + environment = match.group() + + # Try to resolve the found environment to its mapped alias. + # If the found environment / extracted environment is empty + # use the default environment + return environment if environment else self.default_environment + + return self.default_environment diff --git a/packages/envcommon/EnvironmentCommon/src/EnvironmentCommon/__init__.py b/packages/envcommon/EnvironmentCommon/src/EnvironmentCommon/__init__.py new file mode 100644 index 000000000..46631fd0f --- /dev/null +++ b/packages/envcommon/EnvironmentCommon/src/EnvironmentCommon/__init__.py @@ -0,0 +1,15 @@ +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from .EnvironmentHandle import * diff --git a/packages/envcommon/EnvironmentCommon-1.0.0/EnvironmentCommon-1.0.0-py3-none-any.whl b/packages/envcommon/whls/EnvironmentCommon-1.0.0-py3-none-any.whl similarity index 100% rename from packages/envcommon/EnvironmentCommon-1.0.0/EnvironmentCommon-1.0.0-py3-none-any.whl rename to packages/envcommon/whls/EnvironmentCommon-1.0.0-py3-none-any.whl diff --git a/packages/envcommon/EnvironmentCommon-1.0.1/EnvironmentCommon-1.0.1-py2.py3-none-any.whl b/packages/envcommon/whls/EnvironmentCommon-1.0.1-py2.py3-none-any.whl similarity index 100% rename from packages/envcommon/EnvironmentCommon-1.0.1/EnvironmentCommon-1.0.1-py2.py3-none-any.whl rename to packages/envcommon/whls/EnvironmentCommon-1.0.1-py2.py3-none-any.whl diff --git a/packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl b/packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl similarity index 100% rename from packages/envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl rename to packages/envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl diff --git a/packages/integration_testing/pyproject.toml b/packages/integration_testing/pyproject.toml index e672bda3b..2e653b0f3 100644 --- a/packages/integration_testing/pyproject.toml +++ b/packages/integration_testing/pyproject.toml @@ -49,7 +49,7 @@ testpaths = [ [tool.uv.sources] tipcommon = { path = "../tipcommon/TIPCommon-2.2.22/TIPCommon-2.2.22-py2.py3-none-any.whl" } -environmentcommon = { path = "../envcommon/EnvironmentCommon-1.0.2/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } +environmentcommon = { path = "../envcommon/whls/EnvironmentCommon-1.0.2-py2.py3-none-any.whl" } soar-sdk = { git = "https://github.com/chronicle/soar-sdk.git" } [[tool.uv.index]] From 2c621e48c5f681de7a5ec2114b200cd80eacc811 Mon Sep 17 00:00:00 2001 From: talshapir Date: Thu, 22 Jan 2026 14:18:47 +0200 Subject: [PATCH 2/2] Run ruff on env common and create new version --- .../EnvironmentHandle.py | 174 ++++++++++-------- .../__init__.py | 18 +- packages/envcommon/EnvironmentCommon/uv.lock | 72 ++++++++ .../environmentcommon-1.0.3-py3-none-any.whl | Bin 0 -> 4136 bytes 4 files changed, 190 insertions(+), 74 deletions(-) rename packages/envcommon/EnvironmentCommon/src/{EnvironmentCommon => environmentcommon}/EnvironmentHandle.py (55%) rename packages/envcommon/EnvironmentCommon/src/{EnvironmentCommon => environmentcommon}/__init__.py (56%) create mode 100644 packages/envcommon/EnvironmentCommon/uv.lock create mode 100644 packages/envcommon/whls/environmentcommon-1.0.3-py3-none-any.whl diff --git a/packages/envcommon/EnvironmentCommon/src/EnvironmentCommon/EnvironmentHandle.py b/packages/envcommon/EnvironmentCommon/src/environmentcommon/EnvironmentHandle.py similarity index 55% rename from packages/envcommon/EnvironmentCommon/src/EnvironmentCommon/EnvironmentHandle.py rename to packages/envcommon/EnvironmentCommon/src/environmentcommon/EnvironmentHandle.py index 7df027d58..6fb103fa8 100644 --- a/packages/envcommon/EnvironmentCommon/src/EnvironmentCommon/EnvironmentHandle.py +++ b/packages/envcommon/EnvironmentCommon/src/environmentcommon/EnvironmentHandle.py @@ -12,75 +12,97 @@ # See the License for the specific language governing permissions and # limitations under the License. +from __future__ import annotations + import json import os +import pathlib import re from abc import ABC, abstractmethod +from typing import Any + + +def platform_supports_db(siemplify: object) -> bool: + """Check whether the platform supports using DB or on prem. + Args: + siemplify (SiemplifyAction | SiemplifyJob | SiemplifyConnectorExecution): + The SOAR SDK object instance -def platform_supports_db(siemplify): - if hasattr(siemplify, 'set_connector_context_property'): - return True - return False + Returns: + bool: True if the platform supports DB, False otherwise + + """ + return bool(hasattr(siemplify, "set_connector_context_property")) -def validate_map_file_exists(map_file_path, logger): +def validate_map_file_exists(map_file_path: str, logger: Any) -> None: try: - if not os.path.exists(map_file_path): - with open(map_file_path, 'w+') as map_file: - map_file.write(json.dumps( - {"Original environment name": "Desired environment name", - "Env1": "MyEnv1"})) - logger.info("Mapping file was created at {}".format(map_file)) + if not pathlib.Path(map_file_path).exists(): + with pathlib.Path(map_file_path).open("w+", encoding="utf-8") as map_file: + map_file.write( + json.dumps({ + "Original environment name": "Desired environment name", + "Env1": "MyEnv1", + }) + ) + logger.info(f"Mapping file was created at {map_file}") except Exception as e: - logger.error("Unable to create mapping file: {}".format(e)) + logger.error(f"Unable to create mapping file: {e}") logger.exception(e) -class GetEnvironmentCommonFactory(object): +class GetEnvironmentCommonFactory: @staticmethod - def create_environment_manager(siemplify, environment_field_name, environment_regex_pattern, map_file='map.json'): + def create_environment_manager( + siemplify: Any, + environment_field_name: str, + environment_regex_pattern: str, + map_file: str = "map.json", + ) -> EnvironmentHandle: + """Get environment common + :param siemplify: {siemplify} Siemplify object + :param environment_field_name: {string} The environment field name + :param environment_regex_pattern: {string} The environment regex pattern + :param map_file: {string} The map file + :return: {EnvironmentHandle} """ - Get environment common - :param siemplify: {siemplify} Siemplify object - :param environment_field_name: {string} The environment field name - :param environment_regex_pattern: {string} The environment regex pattern - :param map_file: {string} The map file - :return: {EnvironmentHandle} - """ if platform_supports_db(siemplify): - return EnvironmentHandleForDBSystem(logger=siemplify.LOGGER, - environment_field_name=environment_field_name, - environment_regex=environment_regex_pattern, - default_environment=siemplify.context.connector_info.environment) - - map_file_path = os.path.join(siemplify.run_folder, map_file) + return EnvironmentHandleForDBSystem( + logger=siemplify.LOGGER, + environment_field_name=environment_field_name, + environment_regex=environment_regex_pattern, + default_environment=siemplify.context.connector_info.environment, + ) + + map_file_path: str = os.path.join(siemplify.run_folder, map_file) validate_map_file_exists(map_file_path, siemplify.LOGGER) - return EnvironmentHandleForFileSystem(map_file_path=map_file_path, - logger=siemplify.LOGGER, - environment_field_name=environment_field_name, - environment_regex=environment_regex_pattern, - default_environment=siemplify.context.connector_info.environment) + return EnvironmentHandleForFileSystem( + map_file_path=map_file_path, + logger=siemplify.LOGGER, + environment_field_name=environment_field_name, + environment_regex=environment_regex_pattern, + default_environment=siemplify.context.connector_info.environment, + ) class EnvironmentHandle(ABC): - """ - handle environment logic - environment_field_name + environment_regex + environment map.json - """ - - def __init__(self, logger, environment_field_name, environment_regex, default_environment): + def __init__( + self, + logger: Any, + environment_field_name: str, + environment_regex: str, + default_environment: str, + ) -> None: self.logger = logger self.environment_field_name = environment_field_name - # if environment_regex is null or empty, turn it into ".*" (aka: select everything) - self.environment_regex = environment_regex if environment_regex else ".*" + self.environment_regex = environment_regex or ".*" self.default_environment = default_environment @abstractmethod - def get_environment(self, data): - """ - Get environment using all reoccurring environment logic + def get_environment(self, data: dict[str, str]) -> str: + """Get environment using all reoccurring environment logic environment_field_name + environment_regex + environment map.json first check if the user entered environment_field_name (from where to fetch) Then, if regex pattern given - extract environment @@ -89,23 +111,26 @@ def get_environment(self, data): :param data: {dict} fetch the environment value from this data field (can be the alert or the event) :return: {string} environment """ - ... class EnvironmentHandleForFileSystem(EnvironmentHandle): - """ - handle environment logic + """handle environment logic environment_field_name + environment_regex + environment map.json """ - def __init__(self, map_file_path, logger, environment_field_name, environment_regex, default_environment): - super().__init__(logger, environment_field_name, - environment_regex, default_environment) + def __init__( + self, + map_file_path: str, + logger: Any, + environment_field_name: str, + environment_regex: str, + default_environment: str, + ) -> None: + super().__init__(logger, environment_field_name, environment_regex, default_environment) self.map_file_path = map_file_path - def get_environment(self, data): - """ - Get environment using all reoccurring environment logic + def get_environment(self, data: dict[str, str]) -> str: + """Get environment using all reoccurring environment logic environment_field_name + environment_regex + environment map.json first check if the user entered environment_field_name (from where to fetch) Then, if regex pattern given - extract environment @@ -114,7 +139,6 @@ def get_environment(self, data): :param data: {dict} fetch the environment value from this data field (can be the alert or the event) :return: {string} environment """ - # Check first if map.json exists, and if not, create it. if self.environment_field_name and data.get(self.environment_field_name): @@ -132,47 +156,51 @@ def get_environment(self, data): # Try to resolve the found environment to its mapped alias. # If the found environment / extracted environment is empty # use the default environment - mapped_environment = self._get_mapped_environment( - environment) if environment else self.default_environment - return mapped_environment + return ( + self._get_mapped_environment(environment) + if environment + else self.default_environment + ) return self.default_environment - def _get_mapped_environment(self, original_env): - """ - Get mapped environment alias from mapping file + def _get_mapped_environment(self, original_env: str) -> str: + """Get mapped environment alias from mapping file :param original_env: {str} The environment to try to resolve :return: {str} The resolved alias (if no alias - returns the original env) """ try: - with open(self.map_file_path, 'r+') as map_file: + with pathlib.Path(self.map_file_path).open("r+", encoding="utf-8") as map_file: mappings = json.loads(map_file.read()) except Exception as e: - self.logger.error( - "Unable to read environment mappings: {}".format(e)) + self.logger.error(f"Unable to read environment mappings: {e}") mappings = {} if not isinstance(mappings, dict): self.logger.LOGGER.error( - "Mappings are not in valid format. Environment will not be mapped.") + "Mappings are not in valid format. Environment will not be mapped." + ) return original_env return mappings.get(original_env, original_env) class EnvironmentHandleForDBSystem(EnvironmentHandle): - """ - handle environment logic + """handle environment logic environment_field_name + environment_regex + environment map.json """ - def __init__(self, logger, environment_field_name, environment_regex, default_environment): - super().__init__(logger, environment_field_name, - environment_regex, default_environment) - - def get_environment(self, data): - """ - Get environment using all reoccurring environment logic + def __init__( + self, + logger: Any, + environment_field_name: str, + environment_regex: str, + default_environment: str, + ) -> None: + super().__init__(logger, environment_field_name, environment_regex, default_environment) + + def get_environment(self, data: dict[str, str]) -> str: + """Get environment using all reoccurring environment logic environment_field_name + environment_regex + environment map.json first check if the user entered environment_field_name (from where to fetch) Then, if regex pattern given - extract environment @@ -196,6 +224,6 @@ def get_environment(self, data): # Try to resolve the found environment to its mapped alias. # If the found environment / extracted environment is empty # use the default environment - return environment if environment else self.default_environment + return environment or self.default_environment return self.default_environment diff --git a/packages/envcommon/EnvironmentCommon/src/EnvironmentCommon/__init__.py b/packages/envcommon/EnvironmentCommon/src/environmentcommon/__init__.py similarity index 56% rename from packages/envcommon/EnvironmentCommon/src/EnvironmentCommon/__init__.py rename to packages/envcommon/EnvironmentCommon/src/environmentcommon/__init__.py index 46631fd0f..b24c74d4e 100644 --- a/packages/envcommon/EnvironmentCommon/src/EnvironmentCommon/__init__.py +++ b/packages/envcommon/EnvironmentCommon/src/environmentcommon/__init__.py @@ -12,4 +12,20 @@ # See the License for the specific language governing permissions and # limitations under the License. -from .EnvironmentHandle import * +from .EnvironmentHandle import ( + EnvironmentHandle, + EnvironmentHandleForDBSystem, + EnvironmentHandleForFileSystem, + GetEnvironmentCommonFactory, + platform_supports_db, + validate_map_file_exists, +) + +__all__: list[str] = [ + "EnvironmentHandle", + "EnvironmentHandleForDBSystem", + "EnvironmentHandleForFileSystem", + "GetEnvironmentCommonFactory", + "platform_supports_db", + "validate_map_file_exists", +] diff --git a/packages/envcommon/EnvironmentCommon/uv.lock b/packages/envcommon/EnvironmentCommon/uv.lock new file mode 100644 index 000000000..c549ab491 --- /dev/null +++ b/packages/envcommon/EnvironmentCommon/uv.lock @@ -0,0 +1,72 @@ +version = 1 +revision = 3 +requires-python = "==3.11.*" + +[[package]] +name = "environmentcommon" +version = "1.0.3" +source = { editable = "." } + +[package.dev-dependencies] +dev = [ + { name = "ruff" }, + { name = "ty" }, +] + +[package.metadata] + +[package.metadata.requires-dev] +dev = [ + { name = "ruff", specifier = ">=0.14.13" }, + { name = "ty", specifier = ">=0.0.13" }, +] + +[[package]] +name = "ruff" +version = "0.14.13" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/50/0a/1914efb7903174b381ee2ffeebb4253e729de57f114e63595114c8ca451f/ruff-0.14.13.tar.gz", hash = "sha256:83cd6c0763190784b99650a20fec7633c59f6ebe41c5cc9d45ee42749563ad47", size = 6059504, upload-time = "2026-01-15T20:15:16.918Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c3/ae/0deefbc65ca74b0ab1fd3917f94dc3b398233346a74b8bbb0a916a1a6bf6/ruff-0.14.13-py3-none-linux_armv6l.whl", hash = "sha256:76f62c62cd37c276cb03a275b198c7c15bd1d60c989f944db08a8c1c2dbec18b", size = 13062418, upload-time = "2026-01-15T20:14:50.779Z" }, + { url = "https://files.pythonhosted.org/packages/47/df/5916604faa530a97a3c154c62a81cb6b735c0cb05d1e26d5ad0f0c8ac48a/ruff-0.14.13-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:914a8023ece0528d5cc33f5a684f5f38199bbb566a04815c2c211d8f40b5d0ed", size = 13442344, upload-time = "2026-01-15T20:15:07.94Z" }, + { url = "https://files.pythonhosted.org/packages/4c/f3/e0e694dd69163c3a1671e102aa574a50357536f18a33375050334d5cd517/ruff-0.14.13-py3-none-macosx_11_0_arm64.whl", hash = "sha256:d24899478c35ebfa730597a4a775d430ad0d5631b8647a3ab368c29b7e7bd063", size = 12354720, upload-time = "2026-01-15T20:15:09.854Z" }, + { url = "https://files.pythonhosted.org/packages/c3/e8/67f5fcbbaee25e8fc3b56cc33e9892eca7ffe09f773c8e5907757a7e3bdb/ruff-0.14.13-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9aaf3870f14d925bbaf18b8a2347ee0ae7d95a2e490e4d4aea6813ed15ebc80e", size = 12774493, upload-time = "2026-01-15T20:15:20.908Z" }, + { url = "https://files.pythonhosted.org/packages/6b/ce/d2e9cb510870b52a9565d885c0d7668cc050e30fa2c8ac3fb1fda15c083d/ruff-0.14.13-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac5b7f63dd3b27cc811850f5ffd8fff845b00ad70e60b043aabf8d6ecc304e09", size = 12815174, upload-time = "2026-01-15T20:15:05.74Z" }, + { url = "https://files.pythonhosted.org/packages/88/00/c38e5da58beebcf4fa32d0ddd993b63dfacefd02ab7922614231330845bf/ruff-0.14.13-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:78d2b1097750d90ba82ce4ba676e85230a0ed694178ca5e61aa9b459970b3eb9", size = 13680909, upload-time = "2026-01-15T20:15:14.537Z" }, + { url = "https://files.pythonhosted.org/packages/61/61/cd37c9dd5bd0a3099ba79b2a5899ad417d8f3b04038810b0501a80814fd7/ruff-0.14.13-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:7d0bf87705acbbcb8d4c24b2d77fbb73d40210a95c3903b443cd9e30824a5032", size = 15144215, upload-time = "2026-01-15T20:15:22.886Z" }, + { url = "https://files.pythonhosted.org/packages/56/8a/85502d7edbf98c2df7b8876f316c0157359165e16cdf98507c65c8d07d3d/ruff-0.14.13-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a3eb5da8e2c9e9f13431032fdcbe7681de9ceda5835efee3269417c13f1fed5c", size = 14706067, upload-time = "2026-01-15T20:14:48.271Z" }, + { url = "https://files.pythonhosted.org/packages/7e/2f/de0df127feb2ee8c1e54354dc1179b4a23798f0866019528c938ba439aca/ruff-0.14.13-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:642442b42957093811cd8d2140dfadd19c7417030a7a68cf8d51fcdd5f217427", size = 14133916, upload-time = "2026-01-15T20:14:57.357Z" }, + { url = "https://files.pythonhosted.org/packages/0d/77/9b99686bb9fe07a757c82f6f95e555c7a47801a9305576a9c67e0a31d280/ruff-0.14.13-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4acdf009f32b46f6e8864af19cbf6841eaaed8638e65c8dac845aea0d703c841", size = 13859207, upload-time = "2026-01-15T20:14:55.111Z" }, + { url = "https://files.pythonhosted.org/packages/7d/46/2bdcb34a87a179a4d23022d818c1c236cb40e477faf0d7c9afb6813e5876/ruff-0.14.13-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:591a7f68860ea4e003917d19b5c4f5ac39ff558f162dc753a2c5de897fd5502c", size = 14043686, upload-time = "2026-01-15T20:14:52.841Z" }, + { url = "https://files.pythonhosted.org/packages/1a/a9/5c6a4f56a0512c691cf143371bcf60505ed0f0860f24a85da8bd123b2bf1/ruff-0.14.13-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:774c77e841cc6e046fc3e91623ce0903d1cd07e3a36b1a9fe79b81dab3de506b", size = 12663837, upload-time = "2026-01-15T20:15:18.921Z" }, + { url = "https://files.pythonhosted.org/packages/fe/bb/b920016ece7651fa7fcd335d9d199306665486694d4361547ccb19394c44/ruff-0.14.13-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:61f4e40077a1248436772bb6512db5fc4457fe4c49e7a94ea7c5088655dd21ae", size = 12805867, upload-time = "2026-01-15T20:14:59.272Z" }, + { url = "https://files.pythonhosted.org/packages/7d/b3/0bd909851e5696cd21e32a8fc25727e5f58f1934b3596975503e6e85415c/ruff-0.14.13-py3-none-musllinux_1_2_i686.whl", hash = "sha256:6d02f1428357fae9e98ac7aa94b7e966fd24151088510d32cf6f902d6c09235e", size = 13208528, upload-time = "2026-01-15T20:15:03.732Z" }, + { url = "https://files.pythonhosted.org/packages/3b/3b/e2d94cb613f6bbd5155a75cbe072813756363eba46a3f2177a1fcd0cd670/ruff-0.14.13-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:e399341472ce15237be0c0ae5fbceca4b04cd9bebab1a2b2c979e015455d8f0c", size = 13929242, upload-time = "2026-01-15T20:15:11.918Z" }, + { url = "https://files.pythonhosted.org/packages/6a/c5/abd840d4132fd51a12f594934af5eba1d5d27298a6f5b5d6c3be45301caf/ruff-0.14.13-py3-none-win32.whl", hash = "sha256:ef720f529aec113968b45dfdb838ac8934e519711da53a0456038a0efecbd680", size = 12919024, upload-time = "2026-01-15T20:14:43.647Z" }, + { url = "https://files.pythonhosted.org/packages/c2/55/6384b0b8ce731b6e2ade2b5449bf07c0e4c31e8a2e68ea65b3bafadcecc5/ruff-0.14.13-py3-none-win_amd64.whl", hash = "sha256:6070bd026e409734b9257e03e3ef18c6e1a216f0435c6751d7a8ec69cb59abef", size = 14097887, upload-time = "2026-01-15T20:15:01.48Z" }, + { url = "https://files.pythonhosted.org/packages/4d/e1/7348090988095e4e39560cfc2f7555b1b2a7357deba19167b600fdf5215d/ruff-0.14.13-py3-none-win_arm64.whl", hash = "sha256:7ab819e14f1ad9fe39f246cfcc435880ef7a9390d81a2b6ac7e01039083dd247", size = 13080224, upload-time = "2026-01-15T20:14:45.853Z" }, +] + +[[package]] +name = "ty" +version = "0.0.13" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5a/dc/b607f00916f5a7c52860b84a66dc17bc6988e8445e96b1d6e175a3837397/ty-0.0.13.tar.gz", hash = "sha256:7a1d135a400ca076407ea30012d1f75419634160ed3b9cad96607bf2956b23b3", size = 4999183, upload-time = "2026-01-21T13:21:16.133Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1a/df/3632f1918f4c0a33184f107efc5d436ab6da147fd3d3b94b3af6461efbf4/ty-0.0.13-py3-none-linux_armv6l.whl", hash = "sha256:1b2b8e02697c3a94c722957d712a0615bcc317c9b9497be116ef746615d892f2", size = 9993501, upload-time = "2026-01-21T13:21:26.628Z" }, + { url = "https://files.pythonhosted.org/packages/92/87/6a473ced5ac280c6ce5b1627c71a8a695c64481b99aabc798718376a441e/ty-0.0.13-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:f15cdb8e233e2b5adfce673bb21f4c5e8eaf3334842f7eea3c70ac6fda8c1de5", size = 9860986, upload-time = "2026-01-21T13:21:24.425Z" }, + { url = "https://files.pythonhosted.org/packages/5d/9b/d89ae375cf0a7cd9360e1164ce017f8c753759be63b6a11ed4c944abe8c6/ty-0.0.13-py3-none-macosx_11_0_arm64.whl", hash = "sha256:0819e89ac9f0d8af7a062837ce197f0461fee2fc14fd07e2c368780d3a397b73", size = 9350748, upload-time = "2026-01-21T13:21:28.502Z" }, + { url = "https://files.pythonhosted.org/packages/a8/a6/9ad58518056fab344b20c0bb2c1911936ebe195318e8acc3bc45ac1c6b6b/ty-0.0.13-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1de79f481084b7cc7a202ba0d7a75e10970d10ffa4f025b23f2e6b7324b74886", size = 9849884, upload-time = "2026-01-21T13:21:21.886Z" }, + { url = "https://files.pythonhosted.org/packages/b1/c3/8add69095fa179f523d9e9afcc15a00818af0a37f2b237a9b59bc0046c34/ty-0.0.13-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4fb2154cff7c6e95d46bfaba283c60642616f20d73e5f96d0c89c269f3e1bcec", size = 9822975, upload-time = "2026-01-21T13:21:14.292Z" }, + { url = "https://files.pythonhosted.org/packages/a4/05/4c0927c68a0a6d43fb02f3f0b6c19c64e3461dc8ed6c404dde0efb8058f7/ty-0.0.13-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:00be58d89337c27968a20d58ca553458608c5b634170e2bec82824c2e4cf4d96", size = 10294045, upload-time = "2026-01-21T13:21:30.505Z" }, + { url = "https://files.pythonhosted.org/packages/b4/86/6dc190838aba967557fe0bfd494c595d00b5081315a98aaf60c0e632aaeb/ty-0.0.13-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:72435eade1fa58c6218abb4340f43a6c3ff856ae2dc5722a247d3a6dd32e9737", size = 10916460, upload-time = "2026-01-21T13:21:07.788Z" }, + { url = "https://files.pythonhosted.org/packages/04/40/9ead96b7c122e1109dfcd11671184c3506996bf6a649306ec427e81d9544/ty-0.0.13-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:77a548742ee8f621d718159e7027c3b555051d096a49bb580249a6c5fc86c271", size = 10597154, upload-time = "2026-01-21T13:21:18.064Z" }, + { url = "https://files.pythonhosted.org/packages/aa/7d/e832a2c081d2be845dc6972d0c7998914d168ccbc0b9c86794419ab7376e/ty-0.0.13-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da067c57c289b7cf914669704b552b6207c2cc7f50da4118c3e12388642e6b3f", size = 10410710, upload-time = "2026-01-21T13:21:12.388Z" }, + { url = "https://files.pythonhosted.org/packages/31/e3/898be3a96237a32f05c4c29b43594dc3b46e0eedfe8243058e46153b324f/ty-0.0.13-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:d1b50a01fffa140417fca5a24b658fbe0734074a095d5b6f0552484724474343", size = 9826299, upload-time = "2026-01-21T13:21:00.845Z" }, + { url = "https://files.pythonhosted.org/packages/bb/eb/db2d852ce0ed742505ff18ee10d7d252f3acfd6fc60eca7e9c7a0288a6d8/ty-0.0.13-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:0f33c46f52e5e9378378eca0d8059f026f3c8073ace02f7f2e8d079ddfe5207e", size = 9831610, upload-time = "2026-01-21T13:21:05.842Z" }, + { url = "https://files.pythonhosted.org/packages/9e/61/149f59c8abaddcbcbb0bd13b89c7741ae1c637823c5cf92ed2c644fcadef/ty-0.0.13-py3-none-musllinux_1_2_i686.whl", hash = "sha256:168eda24d9a0b202cf3758c2962cc295878842042b7eca9ed2965259f59ce9f2", size = 9978885, upload-time = "2026-01-21T13:21:10.306Z" }, + { url = "https://files.pythonhosted.org/packages/a0/cd/026d4e4af60a80918a8d73d2c42b8262dd43ab2fa7b28d9743004cb88d57/ty-0.0.13-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:d4917678b95dc8cb399cc459fab568ba8d5f0f33b7a94bf840d9733043c43f29", size = 10506453, upload-time = "2026-01-21T13:20:56.633Z" }, + { url = "https://files.pythonhosted.org/packages/63/06/8932833a4eca2df49c997a29afb26721612de8078ae79074c8fe87e17516/ty-0.0.13-py3-none-win32.whl", hash = "sha256:c1f2ec40daa405508b053e5b8e440fbae5fdb85c69c9ab0ee078f8bc00eeec3d", size = 9433482, upload-time = "2026-01-21T13:20:58.717Z" }, + { url = "https://files.pythonhosted.org/packages/aa/fd/e8d972d1a69df25c2cecb20ea50e49ad5f27a06f55f1f5f399a563e71645/ty-0.0.13-py3-none-win_amd64.whl", hash = "sha256:8b7b1ab9f187affbceff89d51076038363b14113be29bda2ddfa17116de1d476", size = 10319156, upload-time = "2026-01-21T13:21:03.266Z" }, + { url = "https://files.pythonhosted.org/packages/2d/c2/05fdd64ac003a560d4fbd1faa7d9a31d75df8f901675e5bed1ee2ceeff87/ty-0.0.13-py3-none-win_arm64.whl", hash = "sha256:1c9630333497c77bb9bcabba42971b96ee1f36c601dd3dcac66b4134f9fa38f0", size = 9808316, upload-time = "2026-01-21T13:20:54.053Z" }, +] diff --git a/packages/envcommon/whls/environmentcommon-1.0.3-py3-none-any.whl b/packages/envcommon/whls/environmentcommon-1.0.3-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..6c9c124e977cc66e5e0741fd6080880e7c215637 GIT binary patch literal 4136 zcma)92UJtb7LB0_QVk#~(yO716lp4KN|O>G zAkvZt(yI`PR8i#TJ^x$&r~b8^yJnp`Yi93zX721WXN+{o$U%T_h5Ntun_(syCxoBd zEhNIj3E|^_^zc9;#Et$to|@Fl4XBA6)u$xA>hl2r0>2!u@tr~24&mtTB<6`C{-KMU z>t=erYHnH-mz=+XJ&#rmN2g?!mW|Pa4O!#37%d$iteqs_hzLv8^T+$yoS>;E1cH)Y zpRt52|D-JDM@tl$p6 zeDw21eN+x`u~4o&l}{e7l4fd4-bj{^+wH3D$F8Qi*Fuq?&ZU`MKk6@DlndU1e6%3O zv|vFzA}QI8u-eCPH!Y{QFlnw+O(T?}=NS6U9_@B!>CJTQw)^{YUYPD0IXe2VXBW~C z-WVj;-1y2urECKs>*-HXI-WKCd6yW;pbd`&ZWc3IhKhyVkhRYXse`x+GkTXMfF<%I z>9~2p!ccU=rWPo^nw$nCpQ4b?OdTg+((P)%V!Wt3P-H6=Los02h|z`9Odx83*M+#^ zy}B+xtVeS4yNp~(8@UEC%^0-WHOXdy`q}Z{^z~aOBS87Ji*A_;-v?t9K$a`9@f-q4 z&%?(a*(6Xca<(0Ku+AHGgI+N74#yI~KG&pkyJ;KLe%zw0F$ec> z;Xf$?HPU&t(DBgkvWpRQ-<=qyO6Hj7xjWty^v;hy__ExHZV8<^Sl9?2`-19cZ#VMt z`V?VT9J5rbex#U3{itz7$zANVzcauIwsOazwq6TPGivn4f|?;$J$vh}F`J9>^#^)9 zo*su!bOdqRireOAiZw^U{E0&RH=+-xp{C=NFzaUFVA#0YCNNSVV7no%j~DBz4nlat z+-1n!w_JDG@LX}dPp3K6^F6$_TRh%* z6`aTz!v}=BFA|%#f>l{R-mP|ANfA;06eml?lf#3I8!@b9c75FP2hvLAP>$UAA=|Az zMQvN4r=Y7EI~G9TWqG{N4U$NF`U0>4%x^87%uo^AOjP;`-Tvw+fox9}-=19h%62X* ztU7(beuD~@KI9q}V#pT(jL}rcoo@Kp73b0+H{EH8OwDB4J)9MAC zIMTaK8=ZU4oy^*7%_yiA3o_};eMX;v+l26hpHyBUHx;soUQhQtlm@r?m%Wg$mK%M>)(8Ge?wfxNPcal8pHm%Z1sY!^{Lx3{<7)< zPBy1Uys$-=u2S7AzgW3v6{jK?34NL|VgDZZB8OEJbGbsX^eomlJ+!wSz7B%l9UPV&bzmGcw~0@>9g`^ zO0R3P!S8xMzf@>pu0ORiFwI+7=I6(yQ-?vZ=4{>%mQe_{KJhVUbva6^;>|{^vmB^3 zb<-)R6e~`@T|vFY7QO$1)&tY2L=vdW(t4#U{yjqY>5WE@FtD?iXz?KD7t1DM8H2@m z_VOj(6#MWIs#Jrjz1d3Z%Jaqnj|u4Oj|Ohf0h^}pTR-w`0a?(qyPp0sZjfcw!PCmR z)u#^R$?XR6oGl4`cu!ws3pvM8{H7G%88wkkv8bY(tGmI9d)#k}rd(Qhdebv;_K^YoEJU(Dusu~;hbs3 z>c?b`FEnkJ8hXj)F1&|`TG7>R-5xy=TBYpSGxk9#u}r;kOgdy>3|!tfpw?#VLgZop za4q|l(+sba3};abJm&%onl^3B=jPyrB!tH=p^85#C8C=3N7*%0*oG+AAvXMzDHO2; zMY#+I-=Y1yR-WOp7S2C?COgYhrELj*2E-v*_rUgo3Wi4|`@;CDL^?6deLJdg)M4P; z#i%p4eOvQ;=u&pB&Y54M#+8enWPaYDqK0pX(%bc@U*cIh@AJv7zDq&-y;gANYvlmz zry&<=x(f;~J3Fp0=nhTpM2nhaYBno2mI?|gn5S|{BxtLr?_s>|j;NJ9Ie*%cr67c2 ze7!ElR@--SJkNAu#g5V^^W0kfF`Z!owKZ$aJsp#PgEroCKJ#UBOp`-B&6!M~lrU5d zJ%_yCo(<<}Rkj@YvJG1QdfnOeXD>yEIl;Ubd{Zj0NGr>M_z|B!TrA&XHui-HUw zXemt78{`m$iD~K^Ub`z3T_=Bf)!re9fzIk^CT5l+p0iW2cUfB`K8yW80r)yUO#nYK z8d&j(OSLYlq1~HsTh@rqr6Y~brM8d{OgwdYj<19Y5U$FMTdXb5N{3%K?d{`QOyNh{ zY@B`N<(km`7pWEchT^h~4!T8vuAzy286W_biP0A|(z>I5w_04q9HC%GgwA_jdid0iy zcl9?6&`V0|BOA&T1=y0Z>SYQ{BNlE6s4>}N+1<3{Ei;oME2xJwomn^%nZ73Yx?d6) zr0A#Q3b>Enw&77nS`Jr7U%v2+_aK&o#*93$w`j{2(>IKki*Q)P57j2+ML&z?}G`fW@oBHE!Fz~_JPGx$FB~|R%>;Nt{VNV z@1{~k7w~%t`cLJOu4x!m->FK-=kJ-pO^^SvSJun)SU6ZvG=@?B3KBJb$k48Uulfu) zLs!hCclr%9Y}Jifke6vza&qDs=jDLMlT(J~j{=_9hTJCv`kqG4?uxVqhOc}$**rIb zqki+6hc@u$+B6azaE5oGy^lGU0T@Z3ZHST*le?4n(%lIvguD0$?xp(GI%nDI1$TxU zsB`L_#g7mRd8T~ocKR6CavQ=~tE4@D*itMdlY>(K8&3|wt>x{7$ST<}=!W8m&1qUQ zpT3Dil{V*sa*TC%-?{OPa80PqnQMjR9+bjqi{l|5MOc>JnOOD;a9BI)AlI7C#dveS zGZjfGNHbddQnS5BVID9^q%~+lAB7jT8s~4MALr8#%hu9&yL8YK%tz1<0+_z<9nwZ2 zWugCDcu0+(vQ|+^F$pngF-JFVA5k}iGxCQl*7HR!4o1Qmk*eTt;mx%*H1uc(wDoa= zbh@G<{e1&9Fo|L5>05?4T~Qq{R=gS}Bx)k@wq{sbYL2F7Kzwi)JW3}ds)NJok-CIM z^cQHLdM{u?MVCf#y#u-<`hBJIz#k-`jP@$6A-S_jsv^JTmcE85L>*!Z(Z2_|*`~@E zx$*hpBG^$9Ct4%~3B18#63985U^Vd&>MzK0{7NXFNZgw2>I&j*mp*Hjm8@&(Hq#-y z&hgL^-|OEeqGz8eRa$RTw5K~&f7`h;_~y*rb_y*Zt*fVi9!2>e@NL$KGljxE)W*|r zUp;aqy69rnP<&>#3Da3UZ?8rIdXZIG0>bGT`>C+xu4KV6S=lKQR44Hu`4EDdGuV;o z(#uzv1S@_mAH!7KZ1(j3cQj~zgY9HK0RUu^s?cvu9j0;B5T+iFQ}RYj0K#V8Pcbtx zGfMkppA~r?c8j{ZjXSGKG9aO3bM*>}m>IWvMG@Ii@qFW;VK#TUf9c);)`l?O61wr(P*Yl~Z^C&eM?ofes?M&v+AUQcZNd?LMCZqxeW zR#ZYobe6h~*R7zb^u)_jL@#h^1H5!lSfjh7-q~d7S{ArYjm|LWKNfeo_ueDgWSqedGIv1_1KHC4Pzj)&1{B&L3m{cg{f4M}PL| ze@=q$RDXef4h8>E5g~Onzo7a>VEFfRe+&)(@a2W?{TAQff#SQ9-`4O)VSgvZkbd1y q^Zm)me`Nk6?~kha&U^RN@9=)pkdZD0