Skip to content

feat: support remote config and multivariate flags - #15

Closed
brentatkarbon wants to merge 3 commits into
reflagcom:mainfrom
brentatkarbon:feat/remote-config
Closed

brentatkarbon wants to merge 3 commits into
reflagcom:mainfrom
brentatkarbon:feat/remote-config

Conversation

@brentatkarbon

@brentatkarbon brentatkarbon commented Sep 21, 2026 •

Copy link
Copy Markdown

Adds remote config for multivariate flags and experiments, using the Node SDK as a reference.

  • GetFlagConfig returns a variant key and JSON payload; GetFlagConfig<T> deserializes the payload. Both work on bound clients.
  • Config uses its own targeting and check-config events.
  • Config is included in overrides, bootstrap data, and fallback snapshots.
var config = client.GetFlagConfig<CheckoutConfig>("checkout-experiment", context);
var label = config.Payload?.ButtonLabel;

Existing boolean flag calls still work. Includes tests and usage docs, plus a fix for a race in an existing push-sync test.

Validation: 207 tests pass on each of .NET 8 and .NET 10. Release build and formatting checks pass with no warnings.

Add independent config evaluation and check-config telemetry, preserve config in bootstrap and fallback snapshots, and support local config overrides.

Validation: warning-free Release build, formatting checks, and 198 tests passing on each of .NET 8 and .NET 10.
Add generic config reads with configurable System.Text.Json deserialization on root and bound clients, retaining raw telemetry and variant keys. Cover missing payloads, custom converters, and failure behavior; wait for cache updates in the existing push-sync test.

Validation: 207 tests passed on each of .NET 8 and .NET 10, warning-free Release build, formatting and diff checks.
@brentatkarbon
brentatkarbon marked this pull request as draft September 21, 2026 05:57
@brentatkarbon

Copy link
Copy Markdown
Author

Reflag will pick this up with remote config changes they're making.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant