From 95a07dd638a0d3f591641882404b503239d22a71 Mon Sep 17 00:00:00 2001 From: YanivRidel Date: Thu, 18 Dec 2025 16:06:23 +0200 Subject: [PATCH 1/5] add IL region for mndy-code --- src/types/general/region.ts | 1 + src/utils/region.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/types/general/region.ts b/src/types/general/region.ts index b5ddfed..8422b65 100644 --- a/src/types/general/region.ts +++ b/src/types/general/region.ts @@ -2,4 +2,5 @@ export enum Region { US = 'us', EU = 'eu', AU = 'au', + IL = 'il', } diff --git a/src/utils/region.ts b/src/utils/region.ts index 653bbf0..9e42235 100644 --- a/src/utils/region.ts +++ b/src/utils/region.ts @@ -34,7 +34,7 @@ export function addRegionToFlags(flags: T): T { } const regionsPrompt = async () => - PromptService.promptList('Choose region', [Region.US, Region.EU, Region.AU], Region.US); + PromptService.promptList('Choose region', [Region.US, Region.EU, Region.AU, Region.IL], Region.US); export async function chooseRegionIfNeeded( region?: Region, From 0350559684824fb4c0be7f48f81a9cc588a2dee3 Mon Sep 17 00:00:00 2001 From: YanivRidel Date: Sun, 21 Dec 2025 12:17:05 +0200 Subject: [PATCH 2/5] block region il from scheduler --- src/commands/scheduler/create.ts | 4 ++-- src/commands/scheduler/delete.ts | 4 ++-- src/commands/scheduler/list.ts | 5 +++-- src/commands/scheduler/run.ts | 4 ++-- src/commands/scheduler/update.ts | 4 ++-- src/utils/region.ts | 13 +++++++++++++ 6 files changed, 24 insertions(+), 10 deletions(-) diff --git a/src/commands/scheduler/create.ts b/src/commands/scheduler/create.ts index f32c6ca..055d32b 100644 --- a/src/commands/scheduler/create.ts +++ b/src/commands/scheduler/create.ts @@ -6,7 +6,7 @@ import { PromptService } from 'src/services/prompt-service'; import { SchedulerService } from 'src/services/scheduler-service'; import { printJobs, validateCronExpression, validateTargetUrl } from 'src/services/scheduler-service.utils'; import logger from 'src/utils/logger'; -import { chooseRegionIfNeeded, getRegionFromString } from 'src/utils/region'; +import { chooseSchedulerRegionIfNeeded, getRegionFromString } from 'src/utils/region'; import { addPrefixIfNotExists } from 'src/utils/urls-builder'; import { isDefined } from 'src/utils/validations'; @@ -29,7 +29,7 @@ export default class SchedulerCreate extends AuthenticatedCommand { const parsedRegion = getRegionFromString(region); if (!appId) appId = await DynamicChoicesService.chooseApp(); - const selectedRegion = await chooseRegionIfNeeded(parsedRegion, { appId }); + const selectedRegion = await chooseSchedulerRegionIfNeeded(parsedRegion, { appId }); if (!name) name = await PromptService.promptInput(SchedulerMessages.name, true); if (!schedule) schedule = await PromptService.promptInput(SchedulerMessages.schedule, true); validateCronExpression(schedule); diff --git a/src/commands/scheduler/delete.ts b/src/commands/scheduler/delete.ts index db0c023..a9b1591 100644 --- a/src/commands/scheduler/delete.ts +++ b/src/commands/scheduler/delete.ts @@ -3,7 +3,7 @@ import { SchedulerBaseFlags } from 'src/consts/scheduler/flags'; import { DynamicChoicesService } from 'src/services/dynamic-choices-service'; import { SchedulerService } from 'src/services/scheduler-service'; import logger from 'src/utils/logger'; -import { chooseRegionIfNeeded, getRegionFromString } from 'src/utils/region'; +import { chooseSchedulerRegionIfNeeded, getRegionFromString } from 'src/utils/region'; export default class SchedulerDelete extends AuthenticatedCommand { static description = 'Delete a scheduler job for an app'; @@ -20,7 +20,7 @@ export default class SchedulerDelete extends AuthenticatedCommand { const parsedRegion = getRegionFromString(region); if (!appId) appId = await DynamicChoicesService.chooseApp(); - const selectedRegion = await chooseRegionIfNeeded(parsedRegion, { appId }); + const selectedRegion = await chooseSchedulerRegionIfNeeded(parsedRegion, { appId }); if (!name) name = await DynamicChoicesService.chooseSchedulerJob(appId, selectedRegion); logger.debug(`Deleting scheduler job ${name} for appId: ${appId}`, this.DEBUG_TAG); diff --git a/src/commands/scheduler/list.ts b/src/commands/scheduler/list.ts index 69fb9fc..3b70874 100644 --- a/src/commands/scheduler/list.ts +++ b/src/commands/scheduler/list.ts @@ -4,7 +4,7 @@ import { DynamicChoicesService } from 'src/services/dynamic-choices-service'; import { SchedulerService } from 'src/services/scheduler-service'; import { printJobs } from 'src/services/scheduler-service.utils'; import logger from 'src/utils/logger'; -import { chooseRegionIfNeeded, getRegionFromString } from 'src/utils/region'; +import { chooseSchedulerRegionIfNeeded, getRegionFromString, regionFlag } from 'src/utils/region'; export default class SchedulerList extends AuthenticatedCommand { static description = 'List all scheduler jobs for an app'; @@ -12,6 +12,7 @@ export default class SchedulerList extends AuthenticatedCommand { static flags = SchedulerList.serializeFlags({ appId: SchedulerBaseFlags.appId, + ...regionFlag, }); DEBUG_TAG = 'scheduler_list'; @@ -23,7 +24,7 @@ export default class SchedulerList extends AuthenticatedCommand { const parsedRegion = getRegionFromString(region); appId = appId ? Number(appId) : await DynamicChoicesService.chooseApp(); - const selectedRegion = await chooseRegionIfNeeded(parsedRegion, { appId }); + const selectedRegion = await chooseSchedulerRegionIfNeeded(parsedRegion, { appId }); logger.debug(`Listing scheduler jobs for appId: ${appId}`, this.DEBUG_TAG); this.preparePrintCommand(this, { appId, region: selectedRegion }); diff --git a/src/commands/scheduler/run.ts b/src/commands/scheduler/run.ts index d73216d..4c19ea0 100644 --- a/src/commands/scheduler/run.ts +++ b/src/commands/scheduler/run.ts @@ -3,7 +3,7 @@ import { SchedulerBaseFlags } from 'src/consts/scheduler/flags'; import { DynamicChoicesService } from 'src/services/dynamic-choices-service'; import { SchedulerService } from 'src/services/scheduler-service'; import logger from 'src/utils/logger'; -import { chooseRegionIfNeeded, getRegionFromString } from 'src/utils/region'; +import { chooseSchedulerRegionIfNeeded, getRegionFromString } from 'src/utils/region'; export default class SchedulerRun extends AuthenticatedCommand { static description = 'Manually trigger a scheduled job to run for an app'; @@ -20,7 +20,7 @@ export default class SchedulerRun extends AuthenticatedCommand { const parsedRegion = getRegionFromString(region); if (!appId) appId = await DynamicChoicesService.chooseApp(); - const selectedRegion = await chooseRegionIfNeeded(parsedRegion, { appId }); + const selectedRegion = await chooseSchedulerRegionIfNeeded(parsedRegion, { appId }); if (!name) name = await DynamicChoicesService.chooseSchedulerJob(appId, selectedRegion); logger.debug(`Running scheduler job ${name} for appId: ${appId}`, this.DEBUG_TAG); diff --git a/src/commands/scheduler/update.ts b/src/commands/scheduler/update.ts index f641666..d485a7f 100644 --- a/src/commands/scheduler/update.ts +++ b/src/commands/scheduler/update.ts @@ -7,7 +7,7 @@ import { SchedulerService } from 'src/services/scheduler-service'; import { printJobs, validateCronExpression, validateTargetUrl } from 'src/services/scheduler-service.utils'; import { UpdateJobRequest } from 'src/types/services/scheduler-service'; import logger from 'src/utils/logger'; -import { chooseRegionIfNeeded, getRegionFromString } from 'src/utils/region'; +import { chooseSchedulerRegionIfNeeded, getRegionFromString } from 'src/utils/region'; import { addPrefixIfNotExists } from 'src/utils/urls-builder'; import { isDefined, isDefinedAndNotEmpty } from 'src/utils/validations'; @@ -30,7 +30,7 @@ export default class SchedulerUpdate extends AuthenticatedCommand { const parsedRegion = getRegionFromString(region); if (!appId) appId = await DynamicChoicesService.chooseApp(); - const selectedRegion = await chooseRegionIfNeeded(parsedRegion, { appId }); + const selectedRegion = await chooseSchedulerRegionIfNeeded(parsedRegion, { appId }); const jobs = await SchedulerService.listJobs(appId, selectedRegion); if (!name) name = await DynamicChoicesService.chooseSchedulerJob(appId, selectedRegion, jobs); diff --git a/src/utils/region.ts b/src/utils/region.ts index 9e42235..a803e3d 100644 --- a/src/utils/region.ts +++ b/src/utils/region.ts @@ -72,3 +72,16 @@ export async function chooseRegionIfNeeded( const returnedRegion = await regionsPrompt(); return getRegionFromString(returnedRegion); } + +export async function chooseSchedulerRegionIfNeeded( + region?: Region, + options?: { appId?: number; appVersionId?: number }, +): Promise { + if (region === Region.IL) { + throw new Error( + 'Cloud Scheduler is not available in the IL region. Please use a different region (US, EU, or AU) for scheduler operations.', + ); + } + + return chooseRegionIfNeeded(region, options); +} From 1c53398cf8c69895347f10ba846492a5d4c66458 Mon Sep 17 00:00:00 2001 From: YanivRidel Date: Sun, 21 Dec 2025 14:47:26 +0200 Subject: [PATCH 3/5] add documentDB flag for zone --- src/commands/database/connection-string.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/commands/database/connection-string.ts b/src/commands/database/connection-string.ts index 2a66904..90b386d 100644 --- a/src/commands/database/connection-string.ts +++ b/src/commands/database/connection-string.ts @@ -6,7 +6,7 @@ import { VAR_UNKNOWN } from 'consts/messages'; import { getDatabaseConnectionString } from 'services/database-service'; import { DynamicChoicesService } from 'services/dynamic-choices-service'; import { defaultVersionByAppId } from 'src/services/app-versions-service'; -import { chooseRegionIfNeeded, getRegionFromString } from 'src/utils/region'; +import { addRegionToFlags, chooseRegionIfNeeded, getRegionFromString } from 'src/utils/region'; import { HttpError } from 'types/errors'; import logger from 'utils/logger'; @@ -15,12 +15,14 @@ export default class ConnectionString extends AuthenticatedCommand { static examples = ['<%= config.bin %> <%= command.id %> -a APP_ID']; - static flags = ConnectionString.serializeFlags({ - appId: Flags.integer({ - char: 'a', - description: 'Select the app that you wish to retrieve the connection string for', + static flags = ConnectionString.serializeFlags( + addRegionToFlags({ + appId: Flags.integer({ + char: 'a', + description: 'Select the app that you wish to retrieve the connection string for', + }), }), - }); + ); public async run(): Promise { const { flags } = await this.parse(ConnectionString); From 4e68acf74f444c52ed133d761dccd95a2e1bb894 Mon Sep 17 00:00:00 2001 From: Maor Barazani Date: Wed, 31 Dec 2025 14:19:02 +0200 Subject: [PATCH 4/5] enable debug to accept command flags --- .vscode/launch.json | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index b39e631..038553f 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -7,18 +7,28 @@ "name": "Debug CLI", "program": "${workspaceFolder}/bin/dev.js", "runtimeExecutable": "tsx", - "args": ["${input:cliCommand}"], + "args": [ + "${input:cliCommand}", + "${input:cliFlags}" + ], "runtimeArgs": ["--inspect"], "console": "integratedTerminal", - "autoAttachChildProcesses": true + "autoAttachChildProcesses": true, + "skipFiles": ["/**"] } ], "inputs": [ { "id": "cliCommand", "type": "promptString", - "description": "Enter the CLI command to debug (e.g. app:list, code:push, etc.)", + "description": "Enter the CLI command (e.g. app:list, code:push)", "default": "app:list" + }, + { + "id": "cliFlags", + "type": "promptString", + "description": "Enter command flags (e.g. -d /path/to/folder, --appId 123)", + "default": "" } ] } From 662a6ad12f5afe9d3881b2ebef3699d62a07b323 Mon Sep 17 00:00:00 2001 From: YanivRidel Date: Wed, 7 Jan 2026 14:31:38 +0200 Subject: [PATCH 5/5] chore: bump version to 4.10.5 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d16a296..57035a2 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@mondaycom/apps-cli", - "version": "4.10.4", + "version": "4.10.5", "description": "A cli tool to manage apps (and monday-code projects) in monday.com", "author": "monday.com Apps Team", "type": "module",