From 8baeefc66d9f6d89d43f48904d7cf5fa88f2b0bd Mon Sep 17 00:00:00 2001 From: AdriGeorge Date: Wed, 12 Nov 2025 12:25:26 +0200 Subject: [PATCH 1/3] chore: user data on compute --- src/components/c2d/compute_engine_docker.ts | 26 +++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/src/components/c2d/compute_engine_docker.ts b/src/components/c2d/compute_engine_docker.ts index 704730a7b..0edb22b1f 100644 --- a/src/components/c2d/compute_engine_docker.ts +++ b/src/components/c2d/compute_engine_docker.ts @@ -1572,6 +1572,22 @@ export class C2DEngineDocker extends C2DEngine { } } + private addUserDataToFilesObject( + filesObject: any, + userData: { [key: string]: any } + ): any { + if (filesObject?.url && userData) { + const url = new URL(filesObject.url) + const userDataObj = typeof userData === 'string' ? JSON.parse(userData) : userData + for (const [key, value] of Object.entries(userDataObj)) { + url.searchParams.append(key, String(value)) + } + filesObject.url = url.toString() + CORE_LOGGER.info('Appended userData to file url: ' + filesObject.url) + } + return filesObject + } + private async uploadData( job: DBComputeJob ): Promise<{ status: C2DStatusNumber; statusText: C2DStatusText }> { @@ -1736,7 +1752,8 @@ export class C2DEngineDocker extends C2DEngine { } else { CORE_LOGGER.info('asset file object seems to be encrypted, checking it...') // get the encrypted bytes - const filesObject: any = await decryptFilesObject(asset.fileObject) + let filesObject: any = await decryptFilesObject(asset.fileObject) + filesObject = await this.addUserDataToFilesObject(filesObject, asset.userdata) storage = Storage.getStorageClass(filesObject, config) } @@ -1771,7 +1788,12 @@ export class C2DEngineDocker extends C2DEngine { // 2. Get the service const service: Service = AssetUtils.getServiceById(ddo, serviceId) // 3. Decrypt the url - const decryptedFileObject = await decryptFilesObject(service.files) + let decryptedFileObject = await decryptFilesObject(service.files) + decryptedFileObject = await this.addUserDataToFilesObject( + decryptedFileObject, + asset.userdata + ) + storage = Storage.getStorageClass(decryptedFileObject, config) fileInfo = await storage.getFileInfo({ type: storage.getStorageType(decryptedFileObject) From 3b04f3aaf1d424c5a4604e44cd2623fcce1b9454 Mon Sep 17 00:00:00 2001 From: AdriGeorge Date: Wed, 12 Nov 2025 12:36:39 +0200 Subject: [PATCH 2/3] fix: logs --- src/components/c2d/compute_engine_docker.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/components/c2d/compute_engine_docker.ts b/src/components/c2d/compute_engine_docker.ts index 0edb22b1f..090bcc29c 100644 --- a/src/components/c2d/compute_engine_docker.ts +++ b/src/components/c2d/compute_engine_docker.ts @@ -1578,6 +1578,8 @@ export class C2DEngineDocker extends C2DEngine { ): any { if (filesObject?.url && userData) { const url = new URL(filesObject.url) + CORE_LOGGER.info('Appending userData to file url: ' + filesObject.url) + CORE_LOGGER.info('userData: ' + JSON.stringify(userData)) const userDataObj = typeof userData === 'string' ? JSON.parse(userData) : userData for (const [key, value] of Object.entries(userDataObj)) { url.searchParams.append(key, String(value)) From 74dd2120675fb9c5512ca4d70b002dffbdd0886c Mon Sep 17 00:00:00 2001 From: AdriGeorge Date: Wed, 12 Nov 2025 12:40:55 +0200 Subject: [PATCH 3/3] fix: remove logs --- src/components/c2d/compute_engine_docker.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/components/c2d/compute_engine_docker.ts b/src/components/c2d/compute_engine_docker.ts index 090bcc29c..0edb22b1f 100644 --- a/src/components/c2d/compute_engine_docker.ts +++ b/src/components/c2d/compute_engine_docker.ts @@ -1578,8 +1578,6 @@ export class C2DEngineDocker extends C2DEngine { ): any { if (filesObject?.url && userData) { const url = new URL(filesObject.url) - CORE_LOGGER.info('Appending userData to file url: ' + filesObject.url) - CORE_LOGGER.info('userData: ' + JSON.stringify(userData)) const userDataObj = typeof userData === 'string' ? JSON.parse(userData) : userData for (const [key, value] of Object.entries(userDataObj)) { url.searchParams.append(key, String(value))