stix2arango 1.0.3__tar.gz → 1.1.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.

Potentially problematic release.


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

Files changed (106) hide show
  1. {stix2arango-1.0.3 → stix2arango-1.1.0}/PKG-INFO +1 -1
  2. {stix2arango-1.0.3 → stix2arango-1.1.0}/pyproject.toml +1 -1
  3. {stix2arango-1.0.3 → stix2arango-1.1.0}/stix2arango/services/arangodb_service.py +5 -2
  4. {stix2arango-1.0.3 → stix2arango-1.1.0}/.env.example +0 -0
  5. {stix2arango-1.0.3 → stix2arango-1.1.0}/.env.markdown +0 -0
  6. {stix2arango-1.0.3 → stix2arango-1.1.0}/.github/workflows/create-release.yml +0 -0
  7. {stix2arango-1.0.3 → stix2arango-1.1.0}/.github/workflows/run-tests.yml +0 -0
  8. {stix2arango-1.0.3 → stix2arango-1.1.0}/.gitignore +0 -0
  9. {stix2arango-1.0.3 → stix2arango-1.1.0}/LICENSE +0 -0
  10. {stix2arango-1.0.3 → stix2arango-1.1.0}/README.md +0 -0
  11. {stix2arango-1.0.3 → stix2arango-1.1.0}/docs/README.md +0 -0
  12. {stix2arango-1.0.3 → stix2arango-1.1.0}/docs/stix2arango.png +0 -0
  13. {stix2arango-1.0.3 → stix2arango-1.1.0}/requirements.txt +0 -0
  14. {stix2arango-1.0.3 → stix2arango-1.1.0}/stix2arango/__init__.py +0 -0
  15. {stix2arango-1.0.3 → stix2arango-1.1.0}/stix2arango/__main__.py +0 -0
  16. {stix2arango-1.0.3 → stix2arango-1.1.0}/stix2arango/config.py +0 -0
  17. {stix2arango-1.0.3 → stix2arango-1.1.0}/stix2arango/services/__init__.py +0 -0
  18. {stix2arango-1.0.3 → stix2arango-1.1.0}/stix2arango/services/version_annotator.py +0 -0
  19. {stix2arango-1.0.3 → stix2arango-1.1.0}/stix2arango/stix2arango/__init__.py +0 -0
  20. {stix2arango-1.0.3 → stix2arango-1.1.0}/stix2arango/stix2arango/bundle_loader.py +0 -0
  21. {stix2arango-1.0.3 → stix2arango-1.1.0}/stix2arango/stix2arango/stix2arango.py +0 -0
  22. {stix2arango-1.0.3 → stix2arango-1.1.0}/stix2arango/templates/marking-definition.json +0 -0
  23. {stix2arango-1.0.3 → stix2arango-1.1.0}/stix2arango/utils.py +0 -0
  24. {stix2arango-1.0.3 → stix2arango-1.1.0}/stix2arango.py +0 -0
  25. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/README.md +0 -0
  26. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/files/stix2arango/custom-sco-original.json +0 -0
  27. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/files/stix2arango/custom-sco-updated.json +0 -0
  28. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/files/stix2arango/custom-sdo-original.json +0 -0
  29. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/files/stix2arango/custom-sdo-updated.json +0 -0
  30. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/files/stix2arango/duplicate-objects-all-properties-same.json +0 -0
  31. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/files/stix2arango/duplicate-objects-properties-different.json +0 -0
  32. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/files/stix2arango/embedded-ref-object-removed.json +0 -0
  33. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/files/stix2arango/embedded-ref-object-updated.json +0 -0
  34. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/files/stix2arango/embedded-ref-object.json +0 -0
  35. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/files/stix2arango/embedded-ref-sdo-sco-sro-smo.json +0 -0
  36. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/files/stix2arango/nested-embedded-ref.json +0 -0
  37. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/files/stix2arango/non-standard-embedded-relationship.json +0 -0
  38. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/files/stix2arango/sco-original.json +0 -0
  39. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/files/stix2arango/sco-updated.json +0 -0
  40. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/files/stix2arango/sigma-rule-bundle-another.json +0 -0
  41. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/files/stix2arango/sigma-rule-bundle-condensed-original.json +0 -0
  42. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/files/stix2arango/sigma-rule-bundle-condensed-update-1.json +0 -0
  43. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/files/stix2arango/sigma-rule-bundle-condensed-update-2.json +0 -0
  44. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/files/stix2arango/sigma-rule-bundle-yet-another.json +0 -0
  45. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/files/stix2arango/sigma-rule-bundle.json +0 -0
  46. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/files/stix2arango/smo-embedded-ref-1.json +0 -0
  47. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/files/stix2arango/smo-embedded-ref-2.json +0 -0
  48. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/files/stix2arango/smo-original.json +0 -0
  49. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/files/stix2arango/smo-updated-2.json +0 -0
  50. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/files/stix2arango/smo-updated.json +0 -0
  51. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/files/stix2arango/source-object-does-not-exist.json +0 -0
  52. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/files/stix2arango/sro-original.json +0 -0
  53. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/files/stix2arango/sro-updated.json +0 -0
  54. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/files/stix2arango/target-object-does-not-exist.json +0 -0
  55. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/files/stix2arango/update_with_diff_modified_times_1.json +0 -0
  56. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/files/stix2arango/update_with_diff_modified_times_2.json +0 -0
  57. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/requirements.txt +0 -0
  58. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/src/full_tests/__init__.py +0 -0
  59. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/src/full_tests/base_test.py +0 -0
  60. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/src/full_tests/test_00-basic-import-logic-with-embedded.py +0 -0
  61. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/src/full_tests/test_01-basic-import-no-embedded.py +0 -0
  62. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/src/full_tests/test_02-basic-import-no-stix2arango_note.py +0 -0
  63. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/src/full_tests/test_03-import-with-no-update-detected.py +0 -0
  64. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/src/full_tests/test_04-update-detected-because-of-stix2arango-note.py +0 -0
  65. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/src/full_tests/test_05-update-detected-because-of-modified-time-change.py +0 -0
  66. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/src/full_tests/test_06-update-detected-because-of-modified-time-change-not-in-order.py +0 -0
  67. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/src/full_tests/test_07-test-default-imported-objects.py +0 -0
  68. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/src/full_tests/test_08-duplicate-objects-in-bundle-all-identical.py +0 -0
  69. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/src/full_tests/test_09-duplicate-objects-but-diff-times-in-bundle.py +0 -0
  70. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/src/full_tests/test_10-updating-object-no-modified-time.py +0 -0
  71. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/src/full_tests/test_11-custom-sdos.py +0 -0
  72. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/src/full_tests/test_12-custom-scos.py +0 -0
  73. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/src/full_tests/test_13-updating-smos.py +0 -0
  74. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/src/full_tests/test_14-non-standard-embedded-relationship.py +0 -0
  75. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/src/full_tests/test_15-testing-when-sro-target-not-in-collection.py +0 -0
  76. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/src/full_tests/test_16-testing-when-sro-source-not-in-collection.py +0 -0
  77. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/src/full_tests/test_17-testing-update-of-embedded-refs.py +0 -0
  78. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/src/full_tests/test_18-testing-nested-embedded-ref.py +0 -0
  79. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/src/full_tests/test_19_update_with_diff_created_times.py +0 -0
  80. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/src/full_tests/test_20-embedded-sro-update-for-sdo.py +0 -0
  81. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/src/full_tests/test_21-embedded-sro-update-for-sco.py +0 -0
  82. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/src/full_tests/test_22-embedded-sro-update-for-smo.py +0 -0
  83. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/src/full_tests/test_23-embedded-sro-removed.py +0 -0
  84. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/src/full_tests/test_24-test-hidden-properties.py +0 -0
  85. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/src/full_tests/test_25-ignore-embedded-rels-smo.py +0 -0
  86. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/src/full_tests/test_26-ignore-embedded-rels-sro.py +0 -0
  87. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/src/test_bundle_loader.py +0 -0
  88. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/src/test_stix2arango.py +0 -0
  89. {stix2arango-1.0.3 → stix2arango-1.1.0}/tests/tests.env +0 -0
  90. {stix2arango-1.0.3 → stix2arango-1.1.0}/utilities/arango_cti_processor/README.md +0 -0
  91. {stix2arango-1.0.3 → stix2arango-1.1.0}/utilities/arango_cti_processor/insert_archive_atlas.py +0 -0
  92. {stix2arango-1.0.3 → stix2arango-1.1.0}/utilities/arango_cti_processor/insert_archive_attack_enterprise.py +0 -0
  93. {stix2arango-1.0.3 → stix2arango-1.1.0}/utilities/arango_cti_processor/insert_archive_attack_ics.py +0 -0
  94. {stix2arango-1.0.3 → stix2arango-1.1.0}/utilities/arango_cti_processor/insert_archive_attack_mobile.py +0 -0
  95. {stix2arango-1.0.3 → stix2arango-1.1.0}/utilities/arango_cti_processor/insert_archive_capec.py +0 -0
  96. {stix2arango-1.0.3 → stix2arango-1.1.0}/utilities/arango_cti_processor/insert_archive_cwe.py +0 -0
  97. {stix2arango-1.0.3 → stix2arango-1.1.0}/utilities/arango_cti_processor/insert_archive_disarm.py +0 -0
  98. {stix2arango-1.0.3 → stix2arango-1.1.0}/utilities/arango_cti_processor/insert_archive_locations.py +0 -0
  99. {stix2arango-1.0.3 → stix2arango-1.1.0}/utilities/arango_cti_processor/insert_archive_sigma_rules.py +0 -0
  100. {stix2arango-1.0.3 → stix2arango-1.1.0}/utilities/arango_cti_processor/insert_archive_tlp.py +0 -0
  101. {stix2arango-1.0.3 → stix2arango-1.1.0}/utilities/arango_cti_processor/insert_archive_yara_rules.py +0 -0
  102. {stix2arango-1.0.3 → stix2arango-1.1.0}/utilities/arango_cve_processor/README.md +0 -0
  103. {stix2arango-1.0.3 → stix2arango-1.1.0}/utilities/arango_cve_processor/insert_archive_cve.py +0 -0
  104. {stix2arango-1.0.3 → stix2arango-1.1.0}/utilities/arango_cve_processor/manager.py +0 -0
  105. {stix2arango-1.0.3 → stix2arango-1.1.0}/utilities/stix2arango/add_ref_types.py +0 -0
  106. {stix2arango-1.0.3 → stix2arango-1.1.0}/utilities/stix2arango/update_taxii_index_with_date_transform.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: stix2arango
