---
title: "[Contentstack Command-line Interface (CLI)] - Contentstack CLI Configuration Reference"
description: Contentstack CLI Configuration Reference
url: https://www.contentstack.com/docs/developers/cli/contentstack-cli-configuration-reference
product: Contentstack
doc_type: reference
audience:
  - developers
  - administrators
version: "-"
last_updated: 2026-04-24
---

# [Contentstack Command-line Interface (CLI)] - Contentstack CLI Configuration Reference

This page is a configuration reference for Contentstack CLI plugins (export, import, audit, export-query, import-setup, and migration). It is intended for developers and administrators who need to configure CLI-based workflows across stacks, especially when working with config files, environment variables, and module-specific overrides.

Contentstack CLI Configuration Reference

This reference outlines all configuration options available in Contentstack CLI plugins for export, import, audit, and content migrations tasks. It helps developers and administrators configure and manage CLI-based workflows across stacks.

## Prerequisites
Before you begin, ensure that:
- The [CLI is installed](install-the-cli) and authenticated
- You have stack access with the necessary permissions
- You understand how configuration values are loaded (via config files, environment variables, or CLI flags)

## What You’ll Learn
After reading this reference, you can:
- Choose the correct CLI command and configuration for your task
- Understand how configuration values are resolved across environment variables, root settings, module overrides, and defaults
- Configure required and optional settings, including module-specific options
- Optimize performance and avoid common configuration errors

## Quick Reference
- Export a stack or content:
```
csdx cm:stacks:export
```
- Import content into a stack:
```
csdx cm:stacks:import
```
- Export specific content only:
```
csdx cm:stacks:export-query
```
- Audit schema and entries:
```
csdx cm:stacks:audit
```
- Set up mapping and dependencies before import:
```
csdx cm:stacks:import-setup
```
- Run custom content transformations:
```
csdx cm:stacks:migration
```

## Environment Variables
The CLI supports environment variables that override config files and defaults. This is especially useful for CI/CD pipelines, local overrides, and handling sensitive settings such as encryption keys.

