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

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

# Class: InstanceManager

Defined in: [packages/b2c-tooling-sdk/src/config/instance-manager.ts:44](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/config/instance-manager.ts#L44)

Service for managing B2C instances across multiple config sources.

This class aggregates instance management operations from all sources
that implement the optional instance management methods.

## Example

```typescript
import { InstanceManager, DwJsonSource } from '@salesforce/b2c-tooling-sdk/config';

const manager = new InstanceManager([new DwJsonSource()]);

// List all instances
const instances = manager.listAllInstances();

// Create a new instance
manager.createInstance({
  name: 'staging',
  config: { hostname: 'staging.example.com' },
  setActive: true,
});
```

## Constructors

### Constructor

> **new InstanceManager**(`sources`): `InstanceManager`

Defined in: [packages/b2c-tooling-sdk/src/config/instance-manager.ts:45](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/config/instance-manager.ts#L45)

#### Parameters

##### sources

[`ConfigSource`](../interfaces/ConfigSource.md)[]

#### Returns

`InstanceManager`

## Methods

### createInstance()

> **createInstance**(`options`, `targetSource?`): `Promise`\<`void`\>

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

Create an instance in the specified source (or default to first instance source).

#### Parameters

##### options

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

Instance creation options

##### targetSource?

`string`

Source name to use (optional, defaults to first available)

#### Returns

`Promise`\<`void`\>

#### Throws

Error if no instance sources available or specified source not found

***

### getCredentialSources()

> **getCredentialSources**(`field`): [`ConfigSource`](../interfaces/ConfigSource.md)[]

Defined in: [packages/b2c-tooling-sdk/src/config/instance-manager.ts:81](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/config/instance-manager.ts#L81)

Get sources that can store a specific credential field.

#### Parameters

##### field

keyof [`NormalizedConfig`](../interfaces/NormalizedConfig.md)

The credential field to check

#### Returns

[`ConfigSource`](../interfaces/ConfigSource.md)[]

Array of sources that can store the field

***

### getInstanceSources()

> **getInstanceSources**(): [`ConfigSource`](../interfaces/ConfigSource.md)[]

Defined in: [packages/b2c-tooling-sdk/src/config/instance-manager.ts:71](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/config/instance-manager.ts#L71)

Get sources that can create instances.

#### Returns

[`ConfigSource`](../interfaces/ConfigSource.md)[]

Array of sources with createInstance() method

***

### listAllInstances()

> **listAllInstances**(`options?`): `Promise`\<[`InstanceInfo`](../interfaces/InstanceInfo.md)[]\>

Defined in: [packages/b2c-tooling-sdk/src/config/instance-manager.ts:53](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/config/instance-manager.ts#L53)

List instances from all sources that implement listInstances().

#### Parameters

##### options?

[`ResolveConfigOptions`](../interfaces/ResolveConfigOptions.md)

Resolution options

#### Returns

`Promise`\<[`InstanceInfo`](../interfaces/InstanceInfo.md)[]\>

Array of all instances from all sources

***

### removeInstance()

> **removeInstance**(`name`, `options?`): `Promise`\<`void`\>

Defined in: [packages/b2c-tooling-sdk/src/config/instance-manager.ts:121](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/config/instance-manager.ts#L121)

Remove an instance from the source that contains it.

#### Parameters

##### name

`string`

Instance name to remove

##### options?

[`ResolveConfigOptions`](../interfaces/ResolveConfigOptions.md)

Resolution options

#### Returns

`Promise`\<`void`\>

#### Throws

Error if instance not found in any source

***

### setActiveInstance()

> **setActiveInstance**(`name`, `options?`): `Promise`\<`void`\>

Defined in: [packages/b2c-tooling-sdk/src/config/instance-manager.ts:143](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/config/instance-manager.ts#L143)

Set an instance as active in the source that contains it.

#### Parameters

##### name

`string`

Instance name to set as active

##### options?

[`ResolveConfigOptions`](../interfaces/ResolveConfigOptions.md)

Resolution options

#### Returns

`Promise`\<`void`\>

#### Throws

Error if instance not found in any source

***

### storeCredential()

> **storeCredential**(`instanceName`, `field`, `value`, `targetSource?`, `options?`): `Promise`\<`void`\>

Defined in: [packages/b2c-tooling-sdk/src/config/instance-manager.ts:168](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/config/instance-manager.ts#L168)

Store a credential for an instance in the specified source.

#### Parameters

##### instanceName

`string`

Instance name

##### field

keyof [`NormalizedConfig`](../interfaces/NormalizedConfig.md)

Config field to store

##### value

`string`

Value to store

##### targetSource?

`string`

Source name to use (optional)

##### options?

[`ResolveConfigOptions`](../interfaces/ResolveConfigOptions.md)

Resolution options

#### Returns

`Promise`\<`void`\>

#### Throws

Error if no credential sources support the field
