Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 0 additions & 24 deletions client-python/pycti/utils/opencti_stix2.py
Original file line number Diff line number Diff line change
Expand Up @@ -653,13 +653,6 @@ def extract_embedded_relationships(
data = None
if "data" in file_obj:
data = base64.b64decode(file_obj["data"])
elif "uri" in file_obj:
file_url = self.opencti.api_url.replace(
"/graphql", file_obj["uri"]
)
data = self.opencti.fetch_opencti_file(
fetch_uri=file_url, binary=True, serialize=False
)
if data is not None:
files_to_upload.append(
self.opencti.file(
Expand Down Expand Up @@ -854,13 +847,6 @@ def extract_embedded_relationships(
data = None
if "data" in file_obj:
data = base64.b64decode(file_obj["data"])
elif "uri" in file_obj:
file_url = self.opencti.api_url.replace(
"/graphql", file_obj["uri"]
)
data = self.opencti.fetch_opencti_file(
fetch_uri=file_url, binary=True, serialize=False
)
if data is not None:
files_to_upload.append(
self.opencti.file(
Expand Down Expand Up @@ -1152,11 +1138,6 @@ def import_object(
data = None
if "data" in file_obj:
data = base64.b64decode(file_obj["data"])
elif "uri" in file_obj:
url = self.opencti.api_url.replace("/graphql", file_obj["uri"])
data = self.opencti.fetch_opencti_file(
fetch_uri=url, binary=True, serialize=False
)
if data is not None:
files_to_upload.append(
self.opencti.file(
Expand Down Expand Up @@ -1280,11 +1261,6 @@ def import_observable(
data = None
if "data" in file_obj:
data = base64.b64decode(file_obj["data"])
elif "uri" in file_obj:
url = self.opencti.api_url.replace("/graphql", file_obj["uri"])
data = self.opencti.fetch_opencti_file(
fetch_uri=url, binary=True, serialize=False
)
if data is not None:
files_to_upload.append(
self.opencti.file(
Expand Down
4 changes: 2 additions & 2 deletions opencti-platform/opencti-graphql/src/database/draft-engine.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import * as R from 'ramda';
import { isDraftIndex, READ_INDEX_DRAFT_OBJECTS, READ_INDEX_HISTORY, READ_INDEX_INTERNAL_OBJECTS, toBase64 } from './utils';
import { isDraftIndex, READ_INDEX_DRAFT_OBJECTS, READ_INDEX_HISTORY, READ_INDEX_INTERNAL_OBJECTS } from './utils';
import { DatabaseError, UnsupportedError } from '../config/errors';
import {
BULK_TIMEOUT,
Expand Down Expand Up @@ -282,7 +282,7 @@ export const resolveDraftUpdateFiles = async (context: AuthContext, user: AuthUs
for (let i = 0; i < fileIds.length; i += 1) {
const currentFileId = fileIds[i];
const currentFile = await loadFile(context, user, currentFileId as string);
const currentFileContent = toBase64(await getFileContent(currentFileId as string));
const currentFileContent = await getFileContent(currentFileId as string, 'base64');
if (currentFile) {
const currentFileObject = {
name: currentFile.name,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@ import { PLAYBOOK_DATA_STREAM_PIR } from './components/data-stream-pir-component
import { convertStoreToStix_2_1 } from '../../database/stix-2-1-converter';
import { ENTITY_TYPE_SECURITY_COVERAGE, INPUT_COVERED, type StixSecurityCoverage, type StoreEntitySecurityCoverage } from '../securityCoverage/securityCoverage-types';
import { pushAll } from '../../utils/arrayUtil';
import { getFileContent } from '../../database/raw-file-storage';

// region built in playbook components
interface LoggerConfiguration {
Expand Down Expand Up @@ -623,8 +624,28 @@ export const PLAYBOOK_CONTAINER_WRAPPER_COMPONENT: PlaybookComponent<ContainerWr
(<StixCaseIncident>container).severity = (<StixIncident>baseData).severity;
}
// Copy files from the main element to the container if requested
if (copyFiles && baseData.extensions[STIX_EXT_OCTI].files && baseData.extensions[STIX_EXT_OCTI].files.length > 0) {
container.extensions[STIX_EXT_OCTI].files = baseData.extensions[STIX_EXT_OCTI].files;
const stixFileExtensions = baseData.extensions[STIX_EXT_OCTI].files;
if (copyFiles && stixFileExtensions && stixFileExtensions.length > 0) {
// We need to get the files and add the data inside
const copiedFiles = [];
for (let index = 0; index < stixFileExtensions.length; index += 1) {
const currentFile = stixFileExtensions[index];
// If data already available, just apply no_trigger_import
if (currentFile.data !== undefined && currentFile.data !== null) {
copiedFiles.push({ ...currentFile, no_trigger_import: true });
} else {
// If data not in the element, fetch it in base64
const currentFileUri = currentFile.uri;
try {
const fileId = currentFileUri.replace('/storage/get/', '');
const currentFileContent = await getFileContent(fileId, 'base64');
copiedFiles.push({ ...currentFile, data: currentFileContent, no_trigger_import: true });
} catch (e) {
logApp.error("[PLAYBOOK] Can't copy file from main element to the container", { cause: e, name: currentFile.name });
}
}
}
container.extensions[STIX_EXT_OCTI].files = copiedFiles;
}
if (STIX_DOMAIN_OBJECT_CONTAINER_CASES.includes(container_type) && caseTemplates.length > 0) {
const tasks = await createTaskFromCaseTemplates(caseTemplates, (container as StixContainer));
Expand Down
Loading