From 0b0eab17b4328226bc23ec73292b659fcdce5e60 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 20:46:27 +0530 Subject: [PATCH 01/26] feat: inclue id in robot metadta --- server/src/workflow-management/classes/Generator.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/server/src/workflow-management/classes/Generator.ts b/server/src/workflow-management/classes/Generator.ts index 0b303478..8c20059e 100644 --- a/server/src/workflow-management/classes/Generator.ts +++ b/server/src/workflow-management/classes/Generator.ts @@ -29,6 +29,7 @@ interface PersistedGeneratedData { interface MetaData { name: string; + id: string; create_date: string; pairs: number; update_date: string; @@ -84,6 +85,7 @@ export class WorkflowGenerator { */ private recordingMeta: MetaData = { name: '', + id: '', create_date: '', pairs: 0, update_date: '', From 3fd86fa41cd9ce1721e9ecc1a4d45134e1dfd3e3 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 20:48:18 +0530 Subject: [PATCH 02/26] feat: generate robot id w uuid --- server/src/workflow-management/classes/Generator.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/server/src/workflow-management/classes/Generator.ts b/server/src/workflow-management/classes/Generator.ts index 8c20059e..9bdfcf5b 100644 --- a/server/src/workflow-management/classes/Generator.ts +++ b/server/src/workflow-management/classes/Generator.ts @@ -18,6 +18,7 @@ import { saveFile } from "../storage"; import fs from "fs"; import { getBestSelectorForAction } from "../utils"; import { browserPool } from "../../server"; +import { uuid } from "uuidv4"; interface PersistedGeneratedData { lastUsedSelector: string; @@ -479,6 +480,7 @@ export class WorkflowGenerator { try { this.recordingMeta = { name: fileName, + id: uuid(), create_date: this.recordingMeta.create_date || new Date().toLocaleString(), pairs: recording.workflow.length, update_date: new Date().toLocaleString(), From b1cef177da490cc64bb6bf70af993070daf4ec8f Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 20:49:29 +0530 Subject: [PATCH 03/26] refactor: create_date to createdAt --- server/src/workflow-management/classes/Generator.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server/src/workflow-management/classes/Generator.ts b/server/src/workflow-management/classes/Generator.ts index 9bdfcf5b..fcc1b220 100644 --- a/server/src/workflow-management/classes/Generator.ts +++ b/server/src/workflow-management/classes/Generator.ts @@ -31,7 +31,7 @@ interface PersistedGeneratedData { interface MetaData { name: string; id: string; - create_date: string; + createdAt: string; pairs: number; update_date: string; params: string[], @@ -87,7 +87,7 @@ export class WorkflowGenerator { private recordingMeta: MetaData = { name: '', id: '', - create_date: '', + createdAt: '', pairs: 0, update_date: '', params: [], @@ -481,7 +481,7 @@ export class WorkflowGenerator { this.recordingMeta = { name: fileName, id: uuid(), - create_date: this.recordingMeta.create_date || new Date().toLocaleString(), + createdAt: this.recordingMeta.createdAt || new Date().toLocaleString(), pairs: recording.workflow.length, update_date: new Date().toLocaleString(), params: this.getParams() || [], From 5c602ed8827fbd217ccfce88c5efeb3e33d030a1 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 20:50:17 +0530 Subject: [PATCH 04/26] feat: use recordingMeta.createdAt --- server/src/api/record.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/src/api/record.ts b/server/src/api/record.ts index c6c90b26..b892d3c6 100644 --- a/server/src/api/record.ts +++ b/server/src/api/record.ts @@ -21,7 +21,7 @@ const formatRecording = (recordingData: any) => { return { id: recordingMeta.id, name: recordingMeta.name, - createdAt: new Date(recordingMeta.create_date).getTime(), + createdAt: new Date(recordingMeta.createdAt).getTime(), inputParameters, }; }; @@ -75,7 +75,7 @@ const formatRecordingById = (recordingData: any) => { return { id: recordingMeta.id, name: recordingMeta.name, - createdAt: new Date(recordingMeta.create_date).getTime(), + createdAt: new Date(recordingMeta.createdAt).getTime(), inputParameters, }; }; From 8ce724667366f02563225477315e8221acc3e8d1 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 20:51:12 +0530 Subject: [PATCH 05/26] feat: use createdAt --- src/components/molecules/RecordingsTable.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/molecules/RecordingsTable.tsx b/src/components/molecules/RecordingsTable.tsx index 08411bdb..15c9fc82 100644 --- a/src/components/molecules/RecordingsTable.tsx +++ b/src/components/molecules/RecordingsTable.tsx @@ -16,7 +16,7 @@ import { useGlobalInfoStore } from "../../context/globalInfo"; import { deleteRecordingFromStorage, getStoredRecordings } from "../../api/storage"; interface Column { - id: 'interpret' | 'name' | 'create_date' | 'edit' | 'update_date' | 'delete' | 'schedule' | 'integrate'; + id: 'interpret' | 'name' | 'createdAt' | 'edit' | 'update_date' | 'delete' | 'schedule' | 'integrate'; label: string; minWidth?: number; align?: 'right'; @@ -27,7 +27,7 @@ const columns: readonly Column[] = [ { id: 'interpret', label: 'Run', minWidth: 80 }, { id: 'name', label: 'Name', minWidth: 80 }, { - id: 'create_date', + id: 'createdAt', label: 'Created at', minWidth: 80, //format: (value: string) => value.toLocaleString('en-US'), @@ -63,7 +63,7 @@ const columns: readonly Column[] = [ interface Data { id: number; name: string; - create_date: string; + createdAt: string; update_date: string; content: WorkflowFile; params: string[]; From 40d2b573ff255f2e5b803a3291650b33e8849e7c Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 20:51:56 +0530 Subject: [PATCH 06/26] refactor: updatedAt --- server/src/workflow-management/classes/Generator.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server/src/workflow-management/classes/Generator.ts b/server/src/workflow-management/classes/Generator.ts index fcc1b220..b0a95873 100644 --- a/server/src/workflow-management/classes/Generator.ts +++ b/server/src/workflow-management/classes/Generator.ts @@ -33,7 +33,7 @@ interface MetaData { id: string; createdAt: string; pairs: number; - update_date: string; + updatedAt: string; params: string[], } @@ -89,7 +89,7 @@ export class WorkflowGenerator { id: '', createdAt: '', pairs: 0, - update_date: '', + updatedAt: '', params: [], } @@ -483,7 +483,7 @@ export class WorkflowGenerator { id: uuid(), createdAt: this.recordingMeta.createdAt || new Date().toLocaleString(), pairs: recording.workflow.length, - update_date: new Date().toLocaleString(), + updatedAt: new Date().toLocaleString(), params: this.getParams() || [], } fs.mkdirSync('../storage/recordings', { recursive: true }) From 4e3b47d1f135cb40d222b6a84ff79af980aa8983 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 20:52:25 +0530 Subject: [PATCH 07/26] feat: use updatedAt --- src/components/molecules/RecordingsTable.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/molecules/RecordingsTable.tsx b/src/components/molecules/RecordingsTable.tsx index 15c9fc82..251356bd 100644 --- a/src/components/molecules/RecordingsTable.tsx +++ b/src/components/molecules/RecordingsTable.tsx @@ -16,7 +16,7 @@ import { useGlobalInfoStore } from "../../context/globalInfo"; import { deleteRecordingFromStorage, getStoredRecordings } from "../../api/storage"; interface Column { - id: 'interpret' | 'name' | 'createdAt' | 'edit' | 'update_date' | 'delete' | 'schedule' | 'integrate'; + id: 'interpret' | 'name' | 'createdAt' | 'edit' | 'updatedAt' | 'delete' | 'schedule' | 'integrate'; label: string; minWidth?: number; align?: 'right'; @@ -48,7 +48,7 @@ const columns: readonly Column[] = [ minWidth: 80, }, { - id: 'update_date', + id: 'updatedAt', label: 'Updated at', minWidth: 80, //format: (value: string) => value.toLocaleString('en-US'), @@ -64,7 +64,7 @@ interface Data { id: number; name: string; createdAt: string; - update_date: string; + updatedAt: string; content: WorkflowFile; params: string[]; } From 75b309a48e30c442a13e5eaa52eb551ee71899a1 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 21:13:47 +0530 Subject: [PATCH 08/26] chore: prettier --- server/src/routes/storage.ts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/server/src/routes/storage.ts b/server/src/routes/storage.ts index c7ad154e..0fb8d57b 100644 --- a/server/src/routes/storage.ts +++ b/server/src/routes/storage.ts @@ -277,15 +277,15 @@ router.put('/schedule/:fileName/', requireSignIn, async (req, res) => { const runId = uuid(); await workflowQueue.add( - 'run workflow', - { fileName, runId }, - { - repeat: { - pattern: cronExpression, - tz: timezone - } - } - ); + 'run workflow', + { fileName, runId }, + { + repeat: { + pattern: cronExpression, + tz: timezone + } + } + ); res.status(200).json({ message: 'success', From a397b0acc1470de16e1203a861d980189f2d890d Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 21:15:33 +0530 Subject: [PATCH 09/26] feat: remove duration & task from robot meta --- server/src/routes/storage.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/server/src/routes/storage.ts b/server/src/routes/storage.ts index 0fb8d57b..9015915b 100644 --- a/server/src/routes/storage.ts +++ b/server/src/routes/storage.ts @@ -111,8 +111,6 @@ router.put('/runs/:fileName', requireSignIn, async (req, res) => { name: req.params.fileName, startedAt: new Date().toLocaleString(), finishedAt: '', - duration: '', - task: req.body.params ? 'task' : '', browserId: id, interpreterSettings: req.body, log: '', From 70b84dff605bd9063723fab3bbf237b4a0e8e00e Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 21:16:32 +0530 Subject: [PATCH 10/26] feat: remove duration while storing run --- server/src/routes/storage.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/server/src/routes/storage.ts b/server/src/routes/storage.ts index 9015915b..9b1cc059 100644 --- a/server/src/routes/storage.ts +++ b/server/src/routes/storage.ts @@ -184,7 +184,6 @@ router.post('/runs/run/:fileName/:runId', requireSignIn, async (req, res) => { ...parsedRun, status: 'success', finishedAt: new Date().toLocaleString(), - duration: durString, browserId: parsedRun.browserId, log: interpretationInfo.log.join('\n'), serializableOutput: interpretationInfo.serializableOutput, From 0cf785ef6ec8984cefc45c7b467511ef8e47e4f5 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 21:16:58 +0530 Subject: [PATCH 11/26] feat: remove durStr --- server/src/routes/storage.ts | 9 --------- 1 file changed, 9 deletions(-) diff --git a/server/src/routes/storage.ts b/server/src/routes/storage.ts index 9b1cc059..f96b1786 100644 --- a/server/src/routes/storage.ts +++ b/server/src/routes/storage.ts @@ -170,15 +170,6 @@ router.post('/runs/run/:fileName/:runId', requireSignIn, async (req, res) => { const interpretationInfo = await browser.interpreter.InterpretRecording( parsedRecording.recording, currentPage, parsedRun.interpreterSettings); const duration = Math.round((new Date().getTime() - new Date(parsedRun.startedAt).getTime()) / 1000); - const durString = (() => { - if (duration < 60) { - return `${duration} s`; - } - else { - const minAndS = (duration / 60).toString().split('.'); - return `${minAndS[0]} m ${minAndS[1]} s`; - } - })(); await destroyRemoteBrowser(parsedRun.browserId); const run_meta = { ...parsedRun, From 31e0cd0d981b7d4a6fdc8b1b65b49e04487bc6b7 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 21:17:14 +0530 Subject: [PATCH 12/26] feat: remove duration --- server/src/routes/storage.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/server/src/routes/storage.ts b/server/src/routes/storage.ts index f96b1786..51b6b6aa 100644 --- a/server/src/routes/storage.ts +++ b/server/src/routes/storage.ts @@ -169,7 +169,6 @@ router.post('/runs/run/:fileName/:runId', requireSignIn, async (req, res) => { if (browser && currentPage) { const interpretationInfo = await browser.interpreter.InterpretRecording( parsedRecording.recording, currentPage, parsedRun.interpreterSettings); - const duration = Math.round((new Date().getTime() - new Date(parsedRun.startedAt).getTime()) / 1000); await destroyRemoteBrowser(parsedRun.browserId); const run_meta = { ...parsedRun, From 49bb5168590096d34277959a87dfbb3a108afca3 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 21:18:04 +0530 Subject: [PATCH 13/26] feat: remove duration from abort --- server/src/routes/storage.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/server/src/routes/storage.ts b/server/src/routes/storage.ts index 51b6b6aa..f0085410 100644 --- a/server/src/routes/storage.ts +++ b/server/src/routes/storage.ts @@ -320,7 +320,6 @@ router.post('/runs/abort/:fileName/:runId', requireSignIn, async (req, res) => { ...parsedRun, status: 'ABORTED', finishedAt: null, - duration: '', browserId: null, log: currentLog, }; From c94268f7cdead42786b669d5c4f0ec58968bf619 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 21:18:16 +0530 Subject: [PATCH 14/26] feat: remove caps --- server/src/routes/storage.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/src/routes/storage.ts b/server/src/routes/storage.ts index f0085410..12e7d498 100644 --- a/server/src/routes/storage.ts +++ b/server/src/routes/storage.ts @@ -318,7 +318,7 @@ router.post('/runs/abort/:fileName/:runId', requireSignIn, async (req, res) => { }, {}); const run_meta = { ...parsedRun, - status: 'ABORTED', + status: 'aborted', finishedAt: null, browserId: null, log: currentLog, From 3f6eb2fec418d3bf310a942162b51ab060e89979 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 21:19:00 +0530 Subject: [PATCH 15/26] feat: remove duration & task from scheduled run meta --- server/src/workflow-management/scheduler/index.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/server/src/workflow-management/scheduler/index.ts b/server/src/workflow-management/scheduler/index.ts index 1fcef079..ed767ead 100644 --- a/server/src/workflow-management/scheduler/index.ts +++ b/server/src/workflow-management/scheduler/index.ts @@ -23,8 +23,6 @@ async function runWorkflow(fileName: string, runId: string) { name: fileName, startedAt: new Date().toLocaleString(), finishedAt: '', - duration: '', - task: '', // Optionally set based on workflow browserId: browserId, interpreterSettings: { maxConcurrency: 1, maxRepeats: 1, debug: true }, log: '', From 93acdb420da2615a75d2b7ba11952d104e512f8c Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 21:19:14 +0530 Subject: [PATCH 16/26] feat: no caps --- server/src/workflow-management/scheduler/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/src/workflow-management/scheduler/index.ts b/server/src/workflow-management/scheduler/index.ts index ed767ead..f940fcde 100644 --- a/server/src/workflow-management/scheduler/index.ts +++ b/server/src/workflow-management/scheduler/index.ts @@ -19,7 +19,7 @@ async function runWorkflow(fileName: string, runId: string) { launchOptions: { headless: true } }); const run_meta = { - status: 'SCHEDULED', + status: 'Scheduled', name: fileName, startedAt: new Date().toLocaleString(), finishedAt: '', From b0f64172bb9d9fb99d43a5b4a3724452acbabf82 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 21:19:53 +0530 Subject: [PATCH 17/26] feat: no duration --- server/src/workflow-management/scheduler/index.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/server/src/workflow-management/scheduler/index.ts b/server/src/workflow-management/scheduler/index.ts index f940fcde..4ddbebc3 100644 --- a/server/src/workflow-management/scheduler/index.ts +++ b/server/src/workflow-management/scheduler/index.ts @@ -80,16 +80,12 @@ async function executeRun(fileName: string, runId: string) { const interpretationInfo = await browser.interpreter.InterpretRecording( parsedRecording.recording, currentPage, parsedRun.interpreterSettings); - const duration = Math.round((new Date().getTime() - new Date(parsedRun.startedAt).getTime()) / 1000); - const durString = duration < 60 ? `${duration} s` : `${Math.floor(duration / 60)} m ${duration % 60} s`; - await destroyRemoteBrowser(parsedRun.browserId); const updated_run_meta = { ...parsedRun, status: 'success', finishedAt: new Date().toLocaleString(), - duration: durString, browserId: parsedRun.browserId, log: interpretationInfo.log.join('\n'), serializableOutput: interpretationInfo.serializableOutput, From 3673a2e79984a23986535917a1cc502f14e6d50b Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 21:58:23 +0530 Subject: [PATCH 18/26] feat: get recording by filename --- server/src/routes/storage.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/server/src/routes/storage.ts b/server/src/routes/storage.ts index 12e7d498..25f28eb9 100644 --- a/server/src/routes/storage.ts +++ b/server/src/routes/storage.ts @@ -13,6 +13,17 @@ import { getDecryptedProxyConfig } from './proxy'; import { requireSignIn } from '../middlewares/auth'; import { workflowQueue } from '../worker'; +const getRecordingByFileName = async (fileName: string): Promise => { + try { + const recording = await readFile(`./../storage/recordings/${fileName}.waw.json`) + const parsedRecording = JSON.parse(recording); + return parsedRecording; + } catch (error) { + console.error(`Error while getting recording for fileName ${fileName}:`, error.message); + return null; + } +}; + export const router = Router(); /** From 5a32e69d42fc302051cd2ac5ab17f705a1090377 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 21:58:47 +0530 Subject: [PATCH 19/26] chore: todo --- server/src/routes/storage.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/server/src/routes/storage.ts b/server/src/routes/storage.ts index 25f28eb9..2d63c5a6 100644 --- a/server/src/routes/storage.ts +++ b/server/src/routes/storage.ts @@ -13,6 +13,7 @@ import { getDecryptedProxyConfig } from './proxy'; import { requireSignIn } from '../middlewares/auth'; import { workflowQueue } from '../worker'; +// todo: move from here const getRecordingByFileName = async (fileName: string): Promise => { try { const recording = await readFile(`./../storage/recordings/${fileName}.waw.json`) From 943962e4f0675fed89c15f5a558dcebdfbd11387 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 22:00:05 +0530 Subject: [PATCH 20/26] feat: get recording from storage --- server/src/routes/storage.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/server/src/routes/storage.ts b/server/src/routes/storage.ts index 2d63c5a6..faebdcf9 100644 --- a/server/src/routes/storage.ts +++ b/server/src/routes/storage.ts @@ -95,6 +95,11 @@ router.delete('/runs/:fileName', requireSignIn, async (req, res) => { */ router.put('/runs/:fileName', requireSignIn, async (req, res) => { try { + const recording = await getRecordingByFileName(req.params.fileName); + if (!recording || !recording.recordingId) { + return res.status(404).send({ error: 'Recording not found' }); + } + const proxyConfig = await getDecryptedProxyConfig(req.user.id); let proxyOptions: any = {}; From 32e160c209c5da983f397123612ba550406505c7 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 22:01:25 +0530 Subject: [PATCH 21/26] feat: pass recording id to run metadata --- server/src/routes/storage.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server/src/routes/storage.ts b/server/src/routes/storage.ts index faebdcf9..18955548 100644 --- a/server/src/routes/storage.ts +++ b/server/src/routes/storage.ts @@ -99,7 +99,7 @@ router.put('/runs/:fileName', requireSignIn, async (req, res) => { if (!recording || !recording.recordingId) { return res.status(404).send({ error: 'Recording not found' }); } - + const proxyConfig = await getDecryptedProxyConfig(req.user.id); let proxyOptions: any = {}; @@ -126,6 +126,7 @@ router.put('/runs/:fileName', requireSignIn, async (req, res) => { const run_meta = { status: 'RUNNING', name: req.params.fileName, + recordingId: recording.id, startedAt: new Date().toLocaleString(), finishedAt: '', browserId: id, From 7db34bd663284a7946c3b16b7b04c5c799304c82 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 22:05:17 +0530 Subject: [PATCH 22/26] fix(ts): set type as any --- server/src/routes/storage.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/src/routes/storage.ts b/server/src/routes/storage.ts index 18955548..f74635a5 100644 --- a/server/src/routes/storage.ts +++ b/server/src/routes/storage.ts @@ -19,7 +19,7 @@ const getRecordingByFileName = async (fileName: string): Promise => const recording = await readFile(`./../storage/recordings/${fileName}.waw.json`) const parsedRecording = JSON.parse(recording); return parsedRecording; - } catch (error) { + } catch (error: any) { console.error(`Error while getting recording for fileName ${fileName}:`, error.message); return null; } From 4b326784e16d905be212a3df26f8fa71fab78a14 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 23:25:24 +0530 Subject: [PATCH 23/26] feat: pass recording id to run id --- server/src/routes/storage.ts | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/server/src/routes/storage.ts b/server/src/routes/storage.ts index f74635a5..8e88e3dc 100644 --- a/server/src/routes/storage.ts +++ b/server/src/routes/storage.ts @@ -11,7 +11,7 @@ import cron from 'node-cron'; import { googleSheetUpdateTasks, processGoogleSheetUpdates } from '../workflow-management/integrations/gsheet'; import { getDecryptedProxyConfig } from './proxy'; import { requireSignIn } from '../middlewares/auth'; -import { workflowQueue } from '../worker'; +// import { workflowQueue } from '../worker'; // todo: move from here const getRecordingByFileName = async (fileName: string): Promise => { @@ -96,7 +96,8 @@ router.delete('/runs/:fileName', requireSignIn, async (req, res) => { router.put('/runs/:fileName', requireSignIn, async (req, res) => { try { const recording = await getRecordingByFileName(req.params.fileName); - if (!recording || !recording.recordingId) { + + if (!recording || !recording.recording_meta || !recording.recording_meta.id) { return res.status(404).send({ error: 'Recording not found' }); } @@ -126,7 +127,7 @@ router.put('/runs/:fileName', requireSignIn, async (req, res) => { const run_meta = { status: 'RUNNING', name: req.params.fileName, - recordingId: recording.id, + recordingId: recording.recording_meta.id, startedAt: new Date().toLocaleString(), finishedAt: '', browserId: id, @@ -281,16 +282,16 @@ router.put('/schedule/:fileName/', requireSignIn, async (req, res) => { const runId = uuid(); - await workflowQueue.add( - 'run workflow', - { fileName, runId }, - { - repeat: { - pattern: cronExpression, - tz: timezone - } - } - ); + // await workflowQueue.add( + // 'run workflow', + // { fileName, runId }, + // { + // repeat: { + // pattern: cronExpression, + // tz: timezone + // } + // } + // ); res.status(200).json({ message: 'success', From 1462ca1f6aec587fda25a44fd7334ffc9c31b571 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 23:27:56 +0530 Subject: [PATCH 24/26] feat: export getRecordingByFileName --- server/src/routes/storage.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/src/routes/storage.ts b/server/src/routes/storage.ts index 8e88e3dc..d24c0131 100644 --- a/server/src/routes/storage.ts +++ b/server/src/routes/storage.ts @@ -14,7 +14,7 @@ import { requireSignIn } from '../middlewares/auth'; // import { workflowQueue } from '../worker'; // todo: move from here -const getRecordingByFileName = async (fileName: string): Promise => { +export const getRecordingByFileName = async (fileName: string): Promise => { try { const recording = await readFile(`./../storage/recordings/${fileName}.waw.json`) const parsedRecording = JSON.parse(recording); From f103d84aba78d74c32f6c9425da6b0c2362a9206 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 23:34:53 +0530 Subject: [PATCH 25/26] feat: recording id for shceduled robot --- server/src/workflow-management/scheduler/index.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/server/src/workflow-management/scheduler/index.ts b/server/src/workflow-management/scheduler/index.ts index 4ddbebc3..c1e94bde 100644 --- a/server/src/workflow-management/scheduler/index.ts +++ b/server/src/workflow-management/scheduler/index.ts @@ -7,12 +7,23 @@ import { createRemoteBrowserForRun, destroyRemoteBrowser } from '../../browser-m import logger from '../../logger'; import { browserPool } from "../../server"; import { googleSheetUpdateTasks, processGoogleSheetUpdates } from "../integrations/gsheet"; +import { getRecordingByFileName } from "../../routes/storage"; async function runWorkflow(fileName: string, runId: string) { if (!runId) { runId = uuid(); } + const recording = await getRecordingByFileName(fileName); + + if (!recording || !recording.recording_meta || !recording.recording_meta.id) { + logger.log('info', `Recording with name: ${fileName} not found`); + return { + success: false, + error: `Recording with name: ${fileName} not found`, + }; + } + try { const browserId = createRemoteBrowserForRun({ browser: chromium, @@ -21,6 +32,7 @@ async function runWorkflow(fileName: string, runId: string) { const run_meta = { status: 'Scheduled', name: fileName, + recordingId: recording.recording_meta.id, startedAt: new Date().toLocaleString(), finishedAt: '', browserId: browserId, From 9ce4740c9f87d5cb43a71eaeac3a931d8c8b36b1 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 23:35:51 +0530 Subject: [PATCH 26/26] feat: no caps --- server/src/workflow-management/scheduler/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/src/workflow-management/scheduler/index.ts b/server/src/workflow-management/scheduler/index.ts index c1e94bde..fe014f81 100644 --- a/server/src/workflow-management/scheduler/index.ts +++ b/server/src/workflow-management/scheduler/index.ts @@ -73,7 +73,7 @@ async function executeRun(fileName: string, runId: string) { const run = await readFile(`./../storage/runs/${fileName}_${runId}.json`); const parsedRun = JSON.parse(run); - parsedRun.status = 'RUNNING'; + parsedRun.status = 'running'; await saveFile( `../storage/runs/${fileName}_${runId}.json`, JSON.stringify(parsedRun, null, 2)