@salesforce/b2c-tooling-sdk / config / ConfigSource
Interface: ConfigSource
Defined in: packages/b2c-tooling-sdk/src/config/types.ts:388
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
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?
optionalcredentialFields: keyofNormalizedConfig[]
Defined in: packages/b2c-tooling-sdk/src/config/types.ts:448
Fields this source can securely store (e.g., ['password', 'clientSecret']).
name
name:
string
Defined in: packages/b2c-tooling-sdk/src/config/types.ts:390
Human-readable name for diagnostics
priority?
optionalpriority:number
Defined in: packages/b2c-tooling-sdk/src/config/types.ts:403
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
0Methods
createInstance()?
optionalcreateInstance(options):MaybePromise<void>
Defined in: packages/b2c-tooling-sdk/src/config/types.ts:427
Create a new instance in this source.
Parameters
options
CreateInstanceOptions & ResolveConfigOptions
Creation options including name and config
Returns
MaybePromise<void>
listInstances()?
optionallistInstances(options?):MaybePromise<InstanceInfo[]>
Defined in: packages/b2c-tooling-sdk/src/config/types.ts:421
List all instances from this source.
Parameters
options?
Resolution options
Returns
Array of instance info objects. May return synchronously or as a Promise.
load()
load(
options):MaybePromise<ConfigLoadResult|undefined>
Defined in: packages/b2c-tooling-sdk/src/config/types.ts:412
Load configuration from this source.
Parameters
options
Resolution options
Returns
MaybePromise<ConfigLoadResult | undefined>
Config and location from this source, or undefined if source not available. May return synchronously or as a Promise.
removeCredential()?
optionalremoveCredential(instanceName,field,options?):MaybePromise<void>
Defined in: packages/b2c-tooling-sdk/src/config/types.ts:470
Remove a credential for an instance.
Parameters
instanceName
string
Instance name
field
keyof NormalizedConfig
Config field to remove
options?
Resolution options
Returns
MaybePromise<void>
removeInstance()?
optionalremoveInstance(name,options?):MaybePromise<void>
Defined in: packages/b2c-tooling-sdk/src/config/types.ts:434
Remove an instance from this source.
Parameters
name
string
Instance name to remove
options?
Resolution options
Returns
MaybePromise<void>
setActiveInstance()?
optionalsetActiveInstance(name,options?):MaybePromise<void>
Defined in: packages/b2c-tooling-sdk/src/config/types.ts:441
Set an instance as active.
Parameters
name
string
Instance name to set as active
options?
Resolution options
Returns
MaybePromise<void>
storeCredential()?
optionalstoreCredential(instanceName,field,value,options?):MaybePromise<void>
Defined in: packages/b2c-tooling-sdk/src/config/types.ts:457
Store a credential value for an instance.
Parameters
instanceName
string
Instance name
field
keyof NormalizedConfig
Config field to store
value
string
Value to store
options?
Resolution options
Returns
MaybePromise<void>
updateConfig()?
optionalupdateConfig(patch,options):MaybePromise<ConfigUpdateResult>
Defined in: packages/b2c-tooling-sdk/src/config/types.ts:495
Persist field values to the exact entry load returns for the same options (for example the selected dw.json instance). An undefined value removes the field. Implement only for sources the user owns and can edit; throw when the target is ambiguous or a value can't be represented.
b2c setup set calls this on the source that supplies the field, or for a field nothing sets, on the source that supplied the instance (its instanceName, else hostname). Sources without this method are treated as read-only, except credential stores, which receive storeCredential / removeCredential for their credentialFields.
Parameters
patch
Partial<NormalizedConfig>
Fields to set, or undefined to remove
options
The options this source was loaded with
Returns
MaybePromise<ConfigUpdateResult>
Where the values were written