From 043bdc5e77f540700105d62b924ca2dac2c44e75 Mon Sep 17 00:00:00 2001
From: Ryan Lamb <4955475+kinyoklion@users.noreply.github.com>
Date: Thu, 18 Dec 2025 13:03:15 -0800
Subject: [PATCH] chore: Enable FDv2 public experimental support.
---
pkgs/sdk/server/src/Components.cs | 3 +--
pkgs/sdk/server/src/Configuration.cs | 3 +--
pkgs/sdk/server/src/ConfigurationBuilder.cs | 3 +--
.../server/src/Integrations/DataSystemBuilder.cs | 14 +++++++++++---
.../src/Integrations/DataSystemComponents.cs | 3 +--
.../sdk/server/src/Integrations/DataSystemModes.cs | 3 +--
.../Integrations/FDv2PollingDataSourceBuilder.cs | 4 +---
.../Integrations/FDv2StreamingDataSourceBuilder.cs | 7 +++----
pkgs/sdk/server/src/LaunchDarkly.ServerSdk.csproj | 2 +-
.../src/Subsystems/DataSystemConfiguration.cs | 4 +---
pkgs/sdk/server/src/Subsystems/ISelectorSource.cs | 4 +---
pkgs/sdk/server/src/Subsystems/LdClientContext.cs | 3 +--
.../Internal/FDv2DataSources/FDv2DataSourceTest.cs | 9 +++------
13 files changed, 27 insertions(+), 35 deletions(-)
diff --git a/pkgs/sdk/server/src/Components.cs b/pkgs/sdk/server/src/Components.cs
index 188cf6eb..77c808e6 100644
--- a/pkgs/sdk/server/src/Components.cs
+++ b/pkgs/sdk/server/src/Components.cs
@@ -490,7 +490,6 @@ public static StreamingDataSourceBuilder StreamingDataSource() =>
/// in the configuration.
///
/// a configuration builder
- /// TODO: SDK-1678: Internal until ready for use.
- internal static DataSystemModes DataSystem() => new DataSystemModes();
+ public static DataSystemModes DataSystem() => new DataSystemModes();
}
}
diff --git a/pkgs/sdk/server/src/Configuration.cs b/pkgs/sdk/server/src/Configuration.cs
index 90eeb742..90774284 100644
--- a/pkgs/sdk/server/src/Configuration.cs
+++ b/pkgs/sdk/server/src/Configuration.cs
@@ -124,8 +124,7 @@ public class Configuration
/// It is not suitable for production usage. Do not use it. You have been warned.
///
///
- /// TODO: SDK-1678: Internal until ready for use.
- internal DataSystemBuilder DataSystem { get; }
+ public DataSystemBuilder DataSystem { get; }
#endregion
diff --git a/pkgs/sdk/server/src/ConfigurationBuilder.cs b/pkgs/sdk/server/src/ConfigurationBuilder.cs
index 6514824a..bf5936a2 100644
--- a/pkgs/sdk/server/src/ConfigurationBuilder.cs
+++ b/pkgs/sdk/server/src/ConfigurationBuilder.cs
@@ -420,8 +420,7 @@ public ConfigurationBuilder WrapperInfo(WrapperInfoBuilder wrapperInfo)
///
/// the data system builder
/// the same builder
- /// TODO: SDK-1678: Internal until ready for use.
- internal ConfigurationBuilder DataSystem(DataSystemBuilder dataSystemBuilder)
+ public ConfigurationBuilder DataSystem(DataSystemBuilder dataSystemBuilder)
{
_dataSystem = dataSystemBuilder;
return this;
diff --git a/pkgs/sdk/server/src/Integrations/DataSystemBuilder.cs b/pkgs/sdk/server/src/Integrations/DataSystemBuilder.cs
index 52bb8fd3..5078e135 100644
--- a/pkgs/sdk/server/src/Integrations/DataSystemBuilder.cs
+++ b/pkgs/sdk/server/src/Integrations/DataSystemBuilder.cs
@@ -11,10 +11,8 @@ namespace LaunchDarkly.Sdk.Server.Integrations
/// It is not suitable for production usage. Do not use it. You have been warned.
///
///
- internal sealed class DataSystemBuilder
+ public sealed class DataSystemBuilder
{
- // TODO: SDK-1678: Internal until ready for use.
-
private readonly List> _initializers =
new List>();
@@ -89,6 +87,16 @@ public DataSystemBuilder FDv1FallbackSynchronizer(IComponentConfigurer
+ /// Configures the persistent data store.
+ ///
+ /// the persistent data store
+ /// the mode for the persistent data store
+ /// a reference to the builder
+ ///
+ /// The SDK will use the persistent data store to store feature flag data.
+ ///
+ ///
public DataSystemBuilder PersistentStore(IComponentConfigurer persistentStore,
DataSystemConfiguration.DataStoreMode mode)
{
diff --git a/pkgs/sdk/server/src/Integrations/DataSystemComponents.cs b/pkgs/sdk/server/src/Integrations/DataSystemComponents.cs
index 3981155e..aeeda4d1 100644
--- a/pkgs/sdk/server/src/Integrations/DataSystemComponents.cs
+++ b/pkgs/sdk/server/src/Integrations/DataSystemComponents.cs
@@ -10,9 +10,8 @@ namespace LaunchDarkly.Sdk.Server.Integrations
/// It is not suitable for production usage. Do not use it. You have been warned.
///
///
- internal static class DataSystemComponents
+ public static class DataSystemComponents
{
- // TODO: SDK-1678: Internal until ready for use.
///
/// Get a builder for a polling data source.
diff --git a/pkgs/sdk/server/src/Integrations/DataSystemModes.cs b/pkgs/sdk/server/src/Integrations/DataSystemModes.cs
index 7443c668..47eb924d 100644
--- a/pkgs/sdk/server/src/Integrations/DataSystemModes.cs
+++ b/pkgs/sdk/server/src/Integrations/DataSystemModes.cs
@@ -9,11 +9,10 @@ namespace LaunchDarkly.Sdk.Server.Integrations
/// It is not suitable for production usage. Do not use it. You have been warned.
///
///
- internal sealed class DataSystemModes
+ public sealed class DataSystemModes
{
// This implementation is non-static to allow for easy usage with "Components".
// Where we can return an instance of this object, and the user can chain into their desired configuration.
- // TODO: SDK-1678: Internal until ready for use.
///
/// Configure's LaunchDarkly's recommended flag data acquisition strategy.
diff --git a/pkgs/sdk/server/src/Integrations/FDv2PollingDataSourceBuilder.cs b/pkgs/sdk/server/src/Integrations/FDv2PollingDataSourceBuilder.cs
index 150b0511..8e21d006 100644
--- a/pkgs/sdk/server/src/Integrations/FDv2PollingDataSourceBuilder.cs
+++ b/pkgs/sdk/server/src/Integrations/FDv2PollingDataSourceBuilder.cs
@@ -25,10 +25,8 @@ namespace LaunchDarkly.Sdk.Server.Integrations
/// .FDv1FallbackSynchronizer(DataSystemComponents.FDv1Polling()));
///
///
- internal sealed class FDv2PollingDataSourceBuilder : IComponentConfigurer, IDiagnosticDescription
+ public sealed class FDv2PollingDataSourceBuilder : IComponentConfigurer, IDiagnosticDescription
{
- // TODO: SDK-1678: Internal until ready for use.
-
///
/// The default value for : 30 seconds.
///
diff --git a/pkgs/sdk/server/src/Integrations/FDv2StreamingDataSourceBuilder.cs b/pkgs/sdk/server/src/Integrations/FDv2StreamingDataSourceBuilder.cs
index cf11de27..5e20f58d 100644
--- a/pkgs/sdk/server/src/Integrations/FDv2StreamingDataSourceBuilder.cs
+++ b/pkgs/sdk/server/src/Integrations/FDv2StreamingDataSourceBuilder.cs
@@ -25,10 +25,8 @@ namespace LaunchDarkly.Sdk.Server.Integrations
/// .FDv1FallbackSynchronizer(DataSystemComponents.FDv1Polling()));
///
///
- internal sealed class FDv2StreamingDataSourceBuilder : IComponentConfigurer, IDiagnosticDescription
+ public sealed class FDv2StreamingDataSourceBuilder : IComponentConfigurer, IDiagnosticDescription
{
- // TODO: SDK-1678: Internal until ready for use.
-
///
/// The default value for : 1000 milliseconds.
///
@@ -92,7 +90,8 @@ public IDataSource Build(LdClientContext context)
public LdValue DescribeConfiguration(LdClientContext context) =>
LdValue.BuildObject()
.WithStreamingProperties(
- StandardEndpoints.IsCustomUri(_serviceEndpointsOverride ?? context.ServiceEndpoints, e => e.StreamingBaseUri),
+ StandardEndpoints.IsCustomUri(_serviceEndpointsOverride ?? context.ServiceEndpoints,
+ e => e.StreamingBaseUri),
false,
_initialReconnectDelay
)
diff --git a/pkgs/sdk/server/src/LaunchDarkly.ServerSdk.csproj b/pkgs/sdk/server/src/LaunchDarkly.ServerSdk.csproj
index 67102b1f..f5000931 100644
--- a/pkgs/sdk/server/src/LaunchDarkly.ServerSdk.csproj
+++ b/pkgs/sdk/server/src/LaunchDarkly.ServerSdk.csproj
@@ -1,7 +1,7 @@
- 8.10.4
+ 8.11.0-beta.1