pycti 6.6.4__tar.gz → 6.6.5__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.

Potentially problematic release.


This version of pycti might be problematic. Click here for more details.

Files changed (84) hide show
  1. {pycti-6.6.4 → pycti-6.6.5}/PKG-INFO +1 -1
  2. {pycti-6.6.4 → pycti-6.6.5}/pycti/__init__.py +1 -1
  3. {pycti-6.6.4 → pycti-6.6.5}/pycti/utils/opencti_stix2.py +15 -0
  4. {pycti-6.6.4 → pycti-6.6.5}/pycti.egg-info/PKG-INFO +1 -1
  5. {pycti-6.6.4 → pycti-6.6.5}/LICENSE +0 -0
  6. {pycti-6.6.4 → pycti-6.6.5}/README.md +0 -0
  7. {pycti-6.6.4 → pycti-6.6.5}/pycti/api/__init__.py +0 -0
  8. {pycti-6.6.4 → pycti-6.6.5}/pycti/api/opencti_api_client.py +0 -0
  9. {pycti-6.6.4 → pycti-6.6.5}/pycti/api/opencti_api_connector.py +0 -0
  10. {pycti-6.6.4 → pycti-6.6.5}/pycti/api/opencti_api_playbook.py +0 -0
  11. {pycti-6.6.4 → pycti-6.6.5}/pycti/api/opencti_api_work.py +0 -0
  12. {pycti-6.6.4 → pycti-6.6.5}/pycti/connector/__init__.py +0 -0
  13. {pycti-6.6.4 → pycti-6.6.5}/pycti/connector/opencti_connector.py +0 -0
  14. {pycti-6.6.4 → pycti-6.6.5}/pycti/connector/opencti_connector_helper.py +0 -0
  15. {pycti-6.6.4 → pycti-6.6.5}/pycti/connector/opencti_metric_handler.py +0 -0
  16. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/__init__.py +0 -0
  17. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/indicator/__init__.py +0 -0
  18. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/indicator/opencti_indicator_properties.py +0 -0
  19. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_attack_pattern.py +0 -0
  20. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_campaign.py +0 -0
  21. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_capability.py +0 -0
  22. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_case_incident.py +0 -0
  23. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_case_rfi.py +0 -0
  24. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_case_rft.py +0 -0
  25. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_channel.py +0 -0
  26. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_course_of_action.py +0 -0
  27. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_data_component.py +0 -0
  28. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_data_source.py +0 -0
  29. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_event.py +0 -0
  30. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_external_reference.py +0 -0
  31. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_feedback.py +0 -0
  32. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_group.py +0 -0
  33. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_grouping.py +0 -0
  34. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_identity.py +0 -0
  35. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_incident.py +0 -0
  36. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_indicator.py +0 -0
  37. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_infrastructure.py +0 -0
  38. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_intrusion_set.py +0 -0
  39. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_kill_chain_phase.py +0 -0
  40. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_label.py +0 -0
  41. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_language.py +0 -0
  42. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_location.py +0 -0
  43. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_malware.py +0 -0
  44. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_malware_analysis.py +0 -0
  45. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_marking_definition.py +0 -0
  46. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_narrative.py +0 -0
  47. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_note.py +0 -0
  48. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_observed_data.py +0 -0
  49. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_opinion.py +0 -0
  50. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_report.py +0 -0
  51. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_role.py +0 -0
  52. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_settings.py +0 -0
  53. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_stix.py +0 -0
  54. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_stix_core_object.py +0 -0
  55. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_stix_core_relationship.py +0 -0
  56. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_stix_cyber_observable.py +0 -0
  57. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_stix_domain_object.py +0 -0
  58. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_stix_nested_ref_relationship.py +0 -0
  59. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_stix_object_or_stix_relationship.py +0 -0
  60. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_stix_sighting_relationship.py +0 -0
  61. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_task.py +0 -0
  62. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_threat_actor.py +0 -0
  63. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_threat_actor_group.py +0 -0
  64. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_threat_actor_individual.py +0 -0
  65. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_tool.py +0 -0
  66. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_user.py +0 -0
  67. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_vocabulary.py +0 -0
  68. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/opencti_vulnerability.py +0 -0
  69. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/stix_cyber_observable/__init__.py +0 -0
  70. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/stix_cyber_observable/opencti_stix_cyber_observable_deprecated.py +0 -0
  71. {pycti-6.6.4 → pycti-6.6.5}/pycti/entities/stix_cyber_observable/opencti_stix_cyber_observable_properties.py +0 -0
  72. {pycti-6.6.4 → pycti-6.6.5}/pycti/utils/__init__.py +0 -0
  73. {pycti-6.6.4 → pycti-6.6.5}/pycti/utils/constants.py +0 -0
  74. {pycti-6.6.4 → pycti-6.6.5}/pycti/utils/opencti_logger.py +0 -0
  75. {pycti-6.6.4 → pycti-6.6.5}/pycti/utils/opencti_stix2_identifier.py +0 -0
  76. {pycti-6.6.4 → pycti-6.6.5}/pycti/utils/opencti_stix2_splitter.py +0 -0
  77. {pycti-6.6.4 → pycti-6.6.5}/pycti/utils/opencti_stix2_update.py +0 -0
  78. {pycti-6.6.4 → pycti-6.6.5}/pycti/utils/opencti_stix2_utils.py +0 -0
  79. {pycti-6.6.4 → pycti-6.6.5}/pycti.egg-info/SOURCES.txt +0 -0
  80. {pycti-6.6.4 → pycti-6.6.5}/pycti.egg-info/dependency_links.txt +0 -0
  81. {pycti-6.6.4 → pycti-6.6.5}/pycti.egg-info/requires.txt +0 -0
  82. {pycti-6.6.4 → pycti-6.6.5}/pycti.egg-info/top_level.txt +0 -0
  83. {pycti-6.6.4 → pycti-6.6.5}/pyproject.toml +0 -0
  84. {pycti-6.6.4 → pycti-6.6.5}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pycti
3
- Version: 6.6.4
3
+ Version: 6.6.5
4
4
  Summary: Python API client for OpenCTI.
5
5
  Home-page: https://github.com/OpenCTI-Platform/client-python
6
6
  Author: Filigran
@@ -1,5 +1,5 @@
1
1
  # -*- coding: utf-8 -*-
2
- __version__ = "6.6.4"
2
+ __version__ = "6.6.5"
3
3
 
4
4
  from .api.opencti_api_client import OpenCTIApiClient
5
5
  from .api.opencti_api_connector import OpenCTIApiConnector
@@ -48,6 +48,7 @@ STIX_EXT_OCTI = "extension-definition--ea279b3e-5c71-4632-ac08-831c66a786ba"
48
48
  STIX_EXT_OCTI_SCO = "extension-definition--f93e2c80-4231-4f9a-af8b-95c9bd566a82"
49
49
  STIX_EXT_MITRE = "extension-definition--322b8f77-262a-4cb8-a915-1e441e00329b"
50
50
  PROCESSING_COUNT: int = 4
51
+ MAX_PROCESSING_COUNT: int = 100
51
52
 
52
53
  meter = metrics.get_meter(__name__)
53
54
  bundles_timeout_error_counter = meter.create_counter(
@@ -2489,6 +2490,20 @@ class OpenCTIStix2:
2489
2490
  work_id: str = None,
2490
2491
  ):
2491
2492
  worker_logger = self.opencti.logger_class("worker")
2493
+ # Ultimate protection to avoid infinite retry
2494
+ if processing_count > MAX_PROCESSING_COUNT:
2495
+ if work_id is not None:
2496
+ item_str = json.dumps(item)
2497
+ self.opencti.work.report_expectation(
2498
+ work_id,
2499
+ {
2500
+ "error": "Max number of retries reached, please see error logs of workers for more details",
2501
+ "source": (
2502
+ item_str if len(item_str) < 50000 else "Bundle too large"
2503
+ ),
2504
+ },
2505
+ )
2506
+ return False
2492
2507
  try:
2493
2508
  self.opencti.set_retry_number(processing_count)
2494
2509
  opencti_operation = self.opencti.get_attribute_in_extension(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pycti
3
- Version: 6.6.4
3
+ Version: 6.6.5
4
4
  Summary: Python API client for OpenCTI.
5
5
  Home-page: https://github.com/OpenCTI-Platform/client-python
6
6
  Author: Filigran
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes