From 6211ca590e8fde82539b2df698c7fe69ee134fff Mon Sep 17 00:00:00 2001 From: JulienChampagnol Date: Mon, 25 May 2026 09:28:21 +0200 Subject: [PATCH 1/6] fix extension path --- server/api/extensions/run.post.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/api/extensions/run.post.js b/server/api/extensions/run.post.js index 4ce92572e..86e319c97 100644 --- a/server/api/extensions/run.post.js +++ b/server/api/extensions/run.post.js @@ -58,7 +58,7 @@ export default defineEventHandler(async (event) => { } const frontendFilePath = extensionFrontendPath( - projectFolderPath, + unzippedExtensionPath, frontendFile, path.resolve(), id, From 5d5eb1b848e3814f2a1e32fa5d5a491dd83061e9 Mon Sep 17 00:00:00 2001 From: JulienChampagnol Date: Thu, 28 May 2026 15:46:56 +0200 Subject: [PATCH 2/6] save wip [skip ci] --- app/stores/infra.js | 1 + app/utils/extension.js | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/app/stores/infra.js b/app/stores/infra.js index 0270bb8f6..72d8939f4 100644 --- a/app/stores/infra.js +++ b/app/stores/infra.js @@ -77,6 +77,7 @@ export const useInfraStore = defineStore("infra", { await Promise.all( this.microservices.map(async (store) => { + console.log("[INFRA] Connecting to microservice:", store.$id); await store.connect(); console.log("[INFRA] Microservice connected:", store.$id); }), diff --git a/app/utils/extension.js b/app/utils/extension.js index 401e47162..6e49e8aeb 100644 --- a/app/utils/extension.js +++ b/app/utils/extension.js @@ -96,7 +96,13 @@ function runExtensions() { additionalProperties: false, }; - return appStore.request({ schema, params }); + return appStore.request({ schema, params }, { + response_function: (response) => { + const { extensionsArray } = response; + console.log("[ExtensionManager] Extensions run:", extensionsArray.map((ext) => ext.name)); + } + } + ); } export { From e171586fcab3b5e1dc5d48fa1b6e2badcc0cee48 Mon Sep 17 00:00:00 2001 From: JulienChampagnol Date: Fri, 29 May 2026 15:28:26 +0200 Subject: [PATCH 3/6] save wip [skip ci] --- app/stores/app.js | 4 +++- app/utils/extension.js | 19 ++++++++----------- server/api/extensions/run.post.js | 2 +- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/app/stores/app.js b/app/stores/app.js index 6a05ab3a6..b86b4e393 100644 --- a/app/stores/app.js +++ b/app/stores/app.js @@ -88,7 +88,7 @@ export const useAppStore = defineStore("app", () => { return loadedExtensions.value.get(id); } - async function loadExtension(path, backendPath = undefined) { + async function loadExtension(path, backendPath = undefined, port = undefined) { try { let finalURL = path; @@ -104,6 +104,8 @@ export const useAppStore = defineStore("app", () => { } // oxlint-disable-next-line no-inline-comments const extensionModule = await import(/* @vite-ignore */ finalURL); + const store = extensionModule.metadata.store(); + store.$patch({ default_local_port: port }); if (finalURL !== path && finalURL.startsWith("blob:")) { URL.revokeObjectURL(finalURL); diff --git a/app/utils/extension.js b/app/utils/extension.js index 6e49e8aeb..18f8f8a29 100644 --- a/app/utils/extension.js +++ b/app/utils/extension.js @@ -24,19 +24,15 @@ async function registerRunningExtensions() { type: "application/javascript", }); const blobUrl = URL.createObjectURL(blob); - const extensionModule = await appStore.loadExtension(blobUrl); + const extensionModule = await appStore.loadExtension(blobUrl, undefined, port); console.log("[ExtensionManager] Extension loaded:", id); - if (extensionModule.metadata?.store) { - const storeFactory = extensionModule.metadata.store; - const store = storeFactory(); - store.$patch((state) => { - state.default_local_port = port; - }); - appStore.registerStore(store); - console.log("[ExtensionManager] Store registered:", store.$id); - infraStore.register_microservice(store); - } + const storeFactory = extensionModule.metadata.store; + const store = storeFactory(); + appStore.registerStore(store); + console.log("[ExtensionManager] Store registered:", store.$id); + infraStore.register_microservice(store); + return { name, version, @@ -98,6 +94,7 @@ function runExtensions() { return appStore.request({ schema, params }, { response_function: (response) => { + console.log("[ExtensionManager] Extensions run:", response); const { extensionsArray } = response; console.log("[ExtensionManager] Extensions run:", extensionsArray.map((ext) => ext.name)); } diff --git a/server/api/extensions/run.post.js b/server/api/extensions/run.post.js index 9c9936dce..7233249f7 100644 --- a/server/api/extensions/run.post.js +++ b/server/api/extensions/run.post.js @@ -69,7 +69,7 @@ export default defineEventHandler(async (event) => { const backendExecutablePath = path.join(unzippedExtensionPath, backendExecutable); fs.chmodSync(backendExecutablePath, "755"); - const port = await runBack(backendExecutable, backendExecutablePath, { + const port = await runBack(backendExecutable, unzippedExtensionPath, { projectFolderPath, }); await addMicroserviceMetadatas(projectFolderPath, { From 4241f55e29c67fe2bfe1a70bc76e61abd2343cc9 Mon Sep 17 00:00:00 2001 From: JulienChampagnol Date: Mon, 1 Jun 2026 09:29:04 +0200 Subject: [PATCH 4/6] fix(Extenions): patch extension port on startup From b67a788bc45603c38cee6825daba5b2228bd3e81 Mon Sep 17 00:00:00 2001 From: JulienChampagnol <91873154+JulienChampagnol@users.noreply.github.com> Date: Mon, 1 Jun 2026 07:30:57 +0000 Subject: [PATCH 5/6] Apply prepare changes --- app/utils/extension.js | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/app/utils/extension.js b/app/utils/extension.js index 18f8f8a29..48087f4d2 100644 --- a/app/utils/extension.js +++ b/app/utils/extension.js @@ -92,13 +92,18 @@ function runExtensions() { additionalProperties: false, }; - return appStore.request({ schema, params }, { - response_function: (response) => { - console.log("[ExtensionManager] Extensions run:", response); - const { extensionsArray } = response; - console.log("[ExtensionManager] Extensions run:", extensionsArray.map((ext) => ext.name)); - } - } + return appStore.request( + { schema, params }, + { + response_function: (response) => { + console.log("[ExtensionManager] Extensions run:", response); + const { extensionsArray } = response; + console.log( + "[ExtensionManager] Extensions run:", + extensionsArray.map((ext) => ext.name), + ); + }, + }, ); } From 8bce9f6b14173325db6f671e0213e361cc2b7d61 Mon Sep 17 00:00:00 2001 From: JulienChampagnol Date: Mon, 1 Jun 2026 10:58:38 +0200 Subject: [PATCH 6/6] cleanup --- app/utils/extension.js | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/app/utils/extension.js b/app/utils/extension.js index 18f8f8a29..2585157af 100644 --- a/app/utils/extension.js +++ b/app/utils/extension.js @@ -92,14 +92,7 @@ function runExtensions() { additionalProperties: false, }; - return appStore.request({ schema, params }, { - response_function: (response) => { - console.log("[ExtensionManager] Extensions run:", response); - const { extensionsArray } = response; - console.log("[ExtensionManager] Extensions run:", extensionsArray.map((ext) => ext.name)); - } - } - ); + return appStore.request({ schema, params }); } export {