Class ConfigurationBuilder
A mutable object that uses the Builder pattern to specify properties for a Configuration object.
Inherited Members
Namespace: LaunchDarkly.Sdk.Server
Assembly: LaunchDarkly.ServerSdk.dll
Syntax
public sealed class ConfigurationBuilder
Remarks
Obtain an instance of this class by calling Builder(string).
All of the builder methods for setting a configuration property return a reference to the same builder, so they can be chained together.
Examples
var config = Configuration.Builder("my-sdk-key")
.StartWaitTime(TimeSpan.FromSeconds(5))
.Events(Components.SendEvents().Capacity(50000))
.Build();
Methods
| Edit this page View SourceApplicationInfo(ApplicationInfoBuilder)
Sets the SDK's application metadata, which may be used in the LaunchDarkly analytics or other product features. This object is normally a configuration builder obtained from ApplicationInfo(), which has methods for setting individual metadata properties.
Declaration
public ConfigurationBuilder ApplicationInfo(ApplicationInfoBuilder applicationInfo)
Parameters
Type | Name | Description |
---|---|---|
ApplicationInfoBuilder | applicationInfo | builder for ApplicationInfo(ApplicationInfoBuilder) |
Returns
Type | Description |
---|---|
ConfigurationBuilder | the same builder |
BigSegments(IComponentConfigurer<BigSegmentsConfiguration>)
Sets the configuration of the SDK's Big Segments feature.
Declaration
public ConfigurationBuilder BigSegments(IComponentConfigurer<BigSegmentsConfiguration> bigSegmentsConfig)
Parameters
Type | Name | Description |
---|---|---|
IComponentConfigurer<BigSegmentsConfiguration> | bigSegmentsConfig | a configuration factory object returned by BigSegments(IComponentConfigurer<IBigSegmentStore>) |
Returns
Type | Description |
---|---|
ConfigurationBuilder | the same builder |
Remarks
"Big Segments" are a specific type of user segments. For more information, read the LaunchDarkly documentation about user segments: https://docs.launchdarkly.com/home/users/segments
If you are using this feature, you will normally specify a database implementation that matches how the LaunchDarkly Relay Proxy is configured, since the Relay Proxy manages the Big Segment data.
By default, there is no implementation and Big Segments cannot be evaluated. In this case, any flag evaluation that references a Big Segment will behave as if no users are included in any Big Segments, and the EvaluationReason associated with any such flag evaluation will have a BigSegmentsStatus of NotConfigured.
Examples
// This example uses the Redis integration
var config = Configuration.Builder(sdkKey)
.BigSegments(Components.BigSegments(Redis.DataStore().Prefix("app1"))
.ContextCacheSize(2000))
.Build();
|
Edit this page
View Source
Build()
Creates a Configuration based on the properties that have been set on the builder. Modifying the builder after this point does not affect the returned Configuration.
Declaration
public Configuration Build()
Returns
Type | Description |
---|---|
Configuration | the configured |
DataSource(IComponentConfigurer<IDataSource>)
Sets the implementation of the component that receives feature flag data from LaunchDarkly, using a factory object.
Declaration
public ConfigurationBuilder DataSource(IComponentConfigurer<IDataSource> dataSourceConfig)
Parameters
Type | Name | Description |
---|---|---|
IComponentConfigurer<IDataSource> | dataSourceConfig | the factory object |
Returns
Type | Description |
---|---|
ConfigurationBuilder | the same builder |
Remarks
Depending on the implementation, the factory may be a builder that allows you to set other configuration options as well.
The default is StreamingDataSource(). You may instead use PollingDataSource(), ExternalUpdatesOnly, or a test fixture such as DataSource(). See those methods for details on how to configure them.
DataStore(IComponentConfigurer<IDataStore>)
Sets the data store implementation to be used for holding feature flags and related data received from LaunchDarkly.
Declaration
public ConfigurationBuilder DataStore(IComponentConfigurer<IDataStore> dataStoreConfig)
Parameters
Type | Name | Description |
---|---|---|
IComponentConfigurer<IDataStore> | dataStoreConfig | the factory object |
Returns
Type | Description |
---|---|
ConfigurationBuilder | the same builder |
Remarks
The default is InMemoryDataStore, but you may choose to use a custom implementation such as a database integration. For the latter, you will normally use PersistentDataStore(IComponentConfigurer<IPersistentDataStore>) in conjunction with some specific type for that integration.
This is specified as a factory because the SDK normally manages the lifecycle of the data store; it will create an instance from the factory when an LdClient is created, and dispose of that instance when disposing of the client.
DiagnosticOptOut(bool)
Set to true to opt out of sending diagnostic events.
Declaration
public ConfigurationBuilder DiagnosticOptOut(bool diagnosticOptOut)
Parameters
Type | Name | Description |
---|---|---|
bool | diagnosticOptOut | true to disable diagnostic events |
Returns
Type | Description |
---|---|
ConfigurationBuilder | the same builder |
Remarks
Unless the diagnosticOptOut field is set to true, the client will send some diagnostics data to the LaunchDarkly servers in order to assist in the development of future SDK improvements. These diagnostics consist of an initial payload containing some details of SDK in use, the SDK's configuration, and the platform the SDK is being run on, as well as payloads sent periodically with information on irregular occurrences such as dropped events.
Events(IComponentConfigurer<IEventProcessor>)
Sets the implementation of the component that processes analytics events.
Declaration
public ConfigurationBuilder Events(IComponentConfigurer<IEventProcessor> eventsConfig)
Parameters
Type | Name | Description |
---|---|---|
IComponentConfigurer<IEventProcessor> | eventsConfig | a builder/factory object for event configuration |
Returns
Type | Description |
---|---|
ConfigurationBuilder | the same builder |
Remarks
The default is SendEvents(), but you may choose to set it to a customized EventProcessorBuilder, a custom implementation (for instance, a test fixture), or disable events with NoEvents.
Hooks(HookConfigurationBuilder)
Configures the SDK's user-defined hooks.
Declaration
public ConfigurationBuilder Hooks(HookConfigurationBuilder hooksConfig)
Parameters
Type | Name | Description |
---|---|---|
HookConfigurationBuilder | hooksConfig | the hook configuration |
Returns
Type | Description |
---|---|
ConfigurationBuilder | the same builder |
Http(IComponentConfigurer<HttpConfiguration>)
Sets the SDK's networking configuration, using a builder object that is obtained from HttpConfiguration(), which has methods for setting individual HTTP-related properties.
Declaration
public ConfigurationBuilder Http(IComponentConfigurer<HttpConfiguration> httpConfig)
Parameters
Type | Name | Description |
---|---|---|
IComponentConfigurer<HttpConfiguration> | httpConfig | a builder object for HTTP configuration |
Returns
Type | Description |
---|---|
ConfigurationBuilder | the same builder |
Logging(ILogAdapter)
Sets the SDK's logging destination.
Declaration
public ConfigurationBuilder Logging(ILogAdapter logAdapter)
Parameters
Type | Name | Description |
---|---|---|
ILogAdapter | logAdapter | an |
Returns
Type | Description |
---|---|
ConfigurationBuilder | the same builder |
Remarks
This is a shortcut for Logging(Components.Logging(logAdapter))
. You can use it when you
only want to specify the basic logging destination, and do not need to set other log properties.
For more about how logging works in the SDK, see the SDK SDK reference guide.
Examples
var config = Configuration.Builder("my-sdk-key") .Logging(Logs.ToWriter(Console.Out)) .Build();
| Edit this page View SourceLogging(IComponentConfigurer<LoggingConfiguration>)
Sets the SDK's logging configuration, using a builder object that is obtained from Logging() which has methods for setting individual logging-related properties.
Declaration
public ConfigurationBuilder Logging(IComponentConfigurer<LoggingConfiguration> loggingConfig)
Parameters
Type | Name | Description |
---|---|---|
IComponentConfigurer<LoggingConfiguration> | loggingConfig | a builder object for logging configuration |
Returns
Type | Description |
---|---|
ConfigurationBuilder | the same builder |
Remarks
As a shortcut for disabling logging, you may use NoLogging instead. If all you want to do is to set the basic logging destination, and you do not need to set other logging properties, you can use Logging(ILogAdapter).
For more about how logging works in the SDK, see the SDK SDK reference guide.
Examples
var config = Configuration.Builder("my-sdk-key") .Logging(Components.Logging().Level(LogLevel.Warn))) .Build();
See Also
| Edit this page View SourceOffline(bool)
Sets whether or not this client is offline. If true, no calls to Launchdarkly will be made.
Declaration
public ConfigurationBuilder Offline(bool offline)
Parameters
Type | Name | Description |
---|---|---|
bool | offline | true if the client should remain offline |
Returns
Type | Description |
---|---|
ConfigurationBuilder | the same builder |
SdkKey(string)
Sets the SDK key for your LaunchDarkly environment.
Declaration
public ConfigurationBuilder SdkKey(string sdkKey)
Parameters
Type | Name | Description |
---|---|---|
string | sdkKey | the SDK key |
Returns
Type | Description |
---|---|
ConfigurationBuilder | the same builder |
ServiceEndpoints(ServiceEndpointsBuilder)
Sets the SDK's service URIs, using a configuration builder obtained from ServiceEndpoints().
Declaration
public ConfigurationBuilder ServiceEndpoints(ServiceEndpointsBuilder serviceEndpointsBuilder)
Parameters
Type | Name | Description |
---|---|---|
ServiceEndpointsBuilder | serviceEndpointsBuilder | the subconfiguration builder object |
Returns
Type | Description |
---|---|
ConfigurationBuilder | the main configuration builder |
Remarks
This overwrites any previous options set with ServiceEndpoints(ServiceEndpointsBuilder). If you want to set multiple options, set them on the same ServiceEndpointsBuilder.
See Also
| Edit this page View SourceStartWaitTime(TimeSpan)
Sets how long the client constructor will block awaiting a successful connection to LaunchDarkly.
Declaration
public ConfigurationBuilder StartWaitTime(TimeSpan startWaitTime)
Parameters
Type | Name | Description |
---|---|---|
TimeSpan | startWaitTime | the length of time to wait |
Returns
Type | Description |
---|---|
ConfigurationBuilder | the same builder |
Remarks
Setting this to 0 will not block and will cause the constructor to return immediately. The default value is 5 seconds.
WrapperInfo(WrapperInfoBuilder)
Set the wrapper information.
Declaration
public ConfigurationBuilder WrapperInfo(WrapperInfoBuilder wrapperInfo)
Parameters
Type | Name | Description |
---|---|---|
WrapperInfoBuilder | wrapperInfo | the wrapper builder |
Returns
Type | Description |
---|---|
ConfigurationBuilder | the same builder |
Remarks
This is intended for use with wrapper SDKs from LaunchDarkly. Additionally, any wrapper SDK may overwrite any application developer provided wrapper information.