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

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

# Interface: ConfigSource

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:255](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/config/types.ts#L255)

A configuration source that can contribute config values.

Implement this interface to create custom configuration sources.
Sources are called in order, and later sources can override earlier ones.

## Example

```typescript
import type { ConfigSource, ConfigLoadResult, ResolveConfigOptions } from '@salesforce/b2c-tooling-sdk/config';

class MyCustomSource implements ConfigSource {
  name = 'my-custom-source';

  async load(options: ResolveConfigOptions): Promise<ConfigLoadResult | undefined> {
    // Load config from your custom source (sync return values also work)
    return { config: { hostname: 'example.com' }, location: '/path/to/config' };
  }
}
```

## Properties

### credentialFields?

> `optional` **credentialFields**: keyof [`NormalizedConfig`](NormalizedConfig.md)[]

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:315](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/config/types.ts#L315)

Fields this source can securely store (e.g., ['password', 'clientSecret']).

***

### name

> **name**: `string`

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:257](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/config/types.ts#L257)

Human-readable name for diagnostics

***

### priority?

> `optional` **priority**: `number`

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:270](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/config/types.ts#L270)

Priority for source ordering. Lower numbers = higher priority.

Recommended ranges:
- < 0: Before built-in sources (override defaults)
- 0: Built-in sources (DwJsonSource, MobifySource)
- 1-999: After built-in sources (fill gaps)
- 1000: Lowest priority (PackageJsonSource)

#### Default

```ts
0
```

## Methods

### createInstance()?

> `optional` **createInstance**(`options`): [`MaybePromise`](../type-aliases/MaybePromise.md)\<`void`\>

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:294](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/config/types.ts#L294)

Create a new instance in this source.

#### Parameters

##### options

[`CreateInstanceOptions`](CreateInstanceOptions.md) & [`ResolveConfigOptions`](ResolveConfigOptions.md)

Creation options including name and config

#### Returns

[`MaybePromise`](../type-aliases/MaybePromise.md)\<`void`\>

***

### listInstances()?

> `optional` **listInstances**(`options?`): [`MaybePromise`](../type-aliases/MaybePromise.md)\<[`InstanceInfo`](InstanceInfo.md)[]\>

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:288](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/config/types.ts#L288)

List all instances from this source.

#### Parameters

##### options?

[`ResolveConfigOptions`](ResolveConfigOptions.md)

Resolution options

#### Returns

[`MaybePromise`](../type-aliases/MaybePromise.md)\<[`InstanceInfo`](InstanceInfo.md)[]\>

Array of instance info objects. May return synchronously or as a Promise.

***

### load()

> **load**(`options`): [`MaybePromise`](../type-aliases/MaybePromise.md)\<[`ConfigLoadResult`](ConfigLoadResult.md) \| `undefined`\>

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:279](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/config/types.ts#L279)

Load configuration from this source.

#### Parameters

##### options

[`ResolveConfigOptions`](ResolveConfigOptions.md)

Resolution options

#### Returns

[`MaybePromise`](../type-aliases/MaybePromise.md)\<[`ConfigLoadResult`](ConfigLoadResult.md) \| `undefined`\>

Config and location from this source, or undefined if source not available.
  May return synchronously or as a Promise.

***

### removeCredential()?

> `optional` **removeCredential**(`instanceName`, `field`, `options?`): [`MaybePromise`](../type-aliases/MaybePromise.md)\<`void`\>

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:337](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/config/types.ts#L337)

Remove a credential for an instance.

#### Parameters

##### instanceName

`string`

Instance name

##### field

keyof [`NormalizedConfig`](NormalizedConfig.md)

Config field to remove

##### options?

[`ResolveConfigOptions`](ResolveConfigOptions.md)

Resolution options

#### Returns

[`MaybePromise`](../type-aliases/MaybePromise.md)\<`void`\>

***

### removeInstance()?

> `optional` **removeInstance**(`name`, `options?`): [`MaybePromise`](../type-aliases/MaybePromise.md)\<`void`\>

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:301](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/config/types.ts#L301)

Remove an instance from this source.

#### Parameters

##### name

`string`

Instance name to remove

##### options?

[`ResolveConfigOptions`](ResolveConfigOptions.md)

Resolution options

#### Returns

[`MaybePromise`](../type-aliases/MaybePromise.md)\<`void`\>

***

### setActiveInstance()?

> `optional` **setActiveInstance**(`name`, `options?`): [`MaybePromise`](../type-aliases/MaybePromise.md)\<`void`\>

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:308](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/config/types.ts#L308)

Set an instance as active.

#### Parameters

##### name

`string`

Instance name to set as active

##### options?

[`ResolveConfigOptions`](ResolveConfigOptions.md)

Resolution options

#### Returns

[`MaybePromise`](../type-aliases/MaybePromise.md)\<`void`\>

***

### storeCredential()?

> `optional` **storeCredential**(`instanceName`, `field`, `value`, `options?`): [`MaybePromise`](../type-aliases/MaybePromise.md)\<`void`\>

Defined in: [packages/b2c-tooling-sdk/src/config/types.ts:324](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/config/types.ts#L324)

Store a credential value for an instance.

#### Parameters

##### instanceName

`string`

Instance name

##### field

keyof [`NormalizedConfig`](NormalizedConfig.md)

Config field to store

##### value

`string`

Value to store

##### options?

[`ResolveConfigOptions`](ResolveConfigOptions.md)

Resolution options

#### Returns

[`MaybePromise`](../type-aliases/MaybePromise.md)\<`void`\>
