---
editLink: false
lastUpdated: false
---

[@salesforce/b2c-tooling-sdk](../../modules.md) / [config](../index.md) / NormalizedConfig

# Interface: NormalizedConfig

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:49](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L49)

Normalized B2C configuration with camelCase fields.

This is the canonical intermediate format that all configuration sources
map to. It provides a consistent interface regardless of the source format
(dw.json uses kebab-case, env vars use SCREAMING_SNAKE_CASE, etc.).

## Properties

### accountManagerHost?

> `optional` **accountManagerHost**: `string`

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:74](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L74)

Account Manager hostname for OAuth (default: account.demandware.com)

***

### apiBackend?

> `optional` **apiBackend**: `"ocapi"` \| `"scapi"` \| `"auto"`

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:214](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L214)

API backend preference for operations that support both OCAPI and SCAPI

***

### assetQuery?

> `optional` **assetQuery**: `string`[]

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:157](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L157)

JSON dot-paths for asset extraction from component data during
content library parsing. Used by `content export` and the VS Code
content library browser. Defaults to `['image.path']` when unset.

***

### authMethods?

> `optional` **authMethods**: [`AuthMethod`](../../auth/type-aliases/AuthMethod.md)[]

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:72](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L72)

Allowed authentication methods in priority order

***

### autoUpload?

> `optional` **autoUpload**: `boolean`

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:123](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L123)

Whether to auto-start code upload/sync in IDE extensions

***

### cartridgeIgnoreDirs?

> `optional` **cartridgeIgnoreDirs**: `string`[]

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:131](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L131)

Directory names skipped at any depth when archiving cartridges for deploy (replaces the default list)

***

### cartridges?

> `optional` **cartridges**: `string`[]

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:127](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L127)

Cartridge names to include in deploy/watch operations

***

### catalogs?

> `optional` **catalogs**: `string`[]

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:138](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L138)

Catalog IDs for WebDAV browsing

***

### certificate?

> `optional` **certificate**: `string`

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:200](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L200)

Path to PKCS12 certificate file for client mTLS (two-factor auth)

***

### certificatePassphrase?

> `optional` **certificatePassphrase**: `string`

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:202](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L202)

Passphrase for the certificate

***

### cipHost?

> `optional` **cipHost**: `string`

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:161](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L161)

Optional CIP analytics host override

***

### clientAuthMethod?

> `optional` **clientAuthMethod**: [`ClientAuthMethod`](../../auth/type-aliases/ClientAuthMethod.md)

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:76](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L76)

How client credentials are sent to Account Manager (default: basic)

***

### clientId?

> `optional` **clientId**: `string`

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:66](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L66)

OAuth client ID

***

### clientSecret?

> `optional` **clientSecret**: `string`

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:68](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L68)

OAuth client secret

***

### codeVersion?

> `optional` **codeVersion**: `string`

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:56](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L56)

Code version for deployments

***

### contentLibrary?

> `optional` **contentLibrary**: `string`

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:135](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L135)

Default content library ID for content export/list commands

***

### docsCategories?

> `optional` **docsCategories**: `string`[]

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:177](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L177)

Allowlist of documentation categories to expose from the `docs` search/read
surface (CLI `b2c docs`, MCP docs tools). When set, bounds the entire
available corpus to these categories; unset means no restriction (full
corpus). Category names are validated by `resolveEnabledCategories` in the
docs module (unknown names are dropped with a warning).

Sourced from `docs-categories` (dw.json), `SFCC_DOCS_CATEGORIES` (env), or
`docsCategories` (package.json). A CLI `--topics` / MCP `--docs-topics` flag,
when provided, overrides this config value.

#### Example

```ts
["script-api", "job-step", "help-admin", "tooling"]
```

***

### hostname?

> `optional` **hostname**: `string`

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:52](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L52)

B2C instance hostname

***

### importSetExclude?

> `optional` **importSetExclude**: `string`[]

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:129](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L129)

Project-relative directory paths to exclude recursively from import-set source discovery

***

### instanceName?

> `optional` **instanceName**: `string`

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:192](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L192)

Instance name (from multi-config supporting sources)

***

### jwtCertPath?

> `optional` **jwtCertPath**: `string`

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:80](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L80)

Path to JWT certificate file (cert.pem) for JWT authentication

***

### jwtKeyPath?

> `optional` **jwtKeyPath**: `string`

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:82](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L82)

Path to JWT private key file (key.pem) for JWT authentication

***

### jwtPassphrase?

> `optional` **jwtPassphrase**: `string`

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:84](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L84)

Optional passphrase for encrypted JWT private key

***

### libraries?

> `optional` **libraries**: (`string` \| [`LibraryEntry`](LibraryEntry.md))[]

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:150](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L150)

Library IDs for WebDAV browsing and the Content Libraries tree.

Accepts either a string array (all treated as shared libraries) or an
array of [LibraryEntry](LibraryEntry.md) objects that can mark individual libraries
as site-private. Both forms can be mixed in the same array.

#### Example

```ts
["RefArch", { id: "homepage", siteLibrary: true }]
```

***

### mrtApiKey?

> `optional` **mrtApiKey**: `string`

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:117](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L117)

MRT API key

***

### mrtBackend?

> `optional` **mrtBackend**: `"scapi"` \| `"auto"` \| `"legacy"`

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:224](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L224)

MRT backend preference for MRT operations that support both the legacy MRT
Cloud API and the SCAPI MRT backend. Independent of [apiBackend](#apibackend) (MRT
is a distinct subsystem). `legacy` = the per-user API-key MRT Cloud API;
`scapi` = the OAuth SCAPI MRT backend; `auto` prefers SCAPI when
prerequisites are present and falls back to legacy.

***

### mrtEnvironment?

> `optional` **mrtEnvironment**: `string`

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:115](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L115)

MRT environment name (e.g., staging, production)

***

### mrtOrigin?

> `optional` **mrtOrigin**: `string`

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:119](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L119)

MRT API origin URL override

***

### mrtProject?

> `optional` **mrtProject**: `string`

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:113](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L113)

MRT project slug

***

### password?

> `optional` **password**: `string`

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:62](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L62)

Password/access-key for Basic auth (WebDAV)

***

### projectDirectory?

> `optional` **projectDirectory**: `string`

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:194](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L194)

Starting directory for config file search and project-relative operations

***

### realm?

> `optional` **realm**: `string`

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:109](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L109)

Default ODS realm for sandbox operations

***

### safety?

> `optional` **safety**: `object`

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:228](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L228)

Safety configuration for this instance

#### confirm?

> `optional` **confirm**: `boolean`

When true, level-blocked operations require confirmation instead of hard-blocking

#### level?

> `optional` **level**: [`SafetyLevel`](../../safety/type-aliases/SafetyLevel.md)

Safety level

#### rules?

> `optional` **rules**: [`SafetyRule`](../../safety/interfaces/SafetyRule.md)[]

Ordered safety rules. First matching rule wins.

***

### sandboxApiHost?

> `optional` **sandboxApiHost**: `string`

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:107](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L107)

ODS API hostname

***

### scapiSchemas?

> `optional` **scapiSchemas**: `string`[]

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:188](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L188)

Local SCAPI OpenAPI 3 JSON contracts (files, directories or http(s) URLs) for MCP code mode.
Each replaces the bundled or live contract for the same API, or adds one.
Relative paths resolve from the project directory.

Sourced from `scapi-schemas` (dw.json) or `SFCC_SCAPI_SCHEMAS` (env, comma-separated).
The MCP `--scapi-schemas` flag, when provided, overrides this config value.

***

### scopes?

> `optional` **scopes**: `string`[]

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:70](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L70)

OAuth scopes

***

### selfSigned?

> `optional` **selfSigned**: `boolean`

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:204](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L204)

Whether to skip SSL/TLS certificate verification (self-signed certs)

***

### shortCode?

> `optional` **shortCode**: `string`

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:96](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L96)

SCAPI short code

***

### siteId?

> `optional` **siteId**: `string`

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:92](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L92)

B2C Commerce site/channel ID

***

### slasClientId?

> `optional` **slasClientId**: `string`

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:88](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L88)

SLAS client ID for shopper authentication

***

### slasClientSecret?

> `optional` **slasClientSecret**: `string`

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:90](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L90)

SLAS client secret for private shopper clients

***

### tenantId?

> `optional` **tenantId**: `string`

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:98](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L98)

Tenant/Organization ID for SCAPI

***

### username?

> `optional` **username**: `string`

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:60](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L60)

Username for Basic auth (WebDAV)

***

### webdavHostname?

> `optional` **webdavHostname**: `string`

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:54](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L54)

Separate hostname for WebDAV operations (if different from main hostname)

***

### ~~workingDirectory?~~

> `optional` **workingDirectory**: `string`

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:196](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1cc5681b8c76554833dc7a40097f33641882a372/packages/b2c-tooling-sdk/src/config/types.ts#L196)

#### Deprecated

Use projectDirectory instead