3
- Version: 1.0.3
3
+ Version: 1.1.0
4
4
  Summary: stix2arango is a command line tool that takes a group of STIX 2.1 objects in a bundle and inserts them into ArangoDB. It can also handle updates to existing objects in ArangoDB imported in a bundle.
5
5
  Project-URL: Homepage, https://github.com/muchdogesec/stix2arango
6
6
  Project-URL: Issues, https://github.com/muchdogesec/stix2arango/issues
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "stix2arango"
7
- version = "1.0.3"
7
+ version = "1.1.0"
8
8
  authors = [
9
9
  { name = "dogesec" }
10
10
  ]
@@ -220,7 +220,8 @@ class ArangoDBService:
220
220
  )
221
221
  out = [dict(zip(('id', '_key', 'modified', '_record_modified', '_is_latest', '_id'), obj_tuple)) for obj_tuple in out]
222
222
  annotated, deprecated = annotate_versions(out)
223
- self.db.collection(collection_name).update_many(annotated, sync=True, keep_none=False)
223
+ for chunk in utils.chunked(annotated, 10_000):
224
+ self.db.collection(collection_name).update_many(chunk, sync=True, keep_none=False)
224
225
  return deprecated
225
226
 
226
227
 
@@ -297,8 +298,9 @@ class ArangoDBService:
297
298
  @contextlib.contextmanager
298
299
  def transactional(self, write=None, exclusive=None, sync=True):
299
300
  original_db = self.db
300
- transactional_db = self.db.begin_transaction(allow_implicit=True, write=write, exclusive=exclusive, sync=sync)
301
+ transactional_db = self.db.begin_transaction(allow_implicit=True, write=write, exclusive=exclusive, sync=sync, lock_timeout=300)
301
302
  try:
303
+ logging.info(f"entering transaction: {transactional_db.transaction_status()}")
302
304
  self.db = transactional_db
303
305
  yield self
304
306
  transactional_db.commit_transaction()
@@ -306,4 +308,5 @@ class ArangoDBService:
306
308
  transactional_db.abort_transaction()
307
309
  raise
308
310
  finally:
311
+ logging.info(f"exiting transaction: {transactional_db.transaction_status()}")
309
312
  self.db = original_db
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