From ba6ee3ff6d6fda0e4bdf09e5aa56690851212b28 Mon Sep 17 00:00:00 2001 From: raj pandey Date: Tue, 12 May 2026 19:13:15 +0530 Subject: [PATCH] Added branches support for entry variant and variant group --- .../contentstack-variants/src/export/experiences.ts | 5 ++++- .../contentstack-variants/src/import/experiences.ts | 5 ++++- .../src/utils/personalization-api-adapter.ts | 11 +++++++++++ 3 files changed, 19 insertions(+), 2 deletions(-) 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);