Skip to content

Commit 1e580d7

Browse files
authored
fix!: in-process var name/value (FLAGD_RESOLVER="in-process") (#206)
Signed-off-by: Todd Baert <[email protected]>
1 parent 38a59f0 commit 1e580d7

File tree

4 files changed

+15
-13
lines changed

4 files changed

+15
-13
lines changed

src/OpenFeature.Contrib.Providers.Flagd/FlagdConfig.cs

+7-5
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,11 @@ public class FlagdConfig
3636
internal const string EnvVarCache = "FLAGD_CACHE";
3737
internal const string EnvVarMaxCacheSize = "FLAGD_MAX_CACHE_SIZE";
3838
internal const string EnvVarMaxEventStreamRetries = "FLAGD_MAX_EVENT_STREAM_RETRIES";
39-
internal const string EnvVarResolverType = "FLAGD_RESOLVER_TYPE";
39+
internal const string EnvVarResolverType = "FLAGD_RESOLVER";
4040
internal const string EnvVarSourceSelector = "FLAGD_SOURCE_SELECTOR";
4141
internal static int CacheSizeDefault = 10;
42+
internal static string InProcessResolverValue = "in-process";
43+
internal static string LruCacheValue = "lru";
4244

4345
/// <summary>
4446
/// Get a FlagdConfigBuilder instance.
@@ -170,15 +172,15 @@ internal FlagdConfig()
170172
_sourceSelector = Environment.GetEnvironmentVariable(EnvVarSourceSelector) ?? "";
171173
var cacheStr = Environment.GetEnvironmentVariable(EnvVarCache) ?? "";
172174

173-
if (string.Equals(cacheStr, "LRU", StringComparison.OrdinalIgnoreCase))
175+
if (string.Equals(cacheStr, LruCacheValue, StringComparison.OrdinalIgnoreCase))
174176
{
175177
_cache = true;
176178
_maxCacheSize = int.Parse(Environment.GetEnvironmentVariable(EnvVarMaxCacheSize) ?? $"{CacheSizeDefault}");
177179
_maxEventStreamRetries = int.Parse(Environment.GetEnvironmentVariable(EnvVarMaxEventStreamRetries) ?? "3");
178180
}
179181

180182
var resolverTypeStr = Environment.GetEnvironmentVariable(EnvVarResolverType) ?? "RPC";
181-
_resolverType = resolverTypeStr.ToUpper().Equals("IN_PROCESS") ? ResolverType.IN_PROCESS : ResolverType.RPC;
183+
_resolverType = string.Equals(resolverTypeStr, InProcessResolverValue, StringComparison.OrdinalIgnoreCase) ? ResolverType.IN_PROCESS : ResolverType.RPC;
182184
}
183185

184186
internal FlagdConfig(Uri url)
@@ -197,15 +199,15 @@ internal FlagdConfig(Uri url)
197199

198200
var cacheStr = Environment.GetEnvironmentVariable(EnvVarCache) ?? "";
199201

200-
if (string.Equals(cacheStr, "LRU", StringComparison.OrdinalIgnoreCase))
202+
if (string.Equals(cacheStr, LruCacheValue, StringComparison.OrdinalIgnoreCase))
201203
{
202204
_cache = true;
203205
_maxCacheSize = int.Parse(Environment.GetEnvironmentVariable(EnvVarMaxCacheSize) ?? $"{CacheSizeDefault}");
204206
_maxEventStreamRetries = int.Parse(Environment.GetEnvironmentVariable(EnvVarMaxEventStreamRetries) ?? "3");
205207
}
206208

207209
var resolverTypeStr = Environment.GetEnvironmentVariable(EnvVarResolverType) ?? "RPC";
208-
_resolverType = resolverTypeStr.ToUpper().Equals("IN_PROCESS") ? ResolverType.IN_PROCESS : ResolverType.RPC;
210+
_resolverType = string.Equals(resolverTypeStr, InProcessResolverValue, StringComparison.OrdinalIgnoreCase) ? ResolverType.IN_PROCESS : ResolverType.RPC;
209211
}
210212

211213
internal Uri GetUri()

