diff --git a/packages/api/src/utility/cloudIntf.js b/packages/api/src/utility/cloudIntf.js index da67425b8..3e64de812 100644 --- a/packages/api/src/utility/cloudIntf.js +++ b/packages/api/src/utility/cloudIntf.js @@ -11,6 +11,8 @@ const { isProApp } = require('./checkLicense'); const socket = require('./socket'); const config = require('../controllers/config'); const simpleEncryptor = require('simple-encryptor'); +const currentVersion = require('../currentVersion'); +const { getPublicIpInfo } = require('./hardwareFingerprint'); const logger = getLogger('cloudIntf'); @@ -151,6 +153,8 @@ async function updateCloudFiles(isRefresh) { lastCloudFilesTags = ''; } + const ipInfo = await getPublicIpInfo(); + const tags = (await collectCloudFilesSearchTags()).join(','); let lastCheckedTm = 0; if (tags == lastCloudFilesTags && cloudFiles.length > 0) { @@ -162,11 +166,12 @@ async function updateCloudFiles(isRefresh) { const resp = await axios.default.get( `${DBGATE_CLOUD_URL}/public-cloud-updates?lastCheckedTm=${lastCheckedTm}&tags=${tags}&isRefresh=${ isRefresh ? 1 : 0 - }`, + }&country=${ipInfo?.country || ''}`, { headers: { ...getLicenseHttpHeaders(), ...(await getCloudSigninHeaders()), + 'x-app-version': currentVersion.version, }, } ); diff --git a/packages/api/src/utility/hardwareFingerprint.js b/packages/api/src/utility/hardwareFingerprint.js index 1be04fbb2..c99d86967 100644 --- a/packages/api/src/utility/hardwareFingerprint.js +++ b/packages/api/src/utility/hardwareFingerprint.js @@ -87,4 +87,5 @@ module.exports = { getHardwareFingerprint, getHardwareFingerprintHash, getPublicHardwareFingerprint, + getPublicIpInfo, }; diff --git a/packages/web/src/commands/stdCommands.ts b/packages/web/src/commands/stdCommands.ts index 4c1d822de..10f22e56c 100644 --- a/packages/web/src/commands/stdCommands.ts +++ b/packages/web/src/commands/stdCommands.ts @@ -132,7 +132,7 @@ registerCommand({ category: 'New', toolbarOrder: 1, name: 'Connection on Cloud', - testEnabled: () => !getCurrentConfig()?.runAsPortal && !getCurrentConfig()?.storageDatabase, + testEnabled: () => !getCurrentConfig()?.runAsPortal && !getCurrentConfig()?.storageDatabase && isProApp(), onClick: () => { openNewTab({ title: 'New Connection on Cloud',