splunk-soar-sdk 3.2.0__tar.gz → 3.2.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (229) hide show
  1. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/PKG-INFO +1 -1
  2. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/pyproject.toml +1 -1
  3. splunk_soar_sdk-3.2.1/release_notes.txt +21 -0
  4. splunk_soar_sdk-3.2.1/release_version.txt +1 -0
  5. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/meta/dependencies.py +49 -3
  6. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/meta/test_dependencies.py +38 -0
  7. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/uv.lock +1 -1
  8. splunk_soar_sdk-3.2.0/release_notes.txt +0 -21
  9. splunk_soar_sdk-3.2.0/release_version.txt +0 -1
  10. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/.github/ISSUE_TEMPLATE/bug.md +0 -0
  11. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  12. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/.github/pull_request_template.md +0 -0
  13. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/.github/utils/github.js +0 -0
  14. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/.github/utils/update_version.py +0 -0
  15. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/.github/workflows/code_quality.yml +0 -0
  16. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/.github/workflows/commit_hygiene.yml +0 -0
  17. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/.github/workflows/generate_docs.yml +0 -0
  18. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/.github/workflows/semantic_release.yml +0 -0
  19. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/.gitignore +0 -0
  20. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/.pre-commit-config.yaml +0 -0
  21. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/.releaserc +0 -0
  22. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/LICENSE +0 -0
  23. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/README.md +0 -0
  24. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/commitlint.config.js +0 -0
  25. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/docs/api_reference.rst +0 -0
  26. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/docs/app_structure/index.rst +0 -0
  27. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/docs/app_structure/pre-commit-config.yaml.rst +0 -0
  28. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/docs/app_structure/pyproject.toml.rst +0 -0
  29. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/docs/app_structure/src_app.rst +0 -0
  30. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/docs/changelog.rst +0 -0
  31. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/docs/cli_reference.rst +0 -0
  32. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/docs/conf.py +0 -0
  33. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/docs/custom_views/index.rst +0 -0
  34. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/docs/custom_views/reusable_components.md +0 -0
  35. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/docs/custom_views/templates.md +0 -0
  36. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/docs/custom_views/view_handlers.md +0 -0
  37. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/docs/getting_started/defining_asset.rst +0 -0
  38. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/docs/getting_started/first_action.rst +0 -0
  39. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/docs/getting_started/index.rst +0 -0
  40. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/docs/getting_started/init_app.rst +0 -0
  41. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/docs/getting_started/installation.rst +0 -0
  42. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/docs/getting_started/testing_and_building.rst +0 -0
  43. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/docs/index.rst +0 -0
  44. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/__init__.py +0 -0
  45. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/abstract.py +0 -0
  46. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/action_results.py +0 -0
  47. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/actions_manager.py +0 -0
  48. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/apis/__init__.py +0 -0
  49. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/apis/artifact.py +0 -0
  50. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/apis/container.py +0 -0
  51. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/apis/utils.py +0 -0
  52. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/apis/vault.py +0 -0
  53. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/app.py +0 -0
  54. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/app_cli_runner.py +0 -0
  55. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/app_client.py +0 -0
  56. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/app_templates/basic_app/.gitignore +0 -0
  57. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/app_templates/basic_app/.pre-commit-config.yaml +0 -0
  58. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/app_templates/basic_app/logo.svg +0 -0
  59. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/app_templates/basic_app/logo_dark.svg +0 -0
  60. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/app_templates/basic_app/src/__init__.py +0 -0
  61. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/app_templates/basic_app/uv.lock +0 -0
  62. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/asset.py +0 -0
  63. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/async_utils.py +0 -0
  64. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/cli/__init__.py +0 -0
  65. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/cli/cli.py +0 -0
  66. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/cli/init/__init__.py +0 -0
  67. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/cli/init/cli.py +0 -0
  68. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/cli/manifests/__init__.py +0 -0
  69. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/cli/manifests/cli.py +0 -0
  70. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/cli/manifests/deserializers.py +0 -0
  71. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/cli/manifests/processors.py +0 -0
  72. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/cli/manifests/serializers.py +0 -0
  73. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/cli/package/cli.py +0 -0
  74. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/cli/package/utils.py +0 -0
  75. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/cli/path_utils.py +0 -0
  76. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/cli/utils.py +0 -0
  77. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/code_renderers/__init__.py +0 -0
  78. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/code_renderers/action_renderer.py +0 -0
  79. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/code_renderers/app_renderer.py +0 -0
  80. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/code_renderers/asset_renderer.py +0 -0
  81. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/code_renderers/renderer.py +0 -0
  82. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/code_renderers/templates/pyproject.toml.jinja +0 -0
  83. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/code_renderers/toml_renderer.py +0 -0
  84. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/colors.py +0 -0
  85. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/compat.py +0 -0
  86. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/crypto.py +0 -0
  87. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/decorators/__init__.py +0 -0
  88. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/decorators/action.py +0 -0
  89. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/decorators/make_request.py +0 -0
  90. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/decorators/on_es_poll.py +0 -0
  91. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/decorators/on_poll.py +0 -0
  92. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/decorators/test_connectivity.py +0 -0
  93. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/decorators/view_handler.py +0 -0
  94. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/decorators/webhook.py +0 -0
  95. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/exceptions.py +0 -0
  96. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/field_utils.py +0 -0
  97. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/input_spec.py +0 -0
  98. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/logging.py +0 -0
  99. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/meta/__init__.py +0 -0
  100. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/meta/actions.py +0 -0
  101. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/meta/adapters.py +0 -0
  102. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/meta/app.py +0 -0
  103. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/meta/datatypes.py +0 -0
  104. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/meta/webhooks.py +0 -0
  105. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/models/__init__.py +0 -0
  106. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/models/artifact.py +0 -0
  107. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/models/attachment_input.py +0 -0
  108. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/models/container.py +0 -0
  109. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/models/finding.py +0 -0
  110. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/models/vault_attachment.py +0 -0
  111. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/models/view.py +0 -0
  112. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/params.py +0 -0
  113. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/paths.py +0 -0
  114. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/py.typed +0 -0
  115. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/shims/phantom/action_result.py +0 -0
  116. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/shims/phantom/app.py +0 -0
  117. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/shims/phantom/base_connector.py +0 -0
  118. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/shims/phantom/connector_result.py +0 -0
  119. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/shims/phantom/consts.py +0 -0
  120. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/shims/phantom/encryption_helper.py +0 -0
  121. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/shims/phantom/install_info.py +0 -0
  122. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/shims/phantom/json_keys.py +0 -0
  123. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/shims/phantom/ph_ipc.py +0 -0
  124. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/shims/phantom/vault.py +0 -0
  125. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/shims/phantom_common/app_interface/app_interface.py +0 -0
  126. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/shims/phantom_common/encryption/encryption_manager_factory.py +0 -0
  127. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/templates/base/base_template.html +0 -0
  128. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/templates/base/error.html +0 -0
  129. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/templates/base/header.html +0 -0
  130. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/templates/base/logo_header.html +0 -0
  131. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/templates/components/pie_chart.html +0 -0
  132. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/templates/widgets/widget_resize_snippet.html +0 -0
  133. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/templates/widgets/widget_template.html +0 -0
  134. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/types.py +0 -0
  135. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/views/__init__.py +0 -0
  136. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/views/component_registry.py +0 -0
  137. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/views/components/__init__.py +0 -0
  138. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/views/components/pie_chart.py +0 -0
  139. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/views/template_filters.py +0 -0
  140. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/views/template_renderer.py +0 -0
  141. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/views/view_parser.py +0 -0
  142. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/webhooks/__init__.py +0 -0
  143. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/webhooks/models.py +0 -0
  144. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/src/soar_sdk/webhooks/routing.py +0 -0
  145. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/test.png +0 -0
  146. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/test.txt +0 -0
  147. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/__init__.py +0 -0
  148. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/cli/__init__.py +0 -0
  149. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/cli/datapath_parse.py +0 -0
  150. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/cli/manifests/__init__.py +0 -0
  151. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/cli/manifests/test_processors.py +0 -0
  152. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/cli/test_assets/converted_app/actions.py.txt +0 -0
  153. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/cli/test_cli.py +0 -0
  154. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/cli/test_convert_cli.py +0 -0
  155. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/cli/test_deserializers.py +0 -0
  156. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/cli/test_init_cli.py +0 -0
  157. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/cli/test_manifests_cli.py +0 -0
  158. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/cli/test_package_cli.py +0 -0
  159. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/cli/test_serializers.py +0 -0
  160. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/cli/test_utils.py +0 -0
  161. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/code_renderers/test_action_renderer.py +0 -0
  162. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/conftest.py +0 -0
  163. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/example_app/app.json +0 -0
  164. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/example_app/example_asset.json +0 -0
  165. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/example_app/logo.svg +0 -0
  166. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/example_app/logo_dark.svg +0 -0
  167. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/example_app/pyproject.toml +0 -0
  168. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/example_app/release_notes/v1.md +0 -0
  169. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/example_app/src/__init__.py +0 -0
  170. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/example_app/src/actions/__init__.py +0 -0
  171. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/example_app/src/actions/async_action.py +0 -0
  172. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/example_app/src/actions/generate_category.py +0 -0
  173. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/example_app/src/actions/reverse_string.py +0 -0
  174. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/example_app/src/app.py +0 -0
  175. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/example_app/src/ignoreme.txt +0 -0
  176. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/example_app/templates/reverse_string.html +0 -0
  177. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/example_app/uv.lock +0 -0
  178. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/example_app_with_webhook/app.json +0 -0
  179. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/example_app_with_webhook/logo.svg +0 -0
  180. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/example_app_with_webhook/logo_dark.svg +0 -0
  181. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/example_app_with_webhook/pyproject.toml +0 -0
  182. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/example_app_with_webhook/src/__init__.py +0 -0
  183. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/example_app_with_webhook/src/app.py +0 -0
  184. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/example_app_with_webhook/uv.lock +0 -0
  185. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/interfaces/__init__.py +0 -0
  186. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/interfaces/test_artifact_interface.py +0 -0
  187. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/interfaces/test_container_interface.py +0 -0
  188. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/interfaces/test_vault_interface.py +0 -0
  189. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/meta/__init__.py +0 -0
  190. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/meta/test_actions.py +0 -0
  191. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/meta/test_adapters.py +0 -0
  192. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/meta/test_datatypes.py +0 -0
  193. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/meta/test_webhooks.py +0 -0
  194. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/mocks/__init__.py +0 -0
  195. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/mocks/dynamic_mocks.py +0 -0
  196. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/mocks/importable_action.py +0 -0
  197. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/stubs.py +0 -0
  198. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/test_action_results.py +0 -0
  199. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/test_actions_manager.py +0 -0
  200. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/test_app.py +0 -0
  201. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/test_app_action.py +0 -0
  202. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/test_app_action_params.py +0 -0
  203. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/test_app_action_results.py +0 -0
  204. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/test_app_client.py +0 -0
  205. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/test_app_runner.py +0 -0
  206. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/test_asset.py +0 -0
  207. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/test_assets/splunk-sdk-2.1.0.tar.gz +0 -0
  208. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/test_async_integration.py +0 -0
  209. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/test_async_utils.py +0 -0
  210. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/test_attachment_input.py +0 -0
  211. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/test_code_renderers.py +0 -0
  212. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/test_compat.py +0 -0
  213. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/test_container.py +0 -0
  214. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/test_custom_views.py +0 -0
  215. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/test_encryption.py +0 -0
  216. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/test_es_on_poll.py +0 -0
  217. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/test_field_utils.py +0 -0
  218. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/test_finding.py +0 -0
  219. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/test_input_spec.py +0 -0
  220. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/test_logging.py +0 -0
  221. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/test_make_request_action.py +0 -0
  222. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/test_on_poll.py +0 -0
  223. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/test_params.py +0 -0
  224. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/test_template_filters.py +0 -0
  225. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/test_template_renderer.py +0 -0
  226. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/test_test_connectivity.py +0 -0
  227. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/test_view_parser.py +0 -0
  228. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/webhooks/test_models.py +0 -0
  229. {splunk_soar_sdk-3.2.0 → splunk_soar_sdk-3.2.1}/tests/webhooks/test_routing.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: splunk-soar-sdk
