mmisp-lib 0.1.5__tar.gz → 0.1.6__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.1.5 → mmisp_lib-0.1.6}/PKG-INFO +1 -1
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/pyproject.toml +1 -1
- mmisp_lib-0.1.6/src/mmisp/db/all_models.py +41 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/db/config.py +2 -1
- mmisp_lib-0.1.6/src/mmisp/db/database.py +89 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/db/models/object.py +3 -2
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp_lib.egg-info/PKG-INFO +1 -1
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp_lib.egg-info/SOURCES.txt +1 -0
- mmisp_lib-0.1.5/src/mmisp/db/database.py +0 -42
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/LICENSE +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/README.md +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/setup.cfg +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/__init__.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/attributes/__init__.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/attributes/add_attribute_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/attributes/add_attribute_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/attributes/add_remove_tag_attribute_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/attributes/delete_attribute_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/attributes/delete_selected_attribute_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/attributes/delete_selected_attribute_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/attributes/edit_attribute_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/attributes/edit_attributes_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/attributes/get_all_attributes_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/attributes/get_attribute_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/attributes/get_attribute_statistics_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/attributes/get_describe_types_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/attributes/restore_attribute_reponse.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/attributes/search_attributes_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/attributes/search_attributes_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/auth_keys/__init__.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/auth_keys/add_auth_key_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/auth_keys/add_auth_key_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/auth_keys/edit_auth_key_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/auth_keys/edit_auth_key_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/auth_keys/search_auth_keys_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/auth_keys/search_get_all_auth_keys_users_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/auth_keys/view_auth_key_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/authentication/__init__.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/authentication/exchange_token_login_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/authentication/password_login_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/authentication/start_login_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/authentication/start_login_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/authentication/token_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/events/FreeTextImportWorkerBody.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/events/__init__.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/events/add_attribute_via_free_text_import_event_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/events/add_attribute_via_free_text_import_event_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/events/add_edit_get_event_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/events/add_event_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/events/add_remove_tag_events_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/events/delete_event_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/events/edit_event_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/events/get_all_events_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/events/get_event_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/events/index_events_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/events/index_events_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/events/publish_event_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/events/search_events_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/events/search_events_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/events/unpublish_event_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/feeds/__init__.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/feeds/cache_feed_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/feeds/create_feed_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/feeds/enable_disable_feed_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/feeds/fetch_feeds_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/feeds/get_feed_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/feeds/toggle_feed_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/feeds/update_feed_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/galaxies/__init__.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/galaxies/attach_galaxy_cluster_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/galaxies/attach_galaxy_cluster_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/galaxies/delete_force_update_import_galaxy_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/galaxies/export_galaxies_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/galaxies/export_galaxies_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/galaxies/galaxy_schema.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/galaxies/get_all_search_galaxies_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/galaxies/get_galaxy_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/galaxies/import_galaxies_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/galaxies/search_galaxies_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/noticelists/__init__.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/noticelists/get_all_noticelist_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/noticelists/get_noticelist_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/objects/__init__.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/objects/create_object_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/objects/get_object_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/objects/search_objects_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/organisations/__init__.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/organisations/organisation.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/roles/__init__.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/roles/role.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/sharing_groups/__init__.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/sharing_groups/add_org_to_sharing_group_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/sharing_groups/add_org_to_sharing_group_legacy_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/sharing_groups/add_server_to_sharing_group_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/sharing_groups/add_server_to_sharing_group_legacy_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/sharing_groups/create_sharing_group_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/sharing_groups/create_sharing_group_legacy_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/sharing_groups/create_sharing_group_legacy_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/sharing_groups/delete_sharing_group_legacy_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/sharing_groups/get_all_sharing_groups_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/sharing_groups/get_sharing_group_info_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/sharing_groups/sharing_group.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/sharing_groups/sharing_group_org.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/sharing_groups/sharing_group_server.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/sharing_groups/update_sharing_group_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/sharing_groups/update_sharing_group_legacy_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/sharing_groups/view_update_sharing_group_legacy_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/sightings/__init__.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/sightings/create_sighting_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/sightings/get_sighting_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/standard_status_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/tags/__init__.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/tags/create_tag_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/tags/delete_tag_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/tags/get_tag_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/tags/search_tags_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/tags/update_tag_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/taxonomies/__init__.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/taxonomies/export_taxonomies_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/taxonomies/get_taxonomy_by_id_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/taxonomies/get_taxonomy_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/taxonomies/get_taxonomy_tags_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/user_settings/__init__.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/user_settings/get_uid_user_setting_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/user_settings/get_user_settings_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/user_settings/search_user_setting_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/user_settings/search_user_setting_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/user_settings/set_user_setting_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/user_settings/set_user_setting_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/user_settings/view_user_setting_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/users/__init__.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/users/user.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/users/users_view_me_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/warninglists/__init__.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/warninglists/check_value_warninglists_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/warninglists/check_value_warninglists_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/warninglists/create_warninglist_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/warninglists/delete_warninglist_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/warninglists/get_selected_all_warninglists_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/warninglists/get_selected_warninglists_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/warninglists/toggle_enable_warninglists_body.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/warninglists/toggle_enable_warninglists_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/warninglists/warninglist_response.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/db/__init__.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/db/mixins.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/db/models/__init__.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/db/models/attribute.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/db/models/auth_key.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/db/models/event.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/db/models/feed.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/db/models/galaxy.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/db/models/galaxy_cluster.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/db/models/identity_provider.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/db/models/noticelist.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/db/models/organisation.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/db/models/role.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/db/models/server.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/db/models/sharing_group.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/db/models/sighting.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/db/models/tag.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/db/models/taxonomy.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/db/models/user.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/db/models/user_setting.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/db/models/warninglist.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/db/print_changes.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/lib/__init__.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/lib/attributes.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/lib/permissions.py +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp_lib.egg-info/dependency_links.txt +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp_lib.egg-info/requires.txt +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp_lib.egg-info/top_level.txt +0 -0
- {mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/tests/test_dummy.py +0 -0
@@ -0,0 +1,41 @@
|
|
1
|
+
from mmisp.db.models import ( # noqa: F401
|
2
|
+
attribute,
|
3
|
+
auth_key,
|
4
|
+
event,
|
5
|
+
feed,
|
6
|
+
galaxy,
|
7
|
+
identity_provider,
|
8
|
+
noticelist,
|
9
|
+
object,
|
10
|
+
organisation,
|
11
|
+
role,
|
12
|
+
server,
|
13
|
+
sharing_group,
|
14
|
+
sighting,
|
15
|
+
tag,
|
16
|
+
taxonomy,
|
17
|
+
user,
|
18
|
+
user_setting,
|
19
|
+
warninglist,
|
20
|
+
)
|
21
|
+
|
22
|
+
__all__ = [
|
23
|
+
attribute,
|
24
|
+
auth_key,
|
25
|
+
event,
|
26
|
+
feed,
|
27
|
+
galaxy,
|
28
|
+
identity_provider,
|
29
|
+
noticelist,
|
30
|
+
object,
|
31
|
+
organisation,
|
32
|
+
role,
|
33
|
+
server,
|
34
|
+
sharing_group,
|
35
|
+
sighting,
|
36
|
+
tag,
|
37
|
+
taxonomy,
|
38
|
+
user,
|
39
|
+
user_setting,
|
40
|
+
warninglist,
|
41
|
+
]
|
@@ -7,9 +7,10 @@ from dotenv import load_dotenv
|
|
7
7
|
@dataclass
|
8
8
|
class DatabaseConfig:
|
9
9
|
DATABASE_URL: str
|
10
|
+
DEBUG: bool
|
10
11
|
|
11
12
|
|
12
13
|
load_dotenv(getenv("ENV_FILE", ".env"))
|
13
14
|
|
14
15
|
|
15
|
-
config: DatabaseConfig = DatabaseConfig(DATABASE_URL=getenv("DATABASE_URL", ""))
|
16
|
+
config: DatabaseConfig = DatabaseConfig(DATABASE_URL=getenv("DATABASE_URL", ""), DEBUG=bool(getenv("DEBUG", False)))
|
@@ -0,0 +1,89 @@
|
|
1
|
+
import contextlib
|
2
|
+
from typing import AsyncIterator, Self, TypeAlias
|
3
|
+
|
4
|
+
from sqlalchemy.engine.url import make_url
|
5
|
+
from sqlalchemy.ext.asyncio import AsyncConnection, AsyncEngine, AsyncSession, create_async_engine
|
6
|
+
from sqlalchemy.orm import declarative_base, sessionmaker
|
7
|
+
|
8
|
+
from mmisp.db.config import config
|
9
|
+
|
10
|
+
Session: TypeAlias = AsyncSession
|
11
|
+
|
12
|
+
# , poolclass=NullPool)
|
13
|
+
# async_session = sessionmaker(autoflush=False, expire_on_commit=False, class_=AsyncSession, bind=engine)
|
14
|
+
|
15
|
+
Base = declarative_base()
|
16
|
+
|
17
|
+
|
18
|
+
class DatabaseSessionManager:
|
19
|
+
def __init__(self: Self) -> None:
|
20
|
+
self._engine: AsyncEngine | None = None
|
21
|
+
self._sessionmaker: sessionmaker | None = None
|
22
|
+
|
23
|
+
self._url = make_url(config.DATABASE_URL)
|
24
|
+
|
25
|
+
def init(self: Self) -> None:
|
26
|
+
if config.DEBUG:
|
27
|
+
self._engine = create_async_engine(self._url, echo=True)
|
28
|
+
else:
|
29
|
+
self._engine = create_async_engine(self._url)
|
30
|
+
self._sessionmaker = sessionmaker(
|
31
|
+
autocommit=False, expire_on_commit=False, bind=self._engine, class_=AsyncSession
|
32
|
+
)
|
33
|
+
|
34
|
+
async def close(self: Self) -> None:
|
35
|
+
if self._engine is None:
|
36
|
+
raise Exception("DatabaseSessionManager is not initialized")
|
37
|
+
await self._engine.dispose()
|
38
|
+
self._engine = None
|
39
|
+
self._sessionmaker = None
|
40
|
+
|
41
|
+
@contextlib.asynccontextmanager
|
42
|
+
async def connect(self: Self) -> AsyncIterator[AsyncConnection]:
|
43
|
+
if self._engine is None:
|
44
|
+
raise Exception("DatabaseSessionManager is not initialized")
|
45
|
+
|
46
|
+
async with self._engine.begin() as connection:
|
47
|
+
try:
|
48
|
+
yield connection
|
49
|
+
except Exception:
|
50
|
+
await connection.rollback()
|
51
|
+
raise
|
52
|
+
|
53
|
+
@contextlib.asynccontextmanager
|
54
|
+
async def session(self: Self) -> AsyncIterator[AsyncSession]:
|
55
|
+
if self._sessionmaker is None:
|
56
|
+
raise Exception("DatabaseSessionManager is not initialized")
|
57
|
+
|
58
|
+
session = self._sessionmaker()
|
59
|
+
try:
|
60
|
+
yield session
|
61
|
+
except Exception:
|
62
|
+
await session.rollback()
|
63
|
+
raise
|
64
|
+
finally:
|
65
|
+
await session.close()
|
66
|
+
|
67
|
+
# Used for testing
|
68
|
+
async def create_all(self: Self, engine: AsyncEngine | None = None) -> None:
|
69
|
+
if engine is None:
|
70
|
+
engine = self._engine
|
71
|
+
async with engine.begin() as conn:
|
72
|
+
await conn.run_sync(Base.metadata.create_all)
|
73
|
+
|
74
|
+
async def drop_all(self: Self, engine: AsyncEngine | None = None) -> None:
|
75
|
+
if engine is None:
|
76
|
+
engine = self._engine
|
77
|
+
await engine.run_sync(Base.metadata.drop_all)
|
78
|
+
|
79
|
+
|
80
|
+
async def get_db() -> Session:
|
81
|
+
async with sessionmanager.session() as session:
|
82
|
+
yield session
|
83
|
+
|
84
|
+
|
85
|
+
async def create_all_models() -> None:
|
86
|
+
await sessionmanager.create_all()
|
87
|
+
|
88
|
+
|
89
|
+
sessionmanager = DatabaseSessionManager()
|
@@ -1,10 +1,11 @@
|
|
1
1
|
from sqlalchemy import Boolean, Column, ForeignKey, Integer, String
|
2
2
|
|
3
3
|
from mmisp.db.database import Base
|
4
|
+
from mmisp.db.mixins import DictMixin
|
4
5
|
from mmisp.util.uuid import uuid
|
5
6
|
|
6
7
|
|
7
|
-
class Object(Base):
|
8
|
+
class Object(Base, DictMixin):
|
8
9
|
__tablename__ = "objects"
|
9
10
|
|
10
11
|
id = Column(Integer, primary_key=True, nullable=False)
|
@@ -24,7 +25,7 @@ class Object(Base):
|
|
24
25
|
last_seen = Column(Integer, index=True, default=None)
|
25
26
|
|
26
27
|
|
27
|
-
class ObjectTemplate(Base):
|
28
|
+
class ObjectTemplate(Base, DictMixin):
|
28
29
|
__tablename__ = "object_templates"
|
29
30
|
|
30
31
|
id = Column(Integer, primary_key=True, nullable=False)
|
@@ -133,6 +133,7 @@ src/mmisp/api_schemas/warninglists/toggle_enable_warninglists_body.py
|
|
133
133
|
src/mmisp/api_schemas/warninglists/toggle_enable_warninglists_response.py
|
134
134
|
src/mmisp/api_schemas/warninglists/warninglist_response.py
|
135
135
|
src/mmisp/db/__init__.py
|
136
|
+
src/mmisp/db/all_models.py
|
136
137
|
src/mmisp/db/config.py
|
137
138
|
src/mmisp/db/database.py
|
138
139
|
src/mmisp/db/mixins.py
|
@@ -1,42 +0,0 @@
|
|
1
|
-
from functools import wraps
|
2
|
-
from typing import Any, Callable, TypeAlias
|
3
|
-
|
4
|
-
from sqlalchemy.engine.url import make_url
|
5
|
-
from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine
|
6
|
-
from sqlalchemy.orm import declarative_base, sessionmaker
|
7
|
-
from sqlalchemy.pool import NullPool
|
8
|
-
|
9
|
-
from mmisp.db.config import config
|
10
|
-
|
11
|
-
Session: TypeAlias = AsyncSession
|
12
|
-
|
13
|
-
url = make_url(config.DATABASE_URL)
|
14
|
-
engine = create_async_engine(url, poolclass=NullPool)
|
15
|
-
async_session = sessionmaker(autoflush=False, expire_on_commit=False, class_=AsyncSession, bind=engine)
|
16
|
-
|
17
|
-
Base = declarative_base()
|
18
|
-
|
19
|
-
|
20
|
-
def get_db() -> Session:
|
21
|
-
return async_session()
|
22
|
-
|
23
|
-
|
24
|
-
def with_session_management(fn: Callable) -> Callable:
|
25
|
-
@wraps(fn)
|
26
|
-
async def wrapper(*args, **kwargs) -> Any:
|
27
|
-
db: Session = kwargs.pop("db")
|
28
|
-
output: Any = None
|
29
|
-
|
30
|
-
try:
|
31
|
-
output = await fn(*args, **kwargs, db=db)
|
32
|
-
finally:
|
33
|
-
await db.close()
|
34
|
-
|
35
|
-
return output
|
36
|
-
|
37
|
-
return wrapper
|
38
|
-
|
39
|
-
|
40
|
-
async def create_all_models() -> None:
|
41
|
-
async with engine.begin() as db:
|
42
|
-
await db.run_sync(Base.metadata.create_all)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/attributes/add_attribute_response.py
RENAMED
File without changes
|
File without changes
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/attributes/delete_attribute_response.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/attributes/edit_attributes_response.py
RENAMED
File without changes
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/attributes/get_all_attributes_response.py
RENAMED
File without changes
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/attributes/get_attribute_response.py
RENAMED
File without changes
|
File without changes
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/attributes/get_describe_types_response.py
RENAMED
File without changes
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/attributes/restore_attribute_reponse.py
RENAMED
File without changes
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/attributes/search_attributes_body.py
RENAMED
File without changes
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/attributes/search_attributes_response.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/auth_keys/add_auth_key_response.py
RENAMED
File without changes
|
File without changes
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/auth_keys/edit_auth_key_response.py
RENAMED
File without changes
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/auth_keys/search_auth_keys_body.py
RENAMED
File without changes
|
File without changes
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/auth_keys/view_auth_key_response.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/authentication/password_login_body.py
RENAMED
File without changes
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/authentication/start_login_body.py
RENAMED
File without changes
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/authentication/start_login_response.py
RENAMED
File without changes
|
File without changes
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/events/FreeTextImportWorkerBody.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/events/add_edit_get_event_response.py
RENAMED
File without changes
|
File without changes
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/events/add_remove_tag_events_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
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/events/unpublish_event_response.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/feeds/enable_disable_feed_response.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/galaxies/attach_galaxy_cluster_body.py
RENAMED
File without changes
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/galaxies/attach_galaxy_cluster_response.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/galaxies/export_galaxies_response.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/noticelists/get_all_noticelist_response.py
RENAMED
File without changes
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/noticelists/get_noticelist_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
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/sharing_groups/sharing_group_org.py
RENAMED
File without changes
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/sharing_groups/sharing_group_server.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/sightings/get_sighting_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
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/taxonomies/export_taxonomies_response.py
RENAMED
File without changes
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/taxonomies/get_taxonomy_by_id_response.py
RENAMED
File without changes
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/taxonomies/get_taxonomy_response.py
RENAMED
File without changes
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/taxonomies/get_taxonomy_tags_response.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/user_settings/search_user_setting_body.py
RENAMED
File without changes
|
File without changes
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/user_settings/set_user_setting_body.py
RENAMED
File without changes
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/user_settings/set_user_setting_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
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/warninglists/create_warninglist_body.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{mmisp_lib-0.1.5 → mmisp_lib-0.1.6}/src/mmisp/api_schemas/warninglists/warninglist_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
|