diff --git a/pycti/entities/opencti_external_reference.py b/pycti/entities/opencti_external_reference.py index 53c7b0484..59fd6dd24 100644 --- a/pycti/entities/opencti_external_reference.py +++ b/pycti/entities/opencti_external_reference.py @@ -276,12 +276,13 @@ def add_file(self, **kwargs): file_markings = kwargs.get("fileMarkings", None) mime_type = kwargs.get("mime_type", "text/plain") no_trigger_import = kwargs.get("no_trigger_import", False) + embedded = kwargs.get("embedded", False) if id is not None and file_name is not None: final_file_name = os.path.basename(file_name) query = """ - mutation ExternalReferenceEdit($id: ID!, $file: Upload!, $fileMarkings: [String], $version: DateTime, $noTriggerImport: Boolean) { + mutation ExternalReferenceEdit($id: ID!, $file: Upload!, $fileMarkings: [String], $version: DateTime, $noTriggerImport: Boolean, $embedded: Boolean) { externalReferenceEdit(id: $id) { - importPush(file: $file, fileMarkings: $fileMarkings, version: $version, noTriggerImport: $noTriggerImport) { + importPush(file: $file, fileMarkings: $fileMarkings, version: $version, noTriggerImport: $noTriggerImport, embedded: $embedded) { id name } @@ -310,6 +311,7 @@ def add_file(self, **kwargs): if isinstance(no_trigger_import, bool) else no_trigger_import == "True" ), + "embedded": embedded, }, ) else: diff --git a/pycti/entities/opencti_stix_cyber_observable.py b/pycti/entities/opencti_stix_cyber_observable.py index d0c1b794e..f36c026a2 100644 --- a/pycti/entities/opencti_stix_cyber_observable.py +++ b/pycti/entities/opencti_stix_cyber_observable.py @@ -185,12 +185,13 @@ def add_file(self, **kwargs): version = kwargs.get("version", None) mime_type = kwargs.get("mime_type", "text/plain") no_trigger_import = kwargs.get("no_trigger_import", False) + embedded = kwargs.get("embedded", False) if id is not None and file_name is not None: final_file_name = os.path.basename(file_name) query = """ - mutation StixCyberObservableEdit($id: ID!, $file: Upload!, $fileMarkings: [String], $version: DateTime, $noTriggerImport: Boolean) { + mutation StixCyberObservableEdit($id: ID!, $file: Upload!, $fileMarkings: [String], $version: DateTime, $noTriggerImport: Boolean, $embedded: Boolean) { stixCyberObservableEdit(id: $id) { - importPush(file: $file, version: $version, fileMarkings: $fileMarkings, noTriggerImport: $noTriggerImport) { + importPush(file: $file, version: $version, fileMarkings: $fileMarkings, noTriggerImport: $noTriggerImport, embedded: $embedded) { id name } @@ -219,6 +220,7 @@ def add_file(self, **kwargs): if isinstance(no_trigger_import, bool) else no_trigger_import == "True" ), + "embedded": embedded, }, ) else: diff --git a/pycti/entities/opencti_stix_domain_object.py b/pycti/entities/opencti_stix_domain_object.py index b96bfa51b..f2b5190d7 100644 --- a/pycti/entities/opencti_stix_domain_object.py +++ b/pycti/entities/opencti_stix_domain_object.py @@ -1368,12 +1368,13 @@ def add_file(self, **kwargs): version = kwargs.get("version", None) mime_type = kwargs.get("mime_type", "text/plain") no_trigger_import = kwargs.get("no_trigger_import", False) + embedded = kwargs.get("embedded", False) if id is not None and file_name is not None: final_file_name = os.path.basename(file_name) query = """ - mutation StixDomainObjectEdit($id: ID!, $file: Upload!, $fileMarkings: [String], $version: DateTime, $noTriggerImport: Boolean) { + mutation StixDomainObjectEdit($id: ID!, $file: Upload!, $fileMarkings: [String], $version: DateTime, $noTriggerImport: Boolean, $embedded: Boolean) { stixDomainObjectEdit(id: $id) { - importPush(file: $file, version: $version, fileMarkings: $fileMarkings, noTriggerImport: $noTriggerImport) { + importPush(file: $file, version: $version, fileMarkings: $fileMarkings, noTriggerImport: $noTriggerImport, embedded: $embedded) { id name } @@ -1402,6 +1403,7 @@ def add_file(self, **kwargs): if isinstance(no_trigger_import, bool) else no_trigger_import == "True" ), + "embedded": embedded, }, ) else: diff --git a/pycti/utils/opencti_stix2.py b/pycti/utils/opencti_stix2.py index 9dda7f068..4bd30564c 100644 --- a/pycti/utils/opencti_stix2.py +++ b/pycti/utils/opencti_stix2.py @@ -758,6 +758,7 @@ def extract_embedded_relationships( fileMarkings=file.get("object_marking_refs", None), mime_type=file["mime_type"], no_trigger_import=file.get("no_trigger_import", False), + embedded=file.get("embedded", False), ) if ( self.opencti.get_attribute_in_extension("files", external_reference) @@ -775,6 +776,7 @@ def extract_embedded_relationships( fileMarkings=file.get("object_marking_refs", None), mime_type=file["mime_type"], no_trigger_import=file.get("no_trigger_import", False), + embedded=file.get("embedded", False), ) external_references_ids.append(external_reference_id) # Granted refs @@ -1042,6 +1044,7 @@ def import_object( if "x_opencti_files" in stix_object: for file in stix_object["x_opencti_files"]: if "data" in file: + print(file) self.opencti.stix_domain_object.add_file( id=stix_object_result["id"], file_name=file["name"], @@ -1050,6 +1053,7 @@ def import_object( fileMarkings=file.get("object_marking_refs", None), mime_type=file["mime_type"], no_trigger_import=file.get("no_trigger_import", False), + embedded=file.get("embedded", False), ) if ( self.opencti.get_attribute_in_extension("files", stix_object) @@ -1059,6 +1063,7 @@ def import_object( "files", stix_object ): if "data" in file: + print(file) self.opencti.stix_domain_object.add_file( id=stix_object_result["id"], file_name=file["name"], @@ -1067,6 +1072,7 @@ def import_object( fileMarkings=file.get("object_marking_refs", None), mime_type=file["mime_type"], no_trigger_import=file.get("no_trigger_import", False), + embedded=file.get("embedded", False), ) return stix_object_results @@ -1179,6 +1185,7 @@ def import_observable( fileMarkings=file.get("object_marking_refs", None), mime_type=file["mime_type"], no_trigger_import=file.get("no_trigger_import", False), + embedded=file.get("embedded", False), ) if ( self.opencti.get_attribute_in_extension("files", stix_object) @@ -1196,6 +1203,7 @@ def import_observable( fileMarkings=file.get("object_marking_refs", None), mime_type=file["mime_type"], no_trigger_import=file.get("no_trigger_import", False), + embedded=file.get("embedded", False), ) if "id" in stix_object: self.mapping_cache[stix_object["id"]] = { @@ -2472,6 +2480,7 @@ def apply_patch_files(self, item): fileMarkings=file.get("object_marking_refs", None), mime_type=file.get("mime_type", None), no_trigger_import=file.get("no_trigger_import", False), + embedded=file.get("embedded", False), ) def apply_patch(self, item):