souleyez 2.31.0__tar.gz → 2.40.0__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 (409) hide show
  1. souleyez-2.40.0/PKG-INFO +265 -0
  2. {souleyez-2.31.0 → souleyez-2.40.0}/pyproject.toml +2 -2
  3. souleyez-2.40.0/souleyez/__init__.py +2 -0
  4. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/core/msf_auto_mapper.py +3 -2
  5. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/core/tool_chaining.py +53 -7
  6. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/README.md +1 -1
  7. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/integrations/siem/__init__.py +2 -0
  8. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/integrations/siem/factory.py +26 -5
  9. souleyez-2.40.0/souleyez/integrations/siem/googlesecops.py +614 -0
  10. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/integrations/wazuh/config.py +143 -20
  11. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/main.py +7 -40
  12. souleyez-2.40.0/souleyez/storage/migrations/_027_multi_siem_persistence.py +119 -0
  13. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/migrations/__init__.py +2 -0
  14. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/schema.sql +8 -4
  15. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/interactive.py +95 -22
  16. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/tool_setup.py +6 -0
  17. souleyez-2.40.0/souleyez.egg-info/PKG-INFO +265 -0
  18. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez.egg-info/SOURCES.txt +2 -1
  19. souleyez-2.31.0/BETA_README.md +0 -268
  20. souleyez-2.31.0/PKG-INFO +0 -319
  21. souleyez-2.31.0/souleyez/__init__.py +0 -1
  22. souleyez-2.31.0/souleyez.egg-info/PKG-INFO +0 -319
  23. {souleyez-2.31.0 → souleyez-2.40.0}/LICENSE +0 -0
  24. {souleyez-2.31.0 → souleyez-2.40.0}/MANIFEST.in +0 -0
  25. {souleyez-2.31.0 → souleyez-2.40.0}/README.md +0 -0
  26. {souleyez-2.31.0 → souleyez-2.40.0}/setup.cfg +0 -0
  27. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ai/__init__.py +0 -0
  28. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ai/action_mapper.py +0 -0
  29. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ai/chain_advisor.py +0 -0
  30. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ai/claude_provider.py +0 -0
  31. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ai/context_builder.py +0 -0
  32. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ai/executor.py +0 -0
  33. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ai/feedback_handler.py +0 -0
  34. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ai/llm_factory.py +0 -0
  35. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ai/llm_provider.py +0 -0
  36. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ai/ollama_provider.py +0 -0
  37. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ai/ollama_service.py +0 -0
  38. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ai/path_scorer.py +0 -0
  39. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ai/recommender.py +0 -0
  40. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ai/report_context.py +0 -0
  41. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ai/report_prompts.py +0 -0
  42. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ai/report_service.py +0 -0
  43. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ai/result_parser.py +0 -0
  44. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ai/safety.py +0 -0
  45. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/assets/__init__.py +0 -0
  46. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/assets/souleyez-icon.png +0 -0
  47. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/auth/__init__.py +0 -0
  48. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/auth/audit.py +0 -0
  49. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/auth/engagement_access.py +0 -0
  50. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/auth/permissions.py +0 -0
  51. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/auth/session_manager.py +0 -0
  52. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/auth/user_manager.py +0 -0
  53. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/commands/__init__.py +0 -0
  54. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/commands/audit.py +0 -0
  55. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/commands/auth.py +0 -0
  56. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/commands/deliverables.py +0 -0
  57. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/commands/engagement.py +0 -0
  58. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/commands/license.py +0 -0
  59. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/commands/screenshots.py +0 -0
  60. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/commands/user.py +0 -0
  61. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/config.py +0 -0
  62. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/core/__init__.py +0 -0
  63. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/core/credential_tester.py +0 -0
  64. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/core/cve_mappings.py +0 -0
  65. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/core/cve_matcher.py +0 -0
  66. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/core/msf_chain_engine.py +0 -0
  67. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/core/msf_database.py +0 -0
  68. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/core/msf_integration.py +0 -0
  69. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/core/msf_rpc_client.py +0 -0
  70. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/core/msf_rpc_manager.py +0 -0
  71. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/core/msf_sync_manager.py +0 -0
  72. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/core/network_utils.py +0 -0
  73. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/core/parser_handler.py +0 -0
  74. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/core/pending_chains.py +0 -0
  75. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/core/templates.py +0 -0
  76. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/core/version_utils.py +0 -0
  77. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/core/vuln_correlation.py +0 -0
  78. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/core/web_utils.py +0 -0
  79. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/templates/README.md +0 -0
  80. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/templates/active_directory.json +0 -0
  81. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/templates/cis_controls_v8.json +0 -0
  82. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/templates/cloud_security.json +0 -0
  83. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/templates/cmmc_2.0.json +0 -0
  84. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/templates/external_network.json +0 -0
  85. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/templates/ffiec_cat.json +0 -0
  86. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/templates/gdpr_article32.json +0 -0
  87. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/templates/glba_safeguards.json +0 -0
  88. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/templates/hipaa_security.json +0 -0
  89. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/templates/hitrust_csf.json +0 -0
  90. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/templates/internal_network.json +0 -0
  91. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/templates/iso27001.json +0 -0
  92. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/templates/nerc_cip.json +0 -0
  93. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/templates/nist_csf.json +0 -0
  94. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/templates/owasp_top10_2021.json +0 -0
  95. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/templates/pci_dss_4.0.json +0 -0
  96. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/templates/ptes_standard.json +0 -0
  97. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/templates/red_team.json +0 -0
  98. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/templates/soc2_type2.json +0 -0
  99. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/templates/webapp_advanced.json +0 -0
  100. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/wordlists/README.md +0 -0
  101. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/wordlists/all_users.txt +0 -0
  102. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/wordlists/api_endpoints.txt +0 -0
  103. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/wordlists/default_credentials.txt +0 -0
  104. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/wordlists/macos_users.txt +0 -0
  105. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/wordlists/router_passwords.txt +0 -0
  106. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/wordlists/router_users.txt +0 -0
  107. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/wordlists/soul_pass.txt +0 -0
  108. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/wordlists/soul_users.txt +0 -0
  109. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/wordlists/subdomains_common.txt +0 -0
  110. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/wordlists/top100.txt +0 -0
  111. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/wordlists/top20_quick.txt +0 -0
  112. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/wordlists/vnc_passwords.txt +0 -0
  113. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/wordlists/web_dirs_common.txt +0 -0
  114. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/wordlists/web_extensions.txt +0 -0
  115. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/data/wordlists/web_files_common.txt +0 -0
  116. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/detection/__init__.py +0 -0
  117. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/detection/attack_signatures.py +0 -0
  118. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/detection/mitre_mappings.py +0 -0
  119. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/detection/validator.py +0 -0
  120. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/devtools.py +0 -0
  121. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/api-reference/cli-commands.md +0 -0
  122. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/api-reference/engagement-api.md +0 -0
  123. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/api-reference/integration-guide.md +0 -0
  124. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/api-reference/parser-formats.md +0 -0
  125. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/architecture/decisions/000-template.md +0 -0
  126. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/architecture/decisions/001-local-llm-over-cloud.md +0 -0
  127. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/architecture/decisions/002-master-password-approach.md +0 -0
  128. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/architecture/decisions/003-database-schema-design.md +0 -0
  129. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/architecture/overview.md +0 -0
  130. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/database/MIGRATIONS.md +0 -0
  131. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/database/SCHEMA.md +0 -0
  132. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/database/SCHEMA_ERD.md +0 -0
  133. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/developer-guide/test_coverage_plan.md +0 -0
  134. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/developer-guide/ui-design-system.md +0 -0
  135. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/images/README.md +0 -0
  136. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/security/best-practices.md +0 -0
  137. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/security/credential-encryption.md +0 -0
  138. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/security/password-protected-commands.md +0 -0
  139. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/security/secure-defaults.md +0 -0
  140. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/security/threat-model.md +0 -0
  141. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/user-guide/ai-integration.md +0 -0
  142. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/user-guide/attack-surface.md +0 -0
  143. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/user-guide/auto-chaining.md +0 -0
  144. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/user-guide/configuration.md +0 -0
  145. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/user-guide/deliverables-screenshots.md +0 -0
  146. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/user-guide/dependencies.md +0 -0
  147. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/user-guide/evidence-vault.md +0 -0
  148. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/user-guide/exploit-suggestions.md +0 -0
  149. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/user-guide/getting-started.md +0 -0
  150. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/user-guide/installation.md +0 -0
  151. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/user-guide/metasploit-integration.md +0 -0
  152. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/user-guide/rbac.md +0 -0
  153. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/user-guide/report-generation.md +0 -0
  154. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/user-guide/scope-management.md +0 -0
  155. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/user-guide/siem-integration.md +0 -0
  156. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/user-guide/tools-reference.md +0 -0
  157. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/user-guide/troubleshooting.md +0 -0
  158. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/user-guide/uninstall.md +0 -0
  159. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/user-guide/worker-management.md +0 -0
  160. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/docs/user-guide/workflows.md +0 -0
  161. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/engine/__init__.py +0 -0
  162. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/engine/background.py +0 -0
  163. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/engine/base.py +0 -0
  164. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/engine/job_status.py +0 -0
  165. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/engine/loader.py +0 -0
  166. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/engine/log_sanitizer.py +0 -0
  167. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/engine/manager.py +0 -0
  168. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/engine/result_handler.py +0 -0
  169. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/engine/worker_manager.py +0 -0
  170. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/export/__init__.py +0 -0
  171. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/export/evidence_bundle.py +0 -0
  172. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/feature_flags/__init__.py +0 -0
  173. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/feature_flags/features.py +0 -0
  174. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/feature_flags.py +0 -0
  175. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/history.py +0 -0
  176. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/importers/__init__.py +0 -0
  177. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/importers/msf_importer.py +0 -0
  178. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/importers/smart_importer.py +0 -0
  179. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/integrations/__init__.py +0 -0
  180. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/integrations/siem/base.py +0 -0
  181. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/integrations/siem/elastic.py +0 -0
  182. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/integrations/siem/rule_mappings/__init__.py +0 -0
  183. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/integrations/siem/rule_mappings/wazuh_rules.py +0 -0
  184. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/integrations/siem/sentinel.py +0 -0
  185. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/integrations/siem/splunk.py +0 -0
  186. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/integrations/siem/wazuh.py +0 -0
  187. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/integrations/wazuh/__init__.py +0 -0
  188. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/integrations/wazuh/client.py +0 -0
  189. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/integrations/wazuh/host_mapper.py +0 -0
  190. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/integrations/wazuh/sync.py +0 -0
  191. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/intelligence/__init__.py +0 -0
  192. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/intelligence/correlation_analyzer.py +0 -0
  193. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/intelligence/exploit_knowledge.py +0 -0
  194. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/intelligence/exploit_suggestions.py +0 -0
  195. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/intelligence/gap_analyzer.py +0 -0
  196. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/intelligence/gap_detector.py +0 -0
  197. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/intelligence/sensitive_tables.py +0 -0
  198. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/intelligence/service_parser.py +0 -0
  199. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/intelligence/surface_analyzer.py +0 -0
  200. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/intelligence/target_parser.py +0 -0
  201. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/licensing/__init__.py +0 -0
  202. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/licensing/validator.py +0 -0
  203. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/log_config.py +0 -0
  204. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/migrations/__init__.py +0 -0
  205. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/migrations/fix_job_counter.py +0 -0
  206. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/parsers/__init__.py +0 -0
  207. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/parsers/bloodhound_parser.py +0 -0
  208. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/parsers/crackmapexec_parser.py +0 -0
  209. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/parsers/dalfox_parser.py +0 -0
  210. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/parsers/dnsrecon_parser.py +0 -0
  211. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/parsers/enum4linux_parser.py +0 -0
  212. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/parsers/ffuf_parser.py +0 -0
  213. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/parsers/gobuster_parser.py +0 -0
  214. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/parsers/hashcat_parser.py +0 -0
  215. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/parsers/http_fingerprint_parser.py +0 -0
  216. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/parsers/hydra_parser.py +0 -0
  217. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/parsers/impacket_parser.py +0 -0
  218. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/parsers/john_parser.py +0 -0
  219. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/parsers/msf_parser.py +0 -0
  220. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/parsers/nikto_parser.py +0 -0
  221. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/parsers/nmap_parser.py +0 -0
  222. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/parsers/nuclei_parser.py +0 -0
  223. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/parsers/responder_parser.py +0 -0
  224. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/parsers/searchsploit_parser.py +0 -0
  225. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/parsers/smbmap_parser.py +0 -0
  226. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/parsers/sqlmap_parser.py +0 -0
  227. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/parsers/theharvester_parser.py +0 -0
  228. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/parsers/whois_parser.py +0 -0
  229. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/parsers/wpscan_parser.py +0 -0
  230. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/__init__.py +0 -0
  231. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/afp.py +0 -0
  232. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/afp_brute.py +0 -0
  233. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/ard.py +0 -0
  234. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/bloodhound.py +0 -0
  235. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/crackmapexec.py +0 -0
  236. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/dalfox.py +0 -0
  237. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/dns_hijack.py +0 -0
  238. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/dnsrecon.py +0 -0
  239. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/enum4linux.py +0 -0
  240. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/ffuf.py +0 -0
  241. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/firmware_extract.py +0 -0
  242. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/gobuster.py +0 -0
  243. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/hashcat.py +0 -0
  244. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/http_fingerprint.py +0 -0
  245. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/hydra.py +0 -0
  246. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/impacket_getnpusers.py +0 -0
  247. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/impacket_psexec.py +0 -0
  248. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/impacket_secretsdump.py +0 -0
  249. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/impacket_smbclient.py +0 -0
  250. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/john.py +0 -0
  251. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/macos_ssh.py +0 -0
  252. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/mdns.py +0 -0
  253. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/msf_auxiliary.py +0 -0
  254. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/msf_exploit.py +0 -0
  255. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/nikto.py +0 -0
  256. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/nmap.py +0 -0
  257. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/nuclei.py +0 -0
  258. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/plugin_base.py +0 -0
  259. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/plugin_template.py +0 -0
  260. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/responder.py +0 -0
  261. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/router_http_brute.py +0 -0
  262. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/router_ssh_brute.py +0 -0
  263. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/router_telnet_brute.py +0 -0
  264. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/routersploit.py +0 -0
  265. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/routersploit_exploit.py +0 -0
  266. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/searchsploit.py +0 -0
  267. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/smbmap.py +0 -0
  268. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/sqlmap.py +0 -0
  269. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/theharvester.py +0 -0
  270. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/tr069.py +0 -0
  271. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/upnp.py +0 -0
  272. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/upnp_abuse.py +0 -0
  273. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/vnc_access.py +0 -0
  274. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/vnc_brute.py +0 -0
  275. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/whois.py +0 -0
  276. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/plugins/wpscan.py +0 -0
  277. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/reporting/__init__.py +0 -0
  278. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/reporting/attack_chain.py +0 -0
  279. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/reporting/charts.py +0 -0
  280. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/reporting/compliance_mappings.py +0 -0
  281. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/reporting/detection_report.py +0 -0
  282. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/reporting/formatters.py +0 -0
  283. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/reporting/generator.py +0 -0
  284. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/reporting/metrics.py +0 -0
  285. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/scanner.py +0 -0
  286. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/security/__init__.py +0 -0
  287. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/security/scope_validator.py +0 -0
  288. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/security/validation.py +0 -0
  289. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/security.py +0 -0
  290. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/__init__.py +0 -0
  291. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/credentials.py +0 -0
  292. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/crypto.py +0 -0
  293. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/database.py +0 -0
  294. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/db.py +0 -0
  295. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/deliverable_evidence.py +0 -0
  296. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/deliverable_exporter.py +0 -0
  297. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/deliverable_templates.py +0 -0
  298. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/deliverables.py +0 -0
  299. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/engagements.py +0 -0
  300. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/evidence.py +0 -0
  301. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/execution_log.py +0 -0
  302. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/exploit_attempts.py +0 -0
  303. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/exploits.py +0 -0
  304. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/findings.py +0 -0
  305. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/hosts.py +0 -0
  306. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/migrate_to_engagements.py +0 -0
  307. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/migrations/_001_add_credential_enhancements.py +0 -0
  308. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/migrations/_002_add_status_tracking.py +0 -0
  309. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/migrations/_003_add_execution_log.py +0 -0
  310. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/migrations/_005_screenshots.py +0 -0
  311. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/migrations/_006_deliverables.py +0 -0
  312. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/migrations/_007_deliverable_templates.py +0 -0
  313. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/migrations/_008_add_nuclei_table.py +0 -0
  314. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/migrations/_009_add_cme_tables.py +0 -0
  315. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/migrations/_010_evidence_linking.py +0 -0
  316. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/migrations/_011_timeline_tracking.py +0 -0
  317. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/migrations/_012_team_collaboration.py +0 -0
  318. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/migrations/_013_add_host_tags.py +0 -0
  319. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/migrations/_014_exploit_attempts.py +0 -0
  320. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/migrations/_015_add_mac_os_fields.py +0 -0
  321. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/migrations/_016_add_domain_field.py +0 -0
  322. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/migrations/_017_msf_sessions.py +0 -0
  323. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/migrations/_018_add_osint_target.py +0 -0
  324. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/migrations/_019_add_engagement_type.py +0 -0
  325. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/migrations/_020_add_rbac.py +0 -0
  326. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/migrations/_021_wazuh_integration.py +0 -0
  327. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/migrations/_022_wazuh_indexer_columns.py +0 -0
  328. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/migrations/_023_fix_detection_results_fk.py +0 -0
  329. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/migrations/_024_wazuh_vulnerabilities.py +0 -0
  330. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/migrations/_025_multi_siem_support.py +0 -0
  331. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/migrations/_026_add_engagement_scope.py +0 -0
  332. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/migrations/migration_manager.py +0 -0
  333. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/msf_sessions.py +0 -0
  334. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/osint.py +0 -0
  335. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/recommendation_engine.py +0 -0
  336. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/screenshots.py +0 -0
  337. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/smb_shares.py +0 -0
  338. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/sqlmap_data.py +0 -0
  339. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/team_collaboration.py +0 -0
  340. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/timeline_tracker.py +0 -0
  341. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/wazuh_vulns.py +0 -0
  342. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/storage/web_paths.py +0 -0
  343. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/testing/__init__.py +0 -0
  344. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/testing/credential_tester.py +0 -0
  345. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/__init__.py +0 -0
  346. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/ai_quotes.py +0 -0
  347. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/attack_surface.py +0 -0
  348. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/chain_rules_view.py +0 -0
  349. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/correlation_view.py +0 -0
  350. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/dashboard.py +0 -0
  351. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/deliverables_view.py +0 -0
  352. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/design_system.py +0 -0
  353. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/errors.py +0 -0
  354. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/evidence_linking_view.py +0 -0
  355. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/evidence_vault.py +0 -0
  356. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/exploit_suggestions_view.py +0 -0
  357. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/export_view.py +0 -0
  358. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/gap_analysis_view.py +0 -0
  359. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/help_system.py +0 -0
  360. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/intelligence_view.py +0 -0
  361. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/interactive_selector.py +0 -0
  362. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/log_formatter.py +0 -0
  363. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/menu_components.py +0 -0
  364. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/msf_auxiliary_menu.py +0 -0
  365. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/pending_chains_view.py +0 -0
  366. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/progress_indicators.py +0 -0
  367. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/recommendations_view.py +0 -0
  368. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/rule_builder.py +0 -0
  369. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/setup_wizard.py +0 -0
  370. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/shortcuts.py +0 -0
  371. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/splunk_gap_analysis_view.py +0 -0
  372. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/splunk_vulns_view.py +0 -0
  373. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/team_dashboard.py +0 -0
  374. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/template_selector.py +0 -0
  375. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/terminal.py +0 -0
  376. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/timeline_view.py +0 -0
  377. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/tutorial.py +0 -0
  378. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/tutorial_state.py +0 -0
  379. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui/wazuh_vulns_view.py +0 -0
  380. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/ui.py +0 -0
  381. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/utils/__init__.py +0 -0
  382. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/utils/tool_checker.py +0 -0
  383. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/utils.py +0 -0
  384. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez/wordlists.py +0 -0
  385. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez.egg-info/dependency_links.txt +0 -0
  386. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez.egg-info/entry_points.txt +0 -0
  387. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez.egg-info/requires.txt +0 -0
  388. {souleyez-2.31.0 → souleyez-2.40.0}/souleyez.egg-info/top_level.txt +0 -0
  389. {souleyez-2.31.0 → souleyez-2.40.0}/tests/test_config.py +0 -0
  390. {souleyez-2.31.0 → souleyez-2.40.0}/tests/test_config_enhanced.py +0 -0
  391. {souleyez-2.31.0 → souleyez-2.40.0}/tests/test_crypto.py +0 -0
  392. {souleyez-2.31.0 → souleyez-2.40.0}/tests/test_database_100_final.py +0 -0
  393. {souleyez-2.31.0 → souleyez-2.40.0}/tests/test_engagements.py +0 -0
  394. {souleyez-2.31.0 → souleyez-2.40.0}/tests/test_engagements_simple.py +0 -0
  395. {souleyez-2.31.0 → souleyez-2.40.0}/tests/test_job_status_tracking.py +0 -0
  396. {souleyez-2.31.0 → souleyez-2.40.0}/tests/test_logging.py +0 -0
  397. {souleyez-2.31.0 → souleyez-2.40.0}/tests/test_network_utils.py +0 -0
  398. {souleyez-2.31.0 → souleyez-2.40.0}/tests/test_ollama_service.py +0 -0
  399. {souleyez-2.31.0 → souleyez-2.40.0}/tests/test_plugin_base.py +0 -0
  400. {souleyez-2.31.0 → souleyez-2.40.0}/tests/test_recommender.py +0 -0
  401. {souleyez-2.31.0 → souleyez-2.40.0}/tests/test_result_handler_sqlmap.py +0 -0
  402. {souleyez-2.31.0 → souleyez-2.40.0}/tests/test_schema.py +0 -0
  403. {souleyez-2.31.0 → souleyez-2.40.0}/tests/test_scope_integration.py +0 -0
  404. {souleyez-2.31.0 → souleyez-2.40.0}/tests/test_scope_validator.py +0 -0
  405. {souleyez-2.31.0 → souleyez-2.40.0}/tests/test_security_hardening.py +0 -0
  406. {souleyez-2.31.0 → souleyez-2.40.0}/tests/test_security_validation.py +0 -0
  407. {souleyez-2.31.0 → souleyez-2.40.0}/tests/test_sqlmap_parser.py +0 -0
  408. {souleyez-2.31.0 → souleyez-2.40.0}/tests/test_storage.py +0 -0
  409. {souleyez-2.31.0 → souleyez-2.40.0}/tests/test_version_utils.py +0 -0
