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.
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/PKG-INFO +1 -1
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/pyproject.toml +4 -1
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/events.py +13 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/galaxies.py +9 -14
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/galaxy_common.py +10 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/commandline_tool/main.py +13 -4
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/config.py +11 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/mixins.py +9 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/galaxy.py +15 -2
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/fixtures.py +26 -2
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/galaxy_generator.py +8 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/workflows/execution.py +4 -3
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp_lib.egg-info/PKG-INFO +1 -1
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp_lib.egg-info/SOURCES.txt +1 -0
- mmisp_lib-0.7.5/src/mmisp_lib.egg-info/entry_points.txt +2 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/LICENSE +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/README.md +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/setup.cfg +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/__init__.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/attributes.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/auth_keys.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/authentication.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/common.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/feeds.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/galaxy_clusters.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/jobs.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/logs.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/noticelists.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/objects.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/organisations.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/py.typed +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/responses/__init__.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/responses/check_graph_response.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/responses/standard_status_response.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/roles.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/server.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/servers.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/shadow_attribute.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/sharing_groups.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/sightings.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/statistics.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/tags.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/taxonomies.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/user_settings.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/users.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/warninglists.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/workflows.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/commandline_tool/__init__.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/commandline_tool/organisation.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/commandline_tool/py.typed +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/commandline_tool/setup.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/commandline_tool/user.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/__init__.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/additional_properties.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/all_models.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/database.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/__init__.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/admin_setting.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/attribute.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/auth_key.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/blocklist.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/correlation.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/event.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/feed.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/galaxy_cluster.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/identity_provider.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/log.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/noticelist.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/object.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/organisation.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/post.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/role.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/server.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/shadow_attribute.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/sharing_group.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/sighting.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/tag.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/taxonomy.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/threat_level.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/user.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/user_setting.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/warninglist.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/workflow.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/models/workflow_blueprint.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/mypy.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/print_changes.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/py.typed +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/db/uuid_type.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/lib/__init__.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/lib/actions.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/lib/attribute_search_filter.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/lib/attributes.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/lib/distribution.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/lib/fallbacks.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/lib/galaxies.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/lib/galaxy_clusters.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/lib/logger.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/lib/logging.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/lib/permissions.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/lib/py.typed +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/lib/serialisation_helper.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/lib/uuid.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/plugins/__init__.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/plugins/enrichment/__init__.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/plugins/enrichment/data.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/plugins/enrichment/enrichment_plugin.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/plugins/exceptions.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/plugins/models/__init__.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/plugins/models/attribute.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/plugins/plugin_info.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/plugins/plugin_type.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/plugins/py.typed +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/__init__.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/compatibility_helpers.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/attribute_generator.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/feed_generator.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/attribute_generator.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/auth_key_generator.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/correlation_exclusions_generator.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/correlation_value_generator.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/default_correlation_generator.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/event_generator.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/identity_provider_generator.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/noticelist_generator.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/object_generator.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/organisation_generator.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/over_correlating_value_generator.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/post_generator.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/role_generator.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/server_generator.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/shadow_attribute_generator.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/sharing_group_generator.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/sighting_generator.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/tag_generator.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/taxonomy_generator.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/user_generator.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/user_setting_generator.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/warninglist_generator.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/workflow_generator.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/object_generator.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/sighting_generator.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/tag_generator.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/taxonomies_generator.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/util/__init__.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/util/crypto.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/util/models.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/util/partial.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/util/py.typed +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/util/uuid.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/workflows/__init__.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/workflows/fastapi.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/workflows/graph.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/workflows/input.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/workflows/legacy.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/workflows/misp_core_format.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/workflows/modules.py +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/workflows/py.typed +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp_lib.egg-info/dependency_links.txt +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp_lib.egg-info/requires.txt +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp_lib.egg-info/top_level.txt +0 -0
- {mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/tests/test_commandline_tool.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
[project]
|
2
2
|
name = "mmisp-lib"
|
3
|
-
version = "0.7.
|
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
|
-
|
15
|
-
|
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
|
-
|
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
|
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 =
|
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)
|
{mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/galaxy_generator.py
RENAMED
@@ -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
|
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
|
116
|
+
if local_org_id is None:
|
116
117
|
raise ValueError("No local_org_id found")
|
117
118
|
|
118
119
|
return User(
|
@@ -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
|
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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/api_schemas/responses/standard_status_response.py
RENAMED
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
{mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/event_generator.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/object_generator.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/post_generator.py
RENAMED
File without changes
|
{mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/role_generator.py
RENAMED
File without changes
|
{mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/server_generator.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/tag_generator.py
RENAMED
File without changes
|
File without changes
|
{mmisp_lib-0.7.3 → mmisp_lib-0.7.5}/src/mmisp/tests/generators/model_generators/user_generator.py
RENAMED
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
|
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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|