mmisp-lib 0.7.3__tar.gz → 0.7.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.
Files changed (161) hide show
  1. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/PKG-INFO +1 -1
  2. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/pyproject.toml +4 -1
  3. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/events.py +13 -0
  4. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/galaxies.py +9 -14
  5. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/galaxy_common.py +10 -0
  6. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/commandline_tool/main.py +13 -4
  7. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/config.py +11 -0
  8. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/mixins.py +9 -0
  9. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/galaxy.py +15 -2
  10. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/fixtures.py +26 -2
  11. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/galaxy_generator.py +8 -0
  12. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/workflows/execution.py +4 -3
  13. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp_lib.egg-info/PKG-INFO +1 -1
  14. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp_lib.egg-info/SOURCES.txt +1 -0
  15. mmisp_lib-0.7.5/src/mmisp_lib.egg-info/entry_points.txt +2 -0
  16. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/LICENSE +0 -0
  17. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/README.md +0 -0
  18. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/setup.cfg +0 -0
  19. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/__init__.py +0 -0
  20. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/attributes.py +0 -0
  21. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/auth_keys.py +0 -0
  22. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/authentication.py +0 -0
  23. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/common.py +0 -0
  24. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/feeds.py +0 -0
  25. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/galaxy_clusters.py +0 -0
  26. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/jobs.py +0 -0
  27. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/logs.py +0 -0
  28. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/noticelists.py +0 -0
  29. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/objects.py +0 -0
  30. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/organisations.py +0 -0
  31. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/py.typed +0 -0
  32. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/responses/__init__.py +0 -0
  33. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/responses/check_graph_response.py +0 -0
  34. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/responses/standard_status_response.py +0 -0
  35. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/roles.py +0 -0
  36. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/server.py +0 -0
  37. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/servers.py +0 -0
  38. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/shadow_attribute.py +0 -0
  39. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/sharing_groups.py +0 -0
  40. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/sightings.py +0 -0
  41. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/statistics.py +0 -0
  42. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/tags.py +0 -0
  43. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/taxonomies.py +0 -0
  44. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/user_settings.py +0 -0
  45. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/users.py +0 -0
  46. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/warninglists.py +0 -0
  47. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/workflows.py +0 -0
  48. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/commandline_tool/__init__.py +0 -0
  49. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/commandline_tool/organisation.py +0 -0
  50. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/commandline_tool/py.typed +0 -0
  51. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/commandline_tool/setup.py +0 -0
  52. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/commandline_tool/user.py +0 -0
  53. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/__init__.py +0 -0
  54. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/additional_properties.py +0 -0
  55. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/all_models.py +0 -0
  56. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/database.py +0 -0
  57. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/__init__.py +0 -0
  58. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/admin_setting.py +0 -0
  59. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/attribute.py +0 -0
  60. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/auth_key.py +0 -0
  61. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/blocklist.py +0 -0
  62. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/correlation.py +0 -0
  63. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/event.py +0 -0
  64. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/feed.py +0 -0
  65. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/galaxy_cluster.py +0 -0
  66. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/identity_provider.py +0 -0
  67. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/log.py +0 -0
  68. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/noticelist.py +0 -0
  69. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/object.py +0 -0
  70. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/organisation.py +0 -0
  71. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/post.py +0 -0
  72. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/role.py +0 -0
  73. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/server.py +0 -0
  74. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/shadow_attribute.py +0 -0
  75. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/sharing_group.py +0 -0
  76. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/sighting.py +0 -0
  77. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/tag.py +0 -0
  78. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/taxonomy.py +0 -0
  79. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/threat_level.py +0 -0
  80. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/user.py +0 -0
  81. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/user_setting.py +0 -0
  82. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/warninglist.py +0 -0
  83. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/workflow.py +0 -0
  84. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/workflow_blueprint.py +0 -0
  85. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/mypy.py +0 -0
  86. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/print_changes.py +0 -0
  87. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/py.typed +0 -0
  88. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/uuid_type.py +0 -0
  89. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/lib/__init__.py +0 -0
  90. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/lib/actions.py +0 -0
  91. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/lib/attribute_search_filter.py +0 -0
  92. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/lib/attributes.py +0 -0
  93. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/lib/distribution.py +0 -0
  94. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/lib/fallbacks.py +0 -0
  95. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/lib/galaxies.py +0 -0
  96. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/lib/galaxy_clusters.py +0 -0
  97. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/lib/logger.py +0 -0
  98. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/lib/logging.py +0 -0
  99. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/lib/permissions.py +0 -0
  100. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/lib/py.typed +0 -0
  101. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/lib/serialisation_helper.py +0 -0
  102. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/lib/uuid.py +0 -0
  103. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/plugins/__init__.py +0 -0
  104. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/plugins/enrichment/__init__.py +0 -0
  105. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/plugins/enrichment/data.py +0 -0
  106. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/plugins/enrichment/enrichment_plugin.py +0 -0
  107. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/plugins/exceptions.py +0 -0
  108. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/plugins/models/__init__.py +0 -0
  109. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/plugins/models/attribute.py +0 -0
  110. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/plugins/plugin_info.py +0 -0
  111. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/plugins/plugin_type.py +0 -0
  112. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/plugins/py.typed +0 -0
  113. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/__init__.py +0 -0
  114. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/compatibility_helpers.py +0 -0
  115. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/attribute_generator.py +0 -0
  116. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/feed_generator.py +0 -0
  117. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/attribute_generator.py +0 -0
  118. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/auth_key_generator.py +0 -0
  119. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/correlation_exclusions_generator.py +0 -0
  120. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/correlation_value_generator.py +0 -0
  121. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/default_correlation_generator.py +0 -0
  122. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/event_generator.py +0 -0
  123. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/identity_provider_generator.py +0 -0
  124. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/noticelist_generator.py +0 -0
  125. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/object_generator.py +0 -0
  126. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/organisation_generator.py +0 -0
  127. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/over_correlating_value_generator.py +0 -0
  128. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/post_generator.py +0 -0
  129. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/role_generator.py +0 -0
  130. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/server_generator.py +0 -0
  131. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/shadow_attribute_generator.py +0 -0
  132. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/sharing_group_generator.py +0 -0
  133. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/sighting_generator.py +0 -0
  134. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/tag_generator.py +0 -0
  135. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/taxonomy_generator.py +0 -0
  136. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/user_generator.py +0 -0
  137. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/user_setting_generator.py +0 -0
  138. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/warninglist_generator.py +0 -0
  139. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/workflow_generator.py +0 -0
  140. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/object_generator.py +0 -0
  141. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/sighting_generator.py +0 -0
  142. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/tag_generator.py +0 -0
  143. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/taxonomies_generator.py +0 -0
  144. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/util/__init__.py +0 -0
  145. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/util/crypto.py +0 -0
  146. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/util/models.py +0 -0
  147. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/util/partial.py +0 -0
  148. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/util/py.typed +0 -0
  149. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/util/uuid.py +0 -0
  150. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/workflows/__init__.py +0 -0
  151. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/workflows/fastapi.py +0 -0
  152. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/workflows/graph.py +0 -0
  153. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/workflows/input.py +0 -0
  154. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/workflows/legacy.py +0 -0
  155. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/workflows/misp_core_format.py +0 -0
  156. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/workflows/modules.py +0 -0
  157. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/workflows/py.typed +0 -0
  158. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp_lib.egg-info/dependency_links.txt +0 -0
  159. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp_lib.egg-info/requires.txt +0 -0
  160. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp_lib.egg-info/top_level.txt +0 -0
  161. {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/tests/test_commandline_tool.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mmisp-lib
3
- Version: 0.7.3
3
+ Version: 0.7.5
4
4
  Requires-Python: >=3.11.0
5
5
  Description-Content-Type: text/markdown
6
6
  License-File: LICENSE
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mmisp-lib"
3
- version = "0.7.3"
3
+ version = "0.7.5"
4
4
  description = ""
5
5
  authors = []
6
6
  readme = "README.md"
@@ -45,6 +45,9 @@ dev = [
45
45
  "build",
46
46
  ]
47
47
 
48
+ [project.scripts]
49
+ mmisp-db = "mmisp.commandline_tool.main:main"
50
+
48
51
  [tool.setuptools.package-data]
49
52
  "mmisp.lib" = ["py.typed"]
50
53
  "mmisp.api_schemas" = ["py.typed"]
@@ -4,6 +4,7 @@ from typing import Any, Type
4
4
  from pydantic import BaseModel, PositiveInt, conint, validator
5
5
 
6
6
  from mmisp.api_schemas.organisations import Organisation
7
+ from mmisp.lib.distribution import DistributionLevels
7
8
 
8
9
 
9
10
  class GetAllEventsGalaxyClusterGalaxy(BaseModel):
@@ -18,6 +19,12 @@ class GetAllEventsGalaxyClusterGalaxy(BaseModel):
18
19
  enabled: bool
19
20
  local_only: bool
20
21
  kill_chain_order: str | None = None
22
+ created: datetime | str
23
+ modified: datetime | str
24
+ org_id: int
25
+ orgc_id: int
26
+ default: bool
27
+ distribution: DistributionLevels
21
28
 
22
29
 
23
30
  class AddEditGetEventGalaxyClusterMeta(BaseModel):
@@ -167,6 +174,12 @@ class AddEditGetEventGalaxy(BaseModel):
167
174
  enabled: bool
168
175
  local_only: bool
169
176
  kill_chain_order: str | None = None
177
+ created: datetime | str
178
+ modified: datetime | str
179
+ org_id: int
180
+ orgc_id: int
181
+ default: bool
182
+ distribution: DistributionLevels
170
183
  GalaxyCluster: list[AddEditGetEventGalaxyCluster] = []
171
184
 
172
185
 
@@ -1,10 +1,13 @@
1
+ from datetime import datetime
1
2
  from typing import Any, List
2
3
 
3
4
  from pydantic import BaseModel
4
5
 
5
6
  from mmisp.api_schemas.common import TagAttributesResponse
6
7
  from mmisp.api_schemas.events import AddEditGetEventGalaxyClusterRelation, GetAllEventsGalaxyClusterGalaxy
8
+ from mmisp.api_schemas.galaxy_common import GetAllSearchGalaxiesAttributes
7
9
  from mmisp.api_schemas.organisations import Organisation
10
+ from mmisp.lib.distribution import DistributionLevels
8
11
 
9
12
 
10
13
  class SearchGalaxiesBody(BaseModel):
@@ -72,20 +75,6 @@ class ImportGalaxyBody(BaseModel):
72
75
  orm_mode = True
73
76
 
74
77
 
75
- class GetAllSearchGalaxiesAttributes(BaseModel):
76
- id: int
77
- uuid: str
78
- name: str
79
- type: str
80
- description: str
81
- version: str
82
- icon: str
83
- namespace: str
84
- kill_chain_order: str | None = None
85
- enabled: bool
86
- local_only: bool
87
-
88
-
89
78
  class GetAllSearchGalaxiesResponse(BaseModel):
90
79
  Galaxy: GetAllSearchGalaxiesAttributes
91
80
 
@@ -111,6 +100,12 @@ class GalaxySchema(BaseModel):
111
100
  icon: str
112
101
  namespace: str
113
102
  kill_chain_order: List[str]
103
+ created: datetime | str
104
+ modified: datetime | str
105
+ org_id: int
106
+ orgc_id: int
107
+ default: bool
108
+ distribution: DistributionLevels
114
109
 
115
110
  class Config:
116
111
  orm_mode = True
@@ -1,5 +1,9 @@
1
+ from datetime import datetime
2
+
1
3
  from pydantic import BaseModel
2
4
 
5
+ from mmisp.lib.distribution import DistributionLevels
6
+
3
7
 
4
8
  class GetAllSearchGalaxiesAttributes(BaseModel):
5
9
  id: int
@@ -13,3 +17,9 @@ class GetAllSearchGalaxiesAttributes(BaseModel):
13
17
  kill_chain_order: str | None = None
14
18
  enabled: bool
15
19
  local_only: bool
20
+ created: datetime | str
21
+ modified: datetime | str
22
+ org_id: int
23
+ orgc_id: int
24
+ default: bool
25
+ distribution: DistributionLevels
@@ -1,5 +1,6 @@
1
1
  import fire
2
2
 
3
+ import mmisp.db.all_models # noqa
3
4
  from mmisp.commandline_tool import organisation, setup, user
4
5
  from mmisp.db.database import sessionmanager
5
6
 
@@ -7,12 +8,15 @@ from mmisp.db.database import sessionmanager
7
8
  # and organisations and changing their details.
8
9
 
9
10
 
10
- async def setup_db() -> str:
11
+ async def setup_db(create_init_values: bool = True) -> str:
11
12
  """setup"""
12
13
  sessionmanager.init()
13
14
  await sessionmanager.create_all()
14
- async with sessionmanager.session() as session:
15
- await setup.setup(session)
15
+
16
+ if create_init_values:
17
+ async with sessionmanager.session() as session:
18
+ await setup.setup(session)
19
+
16
20
  await sessionmanager.close()
17
21
  return "Database setup"
18
22
 
@@ -163,7 +167,8 @@ async def delete_user(email: str) -> str:
163
167
  return "User deleted with email: {} ".format(email)
164
168
 
165
169
 
166
- if __name__ == "__main__":
170
+ def main() -> None:
171
+ """Main entrypoint for mmisp-db"""
167
172
  fire.Fire(
168
173
  {
169
174
  "setup": setup_db,
@@ -177,3 +182,7 @@ if __name__ == "__main__":
177
182
  "delete-user": delete_user,
178
183
  }
179
184
  )
185
+
186
+
187
+ if __name__ == "__main__":
188
+ main()
@@ -1,3 +1,14 @@
1
+ """This module handels the parameters to connect to the database.
2
+
3
+ The following environment variables are supported:
4
+
5
+ - DATABASE_URL
6
+ - DEBUG
7
+ - DB_RETRY: Time to wait before trying new connection attempt. (Default 5)
8
+ - DB_MAX_RETRIES: Limit for retry attempts. (Default 100)
9
+
10
+ """
11
+
1
12
  import logging
2
13
  from dataclasses import dataclass
3
14
  from os import getenv
@@ -6,6 +6,15 @@ from sqlalchemy.ext.hybrid import hybrid_property
6
6
 
7
7
  class DictMixin:
8
8
  def asdict(self: Self, omit: set[str] | None = None) -> dict:
9
+ """
10
+ Return the object as dictionary.
11
+ Note that attributes starting with `_` are always omited.
12
+ Omit keys present in *omit*.
13
+
14
+ Args:
15
+ omit: Set of keys to be omitted in the dictionary.
16
+ If none, all attributes are returned.
17
+ """
9
18
  if omit is None:
10
19
  omit = set()
11
20
 
@@ -1,13 +1,16 @@
1
- from sqlalchemy import Boolean, Integer, String, Text
1
+ from datetime import datetime
2
+
3
+ from sqlalchemy import Boolean, DateTime, Integer, String, Text
2
4
  from sqlalchemy.orm import relationship
3
5
 
6
+ from mmisp.db.mixins import DictMixin, UpdateMixin
4
7
  from mmisp.db.mypy import Mapped, mapped_column
5
8
  from mmisp.lib.uuid import uuid
6
9
 
7
10
  from ..database import Base
8
11
 
9
12
 
10
- class Galaxy(Base):
13
+ class Galaxy(Base, DictMixin, UpdateMixin):
11
14
  __tablename__ = "galaxies"
12
15
 
13
16
  id: Mapped[int] = mapped_column(Integer, primary_key=True, nullable=False)
@@ -23,6 +26,16 @@ class Galaxy(Base):
23
26
  enabled: Mapped[bool] = mapped_column(Boolean, nullable=False, default=True)
24
27
  local_only: Mapped[bool] = mapped_column(Boolean, default=False)
25
28
 
29
+ default: Mapped[bool] = mapped_column(Boolean, default=False)
30
+
31
+ org_id: Mapped[int] = mapped_column(Integer, nullable=False)
32
+ orgc_id: Mapped[int] = mapped_column(Integer, nullable=False)
33
+
34
+ created: Mapped[datetime] = mapped_column(DateTime, nullable=False)
35
+ modified: Mapped[datetime] = mapped_column(DateTime, nullable=False)
36
+
37
+ distribution: Mapped[int] = mapped_column(Integer, nullable=False)
38
+
26
39
  galaxy_clusters = relationship(
27
40
  "GalaxyCluster",
28
41
  back_populates="galaxy",
@@ -1,4 +1,5 @@
1
1
  import asyncio
2
+ from datetime import datetime
2
3
 
3
4
  import pytest
4
5
  import pytest_asyncio
@@ -11,6 +12,7 @@ from mmisp.db.models.attribute import Attribute
11
12
  from mmisp.db.models.galaxy import Galaxy
12
13
  from mmisp.db.models.galaxy_cluster import GalaxyCluster, GalaxyElement
13
14
  from mmisp.db.models.tag import Tag
15
+ from mmisp.lib.distribution import DistributionLevels
14
16
  from mmisp.lib.galaxies import galaxy_tag_name
15
17
  from mmisp.util.crypto import hash_secret
16
18
  from mmisp.util.uuid import uuid
@@ -28,7 +30,6 @@ from .generators.model_generators.correlation_value_generator import (
28
30
  )
29
31
  from .generators.model_generators.default_correlation_generator import generate_default_correlation
30
32
  from .generators.model_generators.event_generator import generate_event
31
- from .generators.model_generators.galaxy_generator import generate_galaxy
32
33
  from .generators.model_generators.object_generator import generate_object
33
34
  from .generators.model_generators.organisation_generator import generate_organisation
34
35
  from .generators.model_generators.over_correlating_value_generator import (
@@ -135,6 +136,8 @@ async def instance_two_owner_org(db):
135
136
 
136
137
  @pytest_asyncio.fixture
137
138
  async def site_admin_user(db, site_admin_role, instance_owner_org):
139
+ assert instance_owner_org.local
140
+
138
141
  user = generate_user()
139
142
  user.org_id = instance_owner_org.id
140
143
  user.server_id = 0
@@ -494,7 +497,18 @@ async def server(db, instance_owner_org):
494
497
 
495
498
  @pytest_asyncio.fixture
496
499
  async def galaxy(db):
497
- galaxy = generate_galaxy()
500
+ galaxy = Galaxy(
501
+ name="test galaxy",
502
+ type="test type",
503
+ description="test",
504
+ version="version",
505
+ kill_chain_order="test kill_chain_order",
506
+ org_id=0,
507
+ orgc_id=0,
508
+ distribution=DistributionLevels.ALL_COMMUNITIES,
509
+ created=datetime.now(),
510
+ modified=datetime.now(),
511
+ )
498
512
 
499
513
  db.add(galaxy)
500
514
  await db.commit()
@@ -565,6 +579,11 @@ async def test_default_galaxy(db, galaxy_default_cluster_one_uuid, galaxy_defaul
565
579
  uuid=uuid(),
566
580
  enabled=True,
567
581
  local_only=False,
582
+ org_id=0,
583
+ orgc_id=0,
584
+ distribution=DistributionLevels.ALL_COMMUNITIES,
585
+ created=datetime.now(),
586
+ modified=datetime.now(),
568
587
  )
569
588
 
570
589
  db.add(galaxy)
@@ -677,6 +696,11 @@ async def test_galaxy(db, instance_owner_org, galaxy_cluster_one_uuid, galaxy_cl
677
696
  uuid=uuid(),
678
697
  enabled=True,
679
698
  local_only=False,
699
+ org_id=instance_owner_org.id,
700
+ orgc_id=instance_owner_org.id,
701
+ distribution=DistributionLevels.ALL_COMMUNITIES,
702
+ created=datetime.now(),
703
+ modified=datetime.now(),
680
704
  )
681
705
 
682
706
  db.add(galaxy)
@@ -1,4 +1,7 @@
1
+ from datetime import datetime
2
+
1
3
  from mmisp.db.models.galaxy import Galaxy
4
+ from mmisp.lib.distribution import DistributionLevels
2
5
 
3
6
 
4
7
  def generate_galaxy() -> Galaxy:
@@ -8,4 +11,9 @@ def generate_galaxy() -> Galaxy:
8
11
  description="test",
9
12
  version="version",
10
13
  kill_chain_order="test kill_chain_order",
14
+ org_id=0,
15
+ orgc_id=0,
16
+ distribution=DistributionLevels.ALL_COMMUNITIES,
17
+ created=datetime.now(),
18
+ modified=datetime.now(),
11
19
  )
@@ -8,6 +8,7 @@ import sqlalchemy as sa
8
8
  from jinja2 import BaseLoader, Environment
9
9
  from sqlalchemy import select
10
10
  from sqlalchemy.ext.asyncio import AsyncSession
11
+ from sqlalchemy.sql.expression import true
11
12
 
12
13
  from ..db.models.admin_setting import AdminSetting
13
14
  from ..db.models.organisation import Organisation
@@ -109,10 +110,10 @@ async def walk_nodes(
109
110
 
110
111
  async def create_virtual_root_user(db: AsyncSession) -> User:
111
112
  god_mode_role_id = (await db.execute(select(Role.id).filter(Role.perm_site_admin == 1))).scalars().first()
112
- local_org_id = (await db.execute(select(Organisation.id).filter(Organisation.local))).scalars().first()
113
- if not god_mode_role_id:
113
+ local_org_id = (await db.execute(select(Organisation.id).filter(Organisation.local == true()))).scalars().first()
114
+ if god_mode_role_id is None:
114
115
  raise ValueError("No site admin role found")
115
- if not local_org_id:
116
+ if local_org_id is None:
116
117
  raise ValueError("No local_org_id found")
117
118
 
118
119
  return User(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mmisp-lib
3
- Version: 0.7.3
3
+ Version: 0.7.5
4
4
  Requires-Python: >=3.11.0
5
5
  Description-Content-Type: text/markdown
6
6
  License-File: LICENSE
@@ -153,6 +153,7 @@ src/mmisp/workflows/py.typed
153
153
  src/mmisp_lib.egg-info/PKG-INFO
154
154
  src/mmisp_lib.egg-info/SOURCES.txt
155
155
  src/mmisp_lib.egg-info/dependency_links.txt
156
+ src/mmisp_lib.egg-info/entry_points.txt
156
157
  src/mmisp_lib.egg-info/requires.txt
157
158
  src/mmisp_lib.egg-info/top_level.txt
158
159
  tests/test_commandline_tool.py
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ mmisp-db = mmisp.commandline_tool.main:main
File without changes
File without changes
File without changes