diff --git a/packages/contentstack-export/package.json b/packages/contentstack-export/package.json index 3bd5f27a5..ce3bc21db 100644 --- a/packages/contentstack-export/package.json +++ b/packages/contentstack-export/package.json @@ -7,7 +7,7 @@ "dependencies": { "@contentstack/cli-command": "~2.0.0-beta.7", "@contentstack/cli-utilities": "~2.0.0-beta.8", - "@contentstack/cli-variants": "~2.0.0-beta.13", + "@contentstack/cli-variants": "~2.0.0-beta.14", "@contentstack/cli-asset-management": "~1.0.0-beta.2", "@oclif/core": "^4.8.0", "async": "^3.2.6", diff --git a/packages/contentstack-import/package.json b/packages/contentstack-import/package.json index 4f42eb71f..1f2d2a738 100644 --- a/packages/contentstack-import/package.json +++ b/packages/contentstack-import/package.json @@ -8,7 +8,7 @@ "@contentstack/cli-audit": "~2.0.0-beta.12", "@contentstack/cli-command": "~2.0.0-beta.7", "@contentstack/cli-utilities": "~2.0.0-beta.8", - "@contentstack/cli-variants": "~2.0.0-beta.13", + "@contentstack/cli-variants": "~2.0.0-beta.14", "@contentstack/cli-asset-management": "~1.0.0-beta.2", "@oclif/core": "^4.3.0", "big-json": "^3.2.0", diff --git a/packages/contentstack-variants/package.json b/packages/contentstack-variants/package.json index 8a6b960d8..77e57ab71 100644 --- a/packages/contentstack-variants/package.json +++ b/packages/contentstack-variants/package.json @@ -1,6 +1,6 @@ { "name": "@contentstack/cli-variants", - "version": "2.0.0-beta.13", + "version": "2.0.0-beta.14", "description": "Variants plugin", "main": "lib/index.js", "types": "lib/index.d.ts", diff --git a/packages/contentstack-variants/src/export/experiences.ts b/packages/contentstack-variants/src/export/experiences.ts index 4c91cadf4..f98f1ec43 100644 --- a/packages/contentstack-variants/src/export/experiences.ts +++ b/packages/contentstack-variants/src/export/experiences.ts @@ -16,7 +16,10 @@ export default class ExportExperiences extends PersonalizationAdapter { headers: { 'X-Project-Uid': config.modules.personalize.project_id }, cmaConfig: { baseURL: config.region.cma + `/v3`, - headers: { api_key: config.apiKey }, + headers: { + api_key: config.apiKey, + ...(config.branchName ? { branch: config.branchName } : {}), + }, }, }; super(Object.assign(config, conf)); diff --git a/packages/contentstack-variants/src/utils/personalization-api-adapter.ts b/packages/contentstack-variants/src/utils/personalization-api-adapter.ts index 39e5e2f45..ee2ed613d 100644 --- a/packages/contentstack-variants/src/utils/personalization-api-adapter.ts +++ b/packages/contentstack-variants/src/utils/personalization-api-adapter.ts @@ -155,6 +155,17 @@ export class PersonalizationAdapter extends AdapterHelper impl this.cmaAPIClient?.headers({ authtoken: token }); } } + + // Ensure the CMA client targets the configured branch. Variant groups, CT + // links and other stack-CMA endpoints are branch-scoped, so without this + // header the requests would fall back to the default (main) branch even + // when the import/export is running against a non-main branch. + const branchName = (this.config as any)?.branchName; + if (this.adapterConfig.cmaConfig && branchName) { + log.debug(`Setting branch header for CMA client: ${branchName}`, this.exportConfig?.context); + this.cmaAPIClient?.headers({ branch: branchName }); + } + log.debug('Personalization adapter initialization completed', this.exportConfig?.context); } catch (error: any) { log.debug(`Personalization adapter initialization failed: ${error}`, this.exportConfig?.context);