**Note:** Environment variables have the highest priority in the configuration resolution order. Refer to the [Configuration Precedence](contentstack-cli-configuration-reference#configuration-precedence) section for the complete hierarchy.

### Supported CLI Configuration Environment Variables

| Variable | Type | Default | Description |
|---|---|---|---|
| `CS_CLI_CONFIG_PATH` | `string` | - | Custom path to the CLI configuration directory |
| `CS_CLI_LOG_PATH` | `string` | `process.cwd()` | Custom path for CLI log files |
| `CONFIG_NAME` | `string` | `contentstack_cli` | Base name of the configuration file (without extension) |
| `ENC_CONFIG_NAME` | `string` | `contentstack_cli_obfuscate` | Name of the encrypted configuration file |
| `ENC_KEY` | `string` | `encryptionKey` | Encryption key used for configuration files |
| `ENCRYPT_CONF` | `boolean` | `true` | Enable/disable configuration encryption |

### Usage Examples
The following examples focus on environment variables that significantly impact CLI behavior or are commonly used in real-world workflows.

**Change the default location for CLI log files**

```
export CS_CLI_LOG_PATH="/path/to/logs"
csdx cm:stacks:export
```
**Disable configuration file encryption**

```
export ENCRYPT_CONF=false
csdx cm:stacks:import
```
**Note**: Disabling encryption is useful in CI environments where secrets are managed externally.

**Use a custom directory for CLI configuration files**

```
export CS_CLI_CONFIG_PATH="/path/to/config"
csdx cm:stacks:export
```

## Configuration Precedence
Refer to this section when your CLI config includes both root and module-level values, and you need to understand which setting takes precedence.

### Precedence Order
- Module-specific configuration (highest priority)
- Root-level configuration
- Default values (lowest priority)

### How It Works
The CLI uses a recursive merge strategy (`merge.recursive()`) when loading configuration files. This means:
- **Module config overrides root config:** If a key exists at both `<module>.<key>` and root-level `<key>`, the module-specific value is used.
- **Root config acts as a fallback:** If a key is not defined at the module level, the CLI uses the root-level value.
- **Defaults are a last resort:** If neither module nor root includes the key, the CLI falls back to default values.

### Examples

#### Import Configuration Precedence
**Example 1: **`**importConcurrency**`** for Entries Module**

```
{
  "importConcurrency": 5,
  "modules": {
    "entries": {
      "importConcurrency": 10
    }
  }
}
```
**Result**: Entries module uses `importConcurrency: 10` (module config), while other modules use `importConcurrency: 5` (root config).

**Code Reference:** Refer to the [entries.ts](https://github.com/contentstack/cli/blob/v2.0.0-beta/packages/contentstack-import/src/import/modules/entries.ts#L95) in the CLI repository.

**Example 2: **`**writeConcurrency**`** for Content Types Module**

```
{
  "writeConcurrency": 5,
  "modules": {
    "content-types": {
      "writeConcurrency": 8
    }
  }
}
```
**Result:** Content Types module uses `writeConcurrency: 8` (module config), while other modules use `writeConcurrency: 5` (root config).

**Code Reference:** See [content-types.ts](https://github.com/contentstack/cli/blob/v2.0.0-beta/packages/contentstack-import/src/import/modules/content-types.ts#L63) in the CLI repository.

#### Export Configuration Precedence
**Example 3: **`**chunkFileSize**`** for Entries Module**

```
{
  "modules": {
    "entries": {
      "chunkFileSize": 20
    }
  }
}
```
**Result: **Entries module uses `chunkFileSize: 20` (module config). If not specified, it defaults to 10 (FsUtility default).

**Example 4: **`**fetchConcurrency**`** for Assets Module**

```
{
  "fetchConcurrency": 5,
  "modules": {
    "assets": {
      "fetchConcurrency": 10
    }
  }
}
```
**Result:** Assets module uses `fetchConcurrency: 10` (module config), while other modules use `fetchConcurrency: 5` (root config).

### Common Keys with Precedence
The following table lists configuration keys that can be defined at both the root level and module level, along with their corresponding module override paths.

| Root-Level Key | Module Override Path | Applicable Commands |
|---|---|---|
| `importConcurrency` | `modules.entries.importConcurrency` | Import |
| `fetchConcurrency` | `modules.<module>.fetchConcurrency` | Import, Export |
| `writeConcurrency` | `modules.<module>.writeConcurrency` | Import, Export |
| `chunkFileSize` | `modules.<module>.chunkFileSize` | Import, Export |
| `limit` | `modules.<module>.limit` | Export |
| `batchLimit` | `modules.<module>.batchLimit` | Export |

### Best Practices
- Define shared configuration values at the root level to apply them consistently across all modules.
- Use module-specific configuration only when a module requires behavior that differs from the global defaults.
- Avoid repeating the same configuration value at both root and module levels unless different behavior is intentionally required.
- When validating or troubleshooting CLI behavior, review module-level configuration first.
- Be aware that environment variables override configuration file values and can affect CLI behavior across commands.

**Example – Recommended Pattern:**

The following example demonstrates a recommended configuration pattern that balances shared defaults with targeted module overrides.

```
{
  "fetchConcurrency": 5,
  "writeConcurrency": 5,
  "modules": {
    "entries": {
      "importConcurrency": 10,
      "chunkFileSize": 20
    },
    "assets": {
      "fetchConcurrency": 10
    }
  }
}
```
In this example:
- Most modules use `fetchConcurrency: 5` and `writeConcurrency: 5` from the root
- The Entries module uses `importConcurrency: 10` and `chunkFileSize: 20` (module-specific overrides)
- The Assets module overrides the root value with `fetchConcurrency: 10`

## Export Configuration
Use this configuration to export stack content and metadata for backups, migrations, or moving content between stacks.

**Command**:

```
csdx cm:stacks:export
```
**Default Configuration:** See the [default export configuration file](https://github.com/contentstack/cli/blob/v2.0.0-beta/packages/contentstack-export/src/config/index.ts) in the CLI repository.

### Basic Settings

| Option | Type | Default | Required | Description |
|---|---|---|---|---|
| `contentVersion` | number | 2 | No | Version of the export format |
| `versioning` | boolean | false | No | Export versioned entries |
| `host` | string | `"https://api.contentstack.io/v3"` | No | Base URL for Content Management API |
| `preserveStackVersion` | boolean | false | No | Preserve stack version information |
| `source_stack` | string | - | Yes | API key of the source stack |
| `data` | string | - | Yes | Path to export directory |
| `exportDir` | string | - | No | Alias for data (export directory path) |

**Note:** The `source_stack` and `data` fields are required unless they are provided through CLI flags or an alias.

### Path & Directory Settings

| Option | Type | Default | Required | Description |
|---|---|---|---|---|
| `cliLogsPath` | string | - | No | Custom path for CLI logs |
| `branchName` | string | - | No | Branch name to export from |
| `branchAlias` | string | - | No | Branch alias to export from |

### Content Filtering

| Option | Type | Default | Required | Description |
|---|---|---|---|---|
| `moduleName` | `string` | - | No | Specific module to export |
| `contentTypes` | `string[]` | - | No | Array of content type UIDs |
| `filteredModules` | `string[]` | - | No | An array of module names to filter |
| `query` | `object|string` | - | No | Query object or file path for filtering |

### Performance Settings

| Option | Type | Default | Required | Description |
|---|---|---|---|---|
| `fetchConcurrency` | number | 5 | No | Number of parallel fetch operations |
| `writeConcurrency` | number | 5 | No | Number of parallel write operations |
| `delayMs` | number | - | No | Delay in milliseconds between API requests |
| `maxContentLength` | number | 100000000 | No | Max content length in bytes (100 MB) |
| `maxBodyLength` | number | 100000000 | No | Max body length in bytes (100 MB) |

### Feature Flags

| Option | Type | Default | Required | Description |
|---|---|---|---|---|
| `securedAssets` | boolean | false | No | Export secured assets |
| `personalizationEnabled` | boolean | false | No | Enable personalization features |
| `skipStackSettings` | boolean | false | No | Skip exporting stack settings (not in default config, but supported) |
| `skipDependencies` | boolean | false | No | Skip dependency resolution (not in default config, but supported) |

### Authentication

| Option | Type | Default | Required | Description |
|---|---|---|---|---|
| `email` | string | - | No | Email for basic authentication |
| `password` | string | - | No | Password for basic authentication |
| `management_token` | string | - | No | Management token (use --alias flag instead) |

### Advanced Settings

| Option | Type | Default | Required | Description |
|---|---|---|---|---|
| `master_locale` | object | - | No | Master locale configuration |
| `developerHubBaseUrl` | string | - | No | Base URL for Developer Hub API |
| `marketplaceAppEncryptionKey` | string | `"nF2ejRQcTv"` | No | Encryption key for Marketplace apps |

**Note:** If a configuration value is defined at both the root level and a module level, the module-level value takes precedence for that module. See [Configuration Precedence](contentstack-cli-configuration-reference#configuration-precedence) for more information.

### Module-Specific Configuration

#### Assets Module

| Option | Type | Default | Description |
|---|---|---|---|
| `modules.assets.batchLimit` | number | 20 | Asset objects fetched per API call |
| `modules.assets.chunkFileSize` | number | 1 | Size in MB for chunking large metadata JSON files (assets.json) |
| `modules.assets.downloadLimit` | number | 5 | Parallel asset file downloads |
| `modules.assets.fetchConcurrency` | number | 5 | Parallel fetch operations for asset metadata |
| `modules.assets.includeVersionedAssets` | boolean | false | Include versioned assets |
| `modules.assets.securedAssets` | boolean | false | Export secured assets (adds auth token to asset URLs) |
| `modules.assets.displayExecutionTime` | boolean | false | Display execution time for batch operations |
| `modules.assets.enableDownloadStatus` | boolean | false | Enable download progress display for asset files |
| `modules.assets.assetsMetaKeys` | string[] | [`uid`, `url`, `filename`, `parent_uid`] | Additional metadata keys to include |
| `modules.assets.host` | string | `https://images.contentstack.io` | CDN host for asset URLs |

#### Entries Module

| Option | Type | Default | Description |
|---|---|---|---|
| `modules.entries.limit` | number | 100 | Entries fetched per API call per content type/locale |
| `modules.entries.batchLimit` | number | 20 | Parallel entry version fetches when `exportVersions` is set to `true` (only used for version export) |
| `modules.entries.exportVersions` | boolean | false | Export all versions of each entry |
| `modules.entries.chunkFileSize` | number | 10 | Size in MB for chunking large entry JSON files (defaults to FsUtility default of 10 if not specified) |
| `modules.entries.invalidKeys` | string[] | See the default below the table | Keys to exclude from exported entries |
| `modules.entries.dependencies` | string[] | ['locales', 'content-types'] | Required modules that must be exported first |

**Default invalidKeys for Entry Module:**
- `stackHeaders`
- `content_type_uid`
- `urlPath`
- `created_at`
- `updated_at`
- `created_by`
- `updated_by`
- `_metadata`
- `published`

**Note:** The `downloadLimit` is not used for entries export. It applies only to the assets module.

**Precedence:** Module-specific `chunkFileSize`, `limit`, and `batchLimit` are module-specific only and don't have root-level equivalents.

#### Content Types Module

| Option | Type | Default | Description |
|---|---|---|---|
| `modules.content-types.limit` | number | 100 | Content types fetched per API call |
| `modules.content-types.validKeys` | string[] | See the default below the table | Valid keys to export |
| `modules.content-types.writeConcurrency` | number | 5 | Parallel file write operations (overrides root `writeConcurrency` if set) |

**Default validKeys for Content Type Module:**
- `title`
- `uid`
- `field_rules`
- `schema`
- `options`
- `singleton`
- `description`

**Precedence:** `modules.content-types.writeConcurrency` takes precedence over root-level `writeConcurrency`. If not set, falls back to the root `writeConcurrency` (default: 5).

#### Global Fields Module

| Option | Type | Default | Description |
|---|---|---|---|
| `modules.global-fields.limit` | number | 100 | Global fields fetched per API call |
| `modules.global-fields.validKeys` | string[] | See the default below the table | Valid keys to export |

**Default validKeys for Global Field Module:**
- `title`
- `uid`
- `schema`
- `options`
- `singleton`
- `description`

#### Taxonomies Module

| Option | Type | Default | Description |
|---|---|---|---|
| `modules.taxonomies.limit` | number | 100 | Taxonomies fetched per API call |
| `modules.taxonomies.invalidKeys` | string[] | See the default below the table | Keys to exclude from exported taxonomies |

**Default invalidKeys for Taxonomies Module:**
- `updated_at`
- `created_by`
- `updated_by`
- `stackHeaders`
- `urlPath`
- `created_at`

#### Personalize Module

| Option | Type | Default | Description |
|---|---|---|---|
| `modules.personalize.baseURL` | object | Region-specific | Base URLs for Personalize API by region |
| `modules.personalize.exportOrder` | string[] | ['attributes', 'audiences', 'events', 'experiences'] | Export order |

**Base URLs by Region:**
- **AWS-NA:** `https://personalize-api.contentstack.com`
- **AWS-EU:** `https://eu-personalize-api.contentstack.com`
- **AWS-AU:** `https://au-personalize-api.contentstack.com`
- **AZURE-NA:** `https://azure-na-personalize-api.contentstack.com`
- **AZURE-EU:** `https://azure-eu-personalize-api.contentstack.com`
- **GCP-NA:** `https://gcp-na-personalize-api.contentstack.com`
- **GCP-EU:** `https://gcp-eu-personalize-api.contentstack.com`

#### Locales Module

| Option | Type | Default | Description |
|---|---|---|---|
| `modules.locales.limit` | number | 100 | Locales fetched per API call |
| `modules.locales.requiredKeys` | string[] | See the default below the table | Required keys to export for locales |

**Default requiredKeys for Locales module:**
- `code`
- `uid`
- `name`
- `fallback_locale`

#### Environments Module

| Option | Type | Default | Description |
|---|---|---|---|
| `modules.environments.limit` | number | 100 | Environments fetched per API call |

#### Extensions Module

| Option | Type | Default | Description |
|---|---|---|---|
| `modules.extensions.limit` | number | 100 | Extensions fetched per API call |

#### Stack Module

| Option | Type | Default | Description |
|---|---|---|---|
| `modules.stack.limit` | number | 100 | Stack data fetched per API call |

#### Webhooks Module

| Option | Type | Default | Description |
|---|---|---|---|
| `modules.webhooks.limit` | number | 100 | Webhooks fetched per API call |

#### Workflows Module

| Option | Type | Default | Description |
|---|---|---|---|
| `modules.workflows.limit` | number | 100 | Workflows fetched per API call |
| `modules.workflows.invalidKeys` | string[] | See the default below the table | Keys to exclude from exported workflows |

**Default invalidKeys for Workflows module:**
- `stackHeaders`
- `urlPath`
- `created_at`
- `updated_at`
- `created_by`
- `updated_by`

#### Labels Module

| Option | Type | Default | Description |
|---|---|---|---|
| `modules.labels.limit` | number | 100 | Labels fetched per API call |
| `modules.labels.invalidKeys` | string[] | See the default below the table | Keys to exclude from exported labels |

**Default invalidKeys for Labels module:**
- `stackHeaders`
- `urlPath`
- `created_at`
- `updated_at`
- `created_by`
- `updated_by`

### Complete Export Configuration Example
The following example shows a complete export configuration, including commonly used options and module-level overrides.

```
{
  "contentVersion": 2,
  "versioning": false,
  "host": "https://api.contentstack.io/v3",
  "preserveStackVersion": false,
  "master_locale": {
    "name": "English - United States",
    "code": "en-us"
  },
  "source_stack": "bltXXXXXXXXXX",
  "data": "./export-data",
  "branchName": "main",
  "moduleName": null,
  "contentTypes": [],
  "securedAssets": false,
  "fetchConcurrency": 5,
  "writeConcurrency": 5,
  "delayMs": 1000,
  "maxContentLength": 100000000,
  "maxBodyLength": 100000000,
  "personalizationEnabled": false,
  "skipStackSettings": false,
  "skipDependencies": false,
  "developerHubBaseUrl": "",
  "marketplaceAppEncryptionKey": "nF2ejRQcTv",
  "modules": {
    "assets": {
      "batchLimit": 20,
      "chunkFileSize": 1,
      "downloadLimit": 5,
      "fetchConcurrency": 5,
      "includeVersionedAssets": false,
      "securedAssets": false,
      "displayExecutionTime": false,
      "enableDownloadStatus": false,
      "assetsMetaKeys": ["uid", "url", "filename", "parent_uid"],
      "host": "https://images.contentstack.io"
    },
    "entries": {
      "limit": 100,
      "batchLimit": 20,
      "exportVersions": false,
      "chunkFileSize": 10
    },
    "content-types": {
      "limit": 100,
      "validKeys": ["title", "uid", "field_rules", "schema", "options", "singleton", "description"]
    },
    "global-fields": {
      "validKeys": ["title", "uid", "schema", "options", "singleton", "description"]
    },
    "taxonomies": {
      "limit": 100
    },
    "personalize": {
      "baseURL": {
        "AWS-NA": "https://personalize-api.contentstack.com",
        "AWS-EU": "https://eu-personalize-api.contentstack.com",
        "AWS-AU": "https://au-personalize-api.contentstack.com",
        "AZURE-NA": "https://azure-na-personalize-api.contentstack.com",
        "AZURE-EU": "https://azure-eu-personalize-api.contentstack.com",
        "GCP-NA": "https://gcp-na-personalize-api.contentstack.com",
        "GCP-EU": "https://gcp-eu-personalize-api.contentstack.com"
      },
      "exportOrder": ["attributes", "audiences", "events", "experiences"]
    }
  }
}
```

## Import Configuration
Use this configuration to import content and stack metadata into a target stack, typically after an export or as part of a migration workflow. This section describes the root-level and module-specific options that control how content is imported and published.

**Command:** `csdx cm:stacks:import`

**Default Configuration:** Refer to the [default import configuration file](https://github.com/contentstack/cli/blob/v2.0.0-beta/packages/contentstack-import/src/config/index.ts) in the CLI repository.

### Basic Settings

| Option | Type | Default | Required | Description |
|---|---|---|---|---|
| `versioning` | `boolean` | false | No | Import versioned entries |
| `host` | `string` | `"https://api.contentstack.io/v3` | No | Base URL for Content Management API |
| `extensionHost` | `string` | `"https://app.contentstack.com` | No | Base URL for Contentstack application |
| `contentVersion` | `number` | - | No | Version of the import format |
| `preserveStackVersion` | `boolean` | false | No | Preserve stack version information |
| `target_stack` | `string` | - | Yes* | API key of target stack |
| `data` | `string` | - | Yes* | Path to import directory |
| `contentDir` | `string` | - | No | Alias for data |

**Note:** The `target_stack` and `data` fields are required unless they are provided through CLI flags or a management token alias.

### Path & Directory Settings

| Option | Type | Default | Required | Description |
|---|---|---|---|---|
| `cliLogsPath` | `string` | - | No | Custom path for CLI logs |
| `backupDir` | `string` | - | No | Path to backup directory |
| `branchName` | `string` | `"main` | No | Branch name to import into |
| `branchAlias` | `string` | - | No | Branch alias to import into |

### Content Filtering

| Option | Type | Default | Required | Description |
|---|---|---|---|---|
| `moduleName` | `string` | - | No | Specific module to import |
| `contentTypes` | `string[]` | - | No | Array of content type UIDs |
| `modules` | `string[]` | - | No | Array of module names to import |

### Performance Settings

| Option | Type | Default | Required | Description |
|---|---|---|---|---|
| `concurrency` | `number` | 1 | No | General concurrency level |
| `importConcurrency` | `number` | 5 | No | Number of parallel import operations |
| `fetchConcurrency` | `number` | 5 | No | Number of parallel fetch operations |
| `writeConcurrency` | `number` | 5 | No | Number of parallel write operations |
| `delayMs` | `number` | - | No | Delay in milliseconds between requests |
| `maxContentLength` | `number` | 100000000 | No | Max content length in bytes (100 MB) |
| `maxBodyLength` | `number` | 100000000 | No | Max body length in bytes (100 MB) |

**Recommended starting point:** Start by tuning `importConcurrency`, which controls overall import parallelism. Use module-level overrides for targeted optimization, and treat `fetchConcurrency` and `writeConcurrency` as advanced tuning options.

### Publish Settings

| Option | Type | Default | Required | Description |
|---|---|---|---|---|
| `skipAssetsPublish` | `boolean` | - | No | Skip asset publishing |
| `skipEntriesPublish` | `boolean` | - | No | Skip entry publishing |
| `entriesPublish` | `boolean` | true | No | Publish entries after import |

### Feature Flags

| Option | Type | Default | Required | Description |
|---|---|---|---|---|
| `skipAudit` | `boolean` | - | No | Skip audit fix during import |
| `skipExisting` | `boolean` | - | No | Skip "module exists" warnings |
| `replaceExisting` | `boolean` | - | No | Replace existing modules |
| `exclude-global-modules` | `boolean` | false | No | Exclude branch-independent modules (global modules are shared across all branches in a stack; see [Contentstack documentation](/docs/developers/branches/global-modules)) |
| `skipPrivateAppRecreationIfExist` | `boolean` | - | No | Skip recreation of existing private apps |

### Advanced Settings

| Option | Type | Default | Required | Description |
|---|---|---|---|---|
| `importWebhookStatus` | `string` | `"disable` | No | Webhook state: "disable" or "current" |
| `personalizeProjectName` | `string` | - | No | Unique name for the Personalize project |
| `developerHubBaseUrl` | `string` | - | No | Base URL for Developer Hub API |
| `marketplaceAppEncryptionKey` | `string` | `"nF2ejRQcTv` | No | Encryption key for Marketplace apps |
| `getEncryptionKeyMaxRetry` | `number` | 3 | No | Max retry attempts for encryption key |
| `auditConfig` | `object` | - | No | Configuration for audit process |
| `master_locale` | `object` | - | No | Master locale configuration |

### Authentication

| Option | Type | Default | Required | Description |
|---|---|---|---|---|
| `email` | `string` | - | No | Email for basic authentication |
| `password` | `string` | - | No | Password for basic authentication |
| `management_token` | `string` | - | No | Management token (use `--alias` flag instead) |

### Configuration Precedence
**Note:** When the same configuration key exists at both the root level and module level, **module-specific configuration takes precedence**.

For example, if you set `importConcurrency: 5` at root and `modules.entries.importConcurrency: 10`, the entries module uses `10`.

**Additional Resource:** Refer to the Configuration Precedence section for a detailed explanation and examples.

### Module-Specific Configuration

#### Assets Module

| Option | Type | Default | Description |
|---|---|---|---|
| `modules.assets.assetBatchLimit` | `number` | `1` | Assets processed per batch |
| `modules.assets.uploadAssetsConcurrency` | `number` | `2` | Assets uploaded in parallel |
| `modules.assets.importFoldersConcurrency` | `number` | `1` | Folders processed in parallel |
| `modules.assets.importSameStructure` | `boolean` | `true` | Maintain folder structure |
| `modules.assets.includeVersionedAssets` | `boolean` | `false` | Include versioned assets |
| `modules.assets.displayExecutionTime` | `boolean` | `false` | Display execution time |
| `modules.assets.host` | `string` | `"https://api.contentstack.io"` | API host for asset operations |
| `modules.assets.validKeys` | `string[]` | `See default` | Valid keys to import for assets |
| `modules.assets.folderValidKeys` | `string[]` | `See default` | Valid keys to import for folders |

**Default validKeys:** `["title", "parent_uid", "description", "tags"]`

**Default folderValidKeys:** `["name", "parent_uid"]`

**Note:** Folder hierarchy during import follows `folders.json`, not `modules.assets.importSameStructure`. The `importSameStructure` setting (default: `true`) only controls asset replace or skip behavior.

### Entries Module

| Option | Type | Default | Description |
|---|---|---|---|
| `modules.entries.importConcurrency` | `number` | `5` | Parallel entry import operations (overrides root `importConcurrency` if set) |
| `modules.entries.chunkFileSize` | `number` | `10` | Size in MB for chunking large entry mapper JSON files (defaults to `FsUtility` default of `10` if not specified) |
| `modules.entries.invalidKeys` | `string[]` | See default | Keys to exclude from entry mapper files |

**Default invalidKeys:** `['created_at', 'updated_at', 'created_by', 'updated_by', '_metadata', 'published']`

**Note:** `limit` and `assetBatchLimit` are defined in config but not actively used in the entries import code.

**Precedence:** `modules.entries.importConcurrency` takes precedence over root-level `importConcurrency`. If not set, falls back to root `importConcurrency` (default: `5`).

### Content Types Module

| Option | Type | Default | Description |
|---|---|---|---|
| `modules.content-types.limit` | `number` | `100` | Content types processed per batch |
| `modules.content-types.validKeys` | `string[]` | See default | Valid keys to import |
| `modules.content-types.writeConcurrency` | `number` | `5` | Parallel content type operations (overrides root `writeConcurrency` if set) |

**Default validKeys:** `["title", "uid", "schema", "options", "singleton", "description"]`

**Precedence:** `modules.content-types.writeConcurrency` takes precedence over root-level `writeConcurrency`. If not set, falls back to root `writeConcurrency` (default: `5`).

### Global Fields Module

| Option | Type | Default | Description |
|---|---|---|---|
| `modules.global-fields.limit` | `number` | `100` | Global fields processed per batch |
| `modules.global-fields.validKeys` | `string[]` | See default | Valid keys to import |
| `modules.global-fields.writeConcurrency` | `number` | `5` | Parallel global field operations (overrides root `writeConcurrency` if set) |

**Default validKeys:** `["title", "uid", "schema", "options", "singleton", "description"]`

**Precedence:** `modules.global-fields.writeConcurrency` takes precedence over root-level `writeConcurrency`. If not set, falls back to root `writeConcurrency` (default: `5`).

### Locales Module

| Option | Type | Default | Description |
|---|---|---|---|
| `modules.locales.writeConcurrency` | `number` | `5` | Parallel locale operations (overrides root `writeConcurrency` if set) |
| `modules.locales.requiredKeys` | `string[]` | See default | Required keys to import for locales |

**Default requiredKeys:** `['code', 'uid', 'name', 'fallback_locale']`

**Precedence:** `modules.locales.writeConcurrency` takes precedence over root-level `writeConcurrency`. If not set, falls back to root `writeConcurrency` (default: `5`).

### Environments Module
OptionTypeDefaultDescription`modules.environments.fetchConcurrency``number``2`Parallel environment operations (overrides root `fetchConcurrency` if set)**Precedence:** `modules.environments.fetchConcurrency` takes precedence over root-level `fetchConcurrency`. If not set, falls back to root `fetchConcurrency` (default: `5`), but the module default is `2`.

### Extensions Module
OptionTypeDefaultDescription`modules.extensions.concurrency``number``1`Parallel extension operations (falls back to `fetchConcurrency` if not set)`modules.extensions.validKeys``string[]`See defaultValid keys to import for extensions**Default validKeys:** `['data_type', 'srcdoc', 'title', 'type', 'multiple', 'config']`

### Taxonomies Module
OptionTypeDefaultDescription`modules.taxonomies.dirName``string``"taxonomies"`Directory name for taxonomies`modules.taxonomies.fileName``string``"taxonomies.json"`File name for taxonomies data

### Personalize Module
OptionTypeDefaultDescription`modules.personalize.baseURL``object`Region-specificBase URLs for Personalize API by region`modules.personalize.importData``boolean``true`Enable/disable Personalize data import`modules.personalize.importOrder``string[]``['attributes', 'audiences', 'events', 'experiences']`Import order`modules.personalize.project_id``string``""`Personalize project ID (auto-populated)`modules.personalize.experiences.thresholdTimer``number``60000`Timer threshold in milliseconds`modules.personalize.experiences.checkIntervalDuration``number``10000`Check interval duration in milliseconds**Base URLs:** Same as Export configuration (see [Export](#export-configuration) section above).

### Variant Entry Module
OptionTypeDefaultDescription`modules.variantEntry.apiConcurrency``number``5`Parallel API calls`modules.variantEntry.query.locale``string``"en-us"`Locale for variant entry queries

### General Module Settings
OptionTypeDefaultDescription`modules.apiConcurrency``number``5`General API concurrency for modules

### Complete Import Configuration Example

```
{
  "versioning": false,
  "host": "https://api.contentstack.io/v3",
  "extensionHost": "https://app.contentstack.com",
  "contentVersion": 2,
  "preserveStackVersion": false,
  "master_locale": {
    "name": "English - United States",
    "code": "en-us"
  },
  "target_stack": "bltXXXXXXXXXX",
  "data": "./import-data",
  "branchName": "main",
  "moduleName": null,
  "contentTypes": [],
  "skipAssetsPublish": false,
  "skipEntriesPublish": false,
  "entriesPublish": true,
  "concurrency": 1,
  "importConcurrency": 5,
  "fetchConcurrency": 5,
  "writeConcurrency": 5,
  "delayMs": 1000,
  "maxContentLength": 100000000,
  "maxBodyLength": 100000000,
  "skipAudit": false,
  "skipExisting": false,
  "replaceExisting": false,
  "importWebhookStatus": "disable",
  "personalizeProjectName": null,
  "exclude-global-modules": false,
  "skipPrivateAppRecreationIfExist": false,
  "backupDir": "./backup",
  "createBackupDir": "./temp",
  "cliLogsPath": "./logs",
  "developerHubBaseUrl": "",
  "marketplaceAppEncryptionKey": "nF2ejRQcTv",
  "getEncryptionKeyMaxRetry": 3,
  "auditConfig": {
    "noLog": false,
    "skipConfirm":