From c2a4a821cd2a59da9381115ac81fb225a2ae7ca3 Mon Sep 17 00:00:00 2001 From: shobhit-cstk Date: Wed, 6 May 2026 12:53:20 +0530 Subject: [PATCH] refactor: migrate region configuration to JSON file - Replaced inline REGION_CONFIG object in index.ts with import from region-config.json for better maintainability. - Updated sso.utils.js to reference the new JSON configuration. - Removed redundant region configuration code from index.ts. --- api/src/constants/index.ts | 69 ++-------------------------- api/src/constants/region-config.json | 65 ++++++++++++++++++++++++++ api/sso.utils.js | 6 +-- 3 files changed, 70 insertions(+), 70 deletions(-) create mode 100644 api/src/constants/region-config.json diff --git a/api/src/constants/index.ts b/api/src/constants/index.ts index 7dab44a1..a61c9e6b 100644 --- a/api/src/constants/index.ts +++ b/api/src/constants/index.ts @@ -1,3 +1,5 @@ +import regionConfig = require('./region-config.json'); + export const CS_REGIONS = [ 'NA', 'EU', @@ -330,69 +332,4 @@ export const RESERVED_FIELD_MAPPINGS: Record = { export const MEDIA_BLOCK_NAMES = ['core/image', 'core/video', 'core/audio', 'core/file']; export const WORDPRESS_MISSSING_BLOCKS = 'core/missing'; -// Region configuration -export const REGION_CONFIG = { - NA: { - name: "North America", - cma: "https://api.contentstack.io", - cda: "https://cdn.contentstack.io", - app: "https://app.contentstack.com", - developerHub: "https://developerhub-api.contentstack.com", - personalize: "https://personalize-api.contentstack.com", - launch: "https://launch-api.contentstack.com", - }, - EU: { - name: "Europe", - cma: "https://eu-api.contentstack.com", - cda: "https://eu-cdn.contentstack.com", - app: "https://eu-app.contentstack.com", - developerHub: "https://eu-developerhub-api.contentstack.com", - personalize: "https://eu-personalize-api.contentstack.com", - launch: "https://eu-launch-api.contentstack.com", - }, - "AZURE-NA": { - name: "Azure North America", - cma: "https://azure-na-api.contentstack.com", - cda: "https://azure-na-cdn.contentstack.com", - app: "https://azure-na-app.contentstack.com", - developerHub: "https://azure-na-developerhub-api.contentstack.com", - personalize: "https://azure-na-personalize-api.contentstack.com", - launch: "https://azure-na-launch-api.contentstack.com", - }, - "AZURE-EU": { - name: "Azure Europe", - cma: "https://azure-eu-api.contentstack.com", - cda: "https://azure-eu-cdn.contentstack.com", - app: "https://azure-eu-app.contentstack.com", - developerHub: "https://azure-eu-developerhub-api.contentstack.com", - personalize: "https://azure-eu-personalize-api.contentstack.com", - launch: "https://azure-eu-launch-api.contentstack.com", - }, - "GCP-NA": { - name: "GCP North America", - cma: "https://gcp-na-api.contentstack.com", - cda: "https://gcp-na-cdn.contentstack.com", - app: "https://gcp-na-app.contentstack.com", - developerHub: "https://gcp-na-developerhub-api.contentstack.com", - personalize: "https://gcp-na-personalize-api.contentstack.com", - launch: "https://gcp-na-launch-api.contentstack.com", - }, - "GCP-EU": { - name: "GCP Europe", - cma: "https://gcp-eu-api.contentstack.com", - cda: "https://gcp-eu-cdn.contentstack.com", - app: "https://gcp-eu-app.contentstack.com", - developerHub: "https://gcp-eu-developerhub-api.contentstack.com", - personalize: "https://gcp-eu-personalize-api.contentstack.com", - launch: "https://gcp-eu-launch-api.contentstack.com", - }, - "AU": { - name: "Australia", - cma: "https://au-api.contentstack.com", - cda: "https://au-cdn.contentstack.com", - app: "https://au-app.contentstack.com", - developerHub: "https://au-developerhub-api.contentstack.com", - personalize: "https://au-personalize-api.contentstack.com", - launch: "https://au-launch-api.contentstack.com", - }, -}; \ No newline at end of file +export const REGION_CONFIG = regionConfig; diff --git a/api/src/constants/region-config.json b/api/src/constants/region-config.json new file mode 100644 index 00000000..e6a9123c --- /dev/null +++ b/api/src/constants/region-config.json @@ -0,0 +1,65 @@ +{ + "NA": { + "name": "North America", + "cma": "https://api.contentstack.io", + "cda": "https://cdn.contentstack.io", + "app": "https://app.contentstack.com", + "developerHub": "https://developerhub-api.contentstack.com", + "personalize": "https://personalize-api.contentstack.com", + "launch": "https://launch-api.contentstack.com" + }, + "EU": { + "name": "Europe", + "cma": "https://eu-api.contentstack.com", + "cda": "https://eu-cdn.contentstack.com", + "app": "https://eu-app.contentstack.com", + "developerHub": "https://eu-developerhub-api.contentstack.com", + "personalize": "https://eu-personalize-api.contentstack.com", + "launch": "https://eu-launch-api.contentstack.com" + }, + "AZURE-NA": { + "name": "Azure North America", + "cma": "https://azure-na-api.contentstack.com", + "cda": "https://azure-na-cdn.contentstack.com", + "app": "https://azure-na-app.contentstack.com", + "developerHub": "https://azure-na-developerhub-api.contentstack.com", + "personalize": "https://azure-na-personalize-api.contentstack.com", + "launch": "https://azure-na-launch-api.contentstack.com" + }, + "AZURE-EU": { + "name": "Azure Europe", + "cma": "https://azure-eu-api.contentstack.com", + "cda": "https://azure-eu-cdn.contentstack.com", + "app": "https://azure-eu-app.contentstack.com", + "developerHub": "https://azure-eu-developerhub-api.contentstack.com", + "personalize": "https://azure-eu-personalize-api.contentstack.com", + "launch": "https://azure-eu-launch-api.contentstack.com" + }, + "GCP-NA": { + "name": "GCP North America", + "cma": "https://gcp-na-api.contentstack.com", + "cda": "https://gcp-na-cdn.contentstack.com", + "app": "https://gcp-na-app.contentstack.com", + "developerHub": "https://gcp-na-developerhub-api.contentstack.com", + "personalize": "https://gcp-na-personalize-api.contentstack.com", + "launch": "https://gcp-na-launch-api.contentstack.com" + }, + "GCP-EU": { + "name": "GCP Europe", + "cma": "https://gcp-eu-api.contentstack.com", + "cda": "https://gcp-eu-cdn.contentstack.com", + "app": "https://gcp-eu-app.contentstack.com", + "developerHub": "https://gcp-eu-developerhub-api.contentstack.com", + "personalize": "https://gcp-eu-personalize-api.contentstack.com", + "launch": "https://gcp-eu-launch-api.contentstack.com" + }, + "AU": { + "name": "Australia", + "cma": "https://au-api.contentstack.com", + "cda": "https://au-cdn.contentstack.com", + "app": "https://au-app.contentstack.com", + "developerHub": "https://au-developerhub-api.contentstack.com", + "personalize": "https://au-personalize-api.contentstack.com", + "launch": "https://au-launch-api.contentstack.com" + } +} diff --git a/api/sso.utils.js b/api/sso.utils.js index 8b180e0e..81aad100 100644 --- a/api/sso.utils.js +++ b/api/sso.utils.js @@ -6,7 +6,7 @@ const crypto = require("crypto"); const rawManifest = require("./manifest.json"); const { default: axios } = require("axios"); const dotenv = require("dotenv"); -const { REGION_CONFIG } = require("./src/constants/index"); +const REGION_CONFIG = require("./src/constants/region-config.json"); dotenv.config(); const ENCRYPT_KEY = process.env?.MANIFEST_ENCRYPT_KEY; @@ -25,7 +25,7 @@ function encrypt(plaintext) { const authTag = cipher?.getAuthTag()?.toString("hex"); return `${ENC_PREFIX}${iv?.toString("hex")}:${authTag}:${encrypted}`; } - + function decrypt(encryptedValue) { if (!encryptedValue || !encryptedValue?.startsWith(ENC_PREFIX)) return encryptedValue; if (!ENCRYPT_KEY) throw new Error("MANIFEST_ENCRYPT_KEY env variable is required to decrypt manifest credentials"); @@ -50,8 +50,6 @@ function decryptManifest(m) { const manifest = decryptManifest(rawManifest); - - /** * Gets the current region from the CSDX config. * @returns The current region.