src/OpenFeature.Contrib.Providers.Flagd/FlagdProvider.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public sealed class FlagdProvider : FeatureProvider
3333
/// FLAGD_CACHE - Enable or disable the cache (default="false")
3434
/// FLAGD_MAX_CACHE_SIZE - The maximum size of the cache (default="10")
3535
/// FLAGD_MAX_EVENT_STREAM_RETRIES - The maximum amount of retries for establishing the EventStream
36-
/// FLAGD_RESOLVER_TYPE - The type of resolver (in-process or rpc) to be used for the provider
36+
/// FLAGD_RESOLVER - The type of resolver (in-process or rpc) to be used for the provider
3737
/// </summary>
3838
public FlagdProvider() : this(new FlagdConfig())
3939
{
@@ -46,7 +46,7 @@ public FlagdProvider() : this(new FlagdConfig())
4646
/// FLAGD_CACHE - Enable or disable the cache (default="false")
4747
/// FLAGD_MAX_CACHE_SIZE - The maximum size of the cache (default="10")
4848
/// FLAGD_MAX_EVENT_STREAM_RETRIES - The maximum amount of retries for establishing the EventStream
49-
/// FLAGD_RESOLVER_TYPE - The type of resolver (in-process or rpc) to be used for the provider
49+
/// FLAGD_RESOLVER - The type of resolver (in-process or rpc) to be used for the provider
5050
/// <param name="url">The URL of the flagd server</param>
5151
/// <exception cref="ArgumentNullException">if no url is provided.</exception>
5252
/// </summary>

src/OpenFeature.Contrib.Providers.Flagd/README.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -77,16 +77,16 @@ namespace OpenFeatureTestApp
7777
The URI of the flagd server to which the `flagd Provider` connects to can either be passed directly to the constructor, or be configured using the following environment variables:
7878

7979
| Option name | Environment variable name | Type | Default | Values |
80-
|------------------------------|--------------------------------|---------|-----------| --------------- |
80+
| ---------------------------- | ------------------------------ | ------- | --------- | --------------- |
8181
| host | FLAGD_HOST | string | localhost | |
8282
| port | FLAGD_PORT | number | 8013 | |
8383
| tls | FLAGD_TLS | boolean | false | |
8484
| tls certPath | FLAGD_SERVER_CERT_PATH | string | | |
8585
| unix socket path | FLAGD_SOCKET_PATH | string | | |
86-
| Caching | FLAGD_CACHE | string | | LRU |
86+
| Caching | FLAGD_CACHE | string | | lru |
8787
| Maximum cache size | FLAGD_MAX_CACHE_SIZE | number | 10 | |
8888
| Maximum event stream retries | FLAGD_MAX_EVENT_STREAM_RETRIES | number | 3 | |
89-
| Resolver type | FLAGD_RESOLVER_TYPE | string | RPC | RPC, IN_PROCESS |
89+
| Resolver type | FLAGD_RESOLVER | string | rpc | rpc, in-process |
9090
| Source selector | FLAGD_SOURCE_SELECTOR | string | | |
9191

9292
Note that if `FLAGD_SOCKET_PATH` is set, this value takes precedence, and the other variables (`FLAGD_HOST`, `FLAGD_PORT`, `FLAGD_TLS`, `FLAGD_SERVER_CERT_PATH`) are disregarded.
@@ -112,7 +112,7 @@ var unixFlagdProvider = new FlagdProvider(new Uri("unix://socket.tmp"));
112112
## In-process resolver type
113113

114114
The flagd provider also supports the [in-process provider mode](https://flagd.dev/reference/specifications/in-process-providers/),
115-
which is activated by setting the `FLAGD_RESOLVER_TYPE` env var to `IN_PROCESS`.
115+
which is activated by setting the `FLAGD_RESOLVER` env var to `IN_PROCESS`.
116116
In this mode, the provider will connect to a service implementing the [flagd.sync.v1 interface](https://github.com/open-feature/flagd-schemas/blob/main/protobuf/flagd/sync/v1/sync.proto)
117117
and subscribe to a feature flag configuration determined by the `FLAGD_SOURCE_SELECTOR`.
118118
After an initial retrieval of the desired flag configuration, the in-process provider will keep the latest known state in memory,

test/OpenFeature.Contrib.Providers.Flagd.Test/FlagdConfigTest.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public void TestFlagdConfigUnixSocket()
4141
public void TestFlagdConfigEnabledCacheDefaultCacheSize()
4242
{
4343
Utils.CleanEnvVars();
44-
Environment.SetEnvironmentVariable(FlagdConfig.EnvVarCache, "LRU");
44+
Environment.SetEnvironmentVariable(FlagdConfig.EnvVarCache, "lru");
4545

4646
var config = new FlagdConfig();
4747

@@ -159,7 +159,7 @@ public void TestFlagdConfigFromUriEnabledCacheApplyCacheSize()
159159
public void TestFlagdConfigResolverType()
160160
{
161161
Utils.CleanEnvVars();
162-
Environment.SetEnvironmentVariable(FlagdConfig.EnvVarResolverType, "IN_PROCESS");
162+
Environment.SetEnvironmentVariable(FlagdConfig.EnvVarResolverType, "in-process");
163163
Environment.SetEnvironmentVariable(FlagdConfig.EnvVarSourceSelector, "source-selector");
164164

165165
var config = new FlagdConfig(new Uri("http://localhost:8013"));

0 commit comments

Comments
 (0)