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