@@ -0,0 +1,265 @@
1
+ Metadata-Version: 2.4
2
+ Name: souleyez
3
+ Version: 2.40.0
4
+ Summary: AI-Powered Penetration Testing Platform with 40+ integrated tools
5
+ Author-email: CyberSoul Security <contact@cybersoulsecurity.com>
6
+ Maintainer-email: CyberSoul Security <contact@cybersoulsecurity.com>
7
+ License: MIT
8
+ Project-URL: Homepage, https://github.com/cyber-soul-security/SoulEyez
9
+ Project-URL: Documentation, https://github.com/cyber-soul-security/SoulEyez#readme
10
+ Project-URL: Repository, https://github.com/cyber-soul-security/SoulEyez.git
11
+ Project-URL: Issues, https://github.com/cyber-soul-security/SoulEyez/issues
12
+ Keywords: pentesting,security,hacking,penetration-testing,cybersecurity,nmap,metasploit
13
+ Classifier: Development Status :: 4 - Beta
14
+ Classifier: Environment :: Console
15
+ Classifier: Environment :: Console :: Curses
16
+ Classifier: Intended Audience :: Developers
17
+ Classifier: Intended Audience :: Information Technology
18
+ Classifier: Intended Audience :: System Administrators
19
+ Classifier: License :: OSI Approved :: MIT License
20
+ Classifier: Operating System :: POSIX :: Linux
21
+ Classifier: Operating System :: MacOS
22
+ Classifier: Programming Language :: Python :: 3
23
+ Classifier: Programming Language :: Python :: 3.8
24
+ Classifier: Programming Language :: Python :: 3.9
25
+ Classifier: Programming Language :: Python :: 3.10
26
+ Classifier: Programming Language :: Python :: 3.11
27
+ Classifier: Programming Language :: Python :: 3.12
28
+ Classifier: Programming Language :: Python :: 3.13
29
+ Classifier: Topic :: Security
30
+ Classifier: Topic :: System :: Networking
31
+ Requires-Python: >=3.8
32
+ Description-Content-Type: text/markdown
33
+ License-File: LICENSE
34
+ Requires-Dist: anthropic>=0.40.0
35
+ Requires-Dist: click>=8.0.0
36
+ Requires-Dist: cryptography>=3.4.0
37
+ Requires-Dist: defusedxml>=0.7.0
38
+ Requires-Dist: impacket>=0.11.0
39
+ Requires-Dist: markdown>=3.4.0
40
+ Requires-Dist: msgpack>=1.0.0
41
+ Requires-Dist: ollama>=0.1.0
42
+ Requires-Dist: psycopg2-binary>=2.9.0
43
+ Requires-Dist: psutil>=5.9.0
44
+ Requires-Dist: python-json-logger>=2.0.0
45
+ Requires-Dist: requests>=2.28.0
46
+ Requires-Dist: rich>=10.0.0
47
+ Requires-Dist: wcwidth>=0.2.0
48
+ Provides-Extra: dev
49
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
50
+ Dynamic: license-file
51
+
52
+ # SoulEyez — AI-Powered Penetration Testing Platform
53
+
54
+ [![CI](https://github.com/cyber-soul-security/souleyez/actions/workflows/python-ci.yml/badge.svg)](https://github.com/cyber-soul-security/souleyez/actions/workflows/python-ci.yml)
55
+ [![codecov](https://codecov.io/gh/cyber-soul-security/souleyez/branch/main/graph/badge.svg)](https://codecov.io/gh/cyber-soul-security/souleyez)
56
+ [![Python 3.9+](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/)
57
+ [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
58
+ [![Security: bandit](https://img.shields.io/badge/security-bandit-yellow.svg)](https://github.com/PyCQA/bandit)
59
+
60
+ **LEGAL NOTICE — Use Responsibly**
61
+ Only use SoulEyez on systems you own or have explicit written permission to test.
62
+ Unauthorized scanning or exploitation is illegal. The authors are not responsible for misuse.
63
+
64
+ ---
65
+
66
+ ## Features
67
+
68
+ ### Core Capabilities
69
+ - 🎯 **Interactive Dashboard** - Real-time engagement monitoring with live updates
70
+ - 🔗 **Smart Tool Chaining** - Automatic follow-up scans based on discoveries
71
+ - 📊 **Findings Management** - Track and categorize vulnerabilities by severity
72
+ - 🔑 **Credential Vault** - Encrypted storage for discovered credentials
73
+ - 🌐 **Network Mapping** - Host discovery and service enumeration
74
+ - 📈 **Progress Tracking** - Monitor scan completion and tool execution
75
+ - 💾 **SQLite Storage** - Local database for all engagement data
76
+ - 🔄 **Background Jobs** - Queue-based tool execution with status monitoring
77
+
78
+ ### Integrated Tools (40+)
79
+ - **Reconnaissance**: nmap, masscan, theHarvester, whois, dnsrecon
80
+ - **Web Testing**: nikto, gobuster, ffuf, sqlmap, nuclei, wpscan
81
+ - **Enumeration**: enum4linux-ng, smbmap, crackmapexec, snmpwalk
82
+ - **Exploitation**: Metasploit integration, searchsploit
83
+ - **Password Attacks**: hydra, hashcat, john
84
+ - **Post-Exploitation**: impacket suite, bloodhound
85
+
86
+ ### Pentest Workflow & Intelligence
87
+ - 📁 **Evidence Vault** - Unified artifact collection organized by PTES phases
88
+ - 🎯 **Attack Surface Dashboard** - Track what's exploited vs pending with priority scoring
89
+ - 💣 **Exploit Suggestions** - Automatic CVE/Metasploit recommendations for discovered services
90
+ - 🔗 **Correlation Engine** - Cross-phase attack tracking and gap analysis
91
+ - 📝 **Report Generator** - Professional reports in Markdown/HTML/PDF formats
92
+ - ✅ **Deliverable Tracking** - Manage testing requirements and acceptance criteria
93
+ - 📸 **Screenshot Management** - Organized visual evidence by methodology phase
94
+
95
+ ### Purple Team / SIEM Integration
96
+ - 🛡️ **Wazuh Integration** - Connect to Wazuh Manager for detection validation
97
+ - 📊 **Splunk Integration** - Query Splunk for alerts and vulnerability data
98
+ - ✓ **Detection Validation** - Verify if your attacks triggered SIEM alerts
99
+ - 🔍 **Vulnerability Management** - View CVEs from Wazuh agents synced to Splunk
100
+ - ⚖️ **Gap Analysis** - Compare passive (SIEM) vs active (scan) findings
101
+ - 🗺️ **MITRE ATT&CK Reports** - Detection coverage heatmaps by technique
102
+ - 📡 **Real-time Alerts** - Monitor SIEM alerts during live engagements
103
+
104
+ ---
105
+
106
+ ## 🔐 Security & Data Protection
107
+
108
+ ### Credential Encryption
109
+
110
+ SoulEyez encrypts all stored credentials using Fernet (AES-128-CBC + HMAC-SHA256) with PBKDF2 key derivation (600k iterations).
111
+
112
+ ```bash
113
+ # Enable encryption with master password
114
+ souleyez db encrypt
115
+
116
+ # Add credentials (automatically encrypted)
117
+ souleyez creds add --username admin --password secret123 --service ssh --host 10.0.0.82
118
+
119
+ # View credentials (requires master password)
120
+ souleyez creds list
121
+ ```
122
+
123
+ **Key Points:**
124
+ - Master password is never stored (cannot be recovered if lost)
125
+ - Credentials encrypted at rest with industry-standard cryptography
126
+ - Dashboard shows masked values (••••••••) until explicitly revealed
127
+ - Each user should maintain their own database
128
+
129
+ ### Data Masking
130
+
131
+ Sensitive data is automatically masked in the UI:
132
+ - Passwords: `Su***********3!`
133
+ - Credit card numbers: `45**************34`
134
+ - Access warning prompts before viewing sensitive data
135
+
136
+ See [SECURITY.md](SECURITY.md) for complete security guidelines.
137
+
138
+ ---
139
+
140
+ ## 📝 Configuration
141
+
142
+ SoulEyez uses a flexible configuration system:
143
+
144
+ 1. **Environment Variables** - `SOULEYEZ_*` prefix (highest priority)
145
+ 2. **Config File** - `~/.souleyez/config.json` (auto-created)
146
+ 3. **Default Values** - Built-in safe defaults
147
+
148
+ ```bash
149
+ # Edit config file
150
+ nano ~/.souleyez/config.json
151
+
152
+ # Or use environment variables
153
+ export SOULEYEZ_DATABASE_PATH=/custom/path/souleyez.db
154
+ export SOULEYEZ_LOGGING_LEVEL=DEBUG
155
+ ```
156
+
157
+ See [docs/CONFIG.md](souleyez/docs/CONFIG.md) for complete configuration options.
158
+
159
+ ---
160
+
161
+ ## Supported Operating Systems
162
+
163
+ | OS | Status | Notes |
164
+ |----|--------|-------|
165
+ | **Kali Linux** | ✅ Recommended | All pentesting tools pre-installed |
166
+ | **Ubuntu 22.04+** | ✅ Supported | Tools installed via `souleyez setup` |
167
+ | **Parrot OS** | ✅ Supported | Security-focused distro |
168
+ | **Debian 12+** | ✅ Supported | Stable base system |
169
+ | **Other Linux** | ⚠️ Unofficial | Manual testing required |
170
+ | **macOS/Windows** | ❌ Not Supported | Use Linux in a VM |
171
+
172
+ **Architectures:** AMD64, ARM64
173
+
174
+ ---
175
+
176
+ ## System Requirements
177
+
178
+ | Component | Minimum | Recommended |
179
+ |-----------|---------|-------------|
180
+ | **CPU** | 2 cores | 4+ cores |
181
+ | **RAM** | 4GB | 8GB+ |
182
+ | **Disk** | 10GB | 50GB+ |
183
+ | **GPU** | None | Optional (for hashcat) |
184
+
185
+ ---
186
+
187
+ ## Installation
188
+
189
+ ```bash
190
+ # Install pipx if needed
191
+ sudo apt install pipx
192
+ pipx ensurepath
193
+ source ~/.bashrc # Kali Linux: use 'source ~/.zshrc' instead
194
+
195
+ # Install SoulEyez
196
+ pipx install souleyez
197
+
198
+ # Install pentesting tools
199
+ souleyez setup
200
+ ```
201
+
202
+ > **Kali Linux users:** Kali uses zsh by default. Use `source ~/.zshrc` instead of `source ~/.bashrc`
203
+
204
+ See [docs/user-guide/installation.md](souleyez/docs/user-guide/installation.md) for detailed instructions.
205
+
206
+ ---
207
+
208
+ ## Usage
209
+
210
+ ### Interactive Mode (Recommended)
211
+
212
+ ```bash
213
+ souleyez interactive
214
+ ```
215
+
216
+ Menu-driven interface with guided workflows, tool selection by phase, and integrated help.
217
+
218
+ ### Dashboard
219
+
220
+ ```bash
221
+ souleyez dashboard
222
+ ```
223
+
224
+ Real-time monitoring with hotkeys: `[h]` Help, `[a]` Auto-chain, `[m]` Menu, `[q]` Quit
225
+
226
+ ### Command Line
227
+
228
+ ```bash
229
+ # Engagement management
230
+ souleyez workspace create <name>
231
+ souleyez workspace use <name>
232
+
233
+ # Run scans
234
+ souleyez run nmap <target>
235
+ souleyez run gobuster <target>
236
+
237
+ # View results
238
+ souleyez findings list
239
+ souleyez creds list
240
+ ```
241
+
242
+ ---
243
+
244
+ ## Documentation
245
+
246
+ - **[Installation Guide](souleyez/docs/user-guide/installation.md)** - Setup instructions
247
+ - **[Getting Started](souleyez/docs/user-guide/getting-started.md)** - Quick start guide
248
+ - **[Workflows](souleyez/docs/user-guide/workflows.md)** - Complete pentesting workflows
249
+ - **[Evidence Vault](souleyez/docs/user-guide/evidence-vault.md)** - Artifact collection
250
+ - **[Report Generation](souleyez/docs/user-guide/report-generation.md)** - Professional reports
251
+ - **[SECURITY.md](SECURITY.md)** - Security best practices
252
+ - **[AUTO_CHAINING_GUIDE.md](AUTO_CHAINING_GUIDE.md)** - Automated workflows
253
+
254
+ ---
255
+
256
+ ## Support
257
+
258
+ - **GitHub Issues**: https://github.com/cyber-soul-security/SoulEyez/issues
259
+ - **Security Issues**: Report privately (see SECURITY.md)
260
+
261
+ ---
262
+
263
+ ## License
264
+
265
+ See [LICENSE](LICENSE) for details.
@@ -4,9 +4,9 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "souleyez"
7
- version = "2.31.0"
7
+ version = "2.40.0"
8
8
  description = "AI-Powered Penetration Testing Platform with 40+ integrated tools"
9
- readme = "BETA_README.md"
9
+ readme = "README.md"
10
10
  license = {text = "MIT"}
11
11
  authors = [{name = "CyberSoul Security", email = "contact@cybersoulsecurity.com"}]
12
12
  maintainers = [{name = "CyberSoul Security", email = "contact@cybersoulsecurity.com"}]
@@ -0,0 +1,2 @@
1
+ __version__ = '2.40.0'
2
+
@@ -49,8 +49,9 @@ class MSFAutoMapper:
49
49
  risk_levels=['safe', 'noisy', 'moderate', 'dangerous']
50
50
  )
51
51
 
52
- # Filter to top 10 recommendations
53
- service_map[service_id] = recommendations[:10]
52
+ # Only store services with actual recommendations
53
+ if recommendations:
54
+ service_map[service_id] = recommendations[:10]
54
55
 
55
56
  return service_map
56
57
  except Exception as e:
@@ -3972,7 +3972,7 @@ class ToolChaining:
3972
3972
  # This reduces noise and focuses on high-value targets
3973
3973
  from souleyez.intelligence.sensitive_tables import is_sensitive_table, is_system_table
3974
3974
 
3975
- MAX_TABLES_FOR_COLUMN_ENUM = 15 # Focused on sensitive tables only
3975
+ MAX_TABLES_FOR_COLUMN_ENUM = 10 # Focused on sensitive tables only
3976
3976
  tables_queued = 0
3977
3977
  skipped_tables = 0
3978
3978
 
@@ -5770,6 +5770,17 @@ class ToolChaining:
5770
5770
 
5771
5771
  status = existing_job.get('status')
5772
5772
 
5773
+ # === SQLMAP RULE-BASED DEDUP (check ALL completed jobs, not just recent) ===
5774
+ # For sqlmap: if same rule was already applied to this URL, skip it entirely
5775
+ # This prevents infinite loops where each sqlmap job re-triggers the same rules
5776
+ if cmd['tool'] == 'sqlmap' and status in ['done', 'queued', 'running']:
5777
+ cmd_rule_id = cmd.get('rule_id')
5778
+ existing_rule_id = existing_job.get('rule_id')
5779
+ if cmd_rule_id and existing_rule_id and cmd_rule_id == existing_rule_id:
5780
+ similar_exists = True
5781
+ print(f" ⏭️ Skipping sqlmap for {cmd_target}: rule #{cmd_rule_id} already applied (job #{existing_job['id']} {status})")
5782
+ break
5783
+
5773
5784
  # Check if job is active (queued/running)
5774
5785
  is_active = status in ['queued', 'running']
5775
5786
 
@@ -5784,11 +5795,28 @@ class ToolChaining:
5784
5795
  current_time = datetime.now(finished_time.tzinfo) if finished_time.tzinfo else datetime.now()
5785
5796
  time_delta = (current_time - finished_time).total_seconds()
5786
5797
 
5787
- # Only block if same args AND finished < 5 min ago
5798
+ # Only block if finished < 5 min ago AND (same args OR same rule_id for sqlmap)
5788
5799
  if time_delta < DUPLICATE_WINDOW_SECONDS:
5789
5800
  existing_args = existing_job.get('args', [])
5790
5801
  cmd_args = cmd.get('args', [])
5791
- if existing_args == cmd_args:
5802
+
5803
+ # For sqlmap: also check rule_id (same rule = duplicate even with different parent)
5804
+ if cmd['tool'] == 'sqlmap':
5805
+ cmd_rule_id = cmd.get('rule_id')
5806
+ existing_rule_id = existing_job.get('rule_id')
5807
+ if cmd_rule_id and existing_rule_id and cmd_rule_id == existing_rule_id:
5808
+ is_recent_duplicate = True
5809
+ minutes_ago = int(time_delta // 60)
5810
+ seconds_ago = int(time_delta % 60)
5811
+ time_str = f"{minutes_ago}m {seconds_ago}s ago" if minutes_ago > 0 else f"{seconds_ago}s ago"
5812
+ print(f" ⏭️ Skipping sqlmap for {cmd_target}: rule #{cmd_rule_id} completed {time_str} (duplicate)")
5813
+ elif existing_args == cmd_args:
5814
+ is_recent_duplicate = True
5815
+ minutes_ago = int(time_delta // 60)
5816
+ seconds_ago = int(time_delta % 60)
5817
+ time_str = f"{minutes_ago}m {seconds_ago}s ago" if minutes_ago > 0 else f"{seconds_ago}s ago"
5818
+ print(f" ⏭️ Skipping sqlmap for {cmd_target}: job #{existing_job['id']} completed {time_str} (duplicate)")
5819
+ elif existing_args == cmd_args:
5792
5820
  is_recent_duplicate = True
5793
5821
  minutes_ago = int(time_delta // 60)
5794
5822
  seconds_ago = int(time_delta % 60)
@@ -5810,16 +5838,34 @@ class ToolChaining:
5810
5838
  print(f" ⏭️ Skipping {cmd['tool']} for {cmd_target}: similar job #{existing_job['id']} already exists ({existing_job['status']})")
5811
5839
  break
5812
5840
 
5813
- # For sqlmap, gobuster: check if args match (allow different ports/phases)
5814
- elif cmd['tool'] in ['sqlmap', 'gobuster']:
5841
+ # For sqlmap: check by rule_id to prevent same rule firing twice on same URL
5842
+ elif cmd['tool'] == 'sqlmap':
5843
+ cmd_rule_id = cmd.get('rule_id')
5844
+ existing_rule_id = existing_job.get('rule_id')
5845
+ existing_args = existing_job.get('args', [])
5846
+ cmd_args = cmd.get('args', [])
5847
+
5848
+ # If both have rule_id and they match, it's a duplicate
5849
+ # (same rule already applied to this injection point)
5850
+ if cmd_rule_id and existing_rule_id and cmd_rule_id == existing_rule_id:
5851
+ similar_exists = True
5852
+ print(f" ⏭️ Skipping sqlmap for {cmd_target}: rule #{cmd_rule_id} already applied (job #{existing_job['id']} {existing_job['status']})")
5853
+ break
5854
+ # Also check if exact same args (covers manual/no-rule jobs)
5855
+ elif existing_args == cmd_args:
5856
+ similar_exists = True
5857
+ print(f" ⏭️ Skipping sqlmap for {cmd_target}: similar job #{existing_job['id']} already exists ({existing_job['status']})")
5858
+ break
5859
+ # If different rule_id and different args, allow it (different SQLMap phase)
5860
+
5861
+ # For gobuster: check if args match
5862
+ elif cmd['tool'] == 'gobuster':
5815
5863
  existing_args = existing_job.get('args', [])
5816
5864
  cmd_args = cmd.get('args', [])
5817
- # Compare args - if they're the same, it's a duplicate
5818
5865
  if existing_args == cmd_args:
5819
5866
  similar_exists = True
5820
5867
  print(f" ⏭️ Skipping {cmd['tool']} for {cmd_target}: similar job #{existing_job['id']} already exists ({existing_job['status']})")
5821
5868
  break
5822
- # If args are different, allow it (different SQLMap phase)
5823
5869
 
5824
5870
  # For quick lookup tools (whois, dnsrecon), skip 5-min duplicate check
5825
5871
  # They're fast and each theHarvester run should trigger them
@@ -1,6 +1,6 @@
1
1
  # SoulEyez Documentation
2
2
 
3
- **Version:** 2.31.0
3
+ **Version:** 2.40.0
4
4
  **Last Updated:** January 9, 2026
5
5
  **Organization:** CyberSoul Security
6
6
 
@@ -30,6 +30,7 @@ from souleyez.integrations.siem.wazuh import WazuhSIEMClient
30
30
  from souleyez.integrations.siem.splunk import SplunkSIEMClient
31
31
  from souleyez.integrations.siem.elastic import ElasticSIEMClient
32
32
  from souleyez.integrations.siem.sentinel import SentinelSIEMClient
33
+ from souleyez.integrations.siem.googlesecops import GoogleSecOpsSIEMClient
33
34
  from souleyez.integrations.siem.factory import SIEMFactory
34
35
 
35
36
  __all__ = [
@@ -45,4 +46,5 @@ __all__ = [
45
46
  'SplunkSIEMClient',
46
47
  'ElasticSIEMClient',
47
48
  'SentinelSIEMClient',
49
+ 'GoogleSecOpsSIEMClient',
48
50
  ]
@@ -11,7 +11,8 @@ from souleyez.integrations.siem.base import SIEMClient, SIEMConnectionStatus
11
11
 
12
12
 
13
13
  # Registry of available SIEM types
14
- SIEM_TYPES = ['wazuh', 'splunk', 'elastic', 'sentinel']
14
+ # Ordered: Open Source first, then Commercial
15
+ SIEM_TYPES = ['wazuh', 'elastic', 'splunk', 'sentinel', 'google_secops']
15
16
 
16
17
 
17
18
  class SIEMFactory:
@@ -60,6 +61,10 @@ class SIEMFactory:
60
61
  from souleyez.integrations.siem.sentinel import SentinelSIEMClient
61
62
  return SentinelSIEMClient.from_config(config)
62
63
 
64
+ elif siem_type_lower == 'google_secops':
65
+ from souleyez.integrations.siem.googlesecops import GoogleSecOpsSIEMClient
66
+ return GoogleSecOpsSIEMClient.from_config(config)
67
+
63
68
  else:
64
69
  raise ValueError(
65
70
  f"Unsupported SIEM type: {siem_type}. "
@@ -114,7 +119,7 @@ class SIEMFactory:
114
119
  info_map = {
115
120
  'wazuh': {
116
121
  'name': 'Wazuh',
117
- 'description': 'Open source security monitoring (OSSEC fork)',
122
+ 'description': '[Open Source] Security monitoring platform (OSSEC fork)',
118
123
  'config_fields': [
119
124
  {'name': 'api_url', 'label': 'Manager API URL', 'required': True,
120
125
  'placeholder': 'https://wazuh.example.com:55000'},
@@ -130,7 +135,7 @@ class SIEMFactory:
130
135
  },
131
136
  'splunk': {
132
137
  'name': 'Splunk',
133
- 'description': 'Enterprise SIEM and log management platform',
138
+ 'description': '[Commercial] Enterprise SIEM and log management',
134
139
  'config_fields': [
135
140
  {'name': 'api_url', 'label': 'REST API URL', 'required': True,
136
141
  'placeholder': 'https://splunk.example.com:8089'},
@@ -144,7 +149,7 @@ class SIEMFactory:
144
149
  },
145
150
  'elastic': {
146
151
  'name': 'Elastic Security',
147
- 'description': 'Elastic SIEM (formerly Elastic Security)',
152
+ 'description': '[Open Source] Elastic Stack security solution (ELK SIEM)',
148
153
  'config_fields': [
149
154
  {'name': 'elasticsearch_url', 'label': 'Elasticsearch URL', 'required': True,
150
155
  'placeholder': 'https://elastic.example.com:9200'},
@@ -159,7 +164,7 @@ class SIEMFactory:
159
164
  },
160
165
  'sentinel': {
161
166
  'name': 'Microsoft Sentinel',
162
- 'description': 'Azure cloud-native SIEM',
167
+ 'description': '[Commercial] Azure cloud-native SIEM',
163
168
  'config_fields': [
164
169
  {'name': 'tenant_id', 'label': 'Azure Tenant ID', 'required': True},
165
170
  {'name': 'client_id', 'label': 'App Client ID', 'required': True},
@@ -170,6 +175,22 @@ class SIEMFactory:
170
175
  {'name': 'workspace_id', 'label': 'Workspace ID (GUID)', 'required': True},
171
176
  ],
172
177
  },
178
+ 'google_secops': {
179
+ 'name': 'Google SecOps',
180
+ 'description': '[Commercial] Google Cloud security operations (Chronicle)',
181
+ 'config_fields': [
182
+ {'name': 'customer_id', 'label': 'Chronicle Customer ID', 'required': True,
183
+ 'placeholder': 'Your Chronicle customer ID'},
184
+ {'name': 'region', 'label': 'Chronicle Region', 'required': True,
185
+ 'placeholder': 'us, europe, asia-southeast1'},
186
+ {'name': 'project_id', 'label': 'Google Cloud Project ID', 'required': False,
187
+ 'placeholder': 'Optional if in service account JSON'},
188
+ {'name': 'credentials_json', 'label': 'Service Account JSON', 'required': True,
189
+ 'secret': True, 'type': 'textarea',
190
+ 'placeholder': 'Paste service account JSON key'},
191
+ {'name': 'verify_ssl', 'label': 'Verify SSL', 'required': False, 'type': 'boolean'},
192
+ ],
193
+ },
173
194
  }
174
195
 
175
196
  return info_map.get(siem_type.lower(), {