3
- Version: 3.2.0
3
+ Version: 3.2.1
4
4
  Summary: The official framework for developing and testing Splunk SOAR Apps
5
5
  Project-URL: Homepage, https://github.com/phantomcyber/splunk-soar-sdk
6
6
  Project-URL: Documentation, https://github.com/phantomcyber/splunk-soar-sdk
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "splunk-soar-sdk"
3
- version = "3.2.0"
3
+ version = "3.2.1"
4
4
  description = "The official framework for developing and testing Splunk SOAR Apps"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.13, <=3.14"
@@ -0,0 +1,21 @@
1
+ ## [3.2.1](https://github.com/phantomcyber/splunk-soar-sdk/compare/3.2.0...3.2.1) (2025-11-06)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * fix abi3 wheel matching ([719028d](https://github.com/phantomcyber/splunk-soar-sdk/commit/719028dfe3e76f78e4a60b9c3487dba8ca0015d7))
7
+
8
+
9
+
10
+
11
+
12
+ ## [3.2.1](https://github.com/phantomcyber/splunk-soar-sdk/compare/3.2.0...3.2.1) (2025-11-06)
13
+
14
+
15
+ ### Bug Fixes
16
+
17
+ * fix abi3 wheel matching ([719028d](https://github.com/phantomcyber/splunk-soar-sdk/commit/719028dfe3e76f78e4a60b9c3487dba8ca0015d7))
18
+
19
+
20
+
21
+
@@ -0,0 +1 @@
1
+ 3.2.1
@@ -277,9 +277,7 @@ class UvPackage(BaseModel):
277
277
  for abi in abi_precedence:
278
278
  abi_wheels = [wheel for wheel in self.wheels if abi in wheel.abi_tags]
279
279
  for python in python_precedence:
280
- python_wheels = [
281
- wheel for wheel in abi_wheels if python in wheel.python_tags
282
- ]
280
+ python_wheels = self._filter_python_wheels(abi_wheels, python, abi)
283
281
  for platform in platform_precedence:
284
282
  platform_wheels = [
285
283
  wheel
@@ -293,6 +291,54 @@ class UvPackage(BaseModel):
293
291
  f"Could not find a suitable wheel for {self.name=}, {self.version=}, {abi_precedence=}, {python_precedence=}, {platform_precedence=}"
294
292
  )
295
293
 
294
+ def _filter_python_wheels(
295
+ self, wheels: list[UvWheel], target_python: str, abi: str
296
+ ) -> list[UvWheel]:
297
+ """Filter and sort wheels by Python version compatibility.
298
+
299
+ For abi3 wheels, prefers the highest compatible minimum version
300
+ (e.g., cp311-abi3 over cp38-abi3 for Python 3.13).
301
+ """
302
+ compatible = [
303
+ wheel
304
+ for wheel in wheels
305
+ if self._is_python_compatible(wheel, target_python, abi)
306
+ ]
307
+
308
+ # For abi3 wheels, prefer highest minimum version (closest to target)
309
+ if abi == "abi3" and compatible:
310
+ compatible = sorted(
311
+ compatible,
312
+ key=lambda w: max(
313
+ (int(tag[2:]) for tag in w.python_tags if tag.startswith("cp")),
314
+ default=0,
315
+ ),
316
+ reverse=True,
317
+ )
318
+
319
+ return compatible
320
+
321
+ def _is_python_compatible(
322
+ self, wheel: UvWheel, target_python: str, abi: str
323
+ ) -> bool:
324
+ """Check if a wheel is compatible with the target Python version.
325
+
326
+ For abi3 wheels, the Python tag indicates minimum version (e.g., cp311-abi3 works with Python ≥3.11).
327
+ For non-abi3 wheels, exact tag matching is required.
328
+ """
329
+ if target_python in wheel.python_tags:
330
+ return True
331
+
332
+ # For abi3 wheels, check if target >= minimum version (e.g., cp313 >= cp311)
333
+ if abi == "abi3":
334
+ return any(
335
+ int(tag[2:]) <= int(target_python[2:])
336
+ for tag in wheel.python_tags
337
+ if tag.startswith("cp") and target_python.startswith("cp")
338
+ )
339
+
340
+ return False
341
+
296
342
  _manylinux_precedence: ClassVar[list[str]] = [
297
343
  "_2_28", # glibc 2.28, latest stable version, supports Ubuntu 18.10+ and RHEL/Oracle 8+
298
344
  "_2_17", # glibc 2.17, LTS-ish, supports Ubuntu 13.10+ and RHEL/Oracle 7+
@@ -136,6 +136,44 @@ class TestUvPackage:
136
136
  )
137
137
  assert wheel.basename == "certifi-2025.1.31-py3-none-any"
138
138
 
139
+ def test_find_wheel_abi3_compatibility(self):
140
+ """Test that abi3 wheels match correctly with newer Python versions.
141
+
142
+ abi3 wheels specify a minimum Python version. For example, cp311-abi3
143
+ means the wheel works with Python 3.11 and all later versions (3.12, 3.13, etc.).
144
+ """
145
+ package = UvPackage(
146
+ name="cryptography",
147
+ version="46.0.3",
148
+ dependencies=[],
149
+ wheels=[
150
+ # cp38-abi3 wheel: works with Python 3.8+
151
+ UvWheel(
152
+ url="https://notarealurl.com/cryptography-46.0.3-cp38-abi3-manylinux_2_28_x86_64.whl",
153
+ hash="sha256:abc123",
154
+ size=1000000,
155
+ ),
156
+ # cp311-abi3 wheel: works with Python 3.11+
157
+ UvWheel(
158
+ url="https://notarealurl.com/cryptography-46.0.3-cp311-abi3-manylinux_2_28_x86_64.whl",
159
+ hash="sha256:def456",
160
+ size=1000000,
161
+ ),
162
+ ],
163
+ )
164
+
165
+ # Python 3.13 should match both abi3 wheels since 3.13 >= 3.8 and 3.13 >= 3.11
166
+ # Should prefer cp311-abi3 (highest compatible minimum version)
167
+ wheel = package._find_wheel(
168
+ abi_precedence=["cp313", "abi3", "none"],
169
+ python_precedence=["cp313", "py3"],
170
+ platform_precedence=["manylinux_2_28_x86_64", "any"],
171
+ )
172
+
173
+ # Should match cp311-abi3 (prefer higher minimum version over cp38-abi3)
174
+ assert "abi3" in wheel.basename
175
+ assert wheel.basename == "cryptography-46.0.3-cp311-abi3-manylinux_2_28_x86_64"
176
+
139
177
  def test_resolve_no_aarch64_available(self):
140
178
  package = UvPackage(
141
179
  name="mypy",
@@ -1131,7 +1131,7 @@ wheels = [
1131
1131
 
1132
1132
  [[package]]
1133
1133
  name = "splunk-soar-sdk"
1134
- version = "3.2.0"
1134
+ version = "3.2.1"
1135
1135
  source = { editable = "." }
1136
1136
  dependencies = [
1137
1137
  { name = "beautifulsoup4", marker = "(platform_machine == 'arm64' and sys_platform == 'darwin') or (platform_machine == 'x86_64' and sys_platform == 'darwin') or (platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" },
@@ -1,21 +0,0 @@
1
- # [3.2.0](https://github.com/phantomcyber/splunk-soar-sdk/compare/3.1.0...3.2.0) (2025-10-30)
2
-
3
-
4
- ### Features
5
-
6
- * add on_es_poll action type ([eddf792](https://github.com/phantomcyber/splunk-soar-sdk/commit/eddf79249a815b50b7d12da213f6736ba5047078))
7
-
8
-
9
-
10
-
11
-
12
- # [3.2.0](https://github.com/phantomcyber/splunk-soar-sdk/compare/3.1.0...3.2.0) (2025-10-30)
13
-
14
-
15
- ### Features
16
-
17
- * add on_es_poll action type ([eddf792](https://github.com/phantomcyber/splunk-soar-sdk/commit/eddf79249a815b50b7d12da213f6736ba5047078))
18
-
19
-
20
-
21
-
@@ -1 +0,0 @@
1
- 3.2.0
File